Doors
A door placed as an ordinary prop is a flat object that does not open. Ticking This is a door on the Entity tab makes it a real one in the export.
Capture and Align
Getting a door square to a wall by eye is miserable — a door that is one degree out reads as broken.
| Capture | Records the orientation of a surface you point at |
| Align | Applies that orientation to the selected door |
Point at the wall, Capture, select the door, Align. The door takes the wall's exact angle, including any slope.
This is Config.Features.customOrientation, and it is not only useful for doors — anything that has to sit flush against an uneven surface benefits.
Marking a door
Select the object and tick This is a door on the Entity tab.
Nothing changes in the editor. What changes is the export: a marked door is written as an actual door entry rather than a static prop, so the game treats it as something that opens.
What the export produces
A ymap export writes marked doors as real doors in the ymap, and additionally writes ready lists for door lock scripts into a doors/ folder alongside it.
That means a door you placed here can be picked up by your lock script without you transcribing hashes by hand.
The lists are the part that saves time
Door lock resources want a model hash and a position per door. Getting those out of a built map by hand is the tedious half of the job; the export does it.
Doors inside an MLO
A door that sits inside an interior is not a world door — the interior owns it, and the ymap cannot describe it.
With Config.Features.mloDoors on, the export writes those doors into a copy of that MLO's .ytyp.
It writes a copy, not the original
Your game files are not touched. You get a modified .ytyp alongside the export, which you then stream yourself.
Streaming a modified ytyp replaces that MLO for everyone
An MLO's .ytyp is global. Streaming your copy means every player gets your version of that interior, not just inside your map's radius. Two resources shipping modified copies of the same MLO will conflict, and the one that loads last wins.
If you only need a door in a building you built yourself, you do not need this at all.
Switching it off
Config.Features = {
doors = false, -- no "This is a door" at all
mloDoors = false, -- doors work, but no ytyp is written
customOrientation = false, -- no Capture / Align
}Turning off mloDoors while leaving doors on is a sensible middle ground: you keep real doors in your own structures and never generate a file that overrides a game interior.
If a door does not open after export
Work through these:
- Was This is a door actually ticked? It is per object, and duplicating a door copies the flag — but a door you placed fresh does not have it.
- Did you export as
ymaporresource? Theobjectloaderformat carries props only and drops the door flag entirely. - Is the door inside an MLO? Then it needed
mloDoors, and the generated.ytyphas to be streamed. - Does your lock script know about it? The export writes the lists; something still has to read them.