1.0.0
Compatibility
Changes
Mobpetting Changelog Version 1.0.0 - Initial Release Features Pet Mobs - Press P to pet passive/tameable mobs with line-of-sight detection
Mob Taming System - Pet untamed animals 4 times consecutively to tame them
Healing - Each pet heals the mob by 1 heart (2 HP)
XP Reward - Gain minimal XP (1 point) for petting mobs (non-farmable)
Visual Feedback - Heart particles spawn around petted mobs
Audio Feedback - XP pickup sound plays when petting
Mob Freezing - Mobs freeze for 10 ticks while being petted
1 Second Cooldown - 1 second cooldown between consecutive pets (prevents spamming)
Non-Spammable Key - P key must be released and pressed again (no holding)
Mechanics Distance Check - Must be within 3 blocks of the mob
Line of Sight - Must be looking at the mob (dot product check)
Mob Types Supported - All passive animals and tameable mobs (cows, sheep, wolves, cats, etc.)
Taming Progress - Extra hearts spawn when taming is complete
Per-Player Tracking - Each player can tame their own mobs independently
Technical Details Built with Fabric Modloader
Single-file architecture with embedded styles
Server-side cooldown enforcement
Client-side key validation
Networking via Fabric API PayloadType
Code Structure PettingHandler.java - Server-side pet logic and taming system
MobpettingClient.java - Client-side key binding and packet sending
Mobpetting.java - Main mod class with configuration constants
PetMobPayload.java - Network payload for client-server communication
Configuration PET_COOLDOWN_TICKS = 20 (1 second between pets)
PETS_TO_TAME = 4 (4 consecutive pets to tame)
Known Limitations Only works on passive/tameable mobs (not hostile mobs)
Taming counter resets if you don't pet consecutively
XP reward is minimal to prevent farming exploits
Future Improvements Custom mob sounds per species
Taming progress
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:SsIMm2f9:UMRKWl55"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:SsIMm2f9:UMRKWl55"
}

