Map Editor · Duplicate

Duplicating Objects in DSMapStudio

Tested on v1.11.1 Updated 2026-06-09

Duplicating Objects in DSMapStudio

Duplication is the backbone of map editing. Almost nobody builds an enemy, asset, or region from an empty entry — they duplicate an existing one with Ctrl+D and adjust it. A copy inherits everything the original had: model, param references, draw groups, collision binding, even its entity ID. That inherited context is exactly what makes a placed object work in its spot instead of falling through the floor or rendering invisibly. Get duplication right and most of map editing becomes "copy something that works, change the few fields that need it."

Why duplicate instead of building from scratch

A map object isn't one value — it's a bundle of references in the MSB that must stay internally consistent: a model, params, draw groups that match the area, a collision it stands on, and a unique entity ID. Assemble those by hand and one slip leaves it broken. Duplicate a working object and every reference comes along correctly, so you only touch what you want to differ. That's why duplicating a nearby object of the right kind is the recommended starting move everywhere in map editing — the copy already fits the local draw groups and collision.

How to duplicate in a map

Select the object in the tree or viewport and press Ctrl+D — a copy appears with the same data and position as the original.

  • One object — select, Ctrl+D.
  • Several at once — multi-select (Ctrl-click, or Shift-click a range) and Ctrl+D to copy the set with relative positions preserved.

The copy lands on top of the original, so the next step is always to move it: select it in the viewport, press W for the translate gizmo, drag it into place. F frames the camera on it if it's hidden behind the original.

What a copy inherits — and what you must change

PropertyInherited?Action
Model / appearanceYesKeep, or change to a different model
Param references (NpcParam, etc.)YesKeep, or repoint to make it a different thing
Draw / display groupsYesKeep if placed near the original; recheck if moved far
Collision bindingYesKeep if near the original; recheck if moved far
Position / rotationYes (same as original)Always change — move it into place
Entity IDYes (same as original)Always change — must be unique

The two non-negotiables: position (it sits on the original until moved) and entity ID (two objects must never share one).

Copying objects across maps

Duplication isn't limited to the current map — you can copy an object from one map and paste it into another, handy for reusing an enemy setup, asset, or region. Load the source map, copy the object, switch to the destination, paste; it arrives with references intact. Same cleanup on arrival: reposition, give it a new entity ID that fits the destination's numbering, and confirm draw groups make sense for the new area — groups that worked in one map may not match the collision in another.

After duplicating — the required cleanup

Treat "duplicate, then fix" as one reflex. After any Ctrl+D or cross-map paste:

  1. Move it — it's stacked on the original.
  2. Re-ID it — the copy carries the original's entity ID; assign a new unique one (DSMapStudio flags duplicates because they make scripts misbehave — entity IDs).
  3. Check groups if you moved it far — near the original, inherited draw groups are right; across distance or a different map, copy groups from an object that belongs in the new spot.
  4. Change references only if you want it different — repoint model and params to reskin; otherwise leave them.

When duplicating crashes

Duplicating certain enemies on certain maps crashes the Map Editor — a known data-specific bug. If Ctrl+D on an enemy reliably crashes, duplicate a different nearby enemy of a similar type instead, save before every Ctrl+D, and stay on the current v1.11.1 build. Full workarounds: crash when duplicating enemies.

That's the most-used action in the Map Editor. Apply it to enemies in the place enemies guide, keep every copy's entity ID unique, and revisit draw groups whenever a duplicate ends up invisible. The Map Editor hub ties it together.