![[AN]Adaptive Nemesis](/_next/image?url=%2Fapi%2Fproxy-image%3Furl%3Dhttps%253A%252F%252Fcdn.modrinth.com%252Fdata%252FanacxDIl%252Ff63c99aa9be78e31253e68c2c8368f95ea97d58e.gif&w=256&q=75)
[AN]Adaptive Nemesis
The dynamic difficulty balancing module specifically designed for integration packs aims to address the issue of difficulty imbalance in current mainstream integration packs, where the early game is too easy and the late game is too challenging.
Список изменений
🌐 [Adaptive Nemesis] v1.0.12 🌐
THE WORLD SPEAKS YOUR LANGUAGE NOW.
And it has a lot more to say.
✨ NEW SYSTEMS & ENHANCEMENTS
🌐 FULL INTERNATIONALIZATION (I18N) REFACTOR
| Before | After | What Changed |
|---|---|---|
Component.literal("亡灵军团正在逼近...") | Component.translatable("adaptive_nemesis.invasion.approaching") | Every user-facing string is now a translation key |
| Hardcoded Chinese | Language files | en_us.json + zh_cn.json — add your own! |
MELEE("近战") | MELEE("adaptive_nemesis.combat_style.melee") | Combat styles, warnings, broadcasts — all localized |
New Translation Keys (10+ added):
| Key | English | 中文 | When You See It |
|---|---|---|---|
invasion.approaching | Undead legion approaching... | 亡灵军团正在逼近... | The storm begins |
invasion.wave_cleared | Wave %s cleared! | 第 %s 波已清除! | You survived a wave |
invasion.defeated | Undead legion defeated! | 亡灵军团已被击败! | Victory |
nemesis.appearance_warning | ⚠ Nemesis appeared! | ⚠ 宿敌出现! | Something bad just got worse |
combat_style.melee | Melee | 近战 | Nemesis archetype display |
🌍 "I switched my client to English. The invasion warned me in English. The Nemesis cursed me in English. It felt personal."
👹 NEMESIS SYSTEM — CRASH-PROOF & SMARTER
The Problem: Some modded mobs don't have attack damage. Nemesis tried to buff it. Game crashed. Everyone sad.
The Solution: Check first. Buff second. Live to fight another day.
| Feature | What It Does | Default |
|---|---|---|
NEMESIS_REQUIRE_ATTACK_DAMAGE | Only convert mobs that can actually fight | ✅ true |
| Null-Proof Attribute Checks | getAttribute() → null check → apply or skip | Always on |
| Pacifist Protection | Passive mobs, decorative entities, weird modded things — they stay normal | Always on |
What Gets Checked Now:
- ❤️ Max Health — exists? buff it. missing? skip gracefully.
- ⚔️ Attack Damage — exists? buff it. missing? skip gracefully.
- 🛡️ Armor — exists? buff it. missing? skip gracefully.
- ⚡ Movement Speed — exists? buff it. missing? skip gracefully.
🛡️ "My modded flamingo no longer crashes the game when it tries to become a Berserk Butcher. It just stays a flamingo. Thank you."
🏰 INVASION SYSTEM — DATAPACK SUPERPOWERS
Before: JSON defined waves and rewards. That was it.
Now: JSON defines EVERYTHING. The mob. The effects. The name. The frost under their feet.
| New Field | Type | What It Does | Example |
|---|---|---|---|
effects | List | Potion effects on spawn | Fire Resistance, Speed, Invisibility |
glowing | boolean | Mob glows through walls | true — you can't hide |
frostWalker | boolean | Leaves ice trails | true — the ground freezes behind them |
customNameKey | String | Translation key for custom name | "adaptive_nemesis.invasion.custom_blaze" |
healthMultiplier | double | HP multiplier | 1.5 — tankier |
damageMultiplier | double | ATK multiplier | 2.0 — ouch |
equipmentLootTable | ResourceLocation | Custom gear from loot table | "minecraft:chests/nether_bridge" |
Frost Walker Implementation:
- Auto-equips
iron_bootswithfrost_walkerenchantment - Drop chance:
0.0F— you don't get free boots, sorry
❄️ "The skeletons walked across the lake. The lake froze. I did not walk across the lake."
🔗 KUBEJS API — MORE EVENTS, MORE CONTROL
New Events Added:
| Event | Fires When | What You Can Do |
|---|---|---|
adaptive_nemesis.world_stage_change | World stage advances | Modify stageMultiplier, react to progression |
adaptive_nemesis.invasion.start | Invasion begins | Modify totalWaves, difficultyMultiplier, or cancel it |
adaptive_nemesis.invasion.wave_start | Each wave starts | React to wave number, scale dynamically |
adaptive_nemesis.invasion.end | Invasion concludes | Inspect victory, rewards, wavesCompleted |
KubeJS Script Examples:
// Double the waves when world reaches stage 3
onEvent('adaptive_nemesis.invasion.start', event => {
if (WorldStageManager.getStage() >= 3) {
event.totalWaves *= 2;
event.difficultyMultiplier *= 1.5;
}
});
// Bonus rewards on victory
onEvent('adaptive_nemesis.invasion.end', event => {
if (event.victory && event.wavesCompleted >= 6) {
event.player.give('minecraft:diamond', 5);
}
});
🔧 QUALITY OF LIFE
| Change | Why It Matters |
|---|---|
| 🧹 Cleaned Language Files | Removed empty lines, optimized JSON format |
| 🛡️ Null-Safe Everything | Nemesis system now gracefully handles weird modded entities |
📝 PATCH NOTES AT A GLANCE
+ 🌐 FULL I18N REFACTOR (All strings → translation keys)
+ 🌍 en_us.json + zh_cn.json (Add your own language!)
+ 👹 NEMESIS_REQUIRE_ATTACK_DAMAGE config (Skip pacifist mobs)
+ 🛡️ Null-safe attribute checks (No more crashes on weird entities)
+ 🏰 Datapack: effects, glowing, frostWalker, customNameKey
+ 🏰 Datapack: healthMultiplier, damageMultiplier, equipmentLootTable
+ 🔗 KubeJS: World Stage Change event
+ 🔗 KubeJS: Invasion Start / Wave Start / End events
+ 🔗 KubeJS: InvasionStartResult (modify waves & difficulty)
- 🗑️ Hardcoded Chinese text (RIP, you served well)
- 🐛 Nemesis crash on attribute-less mobs
- 🐛 Frost walker boots dropping from invasion mobs
! ⚠️ NEMESIS_REQUIRE_ATTACK_DAMAGE defaults to true
! (May skip some mobs that previously became Nemesis)
! ⚠️ Custom datapack invasions need updated JSON schema
🎯 CONFIGURABLE. ALWAYS.
💡 Heads up: Don't like the attack damage check? Flip
NEMESIS_REQUIRE_ATTACK_DAMAGEtofalse. Want your flamingo to become a god? Your call.Want to write a datapack invasion where every mob is glowing, frost-walking, and named "Dave"? The JSON supports it. We won't judge.
