Mods added (in lockfile):
v0.24.0 YUNG's structure mods (9):
- Better Dungeons, Better Mineshafts, Better Ocean
Monuments, Better Nether Fortresses, Better End Island,
Better Witch Huts, Better Desert Temples, Better Jungle
Temples, Bridges, Extras
v0.24.1 Create: Radars (Aeronautics-compatible from v0.4.5.1+)
v0.24.2 Ars Creo + Create Ars Compact (the latter removed in 0.25.0)
v0.24.3 FallingTree (whole-tree chop on axe hit)
v0.24.4 Copycats+, Create: Connected, Create: Interiors
v0.24.5 Create: Power Loader (Aeronautics-airship chunkloading)
v0.24.6 -- KubeJS bridges only (see below)
v0.24.7 -- Patchouli welcome book attempt 1 (kubejs/data) -- failed
v0.24.8 -- Patchouli attempt 2 (assets/data split) -- failed
v0.24.9 -- Patchouli attempt 3 (patchouli_books/ root path) -- worked
v0.25.0 REMOVED Create Ars Compact (broken sauce:source_fluid recipes,
no public tracker, half-finished compat layer);
added Create: Dragons Plus, Create: Enchantment Industry
v0.26.0 Sophisticated Core/Storage/Backpacks/Create-Integration,
Create: Additional Logistics
KubeJS additions:
- supplementaries_bridges.js: flax -> 2x string via Create Press,
Plunderer drops 1-3 spurs via EntityEvents.drops
- recipes_numismatics.js: renamed COIN_IDS -> COIN_RECIPE_REMOVE_IDS
to avoid Rhino global-scope collision with numismatics_tooltips.js,
added sprocket to the removal list (was missing)
- welcome.js: migrated from vanilla written_book (broken Filterable
codec in 1.21) to Patchouli book at patchouli_books/manual/
Patchouli manual:
- 5 entries (Welcome, Waystones, Money, Plots, Rules) under one
"Server Basics" category
- Lives at pack/overrides/patchouli_books/ (root path) -- this is
the modpack-author path per Patchouli docs, NOT data/+assets/
which is for mods bundled in jars
- Book id: patchouli:manual (default namespace in this mode)
All v0.24-v0.26 work has been live on the server and tested.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
User confirmed in-game tooltip values:
spur=1, bevel=8, sprocket=16, cog=64, crown=512, sun=4096.
Chain is non-uniform (x8, x2, x4, x8, x8). My earlier guesses
(uniform x8, assuming Sun=64 Cogs) gave consistent but wrong
intermediate values. Now sourced from the mod's own tooltip, not
triangulated.
Plot prices at 100/250/600 spurs now mean roughly:
100 spurs = 6 bevels + 4 spurs (1 sprocket + 5 bevels + 4 spurs)
250 spurs = 3 cogs + 3 bevels + 2 spurs
600 spurs = 9 cogs + 3 bevels (... still small change tier)
User-side: edit PLOT_DEFS in plots.js to set real prices once the
spawn marketplace and economy scale are decided.
Was: 5-denom x8 chain (spur=1, bevel=8, cog=64, crown=512, sun=4096).
Now: 6-denom x8 chain with sprocket inserted between bevel and cog.
Verified in-game (user reported Sun = 64 Cogs, which only fits these
values: spur=1, bevel=8, sprocket=64, cog=512, crown=4096, sun=32768).
Plot purchase math (countCoins, takeCoins, giveCoins) was using the
old 5-denom map: cog would have been counted as 64 spurs when it's
actually 512, and sprockets weren't counted at all. Plot prices remain
at 100/250/600 spurs which are still appropriate small-change amounts;
user can edit PLOT_DEFS to raise once playtesting confirms desired
economy scale.
Three corrections per user feedback:
1. Drop the conversion-crib lines -- Numismatics' built-in tooltip
already shows 'Value: N spurs' so our added lines were duplicate.
2. Include sprocket (numismatics:sprocket) -- the 6th denomination
I missed when first writing the script. Full set: spur, bevel,
sprocket, cog, crown, sun.
3. Keep only the actually-useful hint: 'Right-click a Bank Teller
block to convert denominations' -- the one piece of info that
isn't on the mod's own tooltip.
Decision punted (deliberately): no 8-spurs-shapeless-to-1-bevel
crafting recipes. The Bank Teller is the spawn-economy anchor;
crafting recipes would let players bypass the bank entirely. Players
who want local conversion can place their own Teller -- which is the
intended Numismatics design.
Numismatics' x8 uniform chain isn't intuitive. Mod values are
hardcoded so we cant fix the ratios, but we can put the conversion
table directly on each coins tooltip via KubeJS ItemEvents.tooltip.
Players hover any coin -> see how it relates to the others + a hint
to use Bank Teller for on-the-fly conversion.
~25 lines, ItemEvents.tooltip hot path is cached per item-id so no
performance concern.
Players with an existing options.txt (i.e. anyone who has launched MC
once) don't get the 'default_packs' applied -- RPO only treats those as
defaults for fresh installs.
Adding 'required: true' to the override entry on the assumption that
the field forces the pack to be enabled on every launch regardless of
player choice. Decompiled the jar for string constants and 'required'
appears alongside 'force_compatible' as a known key.
If the field name is wrong RPO will silently ignore it -- no harm, easy
iteration.
Two consecutive client_scripts errors traced to jei_hides.js:
1. Array-spread syntax not supported by Rhino (fixed in 0.21.1)
2. JEIEvents global is not defined in KubeJS 2101.7 -- the actual JEI
event API uses classes like JEIRemoveEntriesKubeEvent but the binding
name is something different we haven't identified yet.
Rather than ship more guesses, drop the script entirely. Functional
impact is minimal: recipes for waystones + coins are still removed
server-side (recipes_waystones.js, recipes_numismatics.js), so players
cannot craft these items even if they appear in JEI search. The only
loss is some JEI clutter.
When we identify the correct JEI hide API in KubeJS 2101.x, can add
back as kubejs/client_scripts/jei_hides.js with the right binding.
KubeJS uses Rhino as its JS engine, which doesn't support array-spread
syntax (`[...a, ...b]`). The line `[...WAYSTONE_ITEMS, ...COIN_ITEMS]
.forEach(...)` threw EvaluatorException: syntax error at jei_hides.js:46
on client launch, surfacing the KubeJS client script errors dialog.
Fix: use Array.prototype.concat() which is universal JS. Also extracted
the hide-quietly helper into a named function for readability.
/bns plot list|info|buy|release|reload. Single ~316-line file with
clear sections. Hardcoded PLOT_DEFS Map (3 example plots), ownership
state in server.persistentData.bnsPlots, best-effort Numismatics +
FTB Chunks integration (will be verified in playtest). See file
header for full design notes.
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.