Skip to content

Repository files navigation

DesignRNG

An authoring tool for Gun RNG content packs, built around the runtime's generative model: guns are never authored one-by-one — they're rolled at runtime from reusable pools. DesignRNG edits those pools:

  • Library — the landing tab: reusable gun bases (chassis + snap points) and gun parts (geometry + stats + slot/style/group) as cards with live 3D snapshots, grouped by style.
  • Modeller — a Blender/Blockbench-style cuboid CAD editor: transform gizmos (legal-angle rotation), face-resize handles, numeric inspector, cuboid CRUD, snapshot undo, and a snap-point editor (where each part type docks on a base, with a docking-preview ghost).
  • Roll — sanity-check the pools: generate sample guns exactly the way the runtime rolls them (composed model + resolved stats via the Python sidecar).

Snap points/locations are the authored source of truth; the sidecar derives the runtime's anchor_points/anchor_offset from them on save/export. Part types, styles, ammo, elements, effects, and fire modes are authorable; gun types, part groups, and rarity data can be imported from an existing schema-v3 pack while their native editor slices remain out of scope.

DesignRNG is the successor to gunModeller and the canonical modelling/authoring program. It currently emits compatible schema-v3 packs through a JSON-RPC Python bridge that reuses legacy gunModeller code; that dependency is transitional. DesignRNG owns schema v4 and its native model, validation, migration/report, fixtures, project assets, and export contract (ADR 0007).

Transition safety: that authority is not operational yet. Current export is an import-backed schema-v3 compatibility path; project-file v2 is not self-contained. PLAN P4.D0 now binds every project operation to the imported project/source identity and publishes only into a fresh target or an identity-valid DesignRNG-owned target after explicit confirmation. Cold, stale, source-modified, unmarked, or tampered destinations refuse before publication. P4.D1-D6 still have to remove the legacy dependency and make native projects/assets self-contained.

ADR 0008 makes identifier identity and final schema-v3 spelling DesignRNG-owned today: project-v2 preserves bare/gunrng:/armsng: author spellings, while the staged pack writes declared local content and asset refs canonically as gunrng: before hashing.

Start here

  • docs/CONTEXT.md — domain glossary (inherits gunModeller/Gun RNG terms).
  • docs/adr/ — locked decisions:
    • 0001 — reuse the Gun RNG wire contract.
    • 0002superseded by 0005.
    • 0003 — tech stack (Electron + R3F + Python export sidecar).
    • 0005the generative pivot: no first-class guns; reusable bases/parts + snap points; the modeller replaces the aggregate studio.
    • 0007 — DesignRNG owns authoring and schema v4; gunModeller is a legacy-v3 bridge only.
    • 0008 — DesignRNG owns local alias identity and field-aware canonical schema-v3 staging.
  • docs/research/ — source-backed research (stack, 3D editor patterns, drei API notes).

Related repos (local)

  • gunModeller../gunModeller (legacy schema-v3 regression source; temporary bridge).
  • Gun RNG../../mods/Gun RNG (the Minecraft Forge runtime + docs/COMPATIBILITY_CONTRACT.md).

About

Desktop authoring tool for procedurally-generated weapon content packs — Electron + React Three Fiber, with a Python export sidecar and a versioned pack schema.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages