Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Creators
Details
Wolf Rules
This mod is heavily inspired by my own Greater Wolves and Starter Wolf Companion datapacks. All features have been perfected, and inherited from them as optional features in this mod.
Wolf Rules is a server-first mod for Forge and Fabric that gives you fine control over tamed and wild wolf behavior.
The mod is designed so that:
- Defaults are disabled or vanilla-equivalent.
- You can configure rules once and reuse them across worlds/server sessions with the shared common config file.
- Rules are adjustable from config files, the in-game config screen, and in-game commands.
Configuration Model
- Forge config file:
config/wolfrules-common.toml - Fabric config file:
config/wolfrules-common.json - Command root:
/wolfrules - Config command root:
/wolfrules config ... - In-game config screen: available through Mod Menu on Fabric and the built-in mod config screen entry on Forge.
- On multiplayer, the config screen can sync with server-authoritative values and allow remote edits when the server supports it and the player has permission.
- Command-driven config changes apply live and save without the reload ding.
- External file edits can trigger the reload ding when values actually change.
Command Highlights
- Player commands:
/wolfrules sitall/wolfrules standall/wolfrules recall/wolfrules retire <target>
- Admin/cheats commands:
/wolfrules grantwolf [player] [is_baby]/wolfrules wipeplayerdata [player]/wolfrules loadedchunks/wolfrules config ...
Rule Reference (Click To Expand)
Taming
taming.singleBoneToTame (boolean, default: false)
Forces one-bone tame success on valid wild-wolf bone interaction.
- Disabled value:
false - Vanilla reference: vanilla taming is about 33 percent success per bone.
- Notes: still checks
taming.maxTamedWolvesLimitbefore ownership assignment.
taming.maxTamedWolvesLimit (integer, default: 0)
Per-player tamed wolf ownership cap.
- Disabled value:
0(unlimited) - Vanilla reference: vanilla has no per-player wolf cap.
- Notes: enforced on taming, starter grants, and admin grantwolf. If breeding hits cap, puppy still spawns but as wild (untamed).
taming.starterWolfCount (integer, default: 0)
Target total starter wolves granted per player since first join.
- Disabled value:
0 - Vanilla reference: vanilla has no starter-wolf grant system.
- Notes: grants the missing amount on login and when this value increases. Starter grants spawn as baby tamed wolves and respect
taming.maxTamedWolvesLimit.
taming.puppiesAutoSit (boolean, default: false)
Auto-sits breeding-born tamed puppies.
- Disabled value:
false - Vanilla reference: vanilla does not force-sit puppies.
- Notes: applies only to the breeding ownership flow. It does not auto-sit starter-grant wolves, admin grantwolf spawns, respawned wolves, or other generic baby-wolf load/tame paths.
Core Stats
core_stats.defaultMaxHealth (double, default: 0.0)
Overrides max health for managed (tamed) wolves.
- Disabled value:
0.0(uses vanilla tamed max health20.0) - Vanilla reference: wild wolf max health
8.0, tamed wolf max health20.0. - Notes: on max-health decrease, health is clamped; on config max-health changes, current health is remapped by health percent.
core_stats.defaultArmor (double, default: 0.0)
Overrides armor attribute for managed wolves.
- Disabled value:
0.0(uses vanilla0.0) - Vanilla reference: wolf armor is
0.0. - Notes: stacks with
defaultArmorToughnessandsurvival.damageResistanceLevels.
core_stats.defaultArmorToughness (double, default: 0.0)
Overrides armor toughness for managed wolves.
- Disabled value:
0.0(uses vanilla0.0) - Vanilla reference: wolf armor toughness is
0.0. - Notes: works together with
defaultArmorand survival damage reduction rules.
core_stats.attackDamage (double, default: 0.0)
Overrides attack damage attribute for managed wolves.
- Disabled value:
0.0(uses vanilla tamed value4.0) - Vanilla reference: wild wolf attack damage
2.0, tamed wolf4.0. - Notes: final damage still interacts with target armor/toughness/resistance rules.
core_stats.attackRate (integer, default: 0)
Sets melee attack interval for managed wolves in ticks.
- Disabled value:
0(uses vanilla20ticks =1.0second) - Vanilla reference: tamed wolf melee cadence is about 20 ticks.
- Notes: lower values attack faster and increase combat workload.
core_stats.attackRange (double, default: 0.0)
Overrides melee reach used by the custom wolf melee goal.
- Disabled value:
0.0(uses vanilla behavior) - Vanilla reference: vanilla uses internal hitbox/reach logic.
- Notes: works with
attackRateandattackDamage.
core_stats.wolfBaseSpeed (double, default: 0.0)
Overrides base movement speed for managed wolves.
- Disabled value:
0.0(uses vanilla base speed0.3) - Vanilla reference: wolf movement speed attribute base is
0.3. - Notes: continuously applied while tamed. If disabled, wolf returns to stored baseline speed.
core_stats.wolfStepHeight (double, default: 0.0)
Overrides step height for managed wolves.
- Disabled value:
0.0(uses vanilla step height0.6) - Vanilla reference: wolf step height is
0.6. - Notes: continuously applied while tamed. If disabled, wolf returns to stored baseline step height.
Survival
survival.selfHealingEnabled (boolean, default: false)
Enables passive periodic healing for injured managed wolves.
- Disabled value:
false - Vanilla reference: vanilla wolves have no periodic self-heal timer.
- Notes: requires
survival.selfHealingRate > 0; heals1.0health per pulse.
survival.selfHealingRate (double, default: 30.0)
Seconds between self-heal pulses (decimal supported).
- Ready value:
30.0 - Vanilla reference: no vanilla equivalent.
- Notes: only used when
selfHealingEnabledis true.0.0disables the timer.
survival.fireResistanceEnabled (boolean, default: false)
Cancels fire-tagged damage and clears burning on managed wolves.
- Disabled value:
false - Vanilla reference: vanilla wolves are not fire immune.
- Notes: if
allDamageInvulnerabilityis enabled, this setting is effectively redundant.
survival.damageResistanceLevels (integer, default: 0)
Incoming damage reduction at about 20 percent per level for non-bypass damage types.
- Disabled value:
0 - Vanilla reference: no configurable vanilla damage resistance level for wolves.
- Notes: stacks with armor/toughness; ignored by bypass-resistance damage sources.
survival.allDamageInvulnerability (boolean, default: false)
Cancels all incoming damage to managed wolves.
- Disabled value:
false - Vanilla reference: wolves are not fully invulnerable in vanilla.
- Notes: overrides other survival damage modifiers while enabled.
survival.fallDamageMultiplier (double, default: 1.0)
Multiplier for incoming fall damage on managed wolves.
- Disable behavior: no disable sentinel; use
1.0for vanilla-equivalent. - Vanilla reference:
1.0is vanilla-like. - Notes:
0.0cancels fall damage. One-shot fall negation from safe teleport fallback can still cancel an individual fall event.
survival.wolfRespawnMode (enum, default: no_respawn)
Controls which dead tamed wolves can respawn.
- Values:
no_respawn,only_starter_wolves,all_tamed_wolves - Vanilla reference: no automatic wolf respawn system.
- Notes: uses
fallenWolfRespawnDelaySeconds. Respawns near online owner and return standing.
survival.fallenWolfRespawnDelaySeconds (double, default: 60.0)
Respawn delay in seconds for eligible wolves (decimal supported).
- Ready value:
60.0 - Vanilla reference: no vanilla equivalent.
- Notes: timer pauses while owner is offline and resumes when online. Only matters when
survival.wolfRespawnModeis notno_respawn;0.0disables the timed delay.
survival.seekOwnerWhenLowHealthPercent (double, default: 0.0)
At or below this health percent, wolf disengages and prioritizes moving to owner.
- Disabled value:
0.0 - Vanilla reference: no vanilla threshold rule.
- Notes: pairs well with
lowHealthDisengagePercent.
survival.lowHealthDisengagePercent (double, default: 0.0)
At or below this health percent, wolf clears current combat target.
- Disabled value:
0.0 - Vanilla reference: no vanilla threshold rule.
- Notes: combines with seek/auto-target health gating.
survival.autoTargetMinHealthPercent (double, default: 0.0)
Wolf auto-targeting only occurs while above this health percent.
- Disabled value:
0.0 - Vanilla reference: no vanilla auto-target health gate.
- Notes: affects auto-acquire behavior, not manual direct target assignment.
survival.lowHealthGlowPercent (double, default: 0.0)
Adds glowing outline to low-health tamed wolves.
- Disabled value:
0.0 - Vanilla reference: no vanilla low-health glow rule.
- Notes:
100means glow whenever wolf is below full health.
Feeding
feeding.rottenFleshAutoEatEnabled (boolean, default: false)
Allows injured managed wolves to auto-consume dropped rotten flesh.
- Disabled value:
false - Vanilla reference: no vanilla dropped-item auto-eat loop.
- Notes: only eats when health is below max and supporting feeding values are valid.
feeding.rottenFleshHealAmount (double, default: 4.0)
Health restored per rotten flesh consumed.
- Ready value:
4.0 - Vanilla reference: no vanilla equivalent.
- Notes: one rotten flesh item is consumed per successful eat action. Only matters when
feeding.rottenFleshAutoEatEnabledis true.
feeding.rottenFleshSearchRadius (double, default: 1.5)
Search radius for dropped rotten flesh.
- Ready value:
1.5 - Vanilla reference: no vanilla equivalent.
- Notes: only considers loaded item entities and pickup-eligible rotten flesh. Only matters when
feeding.rottenFleshAutoEatEnabledis true.
feeding.rottenFleshEatCooldown (double, default: 0.25)
Cooldown in seconds between auto-eat actions (decimal supported).
- Ready value:
0.25 - Vanilla reference: no vanilla equivalent.
- Notes: cooldown is tracked per wolf in persistent wolf data.
0.0means literal zero cooldown, and the setting only matters whenfeeding.rottenFleshAutoEatEnabledis true.
Follow
follow.followDistanceMin (double, default: 0.0)
Near distance where following wolves can stop closing in.
- Disabled value:
0.0(vanilla near distance2.0) - Vanilla reference: stop distance about
2.0. - Notes: if max is lower than min, runtime treats max as min.
follow.followDistanceMax (double, default: 0.0)
Far distance where following wolves start closing in.
- Disabled value:
0.0(vanilla far distance10.0) - Vanilla reference: start distance about
10.0. - Notes: if max is lower than min, runtime uses min.
follow.teleportRange (double, default: 0.0)
Distance where follow teleport fallback is used.
- Disabled value:
0.0(vanilla threshold about12.0) - Vanilla reference: teleport fallback around
12.0. - Notes: effective runtime value is clamped to at least
followDistanceMax.
follow.temporaryCatchUpSpeedBoost (double, default: 0.0)
Temporary speed bonus while wolf is behind owner.
- Disabled value:
0.0 - Vanilla reference: no dedicated temporary catch-up boost setting.
- Notes: active in follow gap zone before teleport fallback.
follow.followThroughTeleports (boolean, default: false)
Resyncs loaded, standing owned wolves when owner teleports in the same dimension.
- Disabled value:
false - Vanilla reference: wolves can be left behind.
- Notes: includes safe-placement logic and fallback handling.
follow.followThroughDimensions (enum, default: vanilla)
Behavior for loaded, standing owned wolves when owner changes dimension.
- Values:
vanilla,wolves_tp_with_you,sit - Vanilla reference: no reliable vanilla transfer for all follower wolves.
- Notes: transfer mode checks nearby loaded wolves (128 block radius) and uses safe arrival + portal cooldown protections.
follow.preventWolfPortalTravel (boolean, default: false)
Prevents wolves from changing dimension through portal mechanics.
- Disabled value:
false - Vanilla reference: wolves can use portals normally.
- Notes: affects both tamed and wild wolves.
follow.chunkLoadingMode (enum, default: no_wolves)
Controls which tamed wolves can force-load their current chunk.
- Values:
no_wolves,all_wolves,starter_wolves_only,blue_collared_wolves_only - Vanilla reference: no wolf-specific chunk forcing in vanilla.
- Notes: works with
chunkLoadingIgnoreMode, and tickets are persisted in world data.
follow.chunkLoadingIgnoreMode (enum, default: ignore_sitting_or_passengers)
Filter for wolves ignored by chunk loading eligibility.
- Values:
ignore_none,ignore_sitting,ignore_passengers,ignore_sitting_or_passengers - Vanilla reference: no equivalent.
- Notes: applies as additional filter on top of
chunkLoadingMode.
Pack Commands
pack_commands.sitStandAllCommandEnabled (boolean, default: true)
Enables /wolfrules sitall and /wolfrules standall.
- Disabled value:
false - Vanilla reference: no vanilla pack sit/stand command.
- Notes: uses
commandRadius, same-dimension loaded wolves, and black-collar exclusion option.
pack_commands.recallCommandEnabled (boolean, default: true)
Enables /wolfrules recall.
- Disabled value:
false - Vanilla reference: no vanilla recall command.
- Notes: recall targets standing, loaded, same-dimension owned wolves within fixed 256 blocks (ignores
commandRadius).
pack_commands.commandRadius (double, default: 0.0)
Radius used by sitall and standall.
- Special value:
0.0means unlimited across loaded wolves in same dimension. - Vanilla reference: no equivalent.
- Notes: does not affect recall radius.
pack_commands.blackCollarIgnoresMassCommands (boolean, default: false)
Black-collared wolves are skipped by mass pack commands.
- Disabled value:
false - Vanilla reference: collar color has no vanilla pack-command behavior.
- Notes: skipped wolves remain manually controllable by direct interaction.
Collision
collision.noPushMode (enum, default: disabled)
Controls collision push suppression involving managed wolves.
- Values:
disabledplayer_to_wolf_onlywolf_to_wolfwolf_to_wolf_and_playerwolf_to_all_entities
- Vanilla reference: pushing is enabled.
- Notes: player-involved modes keep player-dominant nudging so wolves can still be moved aside by player movement.
Owner Presence
owner_presence.sitWolvesOnOwnerLogout (boolean, default: false)
Force-sits loaded standing owned wolves when owner logs out.
- Disabled value:
false - Vanilla reference: no forced logout sit behavior.
- Notes: marks these wolves for optional post-login restore.
owner_presence.restoreStandingWolvesOnOwnerLogin (boolean, default: false)
Restores standing state for wolves that were force-sat on owner logout.
- Disabled value:
false - Vanilla reference: no vanilla memory/restore flow.
- Notes: only restores wolves marked by the logout-sit rule.
owner_presence.ownerLoginRestoreWindowSeconds (double, default: 30.0)
Time window after login where marked wolves can still auto-restore if chunks load late.
- Special value:
0.0means immediate restore attempt only. - Vanilla reference: no equivalent.
- Notes: used only when restore-on-login is enabled.
owner_presence.ownerDeathBehavior (enum, default: vanilla)
Immediate loaded-wolf response to owner death.
- Values:
vanilla,sit,clear_target,teleport_to_respawned_owner - Vanilla reference: no configurable mode switch.
- Notes: teleport mode marks relevant loaded followers on death, then moves them to respawned owner when possible.
Combat
combat.friendlyFireAvoidanceEnabled (boolean, default: false)
Prevents owner-caused damage to owned wolves.
- Disabled value:
false - Vanilla reference: owner-caused damage can hurt tamed wolves.
- Notes: checks source/direct source ownership and clears wolf combat target when triggered.
combat.wolvesNeverAttackPlayers (boolean, default: false)
Prevents tamed wolves from targeting or damaging players.
- Disabled value:
false - Vanilla reference: vanilla tamed wolves can attack players in normal contexts.
- Notes: applies even if other combat rules would otherwise allow player targeting.
combat.wildWolvesNeverAngryAtPlayers (boolean, default: false)
Prevents wild wolves from maintaining anger against players.
- Disabled value:
false - Vanilla reference: wild wolves can anger at players.
- Notes: clears player target and persistent anger state for untamed wolves.
combat.targetPriorityMode (enum, default: vanilla)
Priority strategy when multiple valid targets exist.
- Values:
vanilla,owner_attacker_first,closest_to_wolf_first,closest_to_owner_first,lowest_health_first - Vanilla reference: no explicit configurable mode.
- Notes: used by runtime target reselection and combines with diverse target distribution.
combat.diverseTargetDistributionEnabled (boolean, default: false)
Encourages packs to split across multiple targets.
- Disabled value:
false - Vanilla reference: packs often naturally pile one target.
- Notes: adds a focus penalty in scoring so already-focused targets become less attractive.
combat.autoEngageEntityList (list, default: empty)
Entity types allowed for auto-engage acquisition by standing tamed wolves.
- Disable value: empty list
[] - Vanilla reference: no configurable auto-engage list.
- Notes: unioned with
combat.wolvesAutoEngageZombies; still respects health gates, disallowed-target rules, blacklist, and vanillawantsToAttackchecks. - Command alias:
/wolfrules config combat auto_engage list/wolfrules config combat auto_engage add_entity <entity_type>/wolfrules config combat auto_engage remove_entity <entity_type>/wolfrules config combat auto_engage clear
combat.wolvesAutoEngageZombies (boolean, default: false)
Allows standing tamed wolves to auto-acquire nearby zombie-family targets.
- Disabled value:
false - Vanilla reference: no dedicated zombie auto-engage toggle.
- Notes: works with health gates, zombie-villager exclusion, target priority mode, and auto-engage list.
combat.protectedEntityBlacklist (list, default: empty)
Hard target blacklist for tamed wolves.
- Disable value: empty list
[] - Vanilla reference: no equivalent list.
- Notes: blocks target acquire/keep and outgoing attack attempts for listed entity types.
- Command alias:
/wolfrules config combat target_blacklist list/wolfrules config combat target_blacklist add_entity <entity_type>/wolfrules config combat target_blacklist remove_entity <entity_type>/wolfrules config combat target_blacklist clear
combat.wolvesNeverTargetZombieVillagers (boolean, default: false)
Blocks zombie villager targeting by tamed wolves.
- Disabled value:
false - Vanilla reference: no dedicated toggle.
- Notes: prevents acquire and keep behavior for zombie villagers.
combat.creeperTargetOwnerRetaliationOnly (boolean, default: false)
Allows creeper targeting only when owner recently attacked that exact creeper.
- Disabled value:
false - Vanilla reference: wolves avoid creepers by default.
- Notes: uses short owner-hit window and exact creeper identity check.
combat.combatLeashMaxDistance (double, default: 0.0)
Max owner distance during combat before wolf disengages.
- Disabled value:
0.0 - Vanilla reference: no configurable owner-distance combat leash.
- Notes: helps prevent long-distance chase drift.
Extra Wolf Utility
/wolfrules retire [target]
Converts your own tamed wolf back to wild without admin config changes.
- If omitted, target defaults to the wolf in your crosshair.
- You can use selectors like
@e[type=wolf,limit=1,sort=nearest]. - Starter wolves are protected and cannot be retired.
- Retire clears Wolf Rules wolf-side runtime/persistent data for clean removal from pack systems.
/wolfrules loadedchunks
Lists wolf-driven chunk-force entries currently active on the server.
- Admin/cheats command.
- Useful for verifying
follow.chunkLoadingModeandfollow.chunkLoadingIgnoreMode. - Output includes dimension, chunk position, wolf identity, and owner identity when available.
/wolfrules grantwolf [player] [is_baby]
Admin grant command for spawning a tamed wolf near a target player.
- If player is omitted, target defaults to yourself.
- Respects
taming.maxTamedWolvesLimit. - Optional
is_babyflag spawns a baby wolf, but grant-created wolves are not treated as breeding puppies fortaming.puppiesAutoSit.
/wolfrules wipeplayerdata [player]
Clears persisted Wolf Rules player data used for starter-grant tracking.
- Admin/cheats command.
- If player is omitted, target defaults to yourself.
- Useful for retesting first-join starter wolf flows and starter grant progression.



