1.1.0
Compatibility
Changes
RealHostilesAI 1.1.0 — Creeper logic & territorial AI update
New features
- Creepers are now cowardly but logical: when a player is forgiven by the karma system, nearby creepers will no longer explode uselessly. Instead, they get scared, drop a bit of gunpowder and disappear.
- Hostile mobs now taunt players more clearly by playing ambient sounds while harassing them, without forcing combat.
- Added a small chance for hostile mobs to flee combat instead of attacking, making hordes feel less robotic.
- Pillagers now behave as territorial guards: they only attack players that enter their territory radius, instead of attacking everyone on sight.
AI and balance tweaks
- Improved anti-crowding logic so only a limited number of mobs can follow the same player and they don’t stack on top of you.
- Peaceful players become “trusted” after a few seconds of non-aggressive contact, making mobs back off instead of sticking permanently.
- Extremely rare “special events” are preserved:
- A hostile mob might very rarely attack a peaceful player.
- An even rarer case: another hostile mob may defend the player and attack the aggressor.
Config additions
- New config options:
aggro.flee_chancemovement.taunt_sound_chancemovement.peace_secondspillager.territory_radiuscreeper.calm_radius,creeper.gunpowder_min,creeper.gunpowder_max
- All defaults are conservative and backwards-compatible with 1.0. If you drop the new jar on an existing server, it will generate the new config fields automatically.
This version keeps RealHostilesAI lightweight and server-safe while making hostile mobs feel even more alive and believable for survival, roleplay, and peaceful-hardcore servers.
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:2a5m1Uek:X6FGzIcW"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:2a5m1Uek:X6FGzIcW"
}

