The original handoff doc described an empty M0 scaffold with placeholder
screens to "discuss tomorrow". 0.3.1 actually ships the full UI plus
villager trade rebalance, so the doc now is a testing guide for the
working features rather than a discussion-points list.
Includes the architecture diagram for how Java + KubeJS interact, the
key bindings table, a step-by-step testing path, and a known-gaps list
for future iteration.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The previous commit deleted 0.1.1 from the gitignored mods dir but
git swallowed the add for 0.3.1 because pack/overrides/mods is
ignored. Re-adding with -f.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
bnstoolkit jumps from M0 (empty scaffold) straight to feature complete:
UI screens (all FTB Library widgets, opens via keybinds):
K Civic tier ladder + upgrade
J Bounty board (accept/cancel/turn-in)
N Plot office (buy/release)
H Bazaar sell shop (1/16/64 quick-sell)
M Quest log (status overview)
HUD: top-left tier + spurs balance overlay, refreshed 1Hz server-side.
Villager trade rebalance (NEW): the mod now hooks VillagerTradesEvent
+ WandererTradesEvent and swaps every emerald cost/result for the
Numismatics equivalent (1..7 emeralds -> spurs, 8..63 -> bevels, 64+
-> cogs). This was the blocked Modrinth dep — the third-party mod
options either required a NeoForge bump (numismatics-villager-currency
1.1.0 wants 21.1.230+, we're on 21.1.228) or hand-written JSON for
every trade (data-trades). The in-tree wrapper is cleaner.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Surfaces the server-needs-Start state and the fix details up top so
when matt wakes up he doesn't have to scroll past the M1+ planning
to find out the box is down.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
0.1.0 brought the dedicated server down during construct-mods because
the @Mod constructor called NeoForge.EVENT_BUS.register(this) without
any @SubscribeEvent methods on the class — which NeoForge 21.1 treats
as a fatal IllegalArgumentException.
Caught only after live-deploy (gradle build doesn't simulate the
construct-mods step). 0.1.1 removes the bogus register call. The
@SubscribeEvent listeners will come back in M1 alongside the first
real event handler.
Server has been brought down by the crash and is waiting for a manual
start via the web admin panel. The fixed jar is staged in
/srv/fast/brass-sigil-server/server/mods/ already.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Ships the empty bnstoolkit companion mod (0.1.0) into the pack. The mod
loads cleanly on client and server with zero visible surface — it just
proves the deploy pipeline end-to-end so M1-M4 only have to add code,
not figure out tooling.
Per-milestone scope locked in docs/bnstoolkit-discussion-points-2026-06-07.md.
Source: http://10.16.5.102:3000/minecraft/bnstoolkit
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Tomorrow-evening testing guide for the command-driven economy
shipped in PR #67. Covers: what works, how to test each system,
quick reference of every /bns command, what's deferred and why,
recovery steps if anything bricks.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Foundation economy stack — fully command-driven, ready for the custom
UI mod to layer on top later. Built tonight as a single feature batch.
KubeJS scripts:
pack/overrides/kubejs/server_scripts/economy/
00_tier_system.js — 13-tier ladder + admin commands
02_sell_shop.js — /bns sell, 9 items, DR + tier-fee
03_bounty_engine.js — /bns bounty, 20 bounties, state machine
04_player_commands.js — /bns help, /bns me, /bns tier upgrade
plots.js: updated to support multi-plot ownership based on tier slots
- plotsOwnedBy() returns list, slot cap from TIER_PLOT_SLOTS table
- /bns plot release now requires plot id (multiple plots possible)
- /bns plot mine added
FTB Ranks server config:
pack/overrides/world/serverconfig/ftbranks/ranks.snbt
13 ranks with ftbchunks.max_claimed_chunks scaling per tier:
Peasant 9 -> Sovereign 1500 (chunks)
Peasant 1 -> Sovereign 200 (force-loaded)
Name format colour codes match the design doc.
Player command surface (everything callable from chat or Telegram bridge):
/bns help full command listing
/bns me tier, balance, plots, bounties
/bns tier upgrade pay spurs, advance to next tier
/bns plot list|info|buy|release|mine
/bns sell list|<item> [count]
/bns bounty list|active|accept|cancel|turnin|completed
/bns admin tier get|set|list (op level 2)
/bns admin info|waystone-*|reset-welcome (pre-existing)
Tier upgrade flow:
1. Player runs /bns tier upgrade
2. KubeJS takes spurs from inventory
3. KubeJS sets player.persistentData.bnsTier += 1
4. KubeJS runs `ftbranks add <player> <rank>` so FTB Ranks applies
the permission nodes (chunk allowance auto-flips)
Cross-file scope: KubeJS 2101 runs all server_scripts in shared Rhino
global scope. Constants (TIER_CONFIG, COIN_VALUES, bnsTier object,
shared functions like giveCoins/countCoins/takeCoins) are declared
once in their owning file and referenced from siblings. Don't redeclare.
Blocked tonight (deferred):
- Villager trade rebalance: KubeJS 2101.7.2 doesn't ship a
villagerTrades event. ServerEvents only exposes command/loaded/
recipes/registry/tags/tick/unloaded. Verified by grepping the
KubeJS jar's ServerEvents class. No KubeJS-villager-trade addon
on Modrinth for NeoForge 1.21.1. Either build into the custom
mod or add a third-party trade-overrides mod (research pending).
- Custom mod UI screens: no Java toolchain on host, and these
need visual iteration with the user anyway.
Verified live: server boots clean, all 4 economy scripts log loaded,
port 25565 binds, no EcmaError or EvaluatorException in KubeJS log.
FTB Ranks reload via rcon confirms "Ranks reloaded from disk!"
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
KubeJS module that owns the 13-tier civic ladder per economy doc §4a.
Authoritative source for TIER_CONFIG (per-tier perks: cost, wilderness
chunks, plot slots, daily bounty slots, shop fee discount, chat
colour, join broadcast).
Player tier stored as int in player.persistentData.bnsTier; default
1 (Peasant), set on first login.
Admin commands (op level 2):
/bns admin tier get <player>
/bns admin tier set <player> <1-13>
/bns admin tier list
Module-local pattern (KubeJS Rhino runs scripts in strict mode -- no
globalThis, no bare-assignment globals). Other economy scripts will
duplicate TIER_CONFIG and use player.persistentData.bnsTier directly
to read tier rather than trying to import. See feedback-kubejs-rhino-
gotchas memory.
FTB Ranks will mirror this once the bnstoolkit mod ships -- ranks
will carry the FTB Chunks permission nodes. For now the NBT is the
single source of truth and admin promotes manually with /bns admin
tier set.
Verified: server boots clean, KubeJS loads with 0 errors. First-join
hook initialises new players to tier 1.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Mods added (Phase 0a substrate for the bnstoolkit economy work):
- FTB Quests 2101.1.25 (progression quest UI for Phase 5+)
- FTB XMod Compat 21.1.8 (KubeJS hooks for FTB Chunks/Quests events)
- FTB Ranks 2101.1.3 (tier system via permission nodes)
Design revision: restrictive travel.
This is a Create Aeronautics pack — the journey is the point. Removed
all instant-teleport perks from the tier ladder. Players get one
starter Waystone and use it for spawn↔base; further travel means
building airships, trains, vehicles. Pressure on real movement is
intentional.
Removed perks: sethomes, /back after death.
Removed system: the full sethome subsystem (commands, SavedData,
cooldowns) from the bnstoolkit mod scope.
Tier table reduced from 10 columns to 8: cost, wilderness chunks,
plot slots, daily bounties, shop fee, chat colour, join broadcast.
Mod phasing collapsed from 7 phases to 6 (M2 sethome system removed,
later phases shift up).
Future perk dimensions list updated with two waystone-related
candidates (slot cap, XP cost reduction) as the natural travel-
progression hooks for later tier-perk revisions.
Verified live: all 3 mods discovered + loaded, port 25565 binds,
no FATAL/Crashed/Exception lines in startup log. Server resumed
to 0.32.0 cleanly.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
New companion-mod design doc covering:
Architecture
- Purpose & scope (what's in the mod vs what stays in KubeJS)
- High-level diagram showing client/server/KubeJS/FTB-stack roles
- Full Java package layout under uk.sijbers.bnstoolkit
- Six GUI screens specified individually with layouts + network calls
(Quest Log, Bounty Board, Tier Upgrade, Plot Purchase, Shop Browser,
Quest Progress HUD)
- Three mixin targets into FTB Chunks' ChunkScreenPanel (drawBackground,
ChunkButton.addMouseOverText, ChunkButton.onClicked) -- no FTB fork
- Network packet contract (7 S2C + 5 C2S packets, versioned)
- Data persistence model (SavedData for plots + sethomes, in-memory
for death locations, KubeJS for quest state)
- Two config files documented (tiers.json + plots.json) with example
JSON5 schemas
- KubeJS integration surface (8 /bnstoolkit_internal commands)
- Build & release setup (separate Gitea repo, standard NeoForge
ModDevGradle, semver)
- 6 mod implementation phases (M0-M6), each independently shippable
Detailed perk specifications
- Wilderness chunks: FTB Ranks permission node, native FTB Chunks
enforcement, no mod-side work
- Plot slots: SavedData-backed ownership tracking, 50% refund on
release
- Sethomes: full sethome system built in bnstoolkit (no other sethome
mod exists in pack). Per-tier cap, 30s cooldown, /sethome /home
/delhome /listhomes commands
- Daily bounty slots: enforced in KubeJS engine, UI greys Accept when
at cap
- Shop fee discount: base 25% Bazaar fee reduced by tier discount.
Only applies to NPC Bazaar shop, not player-to-player Numismatics.
Worked example showing -25% Sovereign = 0% fee = full 10 spurs/diamond
- Chat colour: full colour ladder per tier (grey to rainbow at
Sovereign with character-by-character cycling)
- Join broadcast: 6 levels documented (none, simple, fancy, epic,
epic+particles, epic+spectacular) with example ASCII
- /back after death: in-memory storage, 60s cooldown, dimension-aware
- Future perk dimensions: 7 candidates the schema supports without
code changes (particle trails, custom join sounds, custom title
prefix, priority bounty access, tier-gated vendors, daily login
bonus, keep-inventory chance)
Six open implementation questions flagged for resolution during
build, none blocking.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Tier ladder extended from 8 -> 13 tiers, with cleaner historical
progression. Replaces the previous Peasant/Citizen/Patron/Notable/
Baron/Noble/Lord/Sovereign ladder which mixed commoner-economic terms
with noble terms.
New 13-tier ladder (Civic + British peerage):
1 Peasant free
2 Farmer 200
3 Citizen 750
4 Merchant 2,500
5 Knight 6,500 (gentry threshold)
6 Baron 15,000 (lowest noble)
7 Viscount 35,000
8 Earl 75,000
9 Marquess 150,000
10 Duke 300,000
11 Archduke 700,000
12 Grand Duke 1,500,000
13 Sovereign 10,000,000 (apex, "finished the game")
Rationale:
- Yeoman -> Farmer, Burgher -> Merchant: both replaced with
recognizable terms while keeping the period feel.
- Earl kept as the British equivalent of Count (Viscount sits below
Earl correctly because Viscount = vice-count).
- Top tier extended above Duke with Archduke -> Grand Duke ->
Sovereign. Avoids singular-feeling Emperor/King/Prince titles.
- Sovereign at 10M is intentionally extreme -- months of dedicated
play to reach, properly mythical.
Full perk table updated to spread cleanly across 13 tiers:
- Plot slots: 0/0/1/1/2/2/3/3/4/5/6/7/10
- Sethomes: 1/1/2/3/4/5/6/8/10/12/16/20/unlimited
- Daily bounties: 3/3/3/4/4/5/5/6/6/7/7/8/10
- Shop fee: 0% down to -25% at Sovereign
- Chat colours: grey -> white -> yellow -> green -> cyan -> blue
-> purple -> gold -> orange -> red -> bright red -> rainbow
Knight (tier 5) is the gentry threshold -- the first meaningful
"I'm somebody" upgrade with colored chat, join broadcast, and /back.
Founder cosmetic flag added for matt (server owner). Permanent chat
prefix [Founder] alongside the normal rank. No gameplay perks; just
identification. Founder still grinds the regular ladder.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Architectural revisions:
- UI approach: custom companion mod (working name 'bnstoolkit') built
on FTB Library's UI framework. Polished GUI screens for Quest Log,
Bounty Board, Tier upgrade, Shop browser, Plot purchase. Quest
progress as a custom HUD render layer (no stacked vanilla bossbars).
All player interaction through GUI + NPC dialogue, no chat commands
to memorise. FTB Library UI chosen for visual consistency with the
rest of the FTB stack already in the pack.
- Tier ladder locked: 8 tiers, Civic theme, starting at Peasant.
Peasant -> Citizen -> Patron -> Notable -> Baron -> Noble -> Lord
-> Sovereign. Replaced Burgess with Baron; reordered ascending.
- Tier perks: full table with chunks claimable, spawn plot slots,
sethome count, daily bounty slots, shop fee, chat colour, join
broadcast tier, /back access. JSON-configured at
config/bnstoolkit/tiers.json, hot-reloadable. Easy to tune any
column without code changes.
- Spawn plots clarified as distinct from wilderness chunk claims:
predefined regions at spawn, purchased individually for spurs,
primary use is shops, slot-limited by tier. Purchase happens
inside the FTB Chunks map UI via custom mod mixin. Plot data
lives in the custom mod, not in FTB Chunks.
- Wilderness chunk claims: tier-allocated, free within allowance,
refused above. NO per-chunk pricing (dropped from v0.2). Powered
by FTB Ranks -> FTB Chunks permission nodes.
- Phasing updated to add Phase 0c (mod scaffolding) and reorder
Phases 1-7 to fit the mod-supplied UI work.
- Implementation notes: KubeJS script layout, custom mod package
layout, state data locations, config file locations all
documented.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Final architecture for the economy + quest system. No more V1/V2/V3
iteration cycles. Resolved against actual mod source code and verified
APIs via research spike.
Key decisions locked:
- Bounty UI: custom (bossbar + /quests commands + Easy NPC dialog).
NOT FTB Quests -- it lacks per-player visibility, has no abandon
event, and cooldown is per-team. Confirmed via FTBQ source review.
- Progression UI: FTB Quests (right tool for long-form content where
per-team cooldowns and one-shot rewards are fine).
- Numismatics: direct Java.loadClass access (no events shipped, no
KubeJS bindings). Documented exact API surface and call patterns.
- FTB Chunks claim cost: FTBChunksEvents.before('claim') with
event.setResult() to refuse. Requires adding FTB XMod Compat.
- Tier system: FTB Ranks (CurseForge only) + permission-driven chunk
limits + KubeJS-mediated upgrades via runCommandSilent('ftbranks add').
- Per-player HUD: bossbars, not scoreboards. Vanilla scoreboards are
global; bossbars natively per-player.
- Custom mod for V1: NOT NEEDED. Re-evaluate if blocked.
Mods to add in Phase 0a (one PR before any implementation):
- FTB Quests 2101.1.25
- FTB XMod Compat (latest)
- FTB Ranks 2101.1.3
Phasing updated: Phase 0a (mod additions) blocks the rest. Phase 0b
(spawn build) is non-blocking and user-paced; all systems can be
built and verified before spawn exists.
KubeJS file layout documented for clean implementation:
pack/overrides/kubejs/server_scripts/economy/{01..99}_*.js
11 open decisions resolved. 3 remain non-blocking.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Three-layer visibility plan:
V1 (Phase 3): /quests, /quests info, /quests cancel commands.
Mobile-friendly via the bridge, no extra mods.
V2 (Phase 3.5): Quest Log book item with dynamic pages.
V3 (later): optional sidebar HUD via vanilla scoreboards.
3-slot active-quest cap so cancellation is a real choice:
- Prevents accept-all-then-cancel-easy-ones RNG shopping
- Keeps state files small
- READY frees the slot so turn-in backlogs are workable
State storage schema documented (active + completed/cooldown).
Phase 3.5 added to the roadmap for the book item.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Full design for the unified spawn economy:
- Seven themed guild buildings (Adventurer's, Merchant's, Civic,
Library, Tavern, Foundry, Mint)
- Universal accept → complete → return quest pattern
- Villagers moved fully to spurs with rebalance principles +
initial price guidance
- Money flow architecture (bounded inflows, scaling sinks)
- Phasing plan (8 phases, each independently shippable)
- Mod stack confirmed (we have everything we need for V1)
- Risk register + open decisions to make before implementation
Status: design, not yet implemented. Phase 0 (spawn skeleton)
is the next concrete deliverable.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Stop hacking around the problem -- use the standard cross-recipe-
viewer hide convention that both NeoForge and JEI define.
Source-level confirmation:
mezz/JustEnoughItems @ 1.21.1
CommonApi/.../api/constants/Tags.java
HIDDEN_FROM_RECIPE_VIEWERS = c:hidden_from_recipe_viewers
Library/.../ingredients/IngredientVisibility.java
isIngredientVisible() calls
ingredientHelper.isHiddenFromRecipeViewersByTags(typedIngredient)
-> any item carrying this tag is hidden from JEI.
neoforged/NeoForge @ 1.21.x
common/Tags.java
Tags.Items.HIDDEN_FROM_RECIPE_VIEWERS = c:hidden_from_recipe_viewers
-> same tag, NeoForge agrees with JEI.
EMI / REI also respect this tag (common convention).
So the proper modpack-shippable fix is a single datapack file:
pack/overrides/world/datapacks/bns-fuel/data/c/tags/item/
hidden_from_recipe_viewers.json
{
"replace": false,
"values": [
"alexsmobs:shattered_dimensional_carver",
"alexsmobs:transmutation_table"
]
}
No mod, no KubeJS, no CraftTweaker, no Item Obliterator JEI integration
(which doesn't exist for 1.21.1 NeoForge anyway). Just the tag the
recipe-viewer ecosystem agreed on years ago.
Item Obliterator + Necronomicon stay in the pack for what they actually
deliver on 1.21.1: inventory-pickup block + villager-trade removal +
right-click cancellation. The Capsid recipe override stays too as the
creation block.
The full disable stack now:
- Tag (this commit) -> Hidden from JEI / REI / EMI
- Datapack capsid recipe -> Can't be created in-world
- Item Obliterator -> Can't be picked up / right-clicked
if obtained via /give or creative
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
I removed this datapack override in v0.31.0 on the (incorrect)
assumption that Item Obliterator would also handle Alex's Mobs'
custom capsid_recipes recipe type. It doesn't -- Item Obliterator
intercepts vanilla and some common modded recipes, but the Capsid
uses its own SimpleJsonResourceReloadListener bound to the
"capsid_recipes" folder, and that listener still loaded the
default shipped recipe.
The visible bug: a player could put a regular Dimensional Carver
into a Capsid -- the recipe matched, the Dimensional Carver was
consumed, and the Capsid spat out a Shattered Dimensional Carver.
Item Obliterator then refused the pickup. Net result:
- Player loses their hard-earned regular Carver
- Player can never pick up the Shattered one
- World has an unrecoverable floating item entity
Restore the override at:
pack/overrides/world/datapacks/bns-fuel/data/alexsmobs/
capsid_recipes/shattered_dimensional_carver.json
This swaps the recipe's input from `alexsmobs:dimensional_carver` to
`minecraft:barrier`, which is unobtainable in survival. The recipe
loads cleanly but can never match. The Capsid transformation for
the Shattered Carver effectively no longer exists.
Item Obliterator still handles the JEI / creative tab / inventory /
trade removal -- both layers complement each other.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replace the v0.30.x ad-hoc disable mechanisms (KubeJS server script,
datapack recipe override, KubeJS client-side JEI hide -- which was
broken on this KubeJS build) with a single proper tool:
- **Item Obliterator 2.3.0** + dep **Necronomicon API 1.6.0**
Declarative JSON config to remove items from inventories,
creative tabs, all recipes (including modded custom recipe
types), villager trades, and JEI. Exactly the missing capability.
Config: pack/overrides/defaultconfigs/item_obliterator.json5
Blacklists:
alexsmobs:transmutation_table
alexsmobs:shattered_dimensional_carver
Removed (no longer needed):
- pack/overrides/kubejs/server_scripts/disable_alexsmobs_features.js
(Item Obliterator handles transmutation_table recipe removal
and right-click cancel automatically)
- pack/overrides/world/datapacks/bns-fuel/data/alexsmobs/
capsid_recipes/shattered_dimensional_carver.json
(Item Obliterator handles modded recipe removal too)
Both items now correctly:
- Don't appear in JEI search / item list
- Don't appear in creative tabs
- Have no working recipe path
- Can't be right-clicked / used
- Get scrubbed from inventories on join
The Void Worm boss + regular Dimensional Carver still work --
nothing else in Alex's Mobs is affected.
Verified live: both mods discovered, Necronomicon read our config
file successfully ("File exists, reading config"), Item Obliterator
loaded with the blacklist.
Note: config schema is v2; v1 configs get overwritten by the mod's
default. Always write configVersion: 2.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The hide_disabled_items.js client script I added in v0.30.3 used
`JEIEvents.hideItems(...)` -- a namespace that does NOT exist in
KubeJS 2101.7.2 on NeoForge 1.21.1. There is no kubejs-jei bridge
mod for 1.21.1 NeoForge published on Modrinth at this time.
Client launchers were showing:
KubeJS client script errors
hide_disabled_items.js#8
ReferenceError: \"JEIEvents\" is not defined.
Removing the script entirely. The Shattered Dimensional Carver
still:
- Cannot be produced (Capsid recipe override with barrier input)
- Does nothing on use (server-side right-click cancel)
Tradeoff: the item will still appear as a recipe-less entry in JEI
search if players type its name. Cosmetic only; no gameplay path
to obtain or use it.
If a JEI-hide approach becomes available in a future KubeJS update
or via a new bridge mod, we can revisit.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replaces v0.30.2's right-click intercept with two cleaner layers:
1. Datapack override of the Capsid recipe
pack/overrides/world/datapacks/bns-fuel/data/alexsmobs/
capsid_recipes/shattered_dimensional_carver.json
Changes the input from `alexsmobs:dimensional_carver` to
`minecraft:barrier`, which players cannot obtain in survival.
The recipe loads cleanly but never matches, so the item is
never produced through normal play.
2. Client-side KubeJS JEI hide
pack/overrides/kubejs/client_scripts/hide_disabled_items.js
Hides `alexsmobs:shattered_dimensional_carver` from JEI search
and the item list, so it doesn't appear as a recipe-less ghost.
The right-click intercept in server_scripts/disable_alexsmobs_features.js
stays in place as a safety net for /give cases. Transmutation Table
recipe removal also stays as-is.
Net effect: the Shattered Dimensional Carver effectively does not
exist on this server. Void Worm fight + regular Dimensional Carver
return-home item both stay intact.
Verified live: pack synced to 0.30.3, Alex's Mobs registered its
capsid_recipes datapack listener (which reads our override file).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
KubeJS server script that:
1. Removes the crafting recipe for alexsmobs:transmutation_table.
The Transmutation Table converts items freely with XP cost,
which competes with Ars Nouveau's depth and undermines the
Numismatics-based plot economy. No new tables can be made;
no existing tables exist on the world yet.
2. Cancels the right-click action on
alexsmobs:shattered_dimensional_carver. The item teleports the
user 1,000,000 blocks in a random direction -- breaks any
server-side world-boundary assumption, drops the player into
unloaded chunks far from the rest of the world. The item can
still be produced (the Capsid-shatters-Carver interaction is
a block reaction, not a recipe we can remove cleanly), but it
does nothing on use and sends an explanation to the player.
The Void Worm boss + regular Dimensional Carver (return-home
teleport) stay enabled. Players can still fight the boss and earn
the home-recall item, just not the world-bounding-breaking variant.
Verified live: KubeJS loaded script in 3ms, removed recipe at
recipe-event time, server bound to 25565.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Client launcher reported on startup:
Mod improved_village_placement requires lithostitched 1.4 or above
Currently, lithostitched is not installed
Cause: lithostitched was flagged side=server in pack.lock and the
live manifest, so the client launcher skipped it during sync. But
Improved Village Placement (added in v0.29.1) declares lithostitched
as a runtime dependency and IVP itself is side=both, so the client
loaded IVP and then failed the dep check.
Lithostitched is a worldgen library — many mods that use it need it
on both sides (client renders modded structures using its hooks).
Flipping to side=both is the safer default for any library mod.
The other server-side flagged entries (Yung's Better X, noisium,
async-locator, servercore) are genuinely server-only and stay as-is.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Adds the v0.30.0 combat-feel batch:
- Better Combat 2.3.2 -- directional attacks, multi-hit swings,
weapon-type animations. Data-driven attack profiles so Create,
CBC, Ars weapons all get appropriate swings automatically. No
new weapons or recipes -- pure mechanics overhaul. First-person
view fully supported as of 2.0.4.
- Combat Roll 2.0.6 -- dodge roll on double-tap with brief invuln
+ roll-related attributes/enchants. Same author and shares deps
with Better Combat, explicitly designed to work alongside.
- Alex's Mobs port 1.22.17 -- wide nature-themed mob variety
(~70+ creatures). Original mod stops at 1.20.1; this is the
community port for 1.21.1, 187k downloads, recently updated.
Deps added with the batch (all new to pack):
- Cloth Config 15.0.140 (BC + Combat Roll)
- playerAnimator 2.0.4 (BC + Combat Roll)
- Citadel port 2.7.6 (Alex's Mobs)
Verified live: 0.30.0 synced, all 6 jars discovered, BC registered
3007-byte weapon attribute table, Combat Roll loaded, Alex's Mobs
adding datapack listeners. KubeJS 0 errors, port 25565 binds.
The v0.31.0 batch (Twilight Forest + Aether) is parked for later --
holding until plot/economy work is running so players have reason
to leave spawn for those dimensions.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Adds Improved Village Placement 1.1.1 (Modrinth). Forces villages
to spawn on flat terrain instead of clipping into hillsides /
floating mid-air on slopes. Tiny mod (34KB). Required dep
Lithostitched is already in the pack at 1.7.2.
Verified live: mod loaded, server boots clean, port 25565 binds.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Without this entry, lava buckets get the vanilla bucket-burn fallback
of 20000 ticks each — which made lava more powerful than refined
TFMG kerosene/naphtha despite being free and trivially obtainable.
Setting lava to 8000 ticks matches crude_oil exactly: both are the
raw entry-tier fuels you can scoop without any infrastructure, and
the player has to commit to a refining setup to unlock the higher
tiers.
Solid fuels (coal, charcoal, blaze rods, etc.) continue to work via
realisticTrains' chest/barrel pathway -- no datapack entry needed.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>