# bnstoolkit Companion mod for the Brass and Sigil modpack. NeoForge 1.21.1. Provides the in-game UI surface for the KubeJS-driven civic tier, bounty, plot, and shop systems. Pure client visuals + a thin C2S/S2C network bridge over the existing server-side state — no server-side gameplay logic lives here, just transport and presentation. ## Status M0 — scaffold only. Loads cleanly on client and dedicated server. No screens are open-able yet (key bindings register but their handlers are TODO). One network round-trip pair is wired as a smoke test. See `docs/bnstoolkit-architecture.md` in the brass-and-sigil repo for the full spec. ## Building ``` ./gradlew build ``` The output jar lands in `build/libs/bnstoolkit-.jar`. Drop it into the modpack's `pack/overrides/mods/` directory. ## Package layout ``` uk.sijbers.bnstoolkit ├── BnsToolkit # common mod entry ├── BnsToolkitClient # client mod entry ├── client │ ├── BnsKeyBindings # T / B / P defaults │ ├── hud │ │ └── SpurHud # spurs + tier overlay │ └── screens │ ├── BaseBnsScreen # shared parent (will swap to FTB Library) │ ├── TierUpgradeScreen │ ├── BountyBoardScreen │ ├── QuestLogScreen │ ├── PlotPurchaseScreen │ └── ShopBrowserScreen └── network ├── BnsNetwork # payload registrar ├── c2s │ └── RequestTierStatePacket └── s2c └── TierStateUpdatePacket ``` ## Milestones | Milestone | Scope | |---|---| | M0 (now) | Scaffold, keybinds, network smoke-test packet pair | | M1 | Tier upgrade screen + KubeJS bridge for tier/balance | | M2 | Quest log + shop browser screens | | M3 | Bounty board + plot purchase screens | | M4 | HUD overlay, mod settings screen, FTB Library swap |