Upload GLB models in the Custom Prop Builder, tag meshes as Threat / Steel / Structure, set behavior defaults, and share with your club.
The 3D editor ships with a baseline palette - walls, barrels, IDPA targets, steel, chairs, tables, movers. For anything beyond that (a specific car model, a custom barricade, a club logo prop, a themed stage piece), you can upload your own GLB model and use it just like the built-ins.
Custom 3D props are different from custom 2D props. The 2D editor uses SVG; the 3D editor uses GLB (Khronos glTF Binary). They share the same prop library UI but the underlying assets are separate.
Go to Custom Prop Builder from your account menu (or hit the "+" tile in the 3D palette's custom prop section). The builder is where you upload, tag, and tune a prop before it shows up in the editor.
Drag a .glb file onto the upload zone, or click to pick one. The model loads in a preview window where you can orbit and zoom just like the editor. The first time you upload, the builder runs an auto-fit to set a reasonable scale - tune it from there if needed.
Most real-world models are made of multiple meshes (a car has wheels, doors, glass, body). Each mesh needs a role so the editor knows what to do with it during a stage plan. Select meshes in the preview and apply a role:
Untagged meshes default to Structure. Multi-select works - shift-click multiple meshes in the preview and apply a role to the whole set.
Below the mesh list, the builder exposes behavior flags that travel with the prop every time someone drags it into a stage:
If you're in a club, custom 3D props you upload are automatically visible to your clubmates. They don't need to upload their own copies. When a clubmate uses your prop in their stage, the editor adds a reference (not a duplicate of the blob) - so your 50 MB cap isn't affected by clubmates using your work.
Reads are broadened, writes are not: only you can edit or delete a prop you uploaded.
From Manage Props in your account menu you can:
Model loads but everything is way too big or way too small. The auto-fit failed - common with pre-rotated or pre-scaled meshes. Open the builder's scale field and tune manually; the preview updates live.
Skinned meshes (rigged characters) appear glued to the world origin. The editor clones rigged GLBs with skeleton support, so this should "just work" - if you hit it, file a bug report with the model so it can be added to the regression set.
A target mesh isn't getting shot markers. Open the prop in the builder. The mesh probably isn't tagged Threat or Steel, or the prop's counts_as_target master flag is off. Fix and re-save; existing stages pick up the new behavior next time they load.