Skip to content

Surface Response Chain

The surface response chain is the resolution system that determines what sound, particle effect, and gameplay behavior occurs when a bullet hits a surface, a player walks across terrain, or a vehicle tire contacts the ground. The chain spans four hops: Terrain layer to LandscapeMaterialAsset to PhysicsMaterialAsset to impact effect. Each hop has a fallback that produces a sensible default when the next hop is not configured.

57 Studios™ has documented and validated the complete surface response chain across the shipped game files. This article covers every hop in the chain, the fallback behavior at each hop, a Mermaid flowchart of the complete resolution sequence, a worked example tracing a single shot through the chain, and a diagnostic table that identifies what breaks at each hop and how to detect it.

Surface response chain diagram showing the hop-by-hop resolution from terrain to impact effect

Documentation source: This article is synthesized from game file analysis of Bundles\Assets\Landscapes\Materials\, Bundles\Assets\PhysicsMaterials\, Bundles\Effects\Impacts\, and the RECON.md gap analysis. The official SDG documentation covers individual asset types but does not document the complete chain as a single system.

Who this article is for

This article is written for Unturned™ map makers who want to create custom terrain types with appropriate surface responses, mod authors creating custom impact effects, and server operators who need to diagnose why a surface produces the wrong audio or visual response.

The four-hop resolution chain

The surface response chain resolves the question: "When a collision occurs on this surface, what sound should play and what particle effect should spawn?" The answer depends on four linked hops.

As shown in the flowchart above, the chain has two dimensions: the surface-to-material mapping (hops 1-2) and the property-to-audio resolution (hops 3-4). Each hop has a fallback that ensures a reasonable default when the data is missing.

Hop 1: Terrain layer or collider physics material

The first hop identifies the surface being contacted. For terrain surfaces, the engine reads the terrain layer index from the terrain data. For object colliders (buildings, vehicles, props), the engine reads the Unity physics material assigned to the collider component.

Hop 2: LandscapeMaterialAsset resolution

The second hop maps the terrain layer to a physics material GUID through the LandscapeMaterialAsset system. Each map has its own LandscapeMaterialAsset file (in Assets/Landscapes/Materials/) that defines which physics material GUID corresponds to each terrain layer index.

The 6 shipped landscape material maps:

Landscape material mapCoverage
FallbackDefault mapping used when no specific map material is defined
GermanyGermany map terrain layers
PEIPEI map terrain layers
RussiaRussia map terrain layers
WashingtonWashington map terrain layers
YukonYukon map terrain layers

If a terrain layer does not have a physics material mapping in the landscape material asset, the engine falls back to the Fallback landscape material's mapping.

Hop 3: PhysicsMaterialAsset resolution

The third hop reads the PhysicsMaterialAsset identified by the GUID from hop 2. This asset provides the audio definitions and gameplay properties for the surface. If the required audio key (FootstepWalk, BulletImpact, MeleeImpact, etc.) is not defined on this asset, the engine follows the asset's Fallback pointer to a parent asset.

Hop 4: Impact effect chain

The fourth hop spawns the visual and audio impact effect. The AudioDefs dictionary on the PhysicsMaterialAsset provides master bundle pointers to OneShotAudioDefinition assets. The impact effect (particle system, decal) is loaded from the EffectAssets system.

The fallback chain in detail

The fallback chain is the most critical aspect of the surface response system because it ensures that every surface produces at least a default response even when no custom physics material is configured.

Fallback landscape material

The Fallback landscape material asset defines the default physics material mapping for any terrain layer that is not explicitly mapped. If the Fallback landscape material itself does not have a physics material mapping, the engine uses the Fallback physics material.

Fallback physics material

The Fallback physics material (in Assets/PhysicsMaterials/) provides the default audio definitions. This asset typically has comprehensive AudioDefs entries for the most common audio keys (FootstepWalk, FootstepRun, BulletImpact, MeleeImpact, etc.).

Default audio responses

If the fallback physics material does not define a specific audio key, the engine uses its internal default audio for that interaction type. The default audio is typically a generic impact sound that plays regardless of the surface type.

Impact effect categories

The shipped impact effects in Bundles\Effects\Impacts\ are organized into subdirectories that correspond to different damage source types:

Impact subdirectoryPurpose
Guns\Bullet impact effects
Impacts\General impact effects
TireMotion\Vehicle tire effects

The official documentation notes that the response varies by striker (the type of damage source). Different impact subdirectories suggest different effect categories by damage source. A gunshot and a vehicle tire contact use different impact effect chains even when hitting the same surface.

Worked example: tracing a shot through the chain

A player fires a bullet that hits a terrain surface on the PEI map. The following trace follows each hop in the resolution chain.

Hop 1: Terrain layer identification

The engine reads the terrain layer index at the hit position. On PEI, the hit terrain is a grass layer with a specific Unity physics material name (e.g., PEI_Sand_00 or Russia_Grass depending on the location).

Hop 2: Landscape material lookup

The engine loads the PEI LandscapeMaterialAsset. This asset maps the grass terrain layer to a physics material GUID. For a grass surface on PEI, this GUID points to a map-specific physics material asset such as PEI_Sand_00_PhysicsMaterial.

Hop 3: Physics material asset lookup

The engine loads the PhysicsMaterialAsset identified by the GUID. For the grass surface, this asset has a UnityNames entry matching the terrain's physics material name. If the BulletImpact audio key is defined in this asset's AudioDefs, that audio definition is used. If not, the engine follows the Fallback pointer to a parent asset (typically gravel or a generic material).

Hop 4: Impact effect spawning

The engine loads the OneShotAudioDefinition referenced by the BulletImpact key. The audio clip plays at the hit point. If the PhysicsMaterialAsset also has a WipDoNotUseTemp_BulletImpactEffect field (or the engine uses the newer AudioDefs system), an impact particle effect is also spawned.

Step 1: Terrain (PEI grass layer at x=120, z=340)

Step 2: LandscapeMaterialAsset (PEI)

        Layer 3 → physics material GUID "4cb9baff8283425fb6198a06a926a128"

Step 3: PhysicsMaterialAsset (Flesh.asset)
        GUID 4cb9baff...
        AudioDefs.BulletImpact → Effects/Physics/LegacyImpact/LegacyImpact_Flesh.asset

Step 4: OneShotAudioDefinition plays bullet impact sound
        Impact particle effect spawns at hit point

Diagnostic table

SymptomFailed hopResolution
No audio when walking on terrainHop 2Check LandscapeMaterialAsset mapping for the terrain layer
Default audio instead of custom terrain audioHop 2 or 3Verify physics material GUID in landscape material points to correct asset
Footstep audio works but bullet impact does notHop 3Add BulletImpact key to the PhysicsMaterialAsset's AudioDefs
No impact particlesHop 4Check the OneShotAudioDefinition or effect asset referenced by AudioDefs
Terrain surface plays default sound for wrong surfaceHop 1Verify the Unity physics material name matches an entry in the PhysicsMaterialAsset's UnityNames
Custom landscape material has no effectHop 2Verify the custom landscape material is loaded and has correct layer-to-GUID mappings
Vehicle tire motion effect missingHop 4Set TireMotionEffect on the PhysicsMaterialAsset
Melee impact sounds use legacy audioHop 3Set MeleeImpact key instead of relying on LegacyImpact
Custom surface plays concrete soundsHop 3Set a Fallback GUID that matches the intended base surface type
Sound works in single-player but not on serverHop 3Verify the mod containing the PhysicsMaterialAsset is deployed to the server
No zombie-specific footstep audioHop 3Set ZombieFootstepWalk and ZombieFootstepRun keys
Water surface has no splash soundHop 3Check that Water physics material has appropriate AudioDefs entries

Best practices

  • Always configure at minimum the FootstepWalk, FootstepRun, BulletImpact, and MeleeImpact audio keys on every custom PhysicsMaterialAsset.
  • Set a Fallback GUID on every custom physics material to ensure undefined properties resolve to sensible defaults.
  • Test every surface interaction type (walking, shooting, melee, driving) when creating a new landscape material mapping.
  • Document the complete chain from terrain layer to impact effect in the map's project file.
  • Use map-specific landscape material assets for custom maps rather than relying on the Fallback mapping.
  • Verify terrain layer indices match between the Unity terrain data and the landscape material asset.
  • Test custom surfaces in both single-player and multiplayer to confirm audio synchronization.

Frequently asked questions

What is the difference between a terrain layer and a landscape material?

A terrain layer is an index in the Unity terrain data that determines which texture is painted on the terrain surface. A landscape material asset maps each terrain layer index to a physics material GUID. The terrain layer is the raw data; the landscape material asset provides the interpretation.

How does the chain handle object surfaces that are not terrain?

For objects (buildings, vehicles, props), the engine reads the Unity physics material directly from the object's collider component. The physics material name is matched against the UnityNames arrays of loaded PhysicsMaterialAssets. This bypasses the LandscapeMaterialAsset hop entirely.

Can I create a custom impact effect?

Yes. Create a custom effect asset and reference it through the PhysicsMaterialAsset's AudioDefs dictionary. The effect must be packaged in a master bundle and the master bundle pointer must be correctly configured in the AudioDefs entry.

How does the game choose between different impact effects for the same surface?

The engine selects the impact effect based on the striker type (what caused the damage). A bullet impact and a melee impact on the same surface use different audio keys (BulletImpact vs MeleeImpact). The PhysicsMaterialAsset can define different effects for each striker type through separate AudioDefs entries.

What is the LegacyImpact key used for?

LegacyImpact is a legacy audio key that may be phased out in future updates. It is still used by vehicle bumper collision and as a fallback for melee impact when the MeleeImpact key is not set. New physics material assets should use MeleeImpact instead of relying on LegacyImpact.

Can a single terrain layer have multiple physics materials?

No. Each terrain layer index maps to a single physics material GUID in the LandscapeMaterialAsset. If you need different surface responses on the same terrain layer, you must create additional terrain layers with different material mappings.

How do I find the landscape material asset for a specific map?

Landscape material assets are stored in Bundles\Assets\Landscapes\Materials\. Each map has a folder named after the map. The asset file inside that folder defines the layer-to-physics-material mappings for that map.

Does the surface response chain affect gameplay beyond audio?

Yes. The PhysicsMaterialAsset also defines Character_Friction_Mode, IsArable, and HasOil fields. These affect character movement, farming, and oil drilling. The surface response chain controls these gameplay properties in addition to audio and visual effects.

What happens when a surface has no physics material assigned?

If a collider has no Unity physics material assigned, the engine uses the default physics material (a hardcoded default). The surface will produce default audio responses. This is common on modded objects that were not configured with custom physics materials.

Can I override the surface response for a specific object type?

Yes. Create a custom PhysicsMaterialAsset with the appropriate UnityNames array covering the physics material names used by those objects. Assign the custom physics material to the object's collider in the Unity Editor.

Advanced considerations

Multi-map landscape material inheritance

Each map can define its own LandscapeMaterialAsset. If a map does not have a specific landscape material asset, the engine uses a default set of mappings that correspond to the standard terrain layers. Custom maps should always include a landscape material asset for correct surface responses.

Impact effect optimization

Impact effects can be performance-intensive if many impacts occur simultaneously (automatic weapons firing at a wall). The effect asset system handles pooling and culling, but custom effects should be designed with reasonable particle counts to avoid performance issues.

Character friction interaction with terrain

The Character_Friction_Mode field on PhysicsMaterialAsset interacts with terrain surfaces through the landscape material mapping. A terrain layer that maps to an ice physics material will produce slippery character movement on that terrain type.

Impact effect resolution by striker type

Different damage sources (strikers) trigger different audio keys on the same surface. The table below maps each striker type to the audio key it queries in the PhysicsMaterialAsset's AudioDefs dictionary.

Striker typeAudio keyPurpose
Bullet (non-shotgun)BulletCasingBounceCasing bounce on surface
Bullet (any)BulletImpactBullet impact at hit point
Biped landingBipedLandCharacter landing after fall
Footstep walkFootstepWalkNon-sprinting footstep
Footstep runFootstepRunSprinting footstep
Melee weaponMeleeImpactMelee attack hitting surface
Shotgun shellShotgunShellBounceShell casing bounce on surface
Vehicle bumperLegacyImpactVehicle collision with surface
Zombie landingZombieBipedLandZombie landing audio (or BipedLand fallback)
Zombie footstep walkZombieFootstepWalkZombie walking audio (or FootstepWalk fallback)
Zombie footstep runZombieFootstepRunZombie running audio (or FootstepRun fallback)
Mega zombie footstepMegaZombieFootstepMega zombie footstep (or FootstepWalk with modifications)
Mega zombie landingMegaZombieLandMega zombie landing (or BipedLand with modifications)

Each striker type maps to a specific audio key at the collision detection level. The engine selects the key based on the type of collision event, not based on the surface. This means the same surface can produce different audio responses for different striker types, which is the source of the audio variety in the game.

Appendix A: Surface response chain quick reference

HopAsset typeData sourceFallback
1Terrain layer / colliderUnity terrain data or collider componentDefault physics material
2LandscapeMaterialAssetMap-specific asset fileFallback landscape material
3PhysicsMaterialAssetAsset registry by GUIDFallback physics material
4Impact effectEffectAssets by master bundle pointerEngine default audio

Surface response chain version history

The surface response chain has evolved across game updates. The following timeline documents the major changes.

Pre-2022 (legacy system)

Before the introduction of PhysicsMaterialAsset, surface responses were hardcoded. The game had a fixed set of surface types with predefined audio and particle effects. Mod authors could not create custom surface types.

2022: PhysicsMaterialAsset introduction

PhysicsMaterialAsset was introduced as a work-in-progress feature to allow custom physics effects rather than hardcoding them. The initial implementation supported the core fields: UnityNames, Fallback, and basic AudioDefs.

2022-2024: Extension assets and character friction

PhysicsMaterialExtensionAsset was added to allow extending built-in physics materials without replacing them. Character_Friction_Mode and the three character movement multiplier fields were added, replacing the previously hardcoded ice and slippery metal behavior.

2024-present: Current system

The system supports all fields documented in this article. The WipDoNotUseTemp_BulletImpactEffect field exists on some assets as a transitional measure and may be deprecated in future updates.

Appendix B: External references

Testing the surface response chain

Testing the complete surface response chain requires verifying every hop independently.

Terrain layer verification

Walk across each terrain type on the map and confirm that the footstep audio matches the expected surface type. Use the in-game console to check for any warnings about missing physics material mappings.

Landscape material verification

For each terrain layer that should have a custom surface response, verify that the LandscapeMaterialAsset maps that layer to the correct physics material GUID. Open the landscape material .asset file and confirm the GUID entries.

Physics material verification

For each custom physics material, verify that the required audio keys (FootstepWalk, FootstepRun, BulletImpact, MeleeImpact) are defined in the AudioDefs dictionary. Test bullet impacts with a firearm and melee impacts with a melee weapon.

Character movement verification

If any physics material uses custom friction mode, walk and run across that surface to verify that acceleration, deceleration, and max speed are correctly modified.

Glossary

TermDefinition
Surface response chainThe multi-hop resolution system that determines audio, particle, and gameplay response for surface contact.
Terrain layerAn index in Unity terrain data that determines which texture is painted on the surface.
LandscapeMaterialAssetAn asset that maps terrain layer indices to physics material GUIDs on a per-map basis.
PhysicsMaterialAssetAn asset that maps Unity physics material names to gameplay properties including audio definitions.
AudioDefsA dictionary of named audio definition references keyed by surface interaction type.
Fallback chainThe inheritance mechanism that resolves undefined properties through parent asset references.
Impact effectA visual and audio particle system spawned at the point of surface contact.
Striker typeThe damage source category (bullet, melee, vehicle tire) that determines which audio key is used.
OneShotAudioDefinitionAn asset that encapsulates a single audio clip with playback parameters for surface response.
LegacyImpactA deprecated audio key used by vehicle bumper collision and as a fallback for melee impacts.

Authoring checklist

Before shipping a custom surface response configuration, confirm the following:

  • [ ] Custom PhysicsMaterialAsset has UnityNames matching the intended surface
  • [ ] Fallback GUID points to a well-populated physics material
  • [ ] AudioDefs includes FootstepWalk, FootstepRun, BulletImpact, MeleeImpact
  • [ ] LandscapeMaterialAsset maps each terrain layer to the correct physics material GUID
  • [ ] Custom map includes its own LandscapeMaterialAsset
  • [ ] Impact effects are correctly referenced by master bundle pointers
  • [ ] Tested: footstep audio on each terrain layer
  • [ ] Tested: bullet impact audio on each surface type
  • [ ] Tested: melee impact audio on each surface type
  • [ ] Tested: vehicle tire effects (if applicable)
  • [ ] Tested: character movement modifier (if Custom friction mode is set)

Surface response chain design patterns

The following design patterns represent common approaches to configuring surface response chains for different map scenarios.

The biome consistency pattern

Each biome in a custom map should have its own LandscapeMaterialAsset that maps terrain layers to physics materials appropriate for that biome. A desert biome maps sand layers to a sand physics material; a forest biome maps grass layers to a grass or foliage physics material. This pattern ensures that each biome has consistent audio and gameplay properties.

The fallback-first pattern

When creating a custom map, configure the Fallback landscape material and Fallback physics material first, then define specific overrides for individual terrain layers. This ensures that any terrain layer not explicitly mapped still produces reasonable audio. The fallback physics material should have comprehensive AudioDefs entries covering all interaction types.

The surface variety pattern

Create multiple physics material assets for the same base surface type with different properties to create surface variety. For example, create Wet_Grass and Dry_Grass variants of the standard grass physics material, one with higher friction and one with lower friction. The terrain painting system can apply different terrain layers that map to these different physics materials.

The audio separation pattern

Use the striker-specific audio keys (BulletImpact, MeleeImpact, FootstepWalk, FootstepRun) to create distinct audio experiences for different interaction types on the same surface. A gravel surface might have a sharp bullet impact sound, a crunchy footstep sound, and a scraping melee impact sound. Each key references a different OneShotAudioDefinition.

Mod integration checklist

When integrating a custom surface response system into an existing mod project, the following checklist ensures that all components are correctly configured.

Pre-integration verification

  • [ ] Target map's terrain layers are inventoried and documented
  • [ ] PhysicsMaterialAsset files exist for each intended surface type
  • [ ] AudioDefs dictionaries are populated with the required audio keys
  • [ ] OneShotAudioDefinition assets exist for each audio key reference
  • [ ] Master bundle contains all audio clips and effect assets

Integration steps

  • [ ] LandscapeMaterialAsset maps each terrain layer to the correct physics material GUID
  • [ ] Fallback landscape material is configured for unmapped layers
  • [ ] Fallback physics material is configured with comprehensive audio definitions
  • [ ] Effect assets are correctly referenced by master bundle pointers
  • [ ] Master bundle is rebuilt with all new content included

Post-integration testing

  • [ ] Footstep audio tested on each terrain layer
  • [ ] Bullet impact audio tested on each surface type
  • [ ] Melee impact audio tested on each surface type
  • [ ] Vehicle tire effects tested where applicable
  • [ ] Character movement modifier tested on custom friction surfaces
  • [ ] Console checked for warnings about missing GUIDs or references

Cross-references

Surface response performance considerations

The surface response chain's performance impact is primarily determined by the complexity of the impact effects. Each bullet impact, melee swing, and footstep triggers an audio definition lookup and particle effect spawn. On servers with many concurrent players firing weapons, the cumulative impact of audio and particle spawning can affect frame rate.

Audio loading strategy

OneShotAudioDefinition assets referenced by AudioDefs keys are loaded on demand. The first time a specific surface interaction occurs, the audio clip is loaded from the master bundle. Subsequent interactions use the cached clip. This means the first bullet impact on a new surface type may have a slight delay while the audio loads.

Particle effect pooling

Impact particle effects are typically pooled by the effect system. The same particle system can be reused across multiple impact points, reducing the performance cost of spawning new effects. Custom impact effects should be designed with reasonable particle counts to work well within the pooling system.

Physics material lookup optimization

The physics material GUID lookup is a dictionary search operation that completes in constant time. The total number of physics material assets loaded does not significantly affect lookup performance. The bottleneck in the chain is typically the impact effect rendering, not the property lookup.

Surface response chain implementation roadmap

For server operators planning to implement a complete custom surface response system, the following implementation roadmap provides a structured approach.

Phase 1: Asset inventory

Inventory the existing terrain layers on the target map. List each terrain layer index and its intended surface type. Identify which physics material assets already exist for those surface types.

Phase 2: Physics material authoring

Create or identify physics material assets for each intended surface type. Ensure each asset has the required AudioDefs entries at minimum for the most common interaction types.

Phase 3: Landscape material configuration

Create or update the LandscapeMaterialAsset for the target map. Map each terrain layer index to the appropriate physics material GUID. Configure the Fallback landscape material for any unmapped layers.

Phase 4: Impact effect authoring

Create or identify OneShotAudioDefinition assets for each required audio key. Ensure the audio clips are packaged in the master bundle and correctly referenced by the AudioDefs entries.

Phase 5: Testing and iteration

Test each terrain layer with each interaction type. Adjust physics material properties and landscape material mappings based on testing feedback. Document the final configuration.

Frequently asked questions (continued)

What happens if a LandscapeMaterialAsset references a physics material GUID that does not exist?

The engine logs a warning and uses the default physics material for that terrain layer. The missing GUID does not crash the game or prevent other terrain layers from loading. The affected layer produces default audio responses.

Can I use the same physics material for multiple terrain layers?

Yes. Multiple terrain layers can map to the same physics material GUID in the LandscapeMaterialAsset. This is common when multiple terrain textures represent similar surface types (e.g., two different grass textures both mapping to the same grass physics material).

How do I create a new terrain layer for a custom map?

In the Unity Editor, open the terrain settings and add a new terrain layer. Assign a texture to the layer. In the LandscapeMaterialAsset for the map, add an entry mapping the new layer index to the desired physics material GUID.

Does the surface response chain affect vehicle handling?

Yes, indirectly. The tire motion effect is resolved through the chain. The actual vehicle physics (traction, sliding) is handled by the Unity physics material's friction settings on the wheel colliders, not by the surface response chain's audio and effect resolution.

What is the difference between a PhysicsMaterialAsset and a Unity physic material?

A Unity physic material (.physicMaterial) defines friction and bounce properties for the Unity physics engine. A PhysicsMaterialAsset is an Unturned asset that maps Unity physics material names to gameplay properties including audio definitions. They are separate systems that interact through the UnityNames field.

Can I create a surface that has no audio response?

Yes. Omit the audio keys from the PhysicsMaterialAsset's AudioDefs dictionary. The engine will follow the fallback chain. If no fallback defines the audio key either, no audio plays for that interaction.

How does the chain resolve surface responses for objects placed in the level editor?

Objects placed in the level editor that have colliders with assigned physics materials are resolved through the same chain. The engine reads the physics material from the collider and looks up the matching PhysicsMaterialAsset by Unity name.

Can I override the surface response for a specific object without changing its physics material?

No. The chain always starts from the physics material name on the collider. To change an object's surface response, you must change the physics material assigned to its collider or create a matching PhysicsMaterialAsset.

Surface response chain in mod packs

When distributing a mod pack that includes custom maps, custom physics materials, and custom effect assets, the surface response chain must be coordinated across all included mods.

Cross-mod physics material references

If a custom map references a physics material GUID from a separate physics material mod, both mods must be loaded for the surface responses to work correctly. The map's LandscapeMaterialAsset holds the GUID references; the physics material mod provides the assets those GUIDs resolve to.

Mod load order considerations

The mod load order determines which assets take precedence when there are GUID conflicts. The last-loaded mod's version of a physics material asset wins. If two mods define different physics materials with the same GUID, the behavior is unpredictable.

Backward compatibility with existing saves

Adding new terrain layers to an existing map will not affect existing saved chunks that have already generated their terrain data. The new layer mapping only applies to newly generated chunks. For full coverage, the map must be regenerated.

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Complete surface response chain documentation, four-hop resolution sequence, fallback behavior, worked trace example, diagnostic table.