AshForge Mod Kit · World Editor · the whole lane, one course
Place it, organise it,
and watch solo forget what you changed.
The 3D workspace is the largest part of the Mod Kit. Layers and groups are not the two things their names suggest, solo does the right thing until one action makes it quietly do the wrong one, and none of what you place can ship to the game.
What it is
A scene editor: place primitives and your own models, organise them, save the layout, and look at it.
Modules 1–4 are placing, 5–9 are layers and groups, 10–14 are solo and what the scene is for.
The one that loses work
⛔ Adding a layer while solo is on drops the visibility it remembered, and the isolated view becomes the new normal.
The casualty is a layer that WAS visible — the one you hid on purpose looks correct throughout.
This lane is 14 things worth knowing, not three escalating tiers. The old split implied the later material needed the earlier and it does not — read straight through, or jump to the module that matches your problem. The Mod Kit's other lanes are separate courses.
Placement
Putting something in
Two sources: built-in primitives, and models from your mod's library.
| Source | How |
|---|---|
| Primitives — cube, plane, sphere, cylinder, cone | Pick one and place it at the cursor, or quick-place it. |
| Your models | From the Models panel — double-click, or drag into the viewport. |
Primitives are the fast way to block something out: a crate-sized cube next to a person-sized cylinder tells you more about scale in ten seconds than any measurement will. Models are the real thing, and they arrive through the Models panel — the same panel that imported and thumbnailed them.
Every object gets a unique id the moment it is placed, which is how it stays identifiable across a save and load even if you rename it or move it.
Selection
Selection replaces
Verified against the running editor: selecting an object while another is already selected leaves you with one selected, not two.
| Action | Result |
|---|---|
| Select A | 1 selected |
| Select B | 1 selected — A was dropped |
| Select A adding | 2 selected |
| Deselect A | 1 selected |
This is the conventional behaviour in every editor of this kind, and it is still the single most common way to lose two minutes of careful picking. The habit worth building is to reach for the add-modifier before the second click rather than after.
Two shortcuts exist that select a whole set at once, and both are covered in the next tutorial: selecting everything on a layer, and selecting everything in a group. If you find yourself click-adding more than three or four things regularly, one of those is what you actually want.
Defaults
Where things start
Every object you place starts on layer 0 and in no group.
That sounds like a triviality and it sets up the whole of the next tutorial. A scene always has at least one layer, everything lands on it, and nothing is grouped until you say so. So an unorganised scene is not in a special state — it is simply one layer with everything on it, which is exactly what layer 0 is.
It also means the organisation tools are additive: you can build a whole scene without touching layers or groups, then organise afterwards, and nothing has to be undone first.
Persistence
Saving, and the round trip
A scene saves to a file. To prove what survives, the harness for this page saved a scene from one editor and loaded it into a second, fresh one.
| Checked | Result |
|---|---|
| A fresh scene has ever been saved | No — it tracks that it hasn't |
| The file appears | Yes, and the save time is recorded |
| A second editor loads it | Yes, with the object present |
| Position | Survived exactly |
Def link (DefType, DefId) | Survived |
That last row is the one worth remembering. A placed object can carry a link to a definition — this cube is the crate you authored in the Definitions workspace — and that link is part of the scene file, not a runtime convenience.
Loading into a different editor instance is what makes this a real test. Reading a value back from the editor that just wrote it proves almost nothing; reading it out of a fresh one proves the file carries it.
Layers
What a layer owns
A layer is not just a bag of objects. It carries state that applies to everything on it.
| A layer owns | What it does |
|---|---|
| Visibility | Hides its objects. Verified: hiding a layer hid its object and left the other layer's alone. |
| Lock | Locks its objects against editing. |
| Colour | A tint from a palette, assigned automatically, so you can tell layers apart at a glance. |
| Order | Layers can be reordered. |
| Solo | Isolate this one and hide the rest. The advanced tutorial is largely about this. |
None of those are things a set of objects has on its own — they are things a layer has and lends to whatever is on it. That is the whole reason layers are exclusive: if an object were on two layers with different visibility, the question "is it visible?" would have no answer.
Exclusivity is not a limitation here. It is what makes the properties meaningful.
Groups
What a group owns
A group is a name written onto each of its members. That is nearly all it is, and the "nearly" is worth knowing.
You group a selection, the members all get the same name, and from then on that name will give you the selection back. Verified: grouping two of three objects left the third untouched, selecting the group returned exactly those two, and objects could be added and removed from the group afterwards.
The "nearly" is that a group name also lets you hide or lock the whole set at once — verified: hiding a group hid both members and left the ungrouped object visible. So a group is a handle for three things: re-select, hide, lock.
What it has no notion of is colour, ordering or solo. Those belong to layers, and a group has no opinion about them at all.
Comparison
The side-by-side
| Layer | Group | |
|---|---|---|
| Membership | Exclusive | Exclusive — same |
| Always in one? | Yes — layer 0 by default | No — ungrouped is normal |
| Identified by | A number and a name | A name |
| Hide / lock as a set | Yes | Yes |
| Colour | Yes | No |
| Order | Yes | No |
| Solo | Yes | No |
| Created by | Adding one explicitly | Grouping a selection |
Read down the two columns and the pattern is clear: they agree on everything about membership and differ on everything about presentation. Layers are how the scene is structured for looking at; groups are how a selection is remembered.
★ The one asymmetry that is not about presentation: everything is always on a layer, and nothing has to be in a group. Layers partition the scene exhaustively; groups cover only what you have chosen to name.
In practice
Which to reach for
Ask one thing: do I want to stop seeing this while I work on something else?
| You want to… | Use |
|---|---|
| Work on the interior without the walls in the way | Layers — you will want solo |
| Keep terrain, props and lighting separable while blocking out | Layers |
| Re-select "the crates" repeatedly to nudge them together | Groups |
| Move a set of objects as a unit, often | Groups |
| Tell two kinds of thing apart visually | Layers — colour |
Because both are exclusive, you cannot use them as two overlapping tagging systems — an object cannot be in "crates" and "north side" at once. If you find yourself wanting that, the answer is to pick whichever axis you will want to hide, make that the layer, and use the group for the other one.
Payoff
Selecting a whole set
The previous tutorial ended on a problem: click-selecting replaces, so building a big selection is fiddly. Both organisers solve it.
Select a layer and everything on it is selected — verified, one object on the layer gave one selection. Select a group and its members come back — verified, a two-member group returned two.
So the workflow that avoids the selection trap entirely is: group things once, when you first make them, and select by name forever after. The two seconds spent naming a set is the last time you have to pick it by hand.
The good case
Solo, working correctly
Hide a layer deliberately, solo a different one, then un-solo. The deliberately hidden layer stays hidden.
That is the behaviour you want and it is not the obvious implementation. The lazy version of solo makes everything visible when you turn it off, which silently undoes any hiding you had done for your own reasons. This one snapshots the visibility of every layer before isolating, and restores that snapshot on the way out.
Verified: with layer 1 hidden on purpose, soloing layer 2 and then un-soloing left layer 0 visible and layer 1 hidden — exactly as before.
The failure
The exact sequence
Here is the whole thing, measured step by step on the running editor. Three layers; you have hidden layer 1 for your own reasons.
| Step | Layer 0 | Layer 1 | Layer 2 |
|---|---|---|---|
| Start — you hid layer 1 | visible | hidden | visible |
| Solo layer 2 — snapshot taken | hidden | hidden | visible |
| Add a layer — snapshot dropped | hidden | hidden | visible |
| Solo layer 2 — a fresh snapshot of this view | hidden | hidden | visible |
| Un-solo — restores the fresh snapshot | hidden | hidden | visible |
Layer 0 started visible and ended hidden, and nothing told you. The step that did the damage is the third one, which does not look like it touches visibility at all — adding a layer is about as innocent an action as exists in this editor.
What happened underneath: the structural change clears solo without restoring, so the editor forgets it was ever isolating. The next solo therefore treats the currently-isolated view as the baseline to return to. Every subsequent un-solo restores that.
Deleting or reordering a layer does the same thing, for the same reason.
Prevention
The habit that avoids it
Turn solo off before you reorganise. That is the entire mitigation.
If solo is off when you add, delete or reorder a layer, there is no snapshot to lose and nothing happens. The memory only exists while solo is on, so the fix is simply not to change the structure during that window.
If you think it may already have happened, the recovery is manual and easy enough: turn solo off and set each layer's visibility by hand to what you meant. Nothing is destroyed — the objects are all there, on their layers, unchanged. Only the visibility flags drifted.
Connection
The def link
A placed object can carry a definition type and id — the statement that this box is that crate.
It survives a save and load into a fresh editor, verified, so it is genuinely part of the scene rather than a live convenience. It is the only structural connection between the 3D workspace and the Definitions workspace, and it is what lets a scene be a layout of your mod's content rather than an unrelated pile of boxes.
The Definitions workspace reads the live scene through this link when it builds an export bundle — which brings us to the thing this ladder has been deferring.
The honest answer
What the scene is for
⛔ Placed objects do not reach the game. Not partially, not with effort — there is no definition type that puts an object on a live map.
The scene is captured into the export bundle as plain records, and the game adapter does not emit them, because there is nothing for them to become. This is the same finding the Definitions ladder reached about quests and events: the Mod Kit can author it, and the game has no counterpart.
So what is the 3D workspace for? Three real things:
| Use | Why it works |
|---|---|
| Judging scale and silhouette | A crate beside a person-height cylinder answers in seconds what numbers never will. |
| Checking your models together | Materials, proportions and style read differently in a group than alone. |
| A preview Crucible can rebuild | The scene records exist so the testing tool can reconstruct your layout — that is who reads them. |
That is a workshop, not a level editor, and it is genuinely valuable as a workshop. The mistake to avoid is spending a week arranging a village in the belief that the village is the deliverable. The models are the deliverable; the scene is how you check them.
Course complete
What you now know
Check yourself
- The 3D Workspace is a mode of the Mod Kit that keeps its state when you switch away.
- You place primitives to block out scale and your own models from the Models panel. Each object gets a unique id at placement.
- Selecting replaces the selection; adding to it is opt-in. Selecting a whole layer or group is usually what you want instead.
- Everything starts on layer 0, in no group — so organisation is additive and can wait.
- An object is on exactly one layer, always.
- A scene round-trips through a file: position and the def link both survive, verified by loading into a second editor.
- Both layers and groups are exclusive. An object holds one layer number and one group name — the difference is not membership.
- A layer owns visibility, lock, colour, order and solo. Exclusivity is what makes those properties answerable.
- A group owns a name, and lets you re-select, hide or lock that set. No colour, no order, no solo.
- Everything is always on a layer; nothing has to be in a group.
- Moving between layers is one operation, not a remove and an add.
- The deciding question is "will I want to hide this?" — if yes, it is a layer.
- Select by layer or by group instead of click-adding. It is the fix for the selection trap in tutorial one.
- Solo remembers the visibility it replaced and restores it — including layers you hid deliberately. That is the good, non-obvious behaviour.
- ⛔ Adding, deleting or reordering a layer while solo is on drops that memory, and the next toggle makes the isolated view the new normal.
- The casualty is a layer that was visible; the one you hid on purpose looks correct throughout, which is what makes it easy to miss.
- Turn solo off before you reorganise. That is the whole fix. Recovery is manual and costs nothing but the visibility flags.
- A placed object's def link survives a save and load — the only structural tie between the scene and your definitions.
- ⛔ Placed objects never reach the game. No definition type places an object on a map.
- The scene is for judging scale, checking models together, and giving Crucible a preview to rebuild. It is a workshop, not a level editor.
That is the world editor. ⛔ Placed objects never reach the game — no definition type puts an object on a live map. It is a workshop for judging scale and checking models together: the models are the deliverable, the scene is how you check them.
