Tidying pass on the KubeJS suite before plot system V1 lands. Sets up
the file structure + conventions + diagnostics so the larger plot
system has a clean foundation.
Changes:
1. NEW kubejs/README.md
File layout doc + conventions: logging prefix [bns/<module>],
persistent-data key naming (bns* prefix), one concern per file,
performance discipline (O(1) lookups, no polling).
2. Split economy_policy.js -> recipes_waystones.js + recipes_numismatics.js
Single-concern files. recipes_waystones removes ALL waystones
crafting (welcome.js distributes the only allowed waystone instead).
recipes_numismatics removes the 5 coin-denomination crafts.
3. NEW kubejs/server_scripts/bns_admin.js
/bns admin subcommands for OP diagnostics:
- info calling player's flags+counts
- waystone-count <player> read stored count
- waystone-set <player> <n> override stored count
- reset-welcome <player> clear bnsWelcomeGranted -- replays
the welcome grant on next login
Registered via ServerEvents.commandRegistry with Brigadier tree,
permission level 2 (OP). No performance cost (operator-triggered only).
4. Logging added to waystones_policy.js + welcome.js
Every action prints `[bns/<module>] ...` so server logs can be
filtered with `journalctl ... | grep '\[bns/'`.
Performance discipline applied:
- All event-handler lookups use Set.has (O(1)), not Array.includes
- No periodic tick polling anywhere
- No network calls in event handlers
- console.info is cheap (no string format unless logged)
Bumps to 0.20.0. Plot system V1 follows in v0.21.x as a separate
multi-file submodule under server_scripts/plots/.
Resource Pack Overrides config field names extracted directly from the
mod's class files (default_packs + default_overrides confirmed via grep
on the .class strings). Config ships through defaultconfigs/ so it
seeds the player's local config on first run and respects later edits.
The 'default_position: TOP' override puts the ReCreated pack at the top
of the enabled-packs list so it takes precedence over the vanilla
ComputerCraft textures.
If the filename or schema turns out to be off when tested, it's a
one-line follow-up to fix.
Two design changes:
1) Every electronic CC item now requires tfmg:plastic_sheet. Plastic is
the electrical insulator and gates ALL CC tech behind TFMG's full
oil chain (crude oil -> naphtha -> distillation -> molten plastic
-> sheet). Even cable -- you can't lay wires without insulation.
2) Advanced items now embed their Basic counterpart in the recipe:
- computer_advanced contains computer_normal
- monitor_advanced contains monitor_normal
- wireless_modem_advanced contains wireless_modem_normal
- pocket_computer_advanced contains pocket_computer_normal
- turtle_advanced contains computer_advanced (which contains
computer_normal -- chained upgrade)
This makes the progression literal -- you can't skip Basic to make
Advanced. You upgrade through, paying both costs.
Other tweaks:
- Replaced create:railway_casing with create:industrial_iron_block in
the Advanced Computer recipe. Railway casing is thematically tied to
trains, not computing -- creates a weird "build trains to make a
computer" dependency. industrial_iron_block fits the server-rack
aesthetic and is a more general Create tier-3 material.
- Added plastic to disk_drive, wired_modem, printer, redstone_relay,
speaker (recipes that previously skipped it).
Bumps to 0.19.3.
Expands the v0.19.0 recipe set from 10 to 19 items and builds a deliberate
5-tier progression using richer Create + TFMG materials.
Newly overhauled items:
T1 - cable (8-output, copper_wire-heavy so bulk-laying is viable)
T3 - redstone_relay
T3 - turtle_normal
T4 - turtle_advanced
T5 - pocket_computer_normal, _advanced, _colour
Misc - wired_modem_full (block form, derived from wired_modem)
Existing items reworked with better thematic materials:
computer_normal/advanced -> now uses create:brass_casing / railway_casing
as the chassis instead of bare plastic
monitor_normal/advanced -> nixie_tube for the retro CRT, display_link
for the advanced data-binding monitor
wireless_modem_normal -> tfmg:electromagnetic_coil is the antenna,
copper_wire + aluminum_wire signal lines
wireless_modem_advanced -> constantan_spool + large_coil for high-Q
tuning -- properly end-game wireless
disk_drive -> create:cogwheel for the spinning read head
speaker / printer -> copper_sheet / cogwheel for thematic flair
Wire usage is the through-line: copper_wire in T1-T2 (cheap, used in
quantity), aluminum_wire in T3 mid-tier signal lines, constantan_wire
+ constantan_spool in T4 for high-frequency wireless. TFMG's electrical
production now genuinely gates CC progression.
Bumps pack to 0.19.1 (point release — same mod set, expanded scripts).
Mods (5 additions):
- Easy NPC 6.16.1 (3 jars: bundle + core + config_ui). Lightweight,
config-UI-driven NPC mod -- 817k downloads, NOT the heavyweight
Custom NPCs by Noppes which has no 1.21.1 NeoForge port. Players
will interact with NPCs at spawn (Plot Office land clerk + future
shop NPCs) via right-click -> dialogue.
- CC: Tweaked 1.119.0. ComputerCraft tier added for technical displays,
server stats, and player-built automation. Future plot-system V2
could use CC monitors as the central kiosk with touch buttons; V1
uses NPC + signs.
- Computer Craft: ReCreated v1.2 (resource pack, client-only). Styles
CC's computers + monitors with a brass/wooden Create aesthetic so
they don't look out of place in the pack.
KubeJS scripts:
- cc_recipes.js: Overhauls 10 CC crafting recipes to require Create
(electron_tube, precision_mechanism, rose_quartz) + TFMG (plastic
sheet, steel ingot, silicon ingot). Gates the tech tier behind
Create+industrial progression. Recipes for cables, peripheral
blocks, turtles, etc. left at default -- can iterate later.
Plot system V1 deferred to v0.20.0 -- needs its own focused effort
because of the FTB Chunks claim-transfer integration + Numismatics
inventory coin handling. Memory plan already covers the design.
The 0.18.0 economy_policy.js named 'numismatics:sundial' which doesn't
exist -- the real registry IDs are spur, bevel, cog, crown, sun. The
KubeJS warning surfaced this at startup:
Failed to read ingredient from numismatics:sundial:
Item with ID numismatics:sundial does not exist!
Updates both economy_policy.js (recipe removal) and jei_hides.js (JEI
hide) to use the correct 5-denomination list. Bumps to 0.18.1.
Adds the currency layer and the first-join experience.
Mods:
- Create: Numismatics 1.0.20 (currency, vendor blocks, piggy banks)
- Patchouli 1.21.1-93 (kept in pack for future rich manual book)
KubeJS scripts (server_scripts/):
- economy_policy.js remove ALL Waystones recipes; remove coin recipes
only (piggy banks etc. stay craftable for now)
- welcome.js first-login grant: 1 waystone + vanilla written-book
"Brass & Sigil Manual v1" (5 pages: welcome,
waystones, money, spawn plots, rules). Per-player
flag bnsWelcomeGranted in persistentData gates it.
KubeJS scripts (client_scripts/):
- jei_hides.js hide all Waystones items + 4 coin denominations from
the JEI ingredient list. Combined with the recipe
removal players never encounter these items via
normal play -- only via the welcome grant or the
bank exchange.
The written-book manual is the MVP placeholder. When more content lands
(plot system, dynamic exchange, etc.) it'll be replaced by a proper
Patchouli book authored as a tweak jar -- Patchouli's already in the
lockfile so no mod-add will be needed at that point.
Adds pack/overrides/kubejs/server_scripts/waystones_policy.js which:
- Caps regular waystones at 1 per player. Per-player count is stored in
player.persistentData and decremented on break (works correctly because
restrictedWaystones = ["PLAYER"] means only owners can break).
- Bans all 16 sharestone variants. They defeat the "build transport"
intent (solo pair-teleport) and can be placed just outside a claim
for stealth proximity access.
- Bans all 16 portstone variants pending separate design review.
- Leaves warp plates and warp scrolls untouched.
Bumps to 0.17.0 so launcher re-syncs.
The previous rule 'pack/overrides/' ignored the whole directory, which
made it impossible to re-include subpaths via ! exception (git's rule).
Narrow the ignore to 'pack/overrides/mods/' -- the only path that
Build-Tweaks.ps1 actually writes -- and drop the broken whitelist
block. Other subdirs under pack/overrides/ (defaultconfigs/, etc.) now
live in git like normal source.
Adds the Waystones override that 0.16.1 attempted (spawnInVillages =
DISABLED). Bumps to 0.16.3 so launcher caches re-sync.