Description
Roguelike World
当前默认内容
MOD默认只提供 1 个 roguelike 维度和 1 个关卡:
- 维度:灰烬墓穴(roguelikeworld:ashen_catacombs)
- 关卡:灰烬起点(roguelikeworld:ashen_entry)
默认维度配置概览:
- 房间组数量为 3,支持最多 3 名玩家同时分配到不同房间组。
- 单组地牢为 4 x 4 房间网格。
- 基础房间边长为 32。
- Boss 房固定在 (3, 3)。
- 默认生成 2 个奖励房。
- 场景材质以深板岩砖、深板岩瓦和镀金黑石为主,奖励容器使用木桶。
默认关卡配置概览:
- 当前为第 1 关,使用灰烬墓穴维度配置。
- 怪物生命倍率为 1.1,伤害倍率为 1.0。
- 掉落倍率为 1.05。
- 普通房为 2 波,首波 2 只,第二波 2 到 3 只。
- 精英房为 2 波,数量为 1 只到 2 只。
- 奖励房守卫为 2 波,每波 1 只。
- Boss 候选池当前为监守者,二阶段增援数量为 2。
- 奖励战利品表当前使用原版地牢和要塞走廊箱子表。
当前玩法
当前地牢玩法为线性关卡制。
- 玩家通过指令 rlw 打开关卡选择界面,指令权限等级为 4。
- 也可以对地牢传送方块使用地牢钥匙来打开同一个选择界面。
- 进入关卡后会被传送到对应地牢维度,并切换为冒险模式。
- 每次进入都会分配一个独立房间组,避免玩家之间互相干扰。
- 房间布局会在生成时打乱;当玩家死亡、超时、离开或异常退出后,对应房间组会被清空并重新生成。
- 重建时会清除房间组内的怪物、掉落物等实体,避免旧战斗残留影响新一轮挑战。
- 起始房间通往后续房间的推进依赖门口阻挡;进入战斗房、精英房、奖励房后会封门,清完当前房间全部波次后才会开门。
- Boss 房会单独封闭,Boss 生命降到一定阶段后会触发二阶段增援。
- Boss 击败后会生成奖励并激活撤离祭坛,玩家靠近并潜行即可撤离。
- 挑战结束、超时或死亡后,会返回主世界并恢复进入前的游戏模式。
当前特性
- 关卡、维度、怪物池、波次和奖励表均由数据包驱动。
- 支持多房间组并发使用,只有某个维度全部房间组都被占用时才会禁止进入。
- 支持普通房、精英房、奖励房和 Boss 房四类核心房间流程。
- 支持怪物生命、攻击、伤害减免和掉落倍率缩放。
- 支持奖励房清场后发奖,Boss 击败后再发放 Boss 奖励。
- 支持 Roguelike 维度内禁止放置和破坏方块。
- 支持挑战超时提示、强制结算和结算结果界面。
Datapack
默认维度配置位于 src/main/resources/data/roguelikeworld/roguelike_dimension_profiles。
维度配置常用字段:
- id: 地牢维度 ID,必须与实际维度 ID 一致。
- titleKey / descriptionKey: 维度名称与描述的语言键;可省略,省略时默认使用 dimension.<namespace>.<path> 和对应的 .desc。
- floorBlock / wallBlock / accentBlock / rewardBlock: 地板、墙体、强调块、奖励容器方块。
- roomGroupCount: 该维度同时可用的房间组数量。
- roomGroupSpacingChunks: 房间组之间的区块间隔,用于拉开不同房间组的位置。
- roomRows / roomColumns: 房间网格大小。
- baseRoomSize: 单个房间的基础边长。
- bossRow / bossColumn: Boss 房所在网格坐标。
- treasureRooms: 奖励房数量。
新增维度时需要同时提供:
- Minecraft/NeoForge 原生维度数据,例如 data/<namespace>/dimension 和需要时的 dimension_type。
- 一份 roguelike_dimension_profiles/<name>.json,id 指向这个维度。
- 至少一个关卡文件把 dimensionId 指向该维度。
运行规则:
- 每个维度会按 roomGroupCount 提供多组房间,进入时分配空闲组。
- 只有该维度所有房间组都被占用时,玩家才会收到等待提示。
- 玩家退出、超时、死亡或异常离开后,会清空并重建自己使用的那一组房间。
- Roguelike 维度内不允许方块破坏和放置。
默认关卡数据位于 src/main/resources/data/roguelikeworld/roguelike_stages。
关卡文件常用字段:
- id: 当前关卡的唯一 ID。
- dimensionId: 该关卡使用的地牢维度/场景配置。
- order: 关卡顺序,决定线性解锁关系。
- titleKey / descriptionKey: 对应语言文件里的名称和描述键。
- scalars.mobHealthMultiplier: 怪物生命倍率。
- scalars.mobDamageMultiplier: 怪物伤害倍率。
- scalars.mobDamageReduction: 怪物额外伤害减免比例。
- scalars.mobDamageReductionCap: 怪物伤害减免上限,最终减免不会超过该值。
- scalars.lootMultiplier: 战利品数量倍率。
- scalars.roomSizeBonus: 房间尺寸额外修正。
- scalars.rewardBlocks: 奖励房和 Boss 房生成的奖励容器数量基准。
- scalars.combatMonsterMin / scalars.combatMonsterMax: 未配置 combatWaves 时,普通房单波怪物数量范围。
- scalars.eliteMonsterCount: 精英房怪物数量。
- scalars.treasureGuardCount: 奖励房守卫数量。
- scalars.bossReinforcementCount: Boss 二阶段增援数量。
- combatWaves: 普通房波次列表;每一项代表一波。
- eliteWaves: 精英房波次列表;省略时回退到单波和 scalars.eliteMonsterCount。
- treasureWaves: 奖励房守卫波次列表;省略时回退到单波和 scalars.treasureGuardCount。
- combatWaves[].monsterMin / combatWaves[].monsterMax: 该波怪物数量范围。
- combatWaves[].monsterPool: 可选,覆盖当前波使用的普通怪物池;不写则沿用 pools.combatMonsterPool。
- eliteWaves[].monsterMin / eliteWaves[].monsterMax: 该波精英怪数量范围。
- eliteWaves[].monsterPool: 可选,覆盖当前波使用的精英怪池;不写则沿用 pools.eliteMonsterPool。
- treasureWaves[].monsterMin / treasureWaves[].monsterMax: 该波奖励房守卫数量范围。
- treasureWaves[].monsterPool: 可选,覆盖当前波奖励房守卫怪池;不写则沿用 pools.combatMonsterPool。
- pools.combatMonsterPool: 普通房默认怪物池。
- pools.eliteMonsterPool: 精英房怪物池。
- pools.bossMonsterPool: Boss 候选池。
- pools.rewardLootTables: 奖励容器可抽取的战利品表。
说明:
- 除 Boss 房外,战斗房、精英房、奖励房都支持波次;清完当前波后才会进入下一波,最后一波结束才开门。
- 如果 waves 配置省略,会回退到各自原本的单波数量字段。
- 奖励房最终奖励会在最后一波守卫清完后生成,Boss 房奖励会在 Boss 被击杀后生成。
- 额外维度不是硬编码写死的;只要原生维度数据、dimension profile 和 stage 配置都存在,就会被动态识别。
Roguelike World (English)
Default Content
This mod currently provides only one roguelike dimension and one stage:
- Dimension: Ashen Catacombs (roguelikeworld:ashen_catacombs)
- Stage: Ashen Entry (roguelikeworld:ashen_entry)
Dimension settings overview:
- 3 room groups, up to 3 players can be assigned to different groups simultaneously.
- Each group is a 4 x 4 room grid.
- Base room size: 32.
- Boss room fixed at (3, 3).
- 2 reward rooms by default.
- Main blocks: deepslate bricks, deepslate tiles, gilded blackstone. Reward containers use barrels.
Stage settings overview:
- Stage 1, uses Ashen Catacombs dimension.
- Mob health multiplier: 1.1, damage multiplier: 1.0.
- Loot multiplier: 1.05.
- Combat rooms: 2 waves, first wave 2 mobs, second wave 2-3 mobs.
- Elite rooms: 2 waves, 1-2 mobs per wave.
- Reward rooms: 2 waves, 1 guard per wave.
- Boss pool: Warden, phase two reinforcement count: 2.
- Reward loot tables: vanilla stronghold corridor and dungeon chests.
Gameplay
The dungeon uses a linear stage system.
- Use the
/rlwcommand (permission level 4) to open the stage selection screen. - You can also use the Dungeon Key item on the Dungeon Portal block to open the same screen.
- After entering, you are teleported to the dimension and switched to Adventure mode.
- Each entry assigns you an isolated room group, preventing interference between players.
- Room layout is randomized each time; if you die, timeout, leave, or disconnect, your group is cleared and rebuilt.
- Rebuilding clears all mobs and dropped items in the group, preventing leftover entities from affecting new runs.
- Progression relies on door barriers; combat, elite, and reward rooms are sealed until all waves are cleared.
- Boss room is sealed; phase two triggers reinforcements when boss health drops.
- Defeating the boss spawns rewards and activates the extraction altar; sneak near it to leave.
- After finishing, timeout, or death, you return to the overworld and your previous game mode is restored.
Features
- Stages, dimensions, mob pools, waves, and rewards are all data-driven.
- Supports multiple room groups per dimension; entry is blocked only if all groups are occupied.
- Supports combat, elite, reward, and boss room flows.
- Mob health, damage, resistance, and loot scaling.
- Rewards are given after clearing reward rooms and after defeating the boss.
- Block breaking and placing are disabled in roguelike dimensions.
- Timeout warnings, forced settlement, and result screens are supported.
Datapack
Dimension profiles are in src/main/resources/data/roguelikeworld/roguelike_dimension_profiles.
Common dimension fields:
- id: Dimension ID, must match actual dimension.
- titleKey / descriptionKey: Language keys for name and description; defaults to
dimension.<namespace>.<path>and.descif omitted. - floorBlock / wallBlock / accentBlock / rewardBlock: Floor, wall, accent, reward container blocks.
- roomGroupCount: Number of room groups available in the dimension.
- roomGroupSpacingChunks: Chunk spacing between groups.
- roomRows / roomColumns: Room grid size.
- baseRoomSize: Base room edge length.
- bossRow / bossColumn: Boss room grid coordinates.
- treasureRooms: Number of reward rooms.
To add a new dimension, provide:
- Vanilla/NeoForge dimension data (e.g.
data/<namespace>/dimensionanddimension_typeif needed). - A
roguelike_dimension_profiles/<name>.jsonfile with id pointing to the dimension. - At least one stage file with
dimensionIdpointing to the dimension.
Rules:
- Each dimension provides multiple room groups; entry assigns a free group.
- Only when all groups are occupied will players see a waiting prompt.
- Leaving, timeout, death, or disconnect clears and rebuilds your group.
- Block breaking and placing are not allowed in roguelike dimensions.
Stage data is in src/main/resources/data/roguelikeworld/roguelike_stages.
Common stage fields:
- id: Unique stage ID.
- dimensionId: Dimension used for this stage.
- order: Stage order, determines linear unlock.
- titleKey / descriptionKey: Language keys for name and description.
- scalars.mobHealthMultiplier: Mob health multiplier.
- scalars.mobDamageMultiplier: Mob damage multiplier.
- scalars.mobDamageReduction: Mob extra damage resistance.
- scalars.mobDamageReductionCap: Resistance cap.
- scalars.lootMultiplier: Loot multiplier.
- scalars.roomSizeBonus: Room size adjustment.
- scalars.rewardBlocks: Number of reward containers in reward/boss rooms.
- scalars.combatMonsterMin / scalars.combatMonsterMax: Combat room mob count range if
combatWavesis omitted. - scalars.eliteMonsterCount: Elite room mob count.
- scalars.treasureGuardCount: Reward room guard count.
- scalars.bossReinforcementCount: Boss phase two reinforcement count.
- combatWaves: List of combat room waves; each entry is a wave.
- eliteWaves: List of elite room waves; falls back to single wave and
scalars.eliteMonsterCountif omitted. - treasureWaves: List of reward room guard waves; falls back to single wave and
scalars.treasureGuardCountif omitted. - combatWaves[].monsterMin / combatWaves[].monsterMax: Mob count range per wave.
- combatWaves[].monsterPool: Optional, overrides default pool for the wave; otherwise uses
pools.combatMonsterPool. - eliteWaves[].monsterMin / eliteWaves[].monsterMax: Elite mob count range per wave.
- eliteWaves[].monsterPool: Optional, overrides default pool for the wave; otherwise uses
pools.eliteMonsterPool. - treasureWaves[].monsterMin / treasureWaves[].monsterMax: Reward room guard count range per wave.
- treasureWaves[].monsterPool: Optional, overrides default pool for the wave; otherwise uses
pools.combatMonsterPool. - pools.combatMonsterPool: Default combat mob pool.
- pools.eliteMonsterPool: Elite mob pool.
- pools.bossMonsterPool: Boss pool.
- pools.rewardLootTables: Reward loot tables.
Notes:
- Combat, elite, and reward rooms support waves; only after clearing all waves will the door open.
- If waves are omitted, falls back to single wave count fields.
- Final reward in reward rooms is generated after clearing the last guard wave; boss rewards are generated after defeating the boss.
- Extra dimensions are not hardcoded; as long as vanilla dimension data, profile, and stage config exist, they are recognized dynamically.


