Skip to content

Object Asset Reference

The object asset is the data definition for every placed world object in Unturned™ - buildings, vehicles, furniture, debris, decals, NPC markers, resource nodes, and environmental props. Objects are the most numerous asset type on any map and serve the broadest functional range: they provide cover, collision, decoration, navigation landmarks, and interactivity. Unlike structures and barricades (which are player-placed), objects are placed by the level designer in the Unity Editor and are part of the map's base terrain.

Objects are created from the EObjectType enum system, which sorts them into five principal categories: Small (clutter and decoration), Medium (layout-filling assets), Large (level-defining structures), Decal (surface-applied textures), and NPC (character interaction markers). Each category uses the same core field set but with different defaults and feature enablement. The object asset also includes an extensive interactability system (doors, containers, notes, rubble, fuel and water sources, NPC dialogue and quest triggers), a rubble destruction system with multi-section breakable objects, a decal placement system with LOD bias, an interior culling system, a holiday-dependent visibility system, and a conditions-and-rewards system that links object visibility and interaction to quest and flag states.

This article is the 57 Studios™ canonical reference for the object asset type. It covers every .dat field applicable to objects, organized by functional system. The shared fields that appear on every asset (GUID, ID, Name, Type) are documented in Asset Definitions Reference; this article focuses on the fields that are unique to the object subclass and the configuration patterns that define each functional subsystem.

Three object types placed in the Unturned level editor: a Large building, a Medium vehicle wreck, and Small debris props

Documentation source: This article references the official Smartly Dressed Games modding documentation for field definitions and game behavior. Community-validated notes are marked where the official documentation is silent on a detail.

Who this article is for

This article is written for Unturned™ map authors and object mod authors who are familiar with the Unity Editor, the level editor workflow, and the .dat authoring pipeline. If you are new to Unturned™ modding, start with Project Folder Structure and GUIDs, Custom Map Creation: Project Setup, and Objects, Structures, and Barricades before returning here.

What you'll learn

  • The complete object asset .dat field set organized by functional system
  • The Type (EObjectType) enum and its implications for collision, culling, pathfinding, and feature enablement
  • The Large, Medium, and Small tiering system and the level-designer conventions for each tier
  • The decal system including alpha transparency, scale, and LOD bias
  • The interior culling system including LOD mode, center offset, size configuration, and culling volume exclusion
  • The interactability system including all interact types (Binary_State, Dropper, Note, Water, Fuel, Rubble, NPC, Quest, Dialogue) with their associated fields
  • The rubble destruction system including multi-section breakable objects, health, rewards, XP, blade ID restrictions, zombie damage, and nav integration
  • The conditions and rewards system linking quest completion, flag states, and player inventory to object visibility and interaction outcomes
  • The localization system including object name, interact prompt, dialogue override, and rich-text note lines
  • The holiday restriction system for seasonal object visibility
  • The landmark quality system for long-distance LOD rendering
  • Worked examples for each object tier and functional subsystem
  • A rich field reference table covering every object-specific field

Background: the object tiering system

The Type field (technically an EObjectType enum) is the most consequential decision in any object asset. It determines the object's collision behavior, culling behavior, pathfinding relationship, graphical settings filtering, and default feature enablement. Choosing the wrong Type at the start of authoring can require a complete rebuild of the object's prefab because several features (Load_Nav_On_Server, Load_Nav_In_Editor, Chart behavior, Collision_Important) have tier-specific defaults that change behavior when the Type changes.

TypePurposeCollisionDefault Load_NavDefault ChartDefault Landmark_Quality
LargeLevel-defining structures, buildings, major terrain featuresFull collision, Collision_Important auto-enabledTrueLargeLow
MediumLayout-filling objects, vehicle wrecks, medium propsFull collisionTrueMediumLow
SmallClutter and decoration, small props, debrisFull collisionFalseNoneLow
DecalSurface-applied textures, blood splatters, markingsNo collisionFalseIgnoreLow
NPCQuest givers, vendors, dialogue triggers, character markersVaries by sub-typeFalseIgnoreLow

File and folder structure

Object asset files are organized by size tier in the Bundles/Objects/ directory:

Bundles/
  Objects/
    Large/
      MyLargeBuilding/
        Asset.dat
        Object prefab files
        LOD meshes
    Medium/
      MyMediumProp/
        Asset.dat
        Object prefab files
    Small/
      MySmallClutter/
        Asset.dat
        Object prefab files

The Large, Medium, and Small subdirectories are a convention for organizing object assets by tier. Each object asset has its own subfolder containing the Asset.dat file, the Unity prefab files, and any LOD meshes. Decal and NPC objects do not have dedicated size subdirectories and may be placed in the Objects/ directory directly.

Complete .dat field reference

Identity and type fields

FieldTypeRequiredDefaultPurpose
GUIDuint128 hexYes-128-bit globally unique identifier for the object asset.
IDuint16Yes-Numeric object ID. Must be unique across all loaded object assets.
Typeenum (EObjectType)Yes-The object's type used for sorting, pathfinding, collision, and culling. Values: Large, Medium, Small, Decal, NPC. When using the NPC enumerator, refer to the NPC Character Assets documentation.

Core object fields: collision, rendering, and behavior

FieldTypeRequiredDefaultValid valuesPurpose
Add_Kill_TriggersboolNoFalseTrue, FalseIf True, adds a kill volume inside the object that kills players who clip inside it. Prevents out-of-bounds exploits such as players building bases inside boulder objects.
Add_Night_Light_ScriptflagNoNot set-Adds a script that looks for a child transform named "Light". During the night the light is turned on; during the day the light is turned off.
Allow_StructuresflagNoNot set-Structures can be built on top of this object. Useful for objects that serve as a foundation for player building, such as a large flat platform.
Causes_Fall_DamageboolNoTrueTrue, FalseWhether players should take fall damage when landing on this object. Set to False for objects that should serve as safe landing surfaces.
Chartenum (EObjectChart)NoVaries by TypeIgnore, None, Large, Medium, SmallWhen an object obstructs the terrain, it can appear on a map's chart view. The pixel sampled for the object's color on the chart can be set or overridden. Large type objects default to Large; Medium type objects default to Medium. Defaults to Ignore when using Type Decal or Type NPC.
Christmas_RedirectGUIDNoNoneValid object asset GUIDGUID of the object that should appear during the Festive holiday. The replacement object is shown in place of this object during the Christmas season.
Collision_ImportantflagNoAuto for Large-Prevents collision from being disabled. When using Type Large, this flag is automatically included. For other types, including this flag ensures collision is never disabled by the engine's dynamic collision management.
Exclude_From_Level_BatchingboolNoVaries by TypeTrue, FalseExcludes this object from level batching. Useful when using elaborate setups with Unity Event components. Defaults to True when using Type Decal or Type NPC.
FoliageGUIDNoNoneValid foliage asset GUIDGUID of a foliage asset. Useful for objects such as fake grass, which may want foliage to bake on top of the object similar to terrain materials.
FuelflagNoNot set-Fuel can be siphoned from this object. Deprecated in favor of Interactability Fuel.
Halloween_RedirectGUIDNoNoneValid object asset GUIDGUID of the object that should appear during the Halloween holiday.
Has_Clip_PrefabboolNoTrueTrue, FalseWhether the object has a Clip.prefab. If the object should use the same prefab on the server as on the client, set to False. Most official content uses Has_Clip_Prefab False.
Holiday_RestrictionenumNoNoneNone, Halloween, Christmas, AprilFoolsIf a valid value is specified, the object is only visible during the corresponding holiday. The specified holiday is appended to the object's user-friendly name.
Is_GoreboolNoFalseTrue, FalseWhether this object should be visible if the player has disabled the "Show Blood Splatters" option in graphics settings.
Is_ClutterboolNoFalseTrue, FalseIf True, the object is not instantiated when the player has the "Load Clutter" graphics option disabled. Objects the player can collide with should never be clutter, otherwise the player will rubberband on these objects in multiplayer.
Landmark_QualityenumNoLowOff, Low, Medium, High, UltraThe value that the "Landmarks" graphical setting must be set to in order to see a low detail model of this object from far away distances.
Load_Nav_On_ServerboolNoVaries by TypeTrue, FalseIf True, the Nav game object is instantiated in singleplayer and on dedicated server. Useful for objects which need to affect navmesh baking without colliding with zombies during gameplay. Defaults to True for Medium and Large objects.
Load_Nav_In_EditorboolNoVaries by TypeTrue, FalseIf True, the Nav game object is instantiated in the level editor. Useful for objects which need collision with zombies during gameplay without affecting navmesh baking. Defaults to True for Medium and Large objects.
Material_PaletteGUIDNoNoneValid material palette GUIDGUID of the Material Palette Asset that should be used by the object.
RefillflagNoNot set-Water can be siphoned from this object. Deprecated in favor of Interactability Water.
SnowshoeflagNoNot set-This object should not leave a footprint when baking materials.
SoftflagNoNot set-Vehicles should not take damage when colliding with this object.
Use_Water_Height_Transparent_SortflagNoNot set-Useful for transparent objects such as glass. Ensures correct sorting of transparent pixels with water height.
Exclude_From_Satellite_CaptureboolNoVaries by TypeTrue, FalseIf True, the object is hidden when rendering the GPS/satellite view. Defaults to True if Holiday_Restriction is other than None.

Chart field behavior

Chart valueBehavior
IgnoreObject does not appear on the chart view. Default for Decal and NPC objects.
NoneNo override. The chart uses the default terrain pixel at the object's location.
LargeSamples the chart pixel defined for the Large object category. Default for Large type objects.
MediumSamples the chart pixel defined for the Medium object category. Default for Medium type objects.
SmallSamples the chart pixel defined for the Small object category.

Collision_Important automatic enablement

When Type Large is selected, the Collision_Important flag is automatically included regardless of whether the field appears in the .dat file. Large objects cannot have their collision disabled by the engine's dynamic collision management system. For Medium and Small objects, Collision_Important is optional and should be included when the object's collision must never be disabled.

Holiday restriction and redirect system

The Holiday_Restriction field limits the object's visibility to a specific seasonal holiday. When a valid holiday value is specified, the object is only visible in-game during that holiday period. The holiday name is appended to the object's user-friendly name in the editor. The replacement mechanism also supports holiday-specific object swapping via Christmas_Redirect and Halloween_Redirect, which allow the same object slot to show a completely different asset during the holiday without requiring a separate object definition.

Decal system

Decals are surface-applied textures that render on top of terrain and other objects. They require Type Decal. Decals have no collision, no navmesh interaction, and are excluded from level batching by default.

FieldTypeRequiredDefaultPurpose
Decal_AlphaflagNoNot setMust be set if the decal has a transparent texture. Without this flag, transparent regions of the decal texture render as opaque.
Decal_XfloatYesNoneOverride the scale of the decal on the X-axis. Controls the decal's width on the surface.
Decal_YfloatYesNoneOverride the scale of the decal on the Y-axis. Controls the decal's height on the surface.
Decal_LOD_BiasfloatNo1.0Multiplier for the LOD switching distance. Values above 1.0 make the decal visible from further away before it LODs out.

Interior culling system

The interior culling system controls which objects are rendered or hidden based on the player's position relative to culling volumes. This is the mechanism that hides the interior of a building when the player is outside it and reveals the interior when the player enters.

FieldTypeRequiredDefaultPurpose
Exclude_From_Culling_VolumesboolNoFalseIf True, the object is not managed by culling volumes. Useful for objects that should remain visible regardless of culling volume state.
LODenumNoNoneHow interior culling is determined. None disables interior culling. Mesh uses the mesh bounds to determine what is inside the object. Area uses multiple Occlusion Area components for interior volumes, useful for concave objects.
LOD_BiasfloatNoNoneMultiplier on the threshold distance for interior culling. Requires that LOD has been set.
LOD_Center_XfloatNoNoneOffset for the culling volume's local position on the X-axis. Requires that LOD has been set.
LOD_Center_YfloatNoNoneOffset for the culling volume's local position on the Y-axis. Requires that LOD has been set.
LOD_Center_ZfloatNoNoneOffset for the culling volume's local position on the Z-axis. Requires that LOD has been set.
LOD_Size_XfloatNoNoneOffset for the culling volume's size on the X-axis. Requires that LOD has been set.
LOD_Size_YfloatNoNoneOffset for the culling volume's size on the Y-axis. Requires that LOD has been set.
LOD_Size_ZfloatNoNoneOffset for the culling volume's size on the Z-axis. Requires that LOD has been set.

Interactability system

The interactability system defines how a player interacts with an object in the game world. The Interactability enum selects the interaction type, and each type enables a specific subset of related fields.

FieldTypeRequiredDefaultPurpose
InteractabilityenumNoVaries by TypeControls the interaction behavior. None means the object cannot be interacted with. Binary_State creates toggleable objects (doors, switches). Dropper spawns items on interaction. Note displays lines of text. Water allows water siphoning. Fuel allows fuel siphoning. Rubble creates destructible objects. NPC enables dialogue, quests, and vendors. Quest enables quest interaction without NPC appearance. Dialogue opens the dialogue screen with a non-NPC appearance. Defaults to NPC when using Type NPC, otherwise defaults to None.

Interactability None

The object cannot be interacted with by the player. No interaction prompt appears when the player looks at the object. This is the default for most decorative objects, scenery props, and terrain features that do not need player interaction.

Interactability Binary_State

Binary_State objects change between two visual states when interacted with - an open or closed door, an on or off switch. The state toggle is triggered by the player pressing the interact key while looking at the object.

FieldTypeRequiredDefaultPurpose
Interactability_Animation_Component_PathstringNo"Root"Transform path relative to object root with Animation component. Specifies which child GameObject carries the animation that plays on state change.
Interactability_DelayfloatNo0Cooldown in seconds before the object can be interacted with again. Prevents rapid toggling.
Interactability_EditorenumNoNoneDetermines how the interactable object appears in the level editor. Set to Toggle to show the alternative state in the editor viewport.
Interactability_EffectGUID or uint16NoNoneEffect asset to play when the object is interacted with.
Interactability_Emissive_Material_ModeenumNoAutoControls emissive material behavior for the child renderer of the Toggle game object. Auto creates a material instance (excluded from level batching texture atlas). None skips material instance creation.
Interactability_HintenumNoDoorLocalization key for the interact prompt text. Values: Door, Switch, Fire, Generator, Use, Custom.
Interactability_NavenumNoNoneControls how the toggle state affects the Nav game object. None does not affect Nav. On activates Nav when the object is in the on state. Off activates Nav when the object is in the off state.
Interactability_PowerenumNoNoneWhether the object must be powered to be usable. None means it cannot be powered. Toggle means the object must be powered to be interacted with. Stay means the object must be powered to remain on.
Interactability_RemoteflagNoNot setDisables the ability for players to interact via a button prompt. The object can only be toggled through other game logic.
Interactability_ResetfloatNoNoneDelay before the object resets to its default state, in seconds.

Interactability Dropper

Dropper objects spawn items when interacted with. They are configured with a list of item drops and a total drop count.

FieldTypeRequiredDefaultPurpose
Interactability_DropsbyteNo0Total number of items dropped from the object. Used in conjunction with Interactability_Drop_#.
Interactability_Drop_#uint16NoNoneID of an item that should be dropped. The # is replaced with a zero-indexed drop slot number.
Interactability_RewardItem_OriginenumNoNatureOverrides the dropped item's quality state. Setting to Admin causes items to spawn at full quality.

Note: The official documentation states it is preferable to use Interactability_Reward_ID instead of the drop system. The drop system is a legacy mechanism maintained for backward compatibility.

Interactability Note

Note objects display lines of rich-text formatted text when interacted with. The text is shown in a note-reading UI panel.

FieldTypeRequiredDefaultPurpose
Interactability_Text_Linesuint16No0Total number of lines to display. Used in conjunction with Interactability_Text_Line_# in the localization file.

Interactability Water and Interactability Fuel

Water and Fuel objects are sources of consumable resources that players can siphon from using the appropriate container item.

FieldTypeRequiredDefaultPurpose
Interactability_Resourceuint16No0How many units of fuel or water are stored in the object. When depleted, the object must regenerate or be refilled.
Interactability_ResetfloatNoNoneDelay before the object's resource resets or respawns, in seconds.

Interactability Rubble

Rubble objects are destructible objects that break into sections when damaged. They support a multi-section destruction system where each section has independent health.

FieldTypeRequiredDefaultPurpose
Interactability_Blade_IDbyteNo0Weapons can only damage this object if they have a matching BladeID_# value.
Interactability_DelayfloatNo0Cooldown before the object can be damaged again after being hit.
Interactability_EffectGUID or uint16NoNoneEffect to play when a section is destroyed.
Interactability_FinaleGUID or uint16NoNoneEffect to play when all sections are destroyed. If used, all dead object sections are also hidden when fully destroyed.
Interactability_Healthuint16No0Total amount of health each section has.
Interactability_HintenumNoUseThe interact prompt shown when looking at a destructible section.
Interactability_InvulnerableflagNoNot setCannot be damaged by lower-power weapon assets that do not have the Invulnerable flag.
Interactability_Proof_ExplosionflagNoNot setImmune to area-of-effect explosive damage.
Interactability_ResetfloatNoNoneDelay before a destroyed object respawns, in seconds.
Interactability_Reward_IDuint16No0ID of an item spawn table to use for rewards.
Interactability_Rewards_MinbyteNo1Minimum amount of item drops to reward when a section is destroyed.
Interactability_Rewards_MaxbyteNo1Maximum amount of item drops to reward when a section is destroyed.
Interactability_Reward_ProbabilityfloatNo1Probability of receiving a reward, as a decimal-to-percent chance (0.0 to 1.0).
Interactability_Reward_XPuint32No0Amount of experience to reward when the object is destroyed.

Note: Although Interactability properties can create a destructible object, the dedicated Rubble_ system (documented below) is more specific to destruction mechanics. The official recommendation is to use the Rubble system for destructible objects while keeping the Interactability system for interaction, allowing destructible objects that are also interactable.

Interactability NPC, Quest, Dialogue

These interaction types connect objects to the NPC dialogue, quest, and vendor systems.

FieldTypeRequiredDefaultPurpose
Interactability_DialogueGUIDNoNoneDialogue asset to open for Interactability Dialogue mode. By default the object's name is used as the character name in dialogue, but this can be overridden with the Dialogue_Name option in the localization file.

Rubble system

The Rubble system is the dedicated destruction system for object assets. It provides finer-grained control over destruction mechanics than the Interactability Rubble system and is the preferred approach for authoring destructible objects.

FieldTypeRequiredDefaultValid valuesPurpose
RubbleenumNoNoneNone, DestroyThe destruction mode. Destroy enables the rubble destruction system. All other Rubble_ fields require this field to be set.
Rubble_All_Sections_Destroyed_Alert_RadiusfloatNoNoneAny non-negative floatIf set, alerts nearby enemies when all sections are destroyed.
Rubble_Blade_IDbyteNo00-255Weapons can only damage this object if they have a matching BladeID_# value. Default 0 means unrestricted.
Rubble_Can_Zombies_DamageboolNoFalseTrue, FalseIf True, zombies can attack this object if it is blocking their path.
Rubble_EditorenumNoAliveAlive, DeadDetermines how the destructible object appears in the level editor. Setting to Dead shows the fully destroyed state.
Rubble_EffectGUID or uint16NoNoneValid effect assetEffect to play when a section of the destructible object is destroyed.
Rubble_FinaleGUID or uint16NoNoneValid effect assetEffect to play when all sections are destroyed. If used, all dead object sections are also hidden when fully destroyed.
Rubble_Healthuint16No00-65535Total amount of health each section has.
Rubble_InvulnerableflagNoNot set-Cannot be damaged by lower-power weapon assets that do not have the Invulnerable flag.
Rubble_Nav_ModeenumNoUnaffectedUnaffected, DeactivateIfAllDeadDefaults to Unaffected. DeactivateIfAllDead deactivates the Nav game object when all rubble sections are destroyed.
Rubble_Proof_ExplosionflagNoNot set-Immune to area-of-effect explosive damage.
Rubble_ResetfloatNoNoneAny non-negative floatDelay before a destroyed object respawns, in seconds.
Rubble_Respawn_All_Sections_SimultaneouslyboolNoFalseTrue, FalseIf True, all sections respawn at the same time.
Rubble_Reward_IDuint16No0Valid spawn table IDID of an item spawn table to use for rewards.
Rubble_Rewards_MinbyteNo10-255Minimum amount of item drops to reward.
Rubble_Rewards_MaxbyteNo10-255Maximum amount of item drops to reward.
Rubble_Reward_ProbabilityfloatNo10.0-1.0Probability of receiving a reward, as a decimal-to-percent chance.
Rubble_Reward_XPuint32No0Any non-negative integerAmount of experience to reward when the destructible object is destroyed.
Rubble_Section_Destroyed_Alert_RadiusfloatNoNoneAny non-negative floatAlerts nearby enemies when an individual section is destroyed. Not used when the final section is destroyed.
Rubble_Zombie_Damage_MultiplierfloatNoNoneAny non-negative floatMultiplier for damage from zombies if Rubble_Can_Zombies_Damage is True.

Conditions and rewards system

Conditions control the visibility and interactability of an object based on external triggers. The standard Conditions system controls object visibility (whether the object appears in the world at all). The Interactability_ prefixed conditions control whether the object can be interacted with.

Field patternApplies toPurpose
ConditionsObject visibilityControls whether the object is visible based on conditions. Standard condition property names without a prefix.
Condition_#Object visibilityIndividual condition entries using the standard condition naming convention.
Interactability_ConditionsObject interactabilityControls whether the object can be interacted with based on conditions.
Interactability_Reward_#Object interactionRewards triggered when the object is interacted with, such as completing a quest.

Conditions can control object visibility after a quest is completed. Rewards can trigger consequences when the object is interacted with, such as completing the current quest stage.

Localization fields

The localization system provides user-facing text for objects. These fields go in the English.dat file.

FieldFormatPurpose
NamestringObject name in user interfaces. Displayed when the player looks at the object.
InteractstringWhen the object uses Interactability_Hint Custom, this property sets the text displayed as the interact prompt.
Interactability_Text_Line_#Rich TextA line of text displayed when a note object is interacted with. Supports rich text formatting.
Dialogue_NamestringOverrides the character name in dialogue. Defaults to the object name.

Complete .dat examples

Example 1: Large building shell with interior culling

GUID a1b2c3d4e5f64a7b8c9d0e1f2a3b4c5d
ID 60001
Type Large

Add_Night_Light_Script
Allow_Structures

Exclude_From_Culling_Volumes False
LOD Mesh
LOD_Bias 1.5
LOD_Center_X 0
LOD_Center_Y 5
LOD_Center_Z 0
LOD_Size_X 20
LOD_Size_Y 10
LOD_Size_Z 20

Landmark_Quality Medium
Chart Large

Companion English.dat:

Name Large Warehouse Shell

Example 2: Medium vehicle wreck with rubble destruction

GUID b2c3d4e5f60a1b7c8d9e0f1a2b3c4d5e
ID 60010
Type Medium

Rubble Destroy
Rubble_Health 200
Rubble_Blade_ID 3
Rubble_Can_Zombies_Damage True
Rubble_Effect f1a2b3c4d5e64a7b8c9d0e1f2a3b4c5d
Rubble_Finale f2a3b4c5d6e64a7b8c9d0e1f2a3b4c5d
Rubble_Reset 120.0
Rubble_Rewards_Min 2
Rubble_Rewards_Max 4
Rubble_Reward_Probability 0.8
Rubble_Reward_XP 50
Rubble_Reward_ID 70001
Rubble_Zombie_Damage_Multiplier 0.5
Rubble_Nav_Mode DeactivateIfAllDead

Chart Medium
Landmark_Quality Low

Companion English.dat:

Name Destroyed Military Truck

Example 3: Small clutter prop

GUID c3d4e5f60a1b7c8d9e0f1a2b3c4d5e6f
ID 60020
Type Small

Is_Clutter True
Causes_Fall_Damage False

Chart None

Companion English.dat:

Name Small Rock Formation

Example 4: Decal with transparency

GUID d4e5f60a1b7c8d9e0f1a2b3c4d5e6f70
ID 60030
Type Decal

Decal_Alpha
Decal_X 2.0
Decal_Y 1.5
Decal_LOD_Bias 1.2

Exclude_From_Level_Batching True

Example 5: NPC quest giver

GUID e5f60a1b7c8d9e0f1a2b3c4d5e6f7081
ID 60040
Type NPC

Interactability NPC
Interactability_Delay 0.5
Interactability_Hint Use

Chart Ignore
Exclude_From_Level_Batching True
Has_Clip_Prefab False

Example 6: Fuel source with interactability

GUID f60a1b7c8d9e0f1a2b3c4d5e6f708192
ID 60050
Type Medium

Interactability Fuel
Interactability_Delay 2.0
Interactability_Resource 500
Interactability_Reset 300.0
Interactability_Hint Use

Chart Medium

Example 7: Note with multiple text lines

GUID 60a1b7c8d9e0f1a2b3c4d5e6f708192a
ID 60060
Type Small

Interactability Note
Interactability_Text_Lines 3
Interactability_Delay 1.0
Interactability_Hint Read

Chart None
Is_Clutter False

Companion English.dat:

Name Old Journal Page
Interact Read the page
Interactability_Text_Line_0 <b>Journal Entry 47</b>
Interactability_Text_Line_1 I have been tracking the source of the outbreak for three days now.
Interactability_Text_Line_2 The military checkpoint north of the city may have answers.

Example 8: Holiday-restricted object

GUID 1b7c8d9e0f1a2b3c4d5e6f708192a0b
ID 60070
Type Small

Holiday_Restriction Halloween

Is_Clutter False
Chart Ignore
Exclude_From_Satellite_Capture True

Example 9: Condition-gated object visibility

GUID 2c8d9e0f1a2b3c4d5e6f708192a0c1b
ID 60080
Type Small

Condition_0 QuestComplete ExampleQuestFlag

Chart None
Is_Clutter False

Tier-specific authoring guidelines

Large object guidelines

Large objects are the most performance-sensitive category because they are always loaded and always collide. Always confirm Collision_Important is respected (automatic for Type Large). Set Landmark_Quality to at least Low so the object renders at long distances. Use interior culling for any Large object the player can enter. Set Allow_Structures only if the object has a flat, accessible surface players should be able to build on. Use Chart Large for major landmarks that should appear on the map view. Divide very large structures into multiple prefab sections with independent collision to avoid physics performance issues.

Medium object guidelines

Medium objects are the most common category for interactive objects. Set Load_Nav_On_Server True for objects that should affect zombie pathfinding. Use the Rubble system for destructible medium objects rather than the legacy Interactability Rubble system. Set Chart Medium for objects large enough to appear on the map view. Avoid setting Is_Clutter True on medium objects placed at high density.

Small object guidelines

Small objects are the primary category for decorative clutter and environmental detail. Set Is_Clutter True for purely decorative objects that do not affect gameplay. Never set Is_Clutter True on objects the player can collide with - this causes rubberbanding in multiplayer. Set Causes_Fall_Damage False on small objects players might step onto. Use Chart None or omit the field. Set Landmark_Quality Off.

Decal object guidelines

Always set Decal_Alpha for decals with transparency. Set Decal_X and Decal_Y to the intended surface coverage. Use Decal_LOD_Bias values above 1.0 for important decals that should remain visible at distance. Set Exclude_From_Level_Batching True for decals with animated or dynamic materials.

NPC object guidelines

Always reference a valid NPC Character Asset when using Type NPC. Set Has_Clip_Prefab False for most NPC objects. Set Exclude_From_Level_Batching True. Use Interactability_Hint Use for generic NPC interaction prompts. Provide a Dialogue_Name in the localization file to override the default object name.

Diagnostic table

SymptomMost likely causeResolution
Object does not appear in-gameHoliday_Restriction blocks visibility outside the holiday periodCheck the holiday restriction value; remove if year-round visibility is intended
Object collision does not workType Medium/Small without Collision_ImportantAdd Collision_Important flag
Object rubberbands in multiplayerIs_Clutter True on a collidable objectSet Is_Clutter False on any object the player can collide with
Decal renders opaque instead of transparentDecal_Alpha flag missingAdd Decal_Alpha
Decal appears at wrong scaleDecal_X and Decal_Y not set or wrongSet correct X and Y scale
Interior of building not culling properlyLOD field not set or culling volume misconfiguredSet LOD Mesh or LOD Area and configure center and size
Interior culling hides wrong objectsExclude_From_Culling_Volumes should be TrueSet to True on objects that should not be managed by culling volumes
Object does not appear on map viewChart field set to Ignore or NoneSet Chart to the appropriate tier
Binary_State door does not animateAnimation_Component_Path wrong or animation missingVerify the path and animation clip
Note object shows no textText_Lines not set or localization keys missingSet Text_Lines and author all entries in English.dat
Rubble object does not breakHealth is 0 or Rubble not setSet Rubble Destroy and configure health
Rubble object breaks but no dropsReward_ID not set or spawn table emptySet a valid spawn table ID
Rubble object respawns instantlyReset not set or set to 0Set the intended respawn delay
Object not damaged by weaponsBlade_ID restricts damageSet Rubble_Blade_ID 0 to allow all weapons
Zombies walk through destructible objectCan_Zombies_Damage is FalseSet Rubble_Can_Zombies_Damage True
Fuel/water object always emptyInteractability_Resource is 0Set the intended resource capacity
NPC object does not open dialogueDialogue GUID missing or not loadedConfirm the dialogue asset GUID is valid
Night light script does not workAdd_Night_Light_Script missing or Light transform not foundAdd flag and ensure prefab has child named "Light"
Kill trigger does not kill clippersAdd_Kill_Triggers is FalseSet Add_Kill_Triggers True

Frequently asked questions

Can one object have both Interactability and Rubble systems active?

Yes. The official documentation states that although Interactability properties can create a destructible object, it is preferable to use the Rubble system for destruction mechanics while keeping the Interactability system for interaction. This allows creating destructible objects that are also interactable.

What is the difference between Interactability Rubble and the dedicated Rubble system?

The dedicated Rubble system (prefixed with Rubble_) is more specific to the destruction mechanic and is the recommended approach for new object assets. The Interactability system should be reserved for the interaction behavior, while the Rubble_ system handles the destruction behavior. Both systems can coexist in the same asset.

How many sections can a rubble object have?

The engine does not impose a hard limit on the number of rubble sections. The practical limit is determined by performance considerations - each section adds draw calls and physics processing. The cohort recommendation is to use 2-6 sections for most destructible objects.

Can a condition-gated object become visible after a quest, then become interactable after a second condition?

Yes. The Conditions system controls visibility, and the Interactability_Conditions system controls interactability. These are independent gate systems. An object could be invisible until quest A is complete, then visible but non-interactable until quest B is accepted.

What happens if I set Type Decal but omit Decal_X and Decal_Y?

The decal will not render correctly because the engine has no scale information to determine the decal's size on the surface. The decal may appear as a single pixel, as a very small tile, or it may fail to render entirely. Both Decal_X and Decal_Y are required for Type Decal objects.

Can a Large object become interactive without requiring interior culling?

Yes. Interactability and interior culling are independent systems. A Large object can have Interactability Binary_State (a large hangar door) without requiring interior culling if the object does not have an interior space that needs to be hidden when the player is outside.

How do the Christmas_Redirect and Halloween_Redirect fields interact with Holiday_Restriction?

When a redirect GUID is set, the engine swaps the entire object for the specified replacement object during the holiday. This is different from Holiday_Restriction, which simply hides the object outside the holiday period. A redirect allows a completely different object (with different collision, interactability, and visuals) to appear during the holiday season.

Do holiday-restricted objects still load in memory outside the holiday period?

The object asset itself is loaded at level load time regardless of holiday restrictions. The object's resources (meshes, textures, materials) remain in memory. Only the in-game rendering is suppressed by the holiday restriction. Objects controlled via redirect also stay in memory because the redirect target must be loaded.

Can I use the Fuel flag and Interactability Fuel on the same object?

The Fuel flag is deprecated in favor of Interactability Fuel. Setting both on the same object may produce undefined behavior. Use Interactability Fuel exclusively for new object assets.

What is the practical difference between Load_Nav_On_Server and Load_Nav_In_Editor?

Load_Nav_On_Server controls whether the Nav game object is instantiated during actual gameplay. Load_Nav_In_Editor controls whether it appears in the level editor viewport. Objects that need to affect zombie pathfinding at runtime should have Load_Nav_On_Server True. Objects that need collision with zombies during gameplay but should not affect navmesh baking should have Load_Nav_In_Editor True and Load_Nav_On_Server False.

Can a Rubble object and an Interactability Dropper coexist on the same object?

Yes, but only if the interactability type supports it. If Interactability is set to Dropper and Rubble Destroy is also set, the object can be destroyed by damage (producing rubble rewards) and also interacted with directly to drop items. The two reward pools are independent.

How do I make an object that is visible only on specific graphics quality settings?

Use Landmark_Quality to control visibility at long distances, and Is_Clutter to control visibility based on the "Load Clutter" option. For more granular graphics-settings filtering, the object's prefab material quality, LOD group settings, and mesh complexity should be tuned in Unity rather than through the .dat file.

Can I use Interactability Power Stay on a door so it closes when power is lost?

Yes. This is a common configuration for powered doors in base-defense maps. Set Interactability Power Stay so the door remains open only while powered. When the generator runs out of fuel or is destroyed, the door closes automatically.

What is the maximum value for Rubble_Health?

Rubble_Health is a uint16 with a maximum value of 65535. For most destructible objects, values in the range of 50-500 are appropriate. Boss arena obstacles or heavily fortified objects may use values up to several thousand.

Best practices

  • Choose the correct Type at the start of authoring. Changing it later requires validating every field that has tier-specific defaults.
  • Use interior culling (LOD Mesh or LOD Area) for any Large object the player can enter.
  • Never set Is_Clutter True on collidable objects - this causes rubberbanding in multiplayer.
  • Use the dedicated Rubble_ system for destructible objects rather than the legacy Interactability Rubble system.
  • Always set Exclude_From_Culling_Volumes True on background objects that should remain visible regardless of player position.
  • Set Has_Clip_Prefab False for objects where the server and client should use the same prefab (most official content follows this pattern).
  • Author separate chart values for each tier - Chart Large for major landmarks, Chart Medium for notable props, Chart Ignore for small details.
  • Test holiday-restricted objects by temporarily removing the restriction during development to verify the base object is correct.
  • Document object interactability in the map's documentation so players know which objects are interactive.
  • Use Interactability_Hint Custom with a descriptive Interact text for objects that have non-standard interaction prompts.

Advanced considerations

Object file format completeness

Object asset .dat files follow the standard Unturned item file format: UTF-8 without BOM, CRLF line endings, single-space key-value separator, and // comment prefix. The file format does not support nesting or block structures. All fields are flat key-value pairs at the top level.

When the parser encounters a field it does not recognize or a value of the wrong type, it skips that line silently and continues. This means a misspelled field name causes the field to be ignored at load time with no error message. The most critical field to spell correctly is Type, because an invalid type value causes the object to fail to load as an object asset entirely - the asset may appear in the asset list but will not render in the level.

Multi-object prefab optimization for Large structures

For very large structures that contain multiple functional sub-objects (a warehouse with separate collision for the walls, floor, roof, and interior objects), the cohort recommendation is to author the main structure as a single Large object with interior culling and to place interior interactable objects (containers, notes, NPCs) as separate Medium or Small objects inside the culling volume. This separation allows the interactable objects to be managed independently - they can be destroyed, moved, or removed without affecting the main structure.

Rubble Nav interaction with Interactability Nav

When Rubble_Nav_Mode is combined with Interactability_Nav, the Nav game object is only active if both systems activate it (AND logic). For example, Interactability_Nav On (object is in the open state) AND Rubble_Nav_Mode Unaffected (all sections intact) means Nav is active. If either condition is false, Nav is inactive. This combined behavior is useful for creating doors that block zombie paths while closed and intact, but stop blocking once the door is open or destroyed.

Performance considerations for object-heavy maps

Maps with thousands of placed objects benefit from careful use of the Is_Clutter, Landmark_Quality, and Exclude_From_Level_Batching fields. Objects tagged as clutter are excluded entirely when the player disables the Load Clutter option, which is the single biggest performance lever for low-end clients. Objects with high Landmark_Quality thresholds render as low-detail landmarks at distance, reducing the per-frame draw call count. Objects excluded from level batching cannot benefit from the batching optimization and should be limited to objects that genuinely need per-object material instances.

Appendix A: Object type field assignment quick reference

If your object is...Use Type
A building the player can enterLarge
A major terrain featureLarge
A vehicle wreckMedium
A placeable containerMedium
A fuel pump or water sourceMedium
A small rock or grass tuftSmall
A readable noteSmall
A blood splatter on the groundDecal
A road markingDecal
A quest giverNPC
A dialogue triggerNPC or Dialogue interactability

Appendix B: Rubble system vs. Interactability Rubble comparison

AspectDedicated Rubble systemInteractability Rubble
Field prefixRubble_Interactability_
Primary useDestruction mechanicsInteraction behavior
Can coexist with other Interactability types?YesNo (only one Interactability at a time)
Official recommendationPreferred for new objectsLegacy
Zombie damage controlRubble_Can_Zombies_Damage + Rubble_Zombie_Damage_MultiplierNot available
Nav mode controlRubble_Nav_ModeNot available
Simultaneous respawnRubble_Respawn_All_Sections_SimultaneouslyNot available

Appendix C: External references

Authoring checklist

Before publishing an object mod or a map containing custom objects, confirm the following:

  • [ ] GUID is unique - generated fresh, not copied from another asset
  • [ ] ID is unique across all loaded object assets
  • [ ] Type is set to the correct EObjectType value (Large, Medium, Small, Decal, NPC)
  • [ ] Decal objects have Decal_X and Decal_Y set
  • [ ] Holiday-restricted objects are tested without the restriction during development
  • [ ] Interactive objects have the correct Interactability type and associated fields
  • [ ] Interactability_Hint is set to the appropriate prompt type or Custom with Interact localization
  • [ ] Rubble objects have Rubble Destroy set and Rubble_Health configured
  • [ ] Condition-gated objects have the correct conditions and rewards configured
  • [ ] Note objects have Interactability_Text_Lines set and all localization keys authored
  • [ ] Landmark_Quality is set appropriately for Large and Medium objects
  • [ ] Collidable small objects do not have Is_Clutter True
  • [ ] Objects with animated children have Exclude_From_Level_Batching True
  • [ ] Has_Clip_Prefab is set to False if the server and client share the same prefab
  • [ ] Nav-related fields (Load_Nav_On_Server, Load_Nav_In_Editor) are configured per the object's role
  • [ ] Tested in the level editor: object renders at expected position, collision matches visual, interactability works, rubble destruction behaves as intended

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Complete object asset .dat field reference, tiering system, decal system, interior culling, interactability, rubble destruction, conditions and rewards, localization, worked examples for each tier, FAQ, diagnostic table, appendices.

Cross-references