After loading a level, open Edit → Models to launch the Model Editor. It browses and edits the level's mesh package under RENDERABLE (e.g. LEVEL_MODELS.PAK / MODELS_LEVEL.BIN) — CS2 models used by ModelReference entities and other renderables.
The same window can open as a picker (with Select This Model) from a renderable instance's Change Model button.
The left tree lists models in the loaded level. Use Search / Clear to filter. Select an entry to preview it in the centre 3D view.
Supported mesh formats: FBX, glTF (.gltf / .glb), COLLADA (.dae) and Wavefront OBJ.
FBX and glTF are written by OpenCAGE itself rather than through Assimp, because Assimp's exporters mangle exactly the things you care about — it resamples animation down to a handful of keys in FBX, and damages animated content badly in glTF. Those two carry everything OpenCAGE writes; COLLADA and OBJ go through Assimp and carry progressively less (OBJ has no skinning and only one UV set).
Models export at their real size. FBX, COLLADA and OBJ all treat one unit as a centimetre while CATHODE and glTF work in metres, so OpenCAGE applies the right unit scale per format — a model no longer arrives in Blender at a hundredth of its size.
Click Import New, pick a file, then use the import preview to choose which meshes to bring in. You settle the model's name and any folders it should live in here too, with clashes checked as you type — nothing gets silently renamed after the fact.
Optionally Pick material for selected meshes (opens the Material Editor), then Import.
If a .cs2meta.json sidecar sits beside the file (see below), OpenCAGE reads it and rebuilds the model with the structure it had when it was exported.
Imports need triangles (Assimp triangulates where needed), a usable bounding box, and under 32,768 vertices per converted mesh. Models are keyed by name when a level is read back, so a name that already exists is adjusted and you're told what it became — anything already placed still points at the original.
Exporting a skinned model asks which skeleton to bind it to first, before the file dialog — a skinned model is only half a model without the rig its weights point at. The chosen skeleton is written into the file with the mesh bound to it.
Every export also writes a .cs2meta.json sidecar next to the model, holding everything the mesh formats can't carry: the component / LOD / submesh structure, render flags, vertex formats, and skinning data. Keep it beside the model and leave the object names intact, and the model can be imported straight back in as it was.
On the main window, Model Render Flags toggles flags for the previewed model (for example LOD / shadow / dynamic geom style options). Changes apply in memory immediately.
Select a model and click Edit to open a second window for that CS2's hierarchy: components → LODs → submeshes.
For multi-mesh sources, prefer Import New with the mesh checkboxes; the per-submesh add/replace path only uses the first mesh in the file.
The Model Editor has no separate Save button. Persist changes with File → Save Level (Ctrl+S), which writes the level's model PAK/BIN (and related assets) back to disk.
Saving closes the game if it's running so install files aren't locked.