Tags
Creators
Details
All versions
5.0.0
Release
SacredCows 5.0.04 months ago 16
Compatibility
Minecraft: Java Edition
26.1.x
Platform
Fabric
Supported environments
Server-side
Singleplayer
Changes
Breaking Changes
- All per-setting commands have been removed in favor of a unified command
interface. Existing scripts will break. Old → new:
/sacredcows enabled <bool>→/sacredcows toggle mod_status(orenable/disable)/sacredcows bypass <bool>→/sacredcows toggle bypass_status/sacredcows debug <bool>→/sacredcows toggle debug_mode/sacredcows lightning_effect <bool>→/sacredcows toggle lightning_effect/sacredcows punishment_type <mode>→/sacredcows set punishment <mode>/sacredcows save_config→/sacredcows config save/sacredcows reload_config→/sacredcows config reload/sacredcows print_config→/sacredcows config print
PunishmentMode.fromStringno longer accepts the aliaseskill,hurt. Usedeath,damage,lightning_onlyORlightning-only./sacredcows config printnow requires operator permission (previously available to everyone).CowPositionsDatais no longer a singleton. The staticgetInstance()factory has been removed; callers must now construct it withnew CowPositionsData(owner, config)and callload()explicitly.CowProtectionFeatureconstructor parameter order changed from(SacredCows, CowConfig, TickCounter)to(SacredCows, TickCounter, CowConfig).CowChunkLoaderFeatureconstructor now takes(SacredCows, TickCounter, CowPositionsData, CowConfig)instead of(SacredCows, TickCounter).
Added
- New unified command surface:
/sacredcows toggle <setting>— flip a boolean setting/sacredcows enable <setting>/disable <setting>— set a boolean explicitly/sacredcows set <setting> <value>— set any setting to a value/sacredcows get <setting>— show a setting's current value/sacredcows config <print|save|reload>— config file operations
- Tab completion for setting names on all of the above.
- New
Settingsealed interface hierarchy (BoolSetting,IntSetting,DoubleSetting,StringSetting,EnumSetting<E>) that owns its own parsing, serialization, and chat-display formatting. /sacredcows statscommands now report when the scoreboard or individual assault/kill tracking is disabled, rather than silently printing nothing.- Build now compiles with
-Xlint:all -Werror. - Shadowed
error_prone_annotations2.49.0 to silence the older version pulled in transitively by Gson.
Changed
- Configuration is now driven by a single registry in
CowConfigrather than scattered fields and three parallel enums. /sacredcows config printoutput now iterates settings generically and marks unsaved changes uniformly, instead of hand-listing each one. Changed values are now highlighted in bold aqua with a<- (changed)marker.- Verbose cow position/chunk tracking logs in
CowChunkLoaderFeatureare now gated behind thedebug_modesetting. - Log messages standardized with a
sacredcows:prefix; exceptions are now passed asThrowablearguments to the logger rather than.getMessage(), preserving full stack traces. - Tab completion now uses
SharedSuggestionProvider.suggestfor proper prefix filtering instead of suggesting every option unconditionally.
Removed
SettingsEnum,ScoreboardEnum,PermissionsEnum, and theCowConfigKeysinterface they implemented.- Dozens of per-setting getter/setter pairs on
CowConfig. Callers now access settings directly as fields (config.modStatus.get(), etc.). - Dead
MilkTeleportFeaturestub file.
Fixed
EnumSettingwas usingStringSetting.classfor its SLF4J logger, causing its log messages to be misattributed.
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:iI29uZEP:7wx9TEJH"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:iI29uZEP:7wx9TEJH"
}

