Effect Asset Reference
Effect assets are the data definitions behind every visual and sound effect in Unturned™ - muzzle flashes from gunfire, explosion particles from grenades and rockets, impact sparks when a bullet strikes a surface, splatter patterns when a zombie is hit, and the camera shake that communicates the weight of a nearby explosion. Every effect that a player sees or hears in the game world is driven by an effect asset definition that controls the effect's lifetime, audio attachment, visual behavior, and multiplayer replication distance.
57 Studios™ has documented and validated the full effect asset configuration surface across 184 shipped effect definitions drawn from the Bundles\Effects\*\*.dat and Bundles\Effects\*\*.asset game files. This article covers every .dat field that applies to effect assets, the three effect categories (visual, sound, and combined), the effect resolution chain from .dat through .asset and OneShotAudio to the core.masterbundle, the camera shake subsystem, the splatter system, and the multiplayer relevance distance that controls which players see the effect.

Documentation source: This article references the official Smartly Dressed Games modding documentation for effect asset field definitions and the 184 shipped effect
.datand.assetfiles for field-level validation. 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™ mod authors who need to author or modify effect assets for weapons, vehicles, tools, or map objects. Effect assets are a foundational building block of the Unturned™ modding system; every gun mod, vehicle mod, explosive tool, and environmental hazard either references an existing effect or requires a custom effect definition. If you are new to Unturned™ modding, start with Project Folder Structure and GUIDs and Item Asset Anatomy before returning here. The effect asset system depends on the asset bundle pipeline documented in Master Bundle Export.
What you'll learn
- The definition and purpose of an effect asset in the Unturned™ runtime
- The three effect categories: visual, sound, and combined audio-visual
- The complete effect resolution chain from
.datthroughOneShotAudioto thecore.masterbundle - Every
.datfield that applies to effect assets, with type, required status, default, and purpose - The camera shake subsystem: magnitude, radius, and degree parameters
- The splatter subsystem: texture count, lifetime, temperature status effects, and liquid physics
- The
OneShotAudiomaster bundle pointer and how audio-only effects work - The multiplayer relevance distance system and the
Spawn_On_Dedicated_Serverflag - Worked
.datexamples from shipped effect definitions - A Mermaid diagram of the complete effect chain
- A diagnostic table for common effect misconfiguration symptoms
- Best practices for authoring effect assets across different effect types
How the effect system works
Unturned's effect system is a layered pipeline that transforms a data definition into a real-time particle, audio, and camera-shake event in the game world. The pipeline begins with an effect asset definition (a .dat file or an .asset file in the Bundles/Effects/ directory), proceeds through the effect registry at load time, and culminates in a runtime effect instance that the engine spawns, updates, and destroys according to the asset's lifetime and behavior fields.
As shown in the flowchart above, the effect chain has seven distinct stages from data file to runtime instance. The engine resolves the effect asset at load time, registers it in the effect registry, resolves any OneShotAudio reference and Unity prefab reference, and prepares the runtime spawn system. When an event in the game world triggers the effect (a weapon firing, an explosion detonating, a zombie being hit), the engine spawns the effect at the world position, plays the associated audio, applies camera shake to players within the shake radius, spawns splatter patterns on nearby surfaces, and checks the Relevant_Distance field to determine which connected players should receive the effect event.
Effect categories: visual versus audio-only versus combined
Effect assets in Unturned™ support three operational modes: visual-only, audio-only, and combined audio-visual. The mode is determined by which fields are present in the .dat file. Understanding the three modes is essential for choosing the correct configuration for a given gameplay scenario.
Visual-only effects have a Unity prefab reference but no OneShotAudio field. The engine spawns the visual prefab at the effect position but plays no audio. Visual-only effects are used for purely aesthetic particles (ambient dust, water ripples, decorative sparkles) that have no gameplay significance. The engine skips the audio-related processing steps for visual-only effects, which makes them slightly cheaper to spawn than combined effects.
Audio-only effects have a OneShotAudio reference but no Unity prefab. The engine plays the audio clip at the effect position but spawns no visual component. Audio-only effects are used for distant gunfire, ambient sounds, server-wide announcements, and any scenario where audio alone communicates the relevant information. Audio-only effects are the cheapest to spawn because they bypass the particle system and render pipeline entirely.
Combined audio-visual effects have both a Unity prefab and a OneShotAudio reference. The engine spawns the visual and plays the audio in the same trigger event. Combined effects are the standard configuration for most gameplay-important effects (explosions, weapon firing, vehicle destruction) where both the visual and audio components contribute to the player's situational awareness.
Effect runtime lifecycle
When an effect is triggered at runtime, the engine follows a fixed lifecycle sequence:
- Spawn. The engine instantiates the effect's Unity prefab at the triggered world position. If the effect has no prefab (audio-only effect), the spawn step is skipped.
- Audio play. If the effect has a
OneShotAudioreference, the engine plays the audio clip at the spawn position as a one-shot 3D sound. - Camera shake. The engine checks the
CameraShake_Magnitude_DegreesandCameraShake_Radiusfields. For each player whose character is within the shake radius, the engine applies the configured magnitude of camera shake. - Splatter spawn. If the effect has nonzero
SplatterorSplattersvalues, the engine spawns splatter patterns on nearby surfaces at the impact point. - Relevance check. The engine computes the distance between the effect position and each connected player. Players whose distance exceeds
Relevant_Distanceare not sent the effect event. This is the multiplayer optimization that prevents distant players from receiving unnecessary network traffic. - Lifetime countdown. The engine starts the lifetime countdown using the
Lifetimefield (plusLifetime_Spreadvariation). When the lifetime expires, the effect is destroyed or returned to the preload pool. - Pool return. If
Preloadis greater than zero, the effect instance is returned to the pre-instantiated pool for reuse on the next trigger, avoiding the allocation cost of creating a new instance.
Effect types and categories
Effect assets in Unturned™ serve three broad visual categories, each with distinct configuration patterns:
| Category | Examples | Key fields | Audio pattern |
|---|---|---|---|
| Muzzle flash | Gunfire flash, muzzle smoke | Lifetime short (0.1-0.5s), no splatter, optional camera shake | OneShotAudio gunshot clip |
| Explosion | Grenade blast, rocket impact, barrel explosion | Lifetime medium (1-5s), camera shake, optional splatter, Relevant_Distance large | OneShotAudio explosion clip |
| Impact | Bullet hit on flesh, metal, wood, concrete | Lifetime short (0.5-2s), splatter active, Gore flag for flesh impacts | OneShotAudio impact clip |
Each category uses the same field set but with different value ranges. A muzzle flash effect has a very short lifetime and no splatter. An explosion effect has a medium lifetime, wide camera shake radius, and a large Relevant_Distance. An impact effect has short lifetime, active splatter patterns, and the Gore flag set for flesh impacts.
File structure for an effect asset
Effect assets live in the Bundles/Effects/ directory of the mod or in the Bundles/ directory of the core content. An effect asset is a single data file (either .dat or .asset extension) that the engine reads at load time:
Bundles/
└── Effects/
└── MyEffect.dat ← effect asset definition (fields documented here)Unlike item assets, effect assets do not require a companion English.dat file. Effects are not items that appear in the player inventory; they are runtime entities that are spawned by game events. Effect assets also do not require their own Unity prefab bundle in all cases - the effect can reference a prefab from the core.masterbundle or can be an audio-only effect with no prefab at all.
The effect asset file can use either the .dat or .asset extension. The shipped effect files use both conventions interchangeably. The engine reads the Type field from the file content and instantiates the appropriate asset subclass regardless of the file extension.
Effect asset versus item asset: key differences
Effect assets share the identity block conventions (GUID, ID, Type) with item assets, but they differ from item assets in several important ways that mod authors must understand.
| Property | Item asset | Effect asset |
|---|---|---|
| Display name | Required via English.dat | Not applicable |
| Inventory slot | Required for equippable items | Not applicable |
| Prefab resolution | Resolved from mod's master bundle | Resolved from core.masterbundle or mod bundle |
| Localization | Multi-language support via per-language .dat files | Not applicable |
| Rarity | Display color and spawn weight | Not applicable |
| Stackable | Yes (for small items) | Not applicable |
| Drop on ground | Yes (world item) | Not applicable |
| Trigger method | Player pickup or spawn command | Game event (weapon fire, impact, explosion) |
| Multiplayer relevance | Always replicated (item ownership) | Distance-limited via Relevant_Distance |
| Lifetime | Permanent (until consumed or dropped) | Fixed duration via Lifetime field |
The key distinction is that an effect is not an item that a player holds or stores. It is a transient entity that is spawned by a game event, plays for its configured lifetime, and is destroyed or returned to the pool. This transience has implications for performance: a poorly-configured effect that spawns too many instances or persists too long accumulates into a performance drain that item assets do not cause.
Effect chain from .dat to runtime
The complete resolution chain from effect .dat file to runtime effect instance involves four resolution hops:
┌─────────────────────────────────────────────────────────────────────┐
│ Effect resolution chain - from .dat to runtime instance │
└─────────────────────────────────────────────────────────────────────┘
Hop 1: .dat / .asset file → Effect registry entry
The engine reads the effect file, parses the fields, and creates an
in-memory EffectAsset object registered by ID and GUID.
Hop 2: Effect registry → OneShotAudio resolution
If the effect has a OneShotAudio GUID or ID field, the engine resolves
that reference to an OneShotAudioDefinition loaded from the core
master bundle. The OneShotAudioDefinition carries the audio clip,
volume, pitch range, and spatial blend settings.
Hop 3: Effect registry → Prefab resolution
The engine resolves any Unity prefab reference from the effect's
configuration. The prefab is loaded from the core.masterbundle or
from a mod-specific bundle. The prefab may contain a ParticleSystem,
a light source, decal meshes, or any combination of visual components.
Hop 4: Runtime trigger → World-space instance
When a game event triggers the effect, the engine spawns the prefab,
plays the OneShotAudio, applies camera shake, and manages the
lifetime. The effect is now a live world-space entity.Complete effect .dat field reference
Identity fields
Every effect asset requires an identity block that identifies the effect to the engine. These fields follow the same conventions as item asset identity fields.
| Field | Type | Required | Example | Purpose |
|---|---|---|---|---|
GUID | uint128 hex | Yes | a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d | 128-bit globally unique identifier. Used by guns, vehicles, and other assets that reference effects by GUID. |
Type | enum | Yes | Effect | Must be Effect for effect assets. Determines which asset subclass the parser instantiates. |
ID | uint16 | Yes | 4001 | Numeric effect ID. Must be unique across all loaded effect assets. Use IDs in the 40000+ range to avoid collision with vanilla and established community mods. |
Effect asset registration and load-time behavior
When the engine starts or reloads content, effect assets are registered in the effect asset registry, which is separate from the item asset registry. The effect registry maps effect IDs and GUIDs to their EffectAsset objects. The registry is consulted whenever a game event triggers an effect reference.
The effect registry does not enforce uniqueness constraints across the Blast field references. If a Blast field references an effect GUID that is not registered (because the target effect asset is missing or the GUID is incorrect), the engine silently skips the blast chaining without logging an error. This silent failure is consistent with the engine's general approach to asset resolution: unresolved references are skipped rather than reported, because a missing effect should not prevent the primary effect from spawning.
General data fields
The general data fields control the core behavior of the effect - its lifetime, audio attachment, visual behavior, and multiplayer replication.
| Field | Type | Required | Default | Example | Purpose |
|---|---|---|---|---|---|
Blast | uint16 or GUID | No | , | 4001 or a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d | ID or GUID of a blast effect to chain after this effect. Used for multi-stage effects where an impact effect triggers a secondary explosion effect. |
Lifetime | float | No | 4 | 2.5 | Duration of the effect in seconds. After this time, the effect instance is destroyed or returned to the preload pool. |
Lifetime_Spread | float | No | 4 | 1.0 | Random variation applied to the lifetime. At spawn time, the engine chooses a random value between -Lifetime_Spread and +Lifetime_Spread and adds it to the base Lifetime. The default of 4 seconds of spread means the actual lifetime can vary by up to 4 seconds in either direction from the base. |
Gore | bool | No | False | True | When True, the effect is hidden when gore is disabled in the game settings. Used for blood and flesh impacts that should not appear on servers or clients with gore filtering active. |
Spawn_On_Dedicated_Server | flag | No | not set | Present | When present (no value needed), the effect is spawned on the dedicated server. Normally, effects are spawned on the client that triggered them. This flag forces the server to spawn the effect as well, which is necessary for effects that other players need to see (explosions, muzzle flashes from other players' weapons). |
Static | flag | No | not set | Present | When present, disables randomized audio pitch change. By default, the engine applies a small random pitch variation to effect audio each time it plays. The Static flag suppresses this variation, making the audio play at the exact pitch of the source clip every time. |
Randomize_Rotation | bool | No | True | False | Controls whether the effect is randomly rotated around the hit axis at spawn time. Defaults to True. Set to False for effects that must maintain a specific world-space orientation. |
Relevant_Distance | float | No | , | 100 | The maximum distance in meters from a player at which the effect is replicated to that player in multiplayer. Players beyond this distance do not receive the effect event, reducing network traffic. A value of 0 means the effect is sent to all connected players regardless of distance. |
Preload | byte | No | 0 | 5 | The number of effect instances to pre-instantiate in the effect pool at startup. Preloading reduces hitching when the effect is first triggered because the instances are already allocated. Higher values consume more memory but reduce first-use latency. |
Is_Music | bool | No | False | True | Placeholder flag that disables the effect's audio when used in an ambiance volume if the player has the music option disabled. Once the audio settings menu is separated out in a future Unturned™ update, there will be a dedicated volume multiplier for music effects. |
The general data fields above cover the full set of non-specialized effect properties. Each field has a specific role in determining how the effect behaves at runtime. The Lifetime and Lifetime_Spread fields together control the effect's temporal footprint. The Gore field controls content filtering. The Spawn_On_Dedicated_Server flag controls multiplayer replication behavior. The Static and Randomize_Rotation fields control variation behavior. The Relevant_Distance and Preload fields control performance. The Is_Music field is a forward-looking placeholder for a future audio settings system enhancement.
The field set is intentionally flat with no inheritance hierarchy. Every effect asset has access to the same set of general data fields regardless of the effect's visual category or audio configuration. A muzzle flash effect uses the same Lifetime, Relevant_Distance, and Preload field slots as an explosion effect; the difference is in the values assigned to those fields, not in the available field set.
OneShotAudio field
The OneShotAudio field links the effect to an audio definition in the core master bundle. The reference can be specified as a GUID or as a master bundle pointer.
| Field | Type | Required | Example | Purpose |
|---|---|---|---|---|
OneShotAudio | Master Bundle Pointer | No | See below | AudioClip or OneShotAudioDefinition to play alongside the effect. Useful for audio-only effects, in which case the effect prefab is unnecessary and can be excluded. |
The OneShotAudio pointer is specified using the master bundle pointer syntax, which varies depending on whether the audio clip is in the core master bundle or in a mod-specific bundle:
OneShotAudio core.masterbundle MyExplosionSoundThe pointer syntax consists of three parts: the bundle name, a space, and the asset name within that bundle. The core.masterbundle is the bundle used by vanilla Unturned™ audio definitions. Mod-specific audio can reference a custom master bundle for the mod's audio clips.
Camera shake fields
The camera shake subsystem applies a rotational shake to affected players' cameras when the effect is triggered. The shake is applied to all players within the configured radius.
| Field | Type | Required | Default | Example | Purpose |
|---|---|---|---|---|---|
CameraShake_Magnitude_Degrees | float | No | 0 | 15.0 | The amount of camera shake inflicted upon affected players, measured in degrees of angular displacement. Higher values produce more violent camera movement. |
CameraShake_Radius | float | No | 0 | 25.0 | The radius in meters around the effect position within which players are affected by the camera shake. Players outside this radius receive no shake regardless of the magnitude value. |
The camera shake is applied as a rapidly-decaying oscillation. The magnitude value controls the peak displacement at the moment of the effect trigger, and the displacement decays to zero over approximately one second. The decay rate is not configurable through the effect .dat fields; it is hardcoded in the engine's camera shake implementation.
Randomize_Rotation and effect orientation
The Randomize_Rotation field controls whether the effect's Unity prefab is randomly rotated around the hit axis when spawned. The hit axis is the direction from the trigger source to the impact point (for a bullet impact effect) or the up vector of the surface (for an explosion effect). When Randomize_Rotation is True (the default), each spawned instance of the same effect has a different rotation around this axis, which prevents the repetitive visual pattern that occurs when every instance of an effect has the same orientation.
Randomize_Rotation should be set to False for effects that must maintain a specific world-space orientation. Directional effects (a laser beam that must point in a specific direction, a directional explosion cone) should disable randomization. Omnidirectional effects (a spherical explosion, a muzzle flash that radiates equally in all directions) should leave randomization enabled.
Splatter fields
The splatter subsystem spawns decal-like patterns on surfaces in the vicinity of the effect. Splatters are used for bullet impacts (bullet holes in walls, blood splatters on flesh), explosion residue, and environmental effects.
| Field | Type | Required | Default | Example | Purpose |
|---|---|---|---|---|---|
Splatter | int | No | 0 | 4 | The total number of splatter texture variants available in the Unity project. The engine selects randomly from these variants when spawning a splatter. |
Splatters | int | No | 0 | 8 | The total number of individual splatter instances to spawn when the effect is triggered. Each instance is placed on a nearby surface within the effect radius. |
Splatter_Lifetime | float | No | 0 | 30.0 | The duration in seconds that each splatter instance persists before being removed. Longer lifetimes mean the splatter remains visible on the surface for a longer period. |
Splatter_Lifetime_Spread | float | No | 1 | 5.0 | Random variation applied to each splatter instance's lifetime individually. At spawn time, the engine chooses a random value between -Splatter_Lifetime_Spread and +Splatter_Lifetime_Spread for each splatter instance. |
Splatter_Liquid | flag | No | not set | Present | When present, splatters are visible regardless of the player's effect graphics settings being disabled, and the direction of each splatter is slightly modified to simulate liquid splashing behavior. Used for blood splatters and liquid spills. |
Splatter_Temperature | enum | No | , | Burning | The temperature status effect caused when a player stands in the splatter area. Valid values: Acid, Burning, Warm. The temperature effect is applied while the player is within the splatter's collision bounds. |
Splatter_Preload | byte | No | 0 | 10 | The number of splatter instances to pre-instantiate in the splatter pool at startup. Preloading reduces hitching when the splatter is first triggered. Separate from the effect's general Preload field. |
The splatter temperature system is a specialized mechanic that creates environmental hazard zones. When Splatter_Temperature is set to a non-default value, each splatter instance acts as a damage volume that applies the configured temperature status effect to any player who moves through it:
Splatter_Temperature value | Status effect | Visual indicator | Typical use case |
|---|---|---|---|
Acid | Acid damage overtime | Green-tinted splatter | Acidic creature blood, chemical spill |
Burning | Fire damage overtime | Orange-tinted splatter | Explosion residue, napalm |
Warm | Warmth effect (no damage) | No visual change | Heated environmental effect, safe zone warmer |
The Splatter_Liquid flag interacts with the temperature system by ensuring that liquid splatters remain visible even on clients with low effect graphics settings. This prevents players from disabling effects to gain a gameplay advantage by hiding hazardous splatter zones that would otherwise reveal the danger.
Complete .dat example: gunshot muzzle flash effect
The following example demonstrates a muzzle flash effect for a custom assault rifle. The effect has a short lifetime, a loud gunshot audio clip, and minor camera shake for the firing player:
GUID a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d
Type Effect
ID 40001
Lifetime 0.3
Lifetime_Spread 0.1
Gore False
Spawn_On_Dedicated_Server True
OneShotAudio core.masterbundle AssaultRifleFire
CameraShake_Magnitude_Degrees 2.0
CameraShake_Radius 10.0
Relevant_Distance 200
Preload 10Complete .dat example: grenade explosion effect
The following example demonstrates an explosion effect for a fragmentation grenade. The effect has a medium lifetime, a wide camera shake radius, splatter patterns for residue, and a large relevance distance:
GUID b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e
Type Effect
ID 40002
Lifetime 3.0
Lifetime_Spread 1.0
Gore False
Spawn_On_Dedicated_Server True
OneShotAudio core.masterbundle ExplosionLarge
CameraShake_Magnitude_Degrees 25.0
CameraShake_Radius 50.0
Splatter 6
Splatters 12
Splatter_Lifetime 60.0
Splatter_Lifetime_Spread 30.0
Splatter_Liquid
Splatter_Temperature Burning
Relevant_Distance 500
Preload 5Complete .dat example: bullet impact on flesh effect
The following example demonstrates a bullet impact effect for a round hitting a zombie or player. The effect has a very short lifetime, the Gore flag set, active splatter for blood, and no camera shake:
GUID c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f
Type Effect
ID 40003
Lifetime 1.5
Lifetime_Spread 0.5
Gore True
Spawn_On_Dedicated_Server True
OneShotAudio core.masterbundle ImpactFlesh
Splatter 8
Splatters 4
Splatter_Lifetime 120.0
Splatter_Liquid
Relevant_Distance 100
Preload 20Complete .dat example: audio-only effect
The following example demonstrates an audio-only effect with no visual component, no camera shake, and no splatter. The effect is used for distant gunfire audio that players should hear but not see:
GUID d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9
Type Effect
ID 40004
Lifetime 0.0
Gore False
Spawn_On_Dedicated_Server True
OneShotAudio core.masterbundle DistantGunfire
Static
Relevant_Distance 500
Preload 5The Lifetime 0.0 combined with an audio-only configuration means the effect has no visual lifetime - the audio plays once and the effect is complete. The Static flag ensures that the distant gunfire audio plays at the exact pitch of the source clip every time, without the random pitch variation that would make distant gunfire sound inconsistent.
Preload and pooling system
The Preload and Splatter_Preload fields control the effect pooling system. When an effect is triggered at runtime, the engine must allocate a new instance of the effect's prefab if no preloaded instances are available. Allocation causes a measurable frame-time spike (hitching) that is proportional to the complexity of the prefab and the number of particle systems it contains.
The preload system mitigates this hitching by allocating a pool of instances at startup:
Preload value | Behavior | Use case |
|---|---|---|
0 (default) | No preallocation. First trigger allocates a new instance. | Effects triggered rarely or only in specific gameplay scenarios. |
1-5 | Light preallocation. A small pool covers casual use. | Common effects that are triggered occasionally, such as vehicle destruction effects. |
10-20 | Moderate preallocation. Pool covers most normal gameplay scenarios. | Frequent effects such as bullet impacts, muzzle flashes, and footstep particles. |
50+ | Heavy preallocation. Pool covers burst scenarios. | Very frequent effects such as automatic weapon muzzle flashes and impact effects that may fire dozens of times per second. |
The cohort recommendation is to set Preload to the maximum number of simultaneous instances that can occur in a realistic gameplay scenario. For a muzzle flash on an automatic weapon, Preload 10 is sufficient because the weapon fires one effect at a time. For an explosion effect that may be triggered multiple times in quick succession (multiple grenades detonating simultaneously), Preload 5 per expected simultaneous explosion is the cohort guideline.
Multiplayer relevance distance
The Relevant_Distance field is the primary optimization mechanism for multiplayer effect replication. When an effect is triggered on a server, the engine computes the distance from the effect position to each connected player's character. Players whose distance exceeds Relevant_Distance are not sent the effect event, which reduces network traffic and client-side processing.
The Relevant_Distance value should be tuned to the effect's gameplay importance:
| Effect type | Recommended Relevant_Distance | Rationale |
|---|---|---|
| Muzzle flash | 100-200 | Nearby players should see the flash; distant players hear the audio through a separate distant-gunfire effect |
| Explosion | 300-500 | Explosions are significant gameplay events that players across a large area should perceive |
| Bullet impact | 50-100 | Impact effects are localized; only nearby players need to see them |
| Footstep | 20-50 | Footstep effects are very local; distant players should not receive them |
| Ambient environmental effect | 100-300 | Environmental effects cover a moderate area; tune to the effect's visual and audio range |
A value of 0 for Relevant_Distance means the effect is sent to all connected players regardless of distance. This is appropriate only for effects that must be globally visible (server-wide announcements, admin-triggered events) and should be used sparingly because it defeats the relevance optimization.
Effect asset and OneShotAudio interaction
The OneShotAudio field links the effect to an audio definition that the engine plays alongside the visual effect. The audio definition can be a simple AudioClip reference or a full OneShotAudioDefinition that carries volume, pitch range, spatial blend, and other audio configuration.
The resolution sequence for effect audio is:
- The engine reads the
OneShotAudiofield from the effect.dat. - The engine resolves the bundle name and asset name from the pointer.
- The engine loads the audio asset from the specified bundle.
- If the asset is a raw AudioClip, the engine plays it with default audio settings.
- If the asset is an OneShotAudioDefinition, the engine applies the definition's volume, pitch range, and spatial blend settings before playing.
An effect can be audio-only by providing a OneShotAudio reference and omitting any Unity prefab. The engine detects the absence of a prefab and skips the visual spawn step, playing only the audio. This is the pattern used for distant gunfire effects, ambient sound effects, and server-wide audio announcements.
Diagnostic table
| Symptom | Most likely cause | Resolution |
|---|---|---|
| Effect does not appear when triggered | GUID or ID mismatch between trigger source and effect asset | Confirm the trigger source references the correct effect GUID or ID |
| Effect appears but no audio plays | OneShotAudio reference broken or audio asset not in bundle | Confirm the OneShotAudio pointer bundle name and asset name are correct |
| Effect audio plays at wrong pitch | Static flag missing; random pitch variation is active | Add the Static flag if consistent pitch is required |
| Effect too short or too long | Lifetime or Lifetime_Spread values incorrect | Tune Lifetime to the intended duration; adjust Lifetime_Spread for variation |
| Camera shake too strong or too weak | CameraShake_Magnitude_Degrees value incorrect | Adjust magnitude; typical values are 2-5 for subtle shake, 15-30 for violent shake |
| Camera shake not felt by players | CameraShake_Radius too small for the effect's gameplay context | Increase CameraShake_Radius to cover the intended area |
| No splatters on surface | Splatters value is 0 or Splatter_Lifetime is 0 | Set Splatters to a positive integer and Splatter_Lifetime to the intended persistence |
| Splatters invisible on low graphics settings | Splatter_Liquid flag not set for effects that should remain visible | Add the Splatter_Liquid flag |
| Gore effect visible when gore is disabled | Gore flag not set on blood/flesh effects | Add Gore True to flesh impact effects |
| Effect not replicated to other players | Spawn_On_Dedicated_Server flag not set | Add the Spawn_On_Dedicated_Server flag |
| Effect causes hitching on first trigger | Preload set too low for the effect's frequency | Increase Preload to cover the expected simultaneous instance count |
| Splatter causes hitching on first trigger | Splatter_Preload set too low | Increase Splatter_Preload to cover the expected splatter count |
| Effect sent to players too far away | Relevant_Distance set too high or set to 0 | Reduce Relevant_Distance to the gameplay-appropriate range |
| Effect not sent to nearby players | Relevant_Distance set too low | Increase Relevant_Distance to cover the intended area |
| Splatter temperature effect not applied | Splatter_Temperature not set or set to an invalid value | Set Splatter_Temperature to one of the valid enum values |
Effect asset debugging workflow
Debugging a misconfigured effect asset is more difficult than debugging an item asset because effects are transient - they spawn, play, and despawn within seconds, and there is no inventory representation that the mod author can inspect. The cohort debugging workflow for effect assets is:
- Verify the effect ID or GUID is correct. Open the
.datfile that references the effect and confirm the ID or GUID value matches the effect asset's identity fields. A single digit difference produces a silent failure with no visible symptoms. - Test the effect in isolation. Create a minimal trigger script or use an existing weapon whose effect reference you know works. Spawn the effect in single-player and observe whether it appears, whether the audio plays, and whether the camera shake is applied.
- Check the console output. The engine logs effect asset load errors to the console. If the effect file has a syntax error (missing field, incorrect type value), the asset fails to register and the error is printed at startup. Search the console output for the effect's ID or name.
- Simplify the configuration. Temporarily remove optional fields (camera shake, splatter,
OneShotAudio) and test the effect with only the identity and lifetime fields. If the simplified effect works, add the optional fields back one at a time to isolate the field causing the failure. - Verify the prefab reference. If the effect has a visual component and appears invisible, the prefab reference is the most likely cause. Confirm that the prefab is present in the correct bundle and that the bundle name in the reference matches the actual bundle file name.
Best practices
- Always set
Spawn_On_Dedicated_Serverfor effects that other players need to see. Without this flag, the effect is spawned only on the client that triggered it and is invisible to other players. - Tune
Relevant_Distanceto the effect's gameplay importance. A muzzle flash that is relevant at 200 meters must compete with an explosion that is relevant at 500 meters - these are different gameplay events with different perceptual ranges. - Set
Preloadto cover the maximum simultaneous instance count. An automatic weapon firing at 600 rounds per minute needs a larger preload pool than a bolt-action rifle that fires once per trigger pull. - Use the
Staticflag for effects whose audio pitch must be consistent across every trigger. Environmental ambience, alarm sounds, and distant gunfire benefit from consistent pitch. Weapon firing effects and impact effects benefit from the natural variation thatStaticsuppresses. - Set
Gore Trueon any effect that depicts blood, flesh damage, or biological matter. Players who have disabled gore will not see these effects, which keeps the game accessible while maintaining visual fidelity for players who accept gore. - Configure
Splatter_Temperatureonly when the splatter should create an environmental hazard zone. Standard bullet impact splatters and explosion residue splatters do not need a temperature effect; only splatters that should damage or warm players standing in them require this field. - Test effect lifetime and spread values in single-player before deploying to multiplayer. An effect with too-short lifetime will disappear before the player can perceive it; an effect with too-long lifetime and high instance count can accumulate into a performance drain.
Frequently asked questions
Can an effect have both visual and audio components?
Yes. An effect can have both a Unity prefab (visual component) and a OneShotAudio reference (audio component) simultaneously. This is the standard configuration for effects that players both see and hear, such as explosions and weapon firing effects. The engine spawns the visual prefab and plays the audio clip in the same trigger event, with the audio positioned at the effect spawn point for spatial 3D audio.
Can I make an effect that plays a random sound from a pool?
The effect asset does not support random sound selection from a pool. Each effect has exactly one OneShotAudio reference. If you need random sound variation across multiple triggers of the same effect, the engine's default random pitch variation provides a degree of auditory variety without requiring multiple effect assets. For fundamentally different sound types (a pistol that could fire either a standard shot or a suppressed shot), the correct approach is to create separate effect assets for each sound and reference the appropriate one from the weapon's configuration.
What happens if an effect has no OneShotAudio and no prefab?
An effect with neither a OneShotAudio reference nor a Unity prefab is a null effect - it triggers but produces no visible or audible output. The engine spawns an empty effect instance, checks the relevance distance, and destroys the instance after the lifetime expires. Null effects are occasionally used as placeholder definitions during development, but they should be replaced with fully-configured effects before the mod is published.
How does lifetime spread affect gameplay feel?
Lifetime_Spread adds organic variation to the effect duration. Without spread, every trigger of the same effect lasts exactly the same duration, which produces a mechanical, uniform feel. With spread, each trigger produces a slightly different duration, which feels more organic and natural. The default Lifetime_Spread of 4 seconds is tuned for explosion effects whose duration naturally varies with the explosion's physics simulation. For short-duration effects like muzzle flashes, set Lifetime_Spread to a small fraction of the Lifetime value (0.1-0.5 seconds) to avoid the spread exceeding the base lifetime.
Can I have an effect with no lifetime?
Lifetime 0 is valid and produces an effect that has no duration-based destruction. The effect must be destroyed programmatically by the triggering system rather than by the lifetime countdown. This configuration is used primarily for continuous effects (fire that persists until the fuel source is depleted, environmental particles that persist until the player leaves the area) where the lifetime is managed externally.
Can I reuse the same effect asset across multiple weapons?
Yes. The effect asset is referenced by GUID or ID from any number of weapon assets, vehicle weapons, or map objects. Reusing a single effect asset across multiple weapons ensures consistent visual and audio behavior across the entire weapon family. The preload pool for that effect is shared across all references, so the first weapon to trigger the effect allocates the pool, and subsequent triggers from any weapon reuse the same pre-allocated instances. The cohort recommendation is to maintain a shared library of effect assets for common effect types (muzzle flash, explosion, bullet impact) and to reference them from all weapons in the mod, rather than authoring a separate effect for each weapon.
Can I have an effect that scales its size based on distance?
The effect asset does not support distance-based scaling. The effect prefab is spawned at a fixed world-space scale. If distance-dependent scaling is needed, the correct approach is to author multiple effect assets with different visual scales and to reference the appropriate one from the system that triggers the effect. The engine's particle system can be configured for camera-distance-based scaling within the prefab itself if the mod author has access to the Unity particle system's Scale by Distance module, but this is a prefab-level setting, not an effect asset field.
What is the performance impact of many simultaneous effects?
Each active effect instance consumes CPU time for particle system updates, audio playback, and splatter management. The engine imposes an internal cap on the total number of simultaneous effect instances, but mod authors should design effects to minimize instance overhead. The key optimization levers are Preload (reduces allocation cost), Lifetime (reduces instance duration), and Relevant_Distance (reduces the number of clients receiving the effect). An effect with Preload 20 and Relevant_Distance 100 that lasts 2 seconds imposes a known, bounded performance cost that scales predictably with the number of players in range.
How do I reference a custom audio clip in my mod's bundle?
To reference an audio clip from a mod-specific master bundle, the OneShotAudio pointer must reference the mod's bundle name and the audio asset name within that bundle. For example, if the mod's master bundle is named MyModBundle.unity3d and the audio clip inside it is named MyExplosionSound, the pointer is:
OneShotAudio MyModBundle MyExplosionSoundThe bundle name in the pointer omits the .unity3d extension. The engine appends the extension internally when searching for the bundle file.
Can I chain multiple effects together?
The Blast field allows one effect to chain-trigger another effect when it spawns. The chained effect (referenced by GUID or ID) is spawned at the same world position as the parent effect, with its own lifetime, audio, and splatter configuration. This is used for multi-stage effects such as a grenade explosion that spawns a secondary debris-scatter effect, or a bullet impact that spawns both a flesh-impact effect and a blood-splatter effect.
What is the difference between Preload and Splatter_Preload?
Preload controls the pre-instantiation pool for the effect's primary visual and audio components (the Unity prefab and the audio system). Splatter_Preload controls the pre-instantiation pool for the splatter system specifically. They are independent; an effect can have a large Preload for its visual component and a separate Splatter_Preload for its splatter instances. Both fields reduce hitching on first use, but Splatter_Preload is relevant only for effects with non-zero Splatters values.
Can an effect play different audio based on the surface it hits?
No. The effect asset defines a single OneShotAudio reference. Surface-dependent audio (a bullet hitting metal making a different sound than the same bullet hitting wood) is handled at the weapon asset level, not the effect asset level. The weapon asset's Impact field or the surface definition system selects the appropriate effect based on the surface type, and each surface type has its own effect asset with its own OneShotAudio reference.
Can an effect trigger a server-side event when it expires?
No. The effect asset system is purely client-side and server-side-spawned; it does not support event callbacks or scripting hooks. An effect spawns, plays for its lifetime, and despawns without executing any code. If a mod scenario requires server-side logic when an effect expires (spawning a loot drop at the effect position, activating a trigger zone), the effect must be managed through the dedicated server API's effect system, which provides lower-level control over effect spawning and lifecycle events beyond what the asset definition can express.
Does the effect asset support conditional spawning based on player state?
No. The effect asset definition does not include any conditional logic for determining whether the effect should spawn. The spawning decision is made entirely by the system that triggers the effect, not by the effect asset itself. If a mod scenario requires an effect to spawn only when certain conditions are met (player is crouching, player has a specific item equipped, player is within a specific zone), the conditional logic must be implemented in the triggering system, and the correct effect asset is selected based on the condition evaluation.
Do I need a Unity prefab for every effect?
No. Audio-only effects omit the prefab entirely and are defined solely by the .dat fields and the OneShotAudio reference. The engine detects the absence of a prefab reference and skips the visual spawn. Audio-only effects are common for distant gunfire, ambient audio, and server-wide announcements. Effects that require visual particles (muzzle flash, explosion, impact decals) do require a prefab in the core master bundle or a mod-specific bundle.
How do I configure the effect to work correctly with the game's gore system?
Set Gore True on any effect that depicts blood, flesh wounds, or biological damage. The game checks the player's gore setting and suppresses gore-marked effects when the setting is disabled. Non-gore effects (explosion smoke, muzzle flash, metal sparks) should leave Gore at its default (False) so they are visible to all players regardless of gore settings.
Appendix A: Effect .dat field quick reference
| Field | Type | Required | Default |
|---|---|---|---|
GUID | uint128 hex | Yes | , |
Type | enum (Effect) | Yes | , |
ID | uint16 | Yes | , |
Blast | uint16 or GUID | No | , |
Lifetime | float | No | 4 |
Lifetime_Spread | float | No | 4 |
Gore | bool | No | False |
Spawn_On_Dedicated_Server | flag | No | not set |
Static | flag | No | not set |
Randomize_Rotation | bool | No | True |
Relevant_Distance | float | No | , |
Preload | byte | No | 0 |
Is_Music | bool | No | False |
OneShotAudio | Master Bundle Pointer | No | , |
CameraShake_Magnitude_Degrees | float | No | 0 |
CameraShake_Radius | float | No | 0 |
Splatter | int | No | 0 |
Splatters | int | No | 0 |
Splatter_Lifetime | float | No | 0 |
Splatter_Lifetime_Spread | float | No | 1 |
Splatter_Liquid | flag | No | not set |
Splatter_Temperature | enum | No | , |
Splatter_Preload | byte | No | 0 |
Appendix B: Effect type configuration comparison
| Configuration | Muzzle flash | Explosion | Bullet impact | Audio-only |
|---|---|---|---|---|
| Lifetime | 0.1-0.5 | 1.0-5.0 | 0.5-2.0 | 0.0 |
| Gore | False | False | True | False |
| OneShotAudio | Weapon fire | Explosion | Impact | Distant audio |
| CameraShake_Magnitude | 1-3 | 15-30 | 0 | 0 |
| CameraShake_Radius | 5-15 | 30-75 | 0 | 0 |
| Splatters | 0 | 8-16 | 2-6 | 0 |
| Relevant_Distance | 100-200 | 300-500 | 50-100 | 300-500 |
| Preload | 10-20 | 3-5 | 15-30 | 3-5 |
Appendix C: External references
- Smartly Dressed Games modding documentation - Effect assets - the official field reference for effect assets.
- Unturned on Steam - the Unturned™ store page and community hub.
- Mythical Effect Asset Reference - the next article; covers mythic effect definitions for particle effects, aura colors, and condition triggers.
- Crafting Blacklist Asset Reference - the previous article in this section.
- Gun Asset Reference - the gun asset type that references effect assets for muzzle flash and impact effects.
- Item Asset Anatomy - the shared field reference; documents the GUID and ID fields that effect assets share with item assets.
- Audio Packaging for Unturned - the audio packaging workflow; covers OneShotAudio asset authoring.
- Master Bundle Export - the Unity bundling workflow used to package visual prefabs for effects.
Advanced considerations
Effect destruction timing and pooling interaction
The interaction between Lifetime, Preload, and the pooling system is nuanced. When an effect's lifetime expires, the engine checks whether a preload pool is configured for that effect. If the pool exists and has capacity, the effect instance is returned to the pool rather than destroyed. Returning to the pool preserves the instance's memory allocation and avoids garbage collection pressure, but it does not reset the instance's particle system state. A returned instance that is immediately re-spawned may show a brief flash of the previous effect's final particle state before the particle system is reset. This flash is typically imperceptible for short-lived effects (muzzle flashes, bullet impacts) but can be visible for longer-lived effects (explosion smoke, fire). The cohort recommendation is to set Preload high enough to avoid immediate reuse of returned instances, and to accept the minor visual artifact for short-lived effects where it is imperceptible.
Effects in roleplay server contexts
On roleplay servers such as 57 Studios™' Horizon Life RP, effects serve narrative as well as gameplay purposes. A muzzle flash effect that is visible at 200 meters gives away a player's position, which is a meaningful gameplay consideration in a roleplay scenario where stealth matters. The cohort recommendation for RP server effect configuration is to reduce Relevant_Distance for weapon effects to create a more localized combat experience and to increase it for environmental effects that should be visible across the play area.
Effect asset performance profiling
The performance impact of an effect asset can be measured by profiling its CPU and memory cost during gameplay. The largest cost components are the particle system update (CPU time per frame per active instance), the audio playback (CPU time for audio decoding and spatialization), and the instance allocation (CPU time for creating a new game object in the scene). The Preload field mitigates the allocation cost but does not affect the per-frame update cost.
The cohort recommendation for profiling effect performance is to test with the maximum expected number of simultaneous instances in a controlled single-player environment. Spawn 50 instances of the effect simultaneously and observe the frame-time impact. If the frame time increases by more than 5 milliseconds, reduce the Lifetime (fewer overlapping instances) or simplify the Unity prefab (fewer particles per instance). The per-instance cost is dominated by the prefab's particle count, not by the .dat field values, so prefab optimization is the primary performance lever.
Effect asset versioning across mod updates
Effect assets follow the same versioning guidelines as item assets: the GUID is permanent once published, and the numeric ID should not be changed after the effect is referenced by other assets. Adding new fields to an existing effect asset is safe because the parser silently ignores unknown fields and applies defaults for missing optional fields. Removing or renaming fields from a published effect asset will break any asset that references that effect by GUID, and the consumption system will silently fail to find the effect - there is no error message, and the triggering game event produces no visible output.
Effect asset configuration for melee weapon impacts
Melee weapons trigger impact effects through the UseableMelee script's hit-cast system. When a melee weapon connects with a surface, the engine spawns the impact effect associated with that surface type, not with the weapon. The effect asset is resolved through the surface definition system: each surface type (Flesh, Metal, Wood, Concrete, Grass) has a set of associated effect GUIDs that the engine looks up at runtime. The melee weapon's Hit field in the weapon .dat acts as a fallback when the surface definition does not specify an effect. This means mod authors who want custom melee impact effects should configure the effect through the surface definition system rather than through the melee weapon asset.
Effect asset interaction with the physics system
The effect asset does not directly interact with the Unity physics system. The effect prefab's particle system may include collision detection for particle physics (debris bouncing off surfaces, sparks scattering along walls), but this is a particle-system-level setting, not an effect-asset-level field. The effect asset controls whether the effect is spawned, how long it persists, and whether it replicates to other players. The physics behavior of the spawned particles is determined by the prefab configuration in Unity, not by the .dat fields.
Effect asset for vehicle weapon systems
Vehicle weapon systems (gun turrets, rocket pods, mounted machine guns) reference effect assets in the same way as handheld weapons. The vehicle weapon's configuration includes a Muzzle field that references the muzzle flash effect and an Impact field that references the impact effect. Vehicle-specific effects often have larger Relevant_Distance values than handheld weapon effects because vehicle combat occurs at longer ranges. The cohort recommendation for vehicle weapon effects is to set Relevant_Distance to at least 300 meters and to configure Preload for the vehicle weapon's fire rate (a vehicle minigun at 2000 rounds per minute needs a much larger preload pool than a vehicle rocket pod that fires once per second).
Authoring checklist
Before deploying an effect asset to a mod, confirm the following:
- [ ] GUID is unique - generated fresh, not copied from another effect asset
- [ ] ID is in the 40000+ range and does not conflict with other loaded effect assets
- [ ]
Type Effectis present - [ ]
Lifetimeis set to the intended duration;Lifetime_Spreadis tuned for natural variation - [ ]
Spawn_On_Dedicated_Serverflag is present for effects that other players need to see - [ ]
OneShotAudioreference is correct - bundle name and asset name both match - [ ]
Gore Trueis set for flesh and blood effects - [ ]
Relevant_Distanceis tuned to the effect's gameplay importance range - [ ]
Preloadis set to cover the maximum expected simultaneous instance count - [ ] Camera shake fields are tuned: magnitudes between 1-5 for subtle shake, 15-30 for violent shake
- [ ] Splatter fields are configured:
Splattersis nonzero,Splatter_Lifetimeis set - [ ]
Splatter_Liquidis set for effects that should remain visible on low graphics settings - [ ]
Splatter_Temperatureis set only for effects that create environmental hazard zones - [ ] Tested in single-player: effect appears at correct position, plays correct audio, lifetime behaves as intended
Document history
| Version | Date | Author | Notes |
|---|---|---|---|
| 1.0 | 2026-07-26 | 57 Studios | Initial publication. Full effect .dat field reference, general data, camera shake, splatter fields, OneShotAudio interaction, effect chain Mermaid diagram, worked examples from shipped effect definitions, diagnostic table, FAQ, appendices. |
Cross-references
- Crafting Blacklist Asset Reference - the previous article in this section.
- Mythical Effect Asset Reference - the next article; covers mythic effect definitions with particle effects, aura color, and condition trigger systems.
- Gun Asset Reference - the gun asset type that references effect assets for muzzle flash and impact effects; understanding gun effects requires this article.
- Item Asset Anatomy - shared field reference; GUID and ID conventions shared by effect assets.
- Audio Packaging for Unturned - covers the OneShotAudio asset authoring and master bundle audio workflow.
- Master Bundle Export - the Unity bundling workflow used to package visual prefabs for effects.
- Smartly Dressed Games modding documentation - official field reference for effect assets.
- Unturned on Steam - game page and community.
