Skip to content

Object Placement and Manipulation

Objects are the individual mesh assets that populate the map with buildings, props, vehicles, decals, and decorative elements. Unlike foliage, which is painted procedurally using a density brush, objects are placed individually from the object browser and positioned precisely using the move, rotate, and scale tools. A map with careful object placement guides the player through intentional sightlines, provides cover and concealment, and creates a sense of an inhabited space. A map with chaotic or careless object placement confuses navigation, creates unfair sightlines, and performs poorly.

This article is a procedural tutorial covering every object placement and manipulation operation available in the Unturned™ Level Editor. It describes the object browser interface, the category filter system, the placement workflow, the move, rotate, and scale tools with snap behavior, object search and filtering, selection groups for batch operations, and the failure modes that affect performance with dense placement and objects disappearing at distance. The article assumes the reader has configured the environmental lighting in the preceding article and is familiar with the editor's toolbar and viewport navigation.

Object browser panel open in the Unturned Level Editor showing category filters and object list

Prerequisites

  • A map with completed terrain, foliage, roads, and lighting configuration. The editor must be open and the map must have terrain data initialized.
  • Familiarity with the editor toolbar, viewport navigation, and the Objects panel location.
  • A collection of object assets available in the map's master bundle or in the vanilla asset library.
  • Understanding of the object categories (Large, Medium, Small, Decal, NPC, Resource) and how they affect navmesh and collision behavior.

What you will learn

  • How to open the object browser and navigate the object asset list.
  • How to filter objects by category and search by name.
  • How to place an object from the browser onto the terrain.
  • How to use the move tool with snap-to-grid for precise positioning.
  • How to use the rotate tool with snap increments for consistent alignment.
  • How to use the scale tool for uniform and non-uniform scaling.
  • How to duplicate, delete, and select multiple objects for batch operations.
  • How object categories (Large, Medium, Small) affect navmesh carving and collision.
  • How to diagnose and resolve performance issues with dense object placement.
  • How to diagnose and resolve objects disappearing at mid-range distances.

Background: how the object placement system works

The object placement system in the Level Editor stores each placed object as an entry in the map's Objects.dat file. Each entry records the object asset's GUID, the instance's world position, rotation, scale, and any per-instance properties (material palette variant, interactability state, custom properties). At map load time, the engine reads the Objects.dat file, loads each referenced asset, and instantiates each object at its recorded transform.

As shown in the flowchart above, each placed object is a persistent entry in the map data. The object asset (mesh, materials, colliders) is stored in the master bundle; the instance data (position, rotation, scale) is stored in the level data. This separation means that changing the object asset's properties (mesh, materials) after placement updates all instances at map load time.

The object browser

The object browser is the primary interface for selecting and placing objects.

Opening the object browser

Step 1: Click the Objects panel on the toolbar. The Objects panel opens on the right side of the editor.

Step 2: Click the Browse button at the top of the Objects panel. The object browser window opens as a modal dialog.

Object browser layout

The object browser window has three main sections:

  1. Search bar: A text field at the top of the window. Typing a partial name filters the object list in real time. The search matches against the internal Name field of each object asset.
  2. Category filter buttons: A row of buttons below the search bar: All, Large, Medium, Small, Vehicles, Items, NPCs, Spawns. Clicking a category button filters the list to objects of that type.
  3. Object list: A scrollable list showing all matching objects. Each entry displays the object's name, a thumbnail preview, and the asset path.

Searching for objects

Step 1: Click in the search bar at the top of the object browser.

Step 2: Type a partial object name. The search is case-insensitive and matches against any part of the internal name. For example, typing "barrel" matches "MetalBarrel", "Barrel_Green", "WaterBarrel", and "BarrelFire".

Step 3: The object list updates in real time as you type, filtering to only objects whose names contain the search string.

Step 4: To clear the search, click the X button in the search bar or delete the search text.

Category filters

The category filter buttons correspond to the Object_Type field on the object asset's .dat file. Each category groups objects with similar gameplay behavior:

CategoryObject_Type valueTypical contentsNavmesh behavior
AllAnyAll objects regardless of typeVaries by type
LargeLargeShipping containers, dumpsters, large rocks, trees, building shellsFull navmesh carve around collision hull
MediumMediumMailboxes, barrels, crates, vehicle wrecks, furnitureModerate navmesh blocking; depends on collider size
SmallSmallRocks, flower pots, small props, debris, clutterNo navmesh carving; treated as passable by AI
DecalDecalPaint marks, graffiti, blood splattersNo navmesh interaction, no physics
VehiclesN/AVehicle spawn points (placed through Vehicles panel)N/A
ItemsN/AItem spawn points (placed through Items panel)N/A
NPCsNPCNPC spawn points for quest givers and merchantsNo navmesh interaction, no physics at rest
SpawnsN/AZombie and animal spawn zonesN/A

The navmesh carving behavior is the most important gameplay distinction between categories. Large objects fully block the navmesh. Small objects do not block the navmesh at all (zombies path through them). Medium objects may partially block the navmesh depending on their collider size and shape.

Placing an object

Step 1: Open the object browser and locate the desired object using search or category filters.

Step 2: Click the object entry in the list to select it. The browser shows a preview of the object and displays its internal name and asset path in a detail panel.

Step 3: Click the Place button at the bottom of the browser, or double-click the object entry. The object browser closes and the object attaches to the cursor.

Step 4: Move the mouse to position the object in the viewport. The object preview follows the terrain surface, snapping to the surface height at the cursor position.

Step 5: Left-click to place the object at the cursor position. The object appears in the level and is added to the Objects.dat entry.

Step 6: Continue left-clicking to place additional copies of the same object without re-opening the browser. Each click places another instance at the cursor position.

Step 7: Right-click or press Escape to exit placement mode. The cursor returns to normal selection mode.

On-screen appearance: During placement, the object moves with the cursor as a translucent preview. The preview shows the object at its intended position with its full mesh and materials. When placed, the preview becomes an opaque, fully rendered instance. The object's shadow appears on the terrain beneath it once placed.

Placing objects at specific heights

The object preview snaps to the terrain surface by default. To place an object at a specific height above the terrain (for floating objects, elevated platforms, or suspended props):

Step 1: Move the cursor to the desired ground position.

Step 2: Press and hold the Shift key while moving the mouse up or down. The object detaches from terrain snapping and moves freely along the Y axis.

Step 3: Release the Shift key at the desired height.

Step 4: Left-click to place the object at the adjusted height.

Selecting objects after placement

Selecting a single object

Step 1: With the default selection tool active (click the Select icon on the toolbar or press Q), left-click on an object in the viewport.

Step 2: The object is highlighted with a wireframe outline and the transform gizmo appears at the object's pivot point.

Step 3: The inspector panel displays the object's instance properties (asset name, position, rotation, scale).

Selecting multiple objects

Step 1: Hold Ctrl and click on each object to add it to the selection. Each selected object shows a wireframe outline.

Step 2: Alternatively, drag a selection rectangle in the viewport. All objects within the rectangle are selected.

Step 3: To deselect all objects, click on empty terrain space.

Group selection

Objects cannot be permanently grouped or parented through the Level Editor interface. Each object remains an independent instance in the Objects.dat file. To move multiple objects simultaneously, select them all (Ctrl+click or selection rectangle) and use the move tool. The selection remains active until you click on empty space.

The move tool

The move tool repositions selected objects in world space.

Activating the move tool

Step 1: Select an object or multiple objects in the viewport.

Step 2: Press W on the keyboard, or click the Move tool icon on the toolbar. The transform gizmo changes to three colored arrows: red (X axis), green (Y axis), blue (Z axis).

Step 3: Click and drag an arrow to move the selection along that axis. The object moves in real time as you drag.

Snap-to-grid movement

Step 1: Hold Shift while dragging the move tool arrow. The object movement snaps to increments of 0.5 units along the selected axis.

Step 2: Release Shift to return to continuous movement.

On-screen appearance: During snap-to-grid movement, the object jumps between snap positions. The inspector panel's Position fields update to show the snapped coordinates.

Precise positioning

Step 1: Select the object.

Step 2: In the inspector panel, locate the Position fields (X, Y, Z).

Step 3: Enter the desired coordinate values directly. The object moves to the specified position immediately.

This is the preferred method for aligning objects to a grid, matching the height of an adjacent object, or positioning objects at exact world coordinates.

The rotate tool

The rotate tool changes the orientation of selected objects.

Activating the rotate tool

Step 1: Select an object.

Step 2: Press E on the keyboard, or click the Rotate tool icon on the toolbar. The transform gizmo changes to three colored arcs: red (X rotation), green (Y rotation), blue (Z rotation).

Step 3: Click and drag an arc to rotate the object around that axis. The object rotates in real time.

Snap rotation

Step 1: Hold Shift while dragging a rotation arc. The rotation snaps to 15-degree increments.

Step 2: Release Shift to return to continuous rotation.

Precise rotation

Step 1: Select the object.

Step 2: In the inspector panel, locate the Rotation fields (X, Y, Z Euler angles).

Step 3: Enter the desired rotation values directly. The cohort convention for grid-aligned construction is to use multiples of 90 degrees.

The scale tool

The scale tool changes the size of selected objects.

Activating the scale tool

Step 1: Select an object.

Step 2: Press R on the keyboard, or click the Scale tool icon on the toolbar. The transform gizmo changes to three colored handles on each axis plus a center cube.

Step 3: Drag a colored handle to scale the object non-uniformly along that axis.

Step 4: Drag the center cube to scale the object uniformly on all axes.

On-screen appearance: As the object is scaled, the mesh size changes in real time. The scale values are displayed in a tooltip as a multiplier (1.0 = original size, 2.0 = double size, 0.5 = half size). The inspector panel's Scale fields update to show the current scale values.

Scale limitations

Scaling an object changes the visual size but does not change the collider or the navmesh carve. A building that is scaled to 200% still has the original-sized collider and navmesh carve. This means:

Scale valueVisual appearanceCollision behaviorNavmesh carve
1.0Original sizeOriginal colliderOriginal carve
2.0Double sizeOriginal collider (mismatched)Original carve area (may let AI path through visually solid area)
0.5Half sizeOriginal collider (mismatched)Original carve area (may block paths where visually clear)

The cohort recommendation is to avoid scaling objects that have gameplay-important collision or navmesh interaction (buildings, walls, barriers). Scale is appropriate for purely decorative objects (rocks, small props, debris).

Duplicating and deleting objects

Duplicating an object

Step 1: Select the object to duplicate.

Step 2: Press Ctrl+D. A duplicate of the object appears offset by a small distance (approximately 1-2 units in a random direction) to distinguish it from the original.

Step 3: Move the duplicate to its intended position using the move tool.

Deleting an object

Step 1: Select the object to delete.

Step 2: Press the Delete key, or right-click the object and select Delete from the context menu.

Step 3: The object is removed from the level immediately. Deleted objects are removed from the Objects.dat file on save.

Per-instance object properties

Each placed object has instance properties that can be edited in the inspector panel. These properties do not modify the underlying asset; they only affect that specific instance.

Editing instance properties

Step 1: Select the placed object.

Step 2: Click Inspect in the Objects panel, or press F2. The inspector panel opens showing the object's instance properties.

Step 3: The inspector displays these editable fields:

FieldTypeEditableDescription
Positionfloat3YesWorld-space X, Y, Z coordinates
Rotationfloat3YesEuler rotation angles in degrees
Scalefloat3YesUniform or per-axis scale multiplier
Material PalettedropdownYes (if asset has palette)Active palette variant
Interactability StateenumYes (for Binary_State assets)Current state (on/off, open/closed)
Custom PropertiesvariesYes (if asset defines them)Asset-specific instance properties

Material palette assignment

When the selected object asset has a material palette assigned (defined by the Material_Palette_GUID field in the asset's .dat), a Material dropdown appears in the inspector. Changing the dropdown selection cycles through the visual variants defined in the palette. Each variant corresponds to one entry in the palette's Materials array.

For more details on material palette authoring, see Material Palette Asset Reference.

Performance with dense object placement

Dense object placement (hundreds of objects in a small area) has measurable performance impacts. The primary cost is draw calls: each object is a separate draw call unless it is part of the level batching system.

Draw call impact by object category

Object categoryDraw call costRecommended maximum per view
Large1 per object50-80
Medium1 per object100-150
Small1 per object200-300
Decal1 per object50-100
Resource (trees)Handled by foliage systemN/A

The values above are per-viewport-frustum, not per-map. Objects outside the camera's view do not contribute to the draw call count.

Performance optimization strategies

Step 1: Use level batching for repetitive objects. Enable Batching_Version in the map's Config.json to merge meshes that share materials into combined draw calls. See Level Batching Reference for configuration details.

Step 2: Place large structural objects first, then fill with decorative objects. Structural objects define the view frustum boundaries; decorative objects within those boundaries add draw call cost.

Step 3: Use culling volumes to hide objects at distance. Objects inside culling volumes are not rendered beyond the volume's configured distance. See Manual Object Culling Reference for volume configuration.

Step 4: Limit the number of shadow-casting objects in a single view. Each shadow-casting object adds to the shadow map rendering cost. For decorative objects that do not need shadows, disable shadow casting in the object asset's configuration.

Performance testing procedure

Step 1: Save the map after object placement is complete.

Step 2: Launch the map in single-player.

Step 3: Navigate to the most object-dense area of the map.

Step 4: Open the in-game performance overlay (press F3 or the configured debug key).

Step 5: Observe the draw call count and frame rate. If the draw call count exceeds 500 in a single view or the frame rate drops below 30 FPS on the target hardware, reduce object density in that area.

Step 6: For each performance-critial area, remove every decorative object that does not serve a gameplay purpose (visual filler, redundant debris).

Failure mode: objects disappearing at mid-range distance

Objects that vanish at a distance significantly closer than the far clip plane are being affected by aggressive culling.

What it looks like: The map has a visible distance threshold where objects suddenly disappear. The terrain continues to render beyond this distance, but all objects beyond the threshold are invisible.

Root cause: One of two causes:

  1. Manual culling volume: The object is inside a culling volume that has a short render distance configured. Objects inside the volume are culled at the volume's distance regardless of their actual visual importance.
  2. Legacy LOD culling: The object's LOD_Bias field is set too low, causing the automatic culling system to cull the object at a short distance.

Resolution steps:

Step 1: Verify whether the object is inside a culling volume. Open the Culling tool from the toolbar and enable Preview Culling from the view options. Objects inside culling volumes are hidden in the preview. If the disappearing object is hidden in the preview, it is inside a culling volume.

Step 2: If the object is inside a culling volume, adjust the volume's boundaries to exclude the object, or move the object outside the volume.

Step 3: If the object is not inside a culling volume, inspect its LOD_Bias field. The LOD_Bias is a multiplier on the default 64-meter culling distance. A value of 1.0 gives a 64-meter culling distance. A value of 0.5 gives a 32-meter distance. Increase the LOD_Bias to extend the visibility range.

Step 4: For large gameplay-important objects (buildings, cover structures, landmarks), add Exclude_From_Culling_Volumes true to the object's .dat file. This prevents culling volumes from affecting the object regardless of its position.

Failure mode: editor performance slow with many objects

The editor viewport becomes sluggish when hundreds of objects are visible in the viewport simultaneously.

What it looks like: The viewport frame rate drops significantly when the camera is positioned in an object-dense area. Selecting, moving, or placing objects has noticeable input lag.

Root cause: The editor renders all visible objects at full detail. Unlike the in-game runtime, the editor does not automatically LOD or cull objects for performance.

Resolution:

Step 1: In the editor viewport options, reduce the view distance slider. The viewport renders fewer objects when the view distance is shorter.

Step 2: In the Objects panel, enable Hide Selected or Isolate Selection to temporarily hide objects that are not being edited.

Step 3: Work on object-dense areas in isolation. Place all large structural objects first, then add decorative objects in small batches. Save after each batch to avoid losing work if the editor becomes unresponsive.

Failure mode: objects placed in wrong position due to terrain snapping

Objects that snap to an unexpected terrain position (on the wrong side of a hill, inside a slope) are being placed at the terrain surface height below the cursor, which may not be the intended position.

What it looks like: A building placed on a hillside is positioned at the slope angle rather than on flat ground. An object placed near a cliff edge is positioned at the bottom of the cliff rather than at the edge.

Root cause: The object placement preview snaps to the terrain surface at the cursor position. On steep slopes, the cursor may be over terrain that is significantly higher or lower than the intended placement surface.

Resolution: Use the terrain Flatten tool to create a level platform at the intended placement position before placing the object. Alternatively, place the object while holding Shift to detach from terrain snapping, then adjust the Y position manually in the inspector.

Failure mode: object collision does not match visual appearance

An object that players or zombies interact with in a way that does not match its visual shape has a mismatched collider.

What it looks like: Players collide with an invisible box larger than the visible object, or pass through parts of the visible mesh. Zombies pathfind through a visually solid wall.

Root cause: The object's collider (box collider, sphere collider, capsule collider, or mesh collider) does not match the visual mesh bounds. This is an asset-level issue, not a placement issue.

Resolution: The collider must be fixed in the Unity prefab for the object asset. Open the Unity project, locate the object prefab, and adjust the collider size and shape to match the visual mesh. Rebuild the master bundle and re-export the map to apply the fix.

FAQs

How do I place an object at an exact world coordinate?

Select the object and open the inspector panel (F2). Enter the X, Y, Z coordinate values directly in the Position fields. The object moves to the specified position immediately. This is the most accurate method for placing objects at known coordinates.

Why does my placed object not cast shadows?

Shadow casting is controlled by the object asset's renderer configuration. Some decorative objects have shadow casting disabled in the Unity prefab to improve performance. To enable shadows on a specific instance, you must modify the object asset's renderer settings in Unity and rebuild the bundle.

Can I copy objects between maps?

Object instance data is stored in the map's Objects.dat file. To copy objects between maps, the recommended method is to use the Level Editor's copy and paste functionality (select objects, press Ctrl+C, open the target map, press Ctrl+V). This copies the selected objects' instance data to the target map. The target map must have the same object assets available in its bundles.

How do I align multiple objects to the same rotation?

Select all objects (Ctrl+click each object or use a selection rectangle). With all objects selected, enter the desired rotation values in the inspector panel's Rotation fields. All selected objects receive the same rotation values.

Why does my object appear pink in the viewport?

A pink render color indicates that the object's material is missing or not loaded. The most common cause is that the object asset's master bundle is not loaded in the editor. Verify that the bundle containing the object's material is present in the editor's bundle list.

How do I make an object face a specific direction?

Use the rotate tool (E key) to rotate the object visually, or enter the Y rotation value in the inspector panel. The Y axis controls the object's facing direction. A Y rotation of 0 faces the default forward direction (typically +Z). A Y rotation of 90 faces 90 degrees to the right (typically +X).

Can I place objects underwater?

Objects can be placed underwater. The object's position Y coordinate must be below the water plane elevation. The object renders with underwater fog effects applied when viewed from above water. The object's collision and navmesh behavior are unaffected by water.

How do I replace every instance of one object with another object on the map?

The Level Editor does not have a global find-and-replace function for object instances. Each instance must be deleted and re-placed individually. For maps with many instances of the same object, the most efficient workflow is to delete all instances of the old object type, then place the replacement object in the same positions.

Why does my building have no collision even though it is placed correctly?

The building object may have its Object_Type set to Decal or NPC, which have no physics collider. Verify the object asset's Object_Type in its .dat file. Buildings should have Object_Type Large for full collision and navmesh carving.

What is the maximum number of objects I can place on a single map?

There is no hard limit enforced by the engine. The practical limit is determined by the map's target frame rate on the intended hardware. The cohort recommendation is to stay under 3000 placed objects on a Medium map and under 6000 on a Large map. Beyond these counts, the map load time and runtime draw call count may exceed acceptable thresholds.

Best practices

  • Place large structural objects first (buildings, walls, terrain features), then medium objects (furniture, crates, barrels), then small decorative objects (props, debris, scatter). The large objects define the spatial layout; the smaller objects fill in the space.
  • Use the snap-to-grid feature (Shift + move) for structural objects that need to align to a shared grid. The default 0.5-unit snap increment is appropriate for most building grids.
  • Use precise coordinate entry in the inspector for objects that must be at exact positions. Visual positioning with the move tool is less accurate.
  • Avoid scaling gameplay-important objects. Scaling changes the visual appearance but not the collision or navmesh carve.
  • Keep object density per viewport area within the draw call budget. Dense areas should use level batching.
  • Place objects on flat terrain or flattened platforms to avoid unexpected terrain snapping.
  • Save the map every 15-20 placed objects when working in dense areas. The editor can become slow or unstable with very large object counts.
  • Test object collision and navmesh interaction in single-player after placing groups of structural objects.

Advanced considerations

Object placement order and navmesh baking

The navmesh bake uses the collision geometry of all Large and Medium objects marked as Navigation Static. Objects placed after the last navmesh bake are not included in the navmesh. The cohort workflow is to place all structural objects first, bake the navmesh, then add decorative objects. Decorative objects that do not affect the navmesh can be placed after the bake without requiring a rebake.

Object layer assignment for culling

The culling system uses object layers to determine which objects are affected by culling volumes. By convention, structural objects (buildings, walls, large cover) are assigned to a layer that is excluded from culling. Decorative objects (grass tufts, small rocks, debris) are assigned to a layer that is included in culling. Layer assignment is configured in the Unity prefab and cannot be changed per-instance in the Level Editor.

Static batching and object material sharing

Level batching merges meshes that share the same material into combined draw calls. Objects that use unique materials do not benefit from batching. The cohort recommendation is to use material palettes for objects that appear in many instances (houses, containers, walls) so that all instances share the same material set and can be batched. Objects that are unique (landmark buildings, special props) should use unique materials because they cannot be batched regardless.

Appendix A: Object manipulation tool keyboard shortcuts

ActionShortcut
Select toolQ
Move toolW
Rotate toolE
Scale toolR
Snap (during move)Hold Shift
Snap (during rotate)Hold Shift
Duplicate selectedCtrl+D
Delete selectedDelete
Open object inspectorF2
Open object browserClick Browse in Objects panel
Select multipleCtrl+click
Deselect allClick on empty terrain

Appendix B: Object placement failure mode diagnostic table

SymptomMost likely causeResolution
Object disappears at mid-range distanceObject inside culling volume with short render distanceAdjust culling volume or exclude object from culling
Object invisible in editor but present in gameObject's master bundle not loaded in editorLoad the bundle in editor bundle list
Object pink in viewportMaterial missing or not loadedVerify bundle contains the object's material
Object placed at wrong height on slopeTerrain snapping placed it on unintended surfaceUse Shift while placing to detach from snapping
Collision does not match visualObject asset has mismatched collider in Unity prefabFix collider in Unity, rebuild bundle
Editor slow with many objectsViewport rendering all objects at full detailReduce view distance in editor options
Object cast no shadowsShadow casting disabled on the rendererEnable shadow casting in Unity prefab
Scaling changes visual but not collisionScale tool changes render mesh onlyAvoid scaling gameplay-important objects
Object not appearing in gameAsset not included in map's master bundleInclude object asset bundle in map export
Multiple objects hard to select individuallyObjects overlapping in viewportUse selection rectangle or hide surrounding objects

Appendix C: Object category reference table

CategoryObject_TypeCollisionNavmesh carvePhysicsTypical polycount
LargeLargeFullFull carve from collision hullYes500-5000
MediumMediumFullModerate carve (depends on size)Yes100-1000
SmallSmallFullNone (AI passes through)Yes50-500
DecalDecalNoneNoneNo10-100
NPCNPCNoneNoneNo at rest1000-5000
ResourceResourceFullNoneYes200-2000

Authoring checklist

Before publishing a map with placed objects, confirm the following:

  • [ ] All structural objects placed and positioned correctly
  • [ ] Navmesh baked after structural object placement
  • [ ] Decorative objects placed without exceeding draw call budget
  • [ ] No objects disappearing at gameplay-relevant distances
  • [ ] Object collision matches visual appearance for all gameplay-important objects
  • [ ] Objects that should not be culled are excluded from culling volumes
  • [ ] Shadow casting is correctly configured on gameplay-important objects
  • [ ] Object density in dense areas tested for performance target
  • [ ] Map saves and loads without errors after object placement
  • [ ] All object asset bundles are included in the map export

Cross-references

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Object browser, placement workflow, move/rotate/scale tools, category system, performance optimization, failure mode documentation.