Weapon Library (in-game roster)

Model gallery

Click through each modeled weapon to inspect its model, texture, and baked orientation — no need to launch the game. Source: Local serves the uncommitted working tree (baked/retextured edits under review); Published serves the last R2 model — toggle to compare before/after. (Dev only: run npm run dev in spec/; the /local middleware reads the repo's assets/.)

This page is the curated list of weapons that actually exist in the running game — the 3D models a player can equip and see. It is intentionally not the full weapon catalog: the 360 WeaponData rows (stats, names, drops) are data, and the complete model/variant browser lives in the web storybook. The gallery above is the source of truth; the tables below annotate it.

Naming convention

The ein- weapons are named after their weapon category (ein-saber, ein-spear, ein-claw, …), not arbitrary flavor names. PSZ historically had no unified weapon-naming convention; this enforces one for the ein set. Where a category has more than one ein model, the second keeps a distinct name (e.g. ein-cutter alongside ein-slicer; ein-rocket alongside ein-bazooka).

Roster

Per weapon type: the PSO base model (shared across many WeaponData rows) and the unique ein- model(s). Content-identical dupes have been collapsed — the old basic/Claw.glb was a copy of the ein claw, and basic/Launcher.glb a copy of the ein rocket, so they fold into the ein entries.

TypePSO modelEin model(s)
SaberSaberEin Saber
SwordSword
DaggerDaggerEin Dagger
Claw(dupe of ein — removed)Ein Claw
Double SaberEin D-Saber
SpearSpear (partisan)Ein Spear
SlicerSlicerEin Slicer, Ein Cutter
Gun BladeEin Mazurka
HandgunHandgunEin Pistol
MechgunMechgun
RifleRifleEin Rifle
Bazooka(dupe of ein — removed)Ein Bazooka, Ein Rocket
Laser CannonEin Cannon
RodRod
WandWandEin Wand

Gaps with no ein model yet: Sword, Mechgun, Rod (and the PSO Double Saber / Bazooka were dupes, so those categories are ein-only).

Textures — the issue is Godot import, not the models

Every weapon .glb carries its texture — the three.js gallery above renders them all correctly. So in-game bare-grey weapons are a Godot import/material bug, not a missing asset. Two distinct cases:

Orientation & scale (baked into the model)

PSO models are authored ~90° off from the ein convention and at raw scale; the runtime compensated per-weapon-type via WEAPON_HOLD rotation + glb_scale ≈ 0.09. Those are being baked into the models (rotation into the skeleton root, scale via import) so the runtime needs no rotate/scale and one identity hold serves every weapon. Review via the gallery's Local vs Published toggle.

Verification