Links
Tags
Creators
Details
Licensed GPL-3.0-or-later
Published 2 months ago
Updated 4 months ago
All versions
1.1.0
Release
Tamable Foxes (Community Port) 1.1.04 months ago 16
Compatibility
Minecraft: Java Edition
26.2
26.1.x
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
Platforms
Paper
Purpur
Spigot
Changes
Tamable Foxes v1.1.0 Changelog
New Features
/fox GUI Menu
- New
/foxcommand with a 5x9 chest GUI panel - Fox info header with name, health, state, and world
- Buttons: Teleport Fox to You, Follow/Wander toggle, Sit, Rename, Sleep
- Health bar with visual progress indicator
- Combat Mode toggle (Aggressive/Passive)
- State indicator (Sleeping/Sitting/Standing)
- Click guard prevents double-processing, GUI refreshes on next tick
Follow Mode
- Toggle per-fox Follow/Wander via the GUI
- Rubber-band system: fox teleports to owner if >16 blocks away, nudges if >10 blocks
- Runs every second via BukkitRunnable
- State persisted in SQLite and loaded on startup
Per-Fox Aggressive/Passive Combat Mode
- Aggressive (default): fox attacks hostile mobs near owner, retaliates when hit
- Passive: fox does not attack anyone, even if owner hits something
- Three layers of protection:
wantsToAttack()check in target pathfinder goalssetTarget()override in NMS EntityTamableFoxFoxTargetListenerBukkit safety net (cancels EntityTargetEvent + EntityDamageByEntityEvent)
SQLite Fox Registry
FOXEStable stores: UUID, owner, name, world, coords, health, max health, sitting, sleeping, following, aggressive- Auto-migration adds new columns to existing databases
- UPSERT for follow/aggressive toggles (INSERT ON CONFLICT UPDATE)
Configurable Taming
taming-food.items: list of food items used for taming (default: CHICKEN)taming-food.chance: taming success chance (default: 0.3)fox-stats.wild.max-health: wild fox max healthfox-stats.tamed.max-health: tamed fox max healthfox-stats.tamed.attack-damage: tamed fox attack damagetaming-effects.hearts: show heart particles on tame (default: true)taming-effects.sound: sound played on tame (uses XSound for cross-version support)
Debug Mode
debug: truein config.yml enables verbose[FoxDB]logging- Errors always logged, stack traces only when debug is enabled
Bug Fixes
- Fixed
isOwnedByUUID type mismatch (was comparing UUID with String) - Fixed Shift+right-click detection (uses
player.isSneaking()instead of fox) - Fixed
reassessTameGoals()using adapter methods instead of direct goal field access - Fixed
mobInteract()removed from all 26 modules (delegated to TamableFoxLogic) - Fixed GUI not updating after actions (FoxTargetListener + in-memory state)
- Fixed SQLite
setFoxFollowing/setFoxAggressivesilently failing when fox not in table (now uses UPSERT) - Fixed follow task removing foxes from set when entity not found in current world
- Fixed AnvilGUI conflict with 26.x via
minimizeJarfilter - Fixed FoxPathfinderGoalHurtByTarget not checking
wantsToAttackbefore retaliation
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:mHA90TbA:zYSjyzLG"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:mHA90TbA:zYSjyzLG"
}

