Liminal Roomgen
High-performance Java room generation engine for the Liminal Industries Rescripted backrooms — drop-in TPS booster, no pack edits needed.
介绍
Liminal Roomgen is a drop-in performance engine for Liminal Industries and compatible forks — base LI, Rescripted, community remixes, anything using the standard KubeJS backrooms pipeline. Same rooms, same sector rules, dramatically better TPS. Minecraft 1.20.1 · Forge 47+ · KubeJS required.
Ai used for the icon ( no ai used in coding other than general code assistant)
Highlights
- Fast placement — budgeted Java queue replaces per-tick script
/placecommands; no more exploration lag spikes - Reads your KubeJS sectors — picks from
kubejs/config/sectors/at runtime; change rooms in the pack and Roomgen follows - Rarity weighting — liminal corridors common, setpieces and loot rooms rare, with spacing so the maze feels intentional
- Reliable expansion — graph grows when a room finishes, not on fragile per-node script loops
- TPS HUD —
/roomgen hud onorofffor FPS / TPS / MSPT overlay - Dedicated server ready — runs server-side; clients sync live stats through the HUD
How it works
KubeJS still owns room lists, sectors, and layout rules. Roomgen owns speed — picking, placing slices, and expanding connectors.
Pack layer (unchanged)
- Sector JSON in
kubejs/config/sectors/ - Generation scripts (
get_sector,get_random_room, room-node block ticks)
Roomgen layer (Java)
- Bridge hooks your existing KubeJS handlers at startup
- Native picker + classifier read the same sector files
- Batch placer builds rooms within a per-tick time budget
- Graph expander queues new nodes when a room completes
Remove the jar and generation falls back to vanilla KubeJS — fail-open, safe on existing worlds.
Room selection (overview)
When a new grid node appears:
- Dimension → overworld uses distance rings from center; poolrooms = sector 7; room forge = sector 8
- Sector → load that sector’s JSON pool (
sectorN.json, plus#common_rooms/#community_roomstokens) - Pick → weighted by rarity class when enabled, otherwise uniform random from the pool
- Filter → spacing / dedup for rare classes; sector 6 uses the nest / sentinel triplet layout
- Place → enqueue Java batch placement
Overworld sector rings (distance from -1000, -1000): outer rings pull sector 2 themed pools → void-adjacent sectors 3–6 with nest rings → inner sector 1 is common rooms only. Exact thresholds match the pack’s step3.js and Roomgen’s native picker.
KubeJS integration
Roomgen does not keep a separate room registry. It reads whatever your pack already has in kubejs/config/sectors/. Add or remove rooms in KubeJS — the mod picks them up on reload. No extra registration step.
Roomgen only writes room_classes.json (auto NBT scan for rarity tiers). Optional room_class_overrides.json for hand-tuned classes. Advanced packs can override the bridge at kubejs/roomgen_bridge.js.
Rarity classes
When enabled in config, rooms are weighted by class:
- Liminal — plain wallpaper corridors (most common)
- Standard — normal themed rooms
- Large — big open layouts (uncommon)
- Unique — rich setpieces (rare; once-per-dimension when enabled)
- Loot — containers and spawners (rarest) Run
/roomgen classifyto rescan layouts, orclassify fullfor a full rebuild.
Commands
/roomgen hud on/off— toggle performance overlay/roomgen status— queue and health (ops / console)/roomgen whereami— grid node, sector, room, and class/roomgen findroom [type]— locate nearest special room (dev / testing)/roomgen failures— recent placement errors/roomgen rooms— placed-room counts by class (op)/roomgen classify [full]— rescan room classes (op)
Config
config/liminal_roomgen-server.toml
[placement]— enable, expansion radius, graph expansion, spawn bootstrap[performance]— tick budget, queue cap, relight deferral[rarity]— class weights, dedup spacing, once-only rules for rare rooms[debug]— verbose logging
For pack authors
Optional [rarity] knobs for modding and tuning (not needed for normal play): procedural vast rooms (vastRoomChance, extra vertical slices), class overrides in room_class_overrides.json, and custom pick hooks via kubejs/roomgen_bridge.js.
Compatibility
Works with Liminal Industries (base), Rescripted, and LI forks that keep the standard room-node + sector JSON setup. Rescripted is the primary dev target; the mod is not locked to one fork.
Needs KubeJS startup handlers (tick_layered_node, tick_spawn_node) and sector config under kubejs/config/sectors/. If a pack removes KubeJS generation entirely, Roomgen stays idle.
Requirements
- Minecraft 1.20.1, Forge 47+
- KubeJS 2001.6.5+
- A Liminal Industries–style backrooms pack (base, Rescripted, or compatible fork)
More from this project
Part of an ongoing Liminal Industries tooling line. Liminal Relooted adds loot vignettes and void nest danger on the same pipeline. Check out my future work on CurseForge for more plug-and-play LI mods — drop the jar in, remove it cleanly, no manual script surgery. *
常见问题
Liminal Roomgen 支持哪些 Minecraft 版本?
Liminal Roomgen 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。
Liminal Roomgen 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
SdataG 的其他作品
查看全部 →TFC/Create Chain Compat
一个轻量级桥接模组,让 TerraFirmaCraft 金属链与 Create 的链式传送系统互通,支持不同等级的延伸范围、金属材质、染色传送带,以及完整的传送功能。
SunWell
可合成的动态阳光井灯笼能在地下投射真实的天空光照。作物、动态树木、雨、雪和雷暴!可为整合包将任意方块标记为生长灯或完整阳光井。
FancyMenu APNG Loop Fix
Client-side fix for FancyMenu play-once APNG replay + synchronized hover tear/regen.
评论
登录后评论和评分