promotional bannermobile promotional banner

[SLR] Dungeon Expansion

Adds 40 ranked dungeons with 206 custom creatures and 40 bosses to SoloCraft: Reawakening, integrated through its own gates, level scaling and mana crystals.
Back to Files

Dungeon Expansion 2.0

File nameslrdungeons-0.30.0.jar
Uploader
sarukisaruki
Uploaded
Sep 11, 2026
Downloads
208
Size
48.4 MB
Mod Loaders
NeoForge
File ID
8860824
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:solocraft-dungeon-expansion-1679201:8860824"

Learn more about Curse Maven

What's new

## [2.0] - Major Update

Three things happened over those three days. The guild system was removed and SoloCraft 1.3.3
became the floor. Then one player's report - at level 150, SoloCraft's default cap, watching SS
gates appear from level 100 and break beside them at a certainty, letting out creatures of 165 to
220, having stopped levelling without knowing why - rewrote how gates are offered and how they
break. And then the God rank, which was a level-265 walk-through for anybody holding the System,
whose hundredfold softening made every God blow harmless: God gates now open at level 300 and bow
only to a **complete Shadow Monarch**, whose own tools - the Legion, the Black Heart, the plate,
the job itself - had a long list of ways to lose what a player had earned.

Run in game on a local server: 115 unit tests, 55 GameTests and 14 in-game checks pass; see
`docs/PLAYTEST.md`.

### Added

#### The God rank and the complete Shadow Monarch

- **The complete Shadow Monarch.** SoloCraft's Shadow Monarch (job 1, or the Shadow Monarch
  vessel), holding this addon's System, with a second heart: this addon's Black Heart, held
  and allowed, or SoloCraft's own black heart from the Cartenon finale. The Monarch plate is
  not required. `/slrdungeons dev monarch tier [player]` shows the three pieces.
- **God dominion** (`slrGodDominion`, on), one handler for every God-only damage rule:
  - a God blow takes at least 45% of the maximum health of a hunter who is not complete from
    a boss or mini-boss, 22.5% from other God creatures (`slrGodFloorPercent`, 45), and the
    Monarch's softening does not apply to it;
  - such a hunter, or their shadows, can take at most 2% of a God boss's or mini-boss's
    maximum health per blow, 5% of other God creatures' (`slrGodHitCapPercent`, 2) - a God boss
    in a dungeon refuses such a blow outright instead, see *Invincible God bosses*;
  - a complete Shadow Monarch's blow, or their shadows', is a **divine strike** on a God boss:
    8-12% of its maximum health whatever it was, so a God boss falls in 9 to 13 blows. On other
    God creatures it lands whole after armour, with no endurance share. Written after the first
    fight at four times the health, where the Monarch's blows barely scratched a God boss;
  - a complete Shadow Monarch takes at most 8% of their maximum health from a God blow
    (`slrGodMonarchCapPercent`, 8; 0 removes the cap), and a God blow that would still kill
    them leaves them at 1 health without spending the Black Heart;
  - a hunter who is not complete is told so on the action bar, at most once every 30 seconds.
- **God endurance** (`slrGodEndurancePercent`, 100): inside a dungeon a God creature keeps
  only part of each blow after armour - 40% ordinary, 30% elite, 18% mini-boss, 8% boss -
  divided further by the party's size. 200 doubles effective health, 0 turns it off. `/kill`,
  the void, shadows as victims, God creatures outside dungeons (Break escapees) and
  ability-summoned adds are exempt, and so is every blow that holds a divine key.
- **Invincible God bosses** (`slrGodInvincible`, on). Inside a dungeon a God boss refuses every
  blow without a key: no damage, no knockback, a burst of light, and the striker is told so at
  most every 5 seconds. `/kill` and the void always land; mini-bosses and ordinary God creatures
  are never invincible. Three keys, each a band of the boss's maximum health instead of the
  endurance share and the per-blow cap:
  - **a complete Shadow Monarch** - 8-12% per blow (9 to 13 blows);
  - **the Divine Blade** in the main hand, in melee - 2-5% per blow after the boss's ward (20 to
    50 blows);
  - **the altars**: four glowing beacons stand on the diagonals seven blocks out, each tied to
    the boss by a thread of light. `slrGodAltarHits` (5) hits break one; when the last falls the
    boss glows and any blow from anybody takes 1-4% of its bar for `slrGodVulnerableSeconds`
    (20), then four new altars rise. Altars are vanilla block display and interaction entities:
    no new model or texture.
  `/slrdungeons dev god status` shows the nearest divine boss's altars, window and the caller's
  key; `dev god altars break` and `dev god altars restore` open and close the window.
- **Divine Shards and the Divine Blade.** God creatures below boss drop Divine Shards when a
  hunter or their shadow kills them in a dungeon: ordinary 10%, elite 25%, mini-boss always 1-2;
  never ability adds; off with `slrMaterialDrops`. Three shards around a Monarch's Sigil over a
  netherite sword craft the Divine Blade: netherite-sword stats, fire resistant, always glinting.
  Both items borrow vanilla textures (amethyst shard, netherite sword).
- **God damage**: ordinary God creatures hit for 262-292 and bosses for 520-550 (were 78-98
  and 128-160); elites and mini-bosses scale from those as at every rank.
  `slrGodDamagePercent` (150) multiplies the finished hit on top: a God boss's designed hit of
  548.5 becomes about 822.
- **God health** (`slrGodHealthPercent`, 400): a God creature's finished maximum health is
  multiplied on top of every other rule, and it spawns full. A God boss at level 310 stands at
  about 3,680 health instead of about 920. To make room, the engine's 1024 ceiling on
  `generic.max_health` is raised to 1,000,000 at start-up on server and client
  (`util/HealthCeiling`); if that fails the log says so and God creatures stay clamped at 1024.
  The ceiling is global, so other health bonuses that used to be clamped at 1024 (health rules
  above 100 on S bosses, party scaling, a player's own bonuses) now count in full. A complete
  Shadow Monarch is still capped at 8% per God blow and cannot die to one.
- **God door level check** (`slrGodDoorLevelCheck`, on): a God gate refuses a hunter below
  its minimum less `slrGateLevelMargin` - level 285 - even with a party. Creative and spectator
  pass.
- **A start-up warning** when `soloLevelingLevelCap` keeps every God gate out of reach: God
  gates need level 285, SoloCraft's default cap is 150. Set it to 300 or 0.
- **God rooms**: 36 room structures of their own for the three God dungeons, generated by
  `tools/gen_god_rooms.py` - quartz and gold palaces with sky ceilings, painted sky walls and
  cloud-sea floors, and a 31x14x31 throne hall with a dais for each boss. Cloud, light and ash
  particles drift around hunters during a God run. No other structure changed.
- **Only a complete Shadow Monarch gets a soul from a God creature.** SS and National are
  unchanged.

#### The Monarch's own tools

- **Keep the Shadow Monarch job** (`slrKeepMonarchJob`, on): a Shadow Monarch whose job was
  wiped by a SoloCraft reset, with their shadow roster still there, gets the job back - only
  from no job at all, never over another vessel, within the server's Monarch limit.
  `/slrdungeons dev monarch forget <player>` clears the memory.
- **G opens the Shadow Legion**, whether or not SoloCraft's System flag is on. The Legion's
  "< Page 1" opens SoloCraft's own summon menu instead of closing the screen.
- **`/slrdungeons legion all summon|dismiss`**, one summary line for the whole army.
- **`/slrdungeons heart`** for players, and op-only `/slrdungeons dev heart
  grant|revoke|wake|reset|reissue`. `dev authority revoke` also takes the heart.
- **The Legion shows how a shadow is progressing.** Each card carries the shadow's grade
  (Elite, Knight, General, Marshal) in its own colour, its kill count and a bar toward the next
  grade. SoloCraft's own level stays on the card, separately: its XP keeps rising, only its rank
  stops at Elite Knight.

#### Gates, breaks and Jeju

- **A Dungeon Break needs a hunter who can face it.** If no hunter within 160 blocks of the
  gate has the level for its dungeon - its minimum less `slrGateLevelMargin` - the gate
  expires quietly: nothing gets out, nothing reaches the journal, nobody famous comes.
- **`slrGateLevelMargin`**, default 15. Fifteen puts the first SS dungeon, Demon Kingdom's
  Deep (minimum 165), exactly at SoloCraft's default cap of 150; a server that raises
  `soloLevelingLevelCap` meets the rest as its hunters climb. Below S the same fifteen means
  A gates from level 55 and S gates from 85.
- **`/slrdungeons jeju`**, for every player: where Jeju stands, whether the Ant King sleeps,
  is awake or is dead, and how long until the colony comes.
- **A warning at SoloCraft's level cap**, once per player: its finale at the Cartenon Temple
  ends all XP gain for good. A Shadow Monarch without Beru's shadow is also told where he
  comes from; other jobs cannot Arise, so they are not sent after him.

#### Campaign, tooling and text

- **`/slrdungeons dev story step <n>`** puts a hunter on any step of the campaign without
  paying or announcing anything, and **`/slrdungeons dev gate seed`** runs the real gate
  generation beside the caller, skipping only the random roll and saying which condition
  refused when one does.
- **Finishing a chapter is announced**, including the last one, which used to end in
  silence.
- **The first GameTests** (`gradlew runGameTestServer`) and a unit test that holds every
  creature to a valid shadow archetype. The suite has grown to 55 tests and 115 unit tests.
- **French** for the game rules, the Black Heart and rebirth scene, the System's authority
  lines, the finale warning, the Legion page and commands, Arise and shadow grades.

### Changed

- **God dungeons open at level 300**: The Fragment of Brilliant Light 300-330 (was 265-310),
  The Rulers' Vigil 300-340 (was 280-325), The Absolute Being 300-350.
- **God chests roll the standard S tables.** The Rulers' Vigil paid A-rank Fallen God Temple
  loot.
- **The God boss's rotating ward applies after armour**, so its phase slows a one-trick build
  by the intended amount instead of 5 to 16 times.
- **Only the Shadow Monarch, or whoever holds the System, can summon from the Legion.**
  Anybody can still dismiss.
- **The Legion page sends its own packets** instead of chat commands, and refreshes itself
  every two seconds. Network version 3: client and server must both be 0.30.0.
- **Holding the Black Heart satisfies the Awakened Vessel and Ruler Candidate rungs**, and the
  heart can be earned with `slrDungeonQuests` off.
- **`slrBlackHeartRefusalSeconds` 0 refuses every killing blow**; any other value less the
  plate's 45 seconds never goes below 5 (the floor was 20, which swallowed the plate's cut).
- **S-rank dungeons start close to S rank.** Minimums are now `demon_kingdom` 100,
  `void_city` 102, `primordial_dragon_tomb` 104, `legion_of_the_dead` 106,
  `corrupted_celestial_citadel` 108 and `worlds_end` 110 - they ran from 100 to 125.
  Maximums and the three S-rank Red Gate exclusives are unchanged. A hunter who has just made
  S walks into dungeons whose own level is at most ten above theirs, where it used to be
  twenty-five; the usual spread of up to three levels and the boss's ten come on top, as they
  always have.
- **SoloCraft 1.3.3 is required** (`[1.3.3,1.4)`). Datapack gates book their dungeon site
  from SoloCraft's `DungeonSiteAllocator`, and the statue trial's three teleports go through
  `DungeonArrival`, which protects the hunter while the destination loads.
- **Every quest description was rewritten** to open with what to do - the verb, the count,
  the rank, the place. "Still Standing" now follows "The First Door" instead of asking for
  a flawless clear before any clear, and four payouts were raised where they sat below an
  easier step. **The four licence quests say where a licence is raised**, since levels lift
  SoloCraft's rank but never rewrite the licence those quests read; "A Seat at the Table" no
  longer mentions guilds.
- **A famous hunter who does not come now says why**, with `debugMode` on: nobody answers
  this rank, the one-in-four roll missed, the entity could not be made, or there was no
  clear ground. Before, a run of breaks with nobody arriving could not be told apart from a
  fault.
- **Lighter on the client and the server**, with nothing drawn or decided differently:
  - **Screens** - System, Legion, Codex, Campaign, Journal, Court, Skills, Exchange, Trade and
    every addon button - build and wrap their text when it changes instead of every frame.
  - **Shadows** find their model through a cached lookup.
  - **God altars** read their last hit without saving the whole entity every 2 ticks.
  - **The boss bar title** is rebuilt only when the level changes.
  - **The System panel** is not resent when nothing on it changed.
  - **Debug-only log lines** no longer build names while debug is off.
- `mod_version` 0.30.0.

### Fixed

#### Gates, breaks and the campaign

- **The campaign stopped for good at "Rank Up", in chapter III.** That quest - a C licence -
  and the three licence quests after it read a SoloCraft field, `rankingnum`, that neither
  SoloCraft 1.3.1 nor 1.3.3 ever writes, so the number was 0 on every world and the quest
  could never complete. The campaign serves one quest at a time, so nothing after it could
  either. The rank is now read from the licence itself; a hunter already stuck there with a
  C licence or better moves on within two seconds of logging in.
- **SS, National and God gates broke at a certainty** on any server with one S-rank hunter
  online. SoloCraft has no rank above S, so these gates are presented to it as S, and its
  break roll always breaks a gate at or below the best rank online. They now roll from
  SoloCraft's own gap table against the best-ranked hunter near the gate - ranked as
  SoloCraft's own roll ranks them, by the rank levelling raises rather than the letter on
  the licence: 65 %, 45 % and 30 % against an S-rank hunter. Gates from E to S keep
  SoloCraft's roll unchanged.
- **Gates arrived before the hunter could face them.** Gates above S were offered from level
  100 to every S-rank hunter, though their creatures start at 165; and at every rank the
  seeder offered a rank or two above the licence without a look at level - an A-rank hunter
  at 75 met S gates starting at 100. Now a gate of any rank but E is offered only to a hunter
  within `slrGateLevelMargin` levels of that dungeon's minimum. A gate SoloCraft's own spawner
  binds to one of our dungeons - Red Gate exclusives included - is rebound to one the nearest
  hunter can take when they lack the level. E gates always appear, so a new hunter is never
  left with nothing.
- **Gate sites leaked.** A gate removed by `/kill`, another mod or SoloCraft's own cleanup
  never returned its slot, and a full pool evicts a live booking instead of refusing - so a
  leak surfaced much later as two dungeons built in one place. Released now, on real
  removals only.
- **The entered-gate countdown could show half the real delay** when its rule could not be
  read: the readout fell back to 30 minutes and the sweep to 60.
- **SoloCraft's own Beru gates were closed for good** once Jeju had risen. They are held back
  now only while the Ant King lives or an invasion is underway.
- **Jeju could take a living Ant King for dead.** An awake King left in a chunk that had
  unloaded was written off as soon as a hunter loaded the island's centre - and with Beru
  gates now reopening once he is dead, that could have let a second Beru boss in. The island
  remembers where he was last seen (saved as `KingSeen`; older saves simply start without it)
  and counts him gone only when that ground is actually loaded and he is not on it.
- **The Ant King came back 0.7 seconds after `dev jeju fall` killed him**, `dev jeju wake`
  and `reset` did nothing from any distance, and the island's site search could settle on a
  cliff for a coast.

#### The Monarch, the Legion and the Black Heart

- **The Legion refused a hunter with the full Monarch panel** - "Only the Shadow Monarch can
  call a soldier out" - when SoloCraft's job had been reset. Holding the System is enough to
  summon now; dismissing was never refused.
- **The Monarch plate and keepsake were duplicated on every death** with keepInventory off.
  They are bound to their owner, kept out of the death drops and handed back on respawn; a
  piece bound to somebody else is taken off whoever wears it. Duplicates already in a world
  stay inert rather than deleted, and a heart holder's plate is bound once on the first login.
- **A shadow's grade and kills were lost on every removal but the Legion's own dismiss** -
  SoloCraft's Dismiss Shadows, logout, a dimension change. The roster entry now keeps them.
- **Raising a creature could take over a promoted soldier's slot.** Each raise gets a fresh
  entry.
- **Summon All got non-operators kicked for spam**, and card clicks failed with chat hidden.
- **Shadows summoned back through SoloCraft's page arrived unscaled and gradeless**, and lost
  Dominion and Legion's Reach.
- **Dismissing from the Legion destroyed the mana stones a shadow carried.**
- **Two souls within two blocks could raise the wrong creature, or one twice.**
- **The Legion summoned inside Cartenon, in the survival dimension, while dead or as a
  spectator**, and for a hunter who was neither the Shadow Monarch nor holding the System.
- **Stale duplicate shadows were never removed.** A shadow no longer bound to its entry
  disappears, dropping what it carried.
- **Promotion kills could be farmed** on chickens, players or other shadows. Only enemies count.
- **"Put Them Away" cleared a run in which SoloCraft's own shadows were called.**
- **Legion summons charged mana in Creative, and before the shadow existed.**
- **The Legion page** kept a stale list between worlds and could scroll past its end; its
  buttons were English-only.
- **The two Black Hearts did not see each other.** SoloCraft's black heart counts as a second
  heart and turns the System's voice silent, and `/slrdungeons heart` says so.
- **Health from the System and the heart was lost on relog.**
- **Sovereign's Return fired on the void and `/kill`, and ignored absorption.** It also
  recharged on any dimension change instead of only on a new dungeon.
- **The Jeju ascension rung could lock** once the island was gone or its rule was off.
- **The rebirth scene was lost on disconnect.** It now resumes on login.

#### Creatures, screens and text

- **God bosses spawned wounded**, at about 87% of their bar: the late level raise above the
  room lifted their maximum health, multiplied by `slrGodHealthPercent`, without filling it. A
  creature's health share is kept across that raise.
- **The Architect's awakened form never showed.** Its phase was never sent to the client,
  which always drew phase 1; the phase is synced now.
- **The Codex page opened on the previous world's list** after changing server.
- **`/kill` did nothing to a boss sealed by Rally**, and the void did not hurt it until the
  seal ended.
- **The Unclosed Scar's chest stopped loading** once the guild flare it listed was removed.
- **The journal drew its widgets twice** on an empty page.
- **The skill-point message misreported the count.** It read *"A skill point. You have 1."*
  with 1,212 points unspent, and *"A skill point"* when 999 arrived at once: its first number
  was the amount just gained. It now reads *"Skill points +1. You have 1212 unspent."*
- **Twenty-seven game rules had no name or description** on the Create World screen.
- **Ascension and game-rule texts disagreed with the code** (the Monarch multiplier does not
  touch health; three ladder rungs now mention the Black Heart).
- **Texts still said a broken Beru gate raises Jeju.** Jeju is a timed invasion.
- **The dungeon catalog had three Red Gates wrong.** Blood Moon Forest was listed as B 90-115
  (it is A 90-110), The Abyssal Prison as A (it is S), and Throne of the Fallen Monarch as
  170-200 (it is 165-180). `tools/gen_docs.py` now matches the dungeons, and
  `docs/DUNGEON_CATALOG.md` and `docs/MOB_CATALOG.md` were regenerated from it.

### Removed

- **The guild system, entirely.** Solo Leveling: Hunter Society (`hunter_society`) does
  guilds better, and carrying two of them made any collaboration impossible. Gone: guild
  halls, guild teams booking gates and answering Dungeon Breaks, the guild league and its
  screen, retinues and expeditions, standing directives, and the guild flare - 21 Java
  files and about 5,100 lines, ten game rules (`slrNpcHunters`, `slrGuildDirectives`,
  `slrGuildClaims`, `slrGuildClaimMinutes`, `slrGuildClaimPercent`, `slrGuildGateTeams`,
  `slrGuildHalls`, `slrGuildHallCount`, `slrExpeditions`, and the league's G key), the five
  datapack guilds and every translation key that described them.
- **Six campaign quests** that read that system, so the campaign is 59 steps rather than
  65. A player's progress is an index into the list: anyone mid-campaign on an older save
  lands on a neighbouring quest. Chapter IV kept its four dungeon quests and is now
  "IV. The Proving Ground".
- **Four journal categories** - claimed gates, league moves, expeditions, claim teams.
  Existing worlds drop those entries silently on load and the save rewrites itself once
  without them; gate, Red Gate, break and Jeju entries are untouched.
- **What that removal left behind in text.** The names and descriptions of the game rules
  that no longer exist (`slrGuildHalls`, `slrGuildHallCount`, `slrGuildClaims`,
  `slrGuildClaimPercent`, `slrGuildDirectives`, and `slrNpcHunters` with them) and the sixteen
  lines of the Association directives, which nothing reads any more. The six humans kept below
  are grouped as "Hunters" rather than "The Hunters' Guilds", and the trade screen's rate is
  the quartermaster's rather than the guild's. `verify_content.py` loses a guild hall check
  that called commands which no longer exist, and the unused Legion "empty" text is gone.

### Kept on purpose

- **The six `guild_*` creatures stay registered.** Two things that are not guild features
  depend on them: `guild_quartermaster` is the addon's only merchant, and the Proving Yard
  draws its instructor from three of the others. Deleting them would have removed trading
  and the landmark's instructor in silence. Note that nothing places a merchant any more -
  its only spawn was the guild hall.
- **Famous hunters.** Cha Hae-In, Baek Yoonho, Choi Jong-In, Thomas Andre, Kang Taeshik and
  Esil Radiru were swept out with the guild response code, which is where their trigger
  lived, and restored the same day. They are now summoned by the Dungeon Break itself.

### Known

- A Shadow Monarch who kills another player's shadow gets a soul that can be raised again as
  a duplicate (`ShadowExtractionBridge` also fires on our shadows' deaths). Not fixed.

This mod has no additional files