Files
brass-and-sigil/pack/overrides/kubejs/server_scripts/supplementaries_bridges.js
T
Matt 9f0c9e262a pack: content + storage batch v0.24.0 -> v0.26.0
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>
2026-05-24 22:42:32 +00:00

47 lines
2.1 KiB
JavaScript

// Brass & Sigil -- Supplementaries cross-mod bridges
//
// Supplementaries already does tag work (c:crops/flax, c:fiber/flax,
// c:drinks/lumisene, etc.) and Create auto-generates Millstone +
// 9x packing recipes from those tags. So most integration is done.
//
// What's left -- two small bridges:
// 1. Flax -> String via Mechanical Press (Create doesn't map
// c:fiber -> string natively; this fills the gap so flax becomes
// a viable string-source for textile builds).
// 2. Plunderer drops 1-3 Numismatics spurs so the hostile NPC pulls
// into the server economy. Plunderers are rare so this is a
// mild bounty, not a farmable currency source.
//
// Lumisene -> Ars Source was on the list but Ars Nouveau 5.11.x's
// sourcelink recipe schema needs verification before we add it.
// Parked for a follow-up.
ServerEvents.recipes(event => {
// 2 flax pressed -> 1 string. Cheaper than wool->4 string but
// requires a Press (kinetic infrastructure) -- balanced.
//
// KubeJS's event.recipes.create.pressing(out, in) signature
// doesn't match Create 6.x's two-arg form, so build the recipe
// via custom() with the raw JSON schema.
event.custom({
type: 'create:pressing',
ingredients: [{ item: 'supplementaries:flax' }],
results: [{ id: 'minecraft:string', count: 2 }],
}).id('bns:press_flax_to_string');
console.info('[bns/supplementaries_bridges] added flax -> string press recipe');
});
// Plunderer is a hostile mob that raids unprotected chests. Adding
// a small spur bounty makes them a mini-event rather than a pure
// nuisance. Range tuned low: 1-3 spurs = trivial vs. the player
// economy but creates a "go hunt the plunderer" hook.
//
// KubeJS 2101.7.2 doesn't expose ServerEvents.entityLootTables on
// NeoForge -- we use EntityEvents.drops (filtered by entity id) and
// add items via event.addDrop instead.
EntityEvents.drops('supplementaries:plunderer', event => {
const count = 1 + Math.floor(Math.random() * 3);
event.addDrop(Item.of('numismatics:spur', count));
});
console.info('[bns/supplementaries_bridges] registered plunderer -> spur drops handler');