Skip to content

Sound Sets

Sound sets define collections of sound events for items, NPCs, weapons, and UI interactions. They map action contexts to specific sound event IDs.

  • DirectoryAssets/Server/Audio/
    • DirectoryItemSounds/
      • ISS_Default.json
      • ISS_Weapons_Blade_Large.json
      • ISS_Weapons_Blunt_Small.json
      • ISS_Armor_Heavy.json
      • ISS_Items_Potion.json
      • (36 item sound sets)
    • DirectorySoundSets/
      • CreativePlayDefaults.json
    • DirectoryAudioCategories/
      • AudioCat_Music.json
      • AudioCat_Weapons.json
      • AudioCat_Footsteps.json
      • AudioCat_NPC.json
      • AudioCat_Inventory.json
      • AudioCat_Discovery.json
      • DirectoryNPC/
        • AudioCat_NPC_Wolf.json
        • AudioCat_NPC_Zombie.json
        • (80+ NPC audio categories)
      • DirectoryWeapons/
        • AudioCat_Sword.json
        • AudioCat_Battleaxe.json
        • AudioCat_Shortbow.json
        • (8 weapon categories)

Item Sound Sets define sounds for inventory interactions like dropping and dragging items.

{
"SoundEvents": {
"Drop": "<sound_event_id>",
"Drag": "<sound_event_id>"
}
}
FieldTypeDescription
SoundEventsobjectMap of action context to sound event ID
SoundEvents.DropstringSound when item is dropped
SoundEvents.DragstringSound when item is dragged
Sound SetDescription
ISS_Weapons_Blade_LargeLarge swords, greatswords
ISS_Weapon_Blade_SmallDaggers, knives
ISS_Weapon_Blunt_LargeHammers, maces
ISS_Weapons_Blunt_SmallClubs, small bludgeons
ISS_Weapons_Stone_LargeLarge stone weapons
ISS_Weapons_Stone_SmallSmall stone weapons
ISS_Weapons_WoodWooden weapons
ISS_Weapons_WandMagic wands
ISS_Weapons_Shield_MetalMetal shields
ISS_Weapons_Shield_WoodWooden shields
ISS_Weapons_ArrowsArrows and bolts
ISS_Weapons_BooksSpellbooks
Sound SetDescription
ISS_Armor_HeavyPlate armor, metal gear
ISS_Armor_LeatherLeather armor
ISS_Armor_ClothCloth armor, robes
Sound SetDescription
ISS_Items_MetalMetal ingots, tools
ISS_Items_ClothFabric, clothing
ISS_Items_LeatherLeather items
ISS_Items_PaperBooks, scrolls, paper
ISS_Items_PotionPotions, bottles
ISS_Items_GemsGems, crystals
ISS_Items_IngotsMetal bars
ISS_Items_BonesBones, skeletal items
ISS_Items_SeedsSeeds, small items
ISS_Items_FoliagePlant materials
ISS_Items_ClayClay, ceramic items
ISS_Items_ShellsShells, chitin
ISS_Items_SplattySoft, wet items
ISS_Items_ChestChests, containers
ISS_Items_GadgetMechanical items
Sound SetDescription
ISS_Blocks_WoodWooden blocks
ISS_Blocks_StoneStone blocks
ISS_Blocks_GravelGravel, loose materials
ISS_Blocks_SoftSoft blocks (dirt, sand)
ISS_Blocks_SplattyWet/muddy blocks
ISS_Weapons_Blade_Large.json
{
"SoundEvents": {
"Drop": "SFX_Drop_Weapons_Blade_Large",
"Drag": "SFX_Drag_Weapons_Blade_Large"
}
}
ISS_Default.json
{
"SoundEvents": {
"Drag": "SFX_Drag_Item_Default",
"Drop": "SFX_Drop_Item_Default"
}
}
ISS_Armor_Heavy.json
{
"SoundEvents": {
"Drag": "SFX_Drag_Armor_Heavy",
"Drop": "SFX_Drop_Armor_Heavy"
}
}

Items reference sound sets via the ItemSoundSetId property:

Weapon_Sword_Iron.json (excerpt)
{
"Parent": "Template_Weapon_Sword",
"ItemSoundSetId": "ISS_Weapons_Blade_Large",
"Model": "Items/Weapons/Sword/Iron.blockymodel"
}

Block Sound Sets define sounds for block interactions like walking, breaking, and building. These are separate from the ISS_Blocks_* item sound sets (which handle inventory drag/drop for block items).

{
"SoundEvents": {
"<context>": "<sound_event_id>"
},
"MoveInRepeatRange": { "Min": 0.5, "Max": 1.5 }
}
FieldTypeDefaultDescription
SoundEventsobjectMap of BlockSoundEvent context to sound event ID
MoveInRepeatRangeobject{ Min: 0.5, Max: 1.5 }Time range (seconds) between repeated MoveIn sounds
EventDescription
WalkPlayer walking on the block
LandPlayer landing on the block
MoveInPlayer entering the block space
MoveOutPlayer leaving the block space
HitBlock being hit/mined
BreakBlock being destroyed
BuildBlock being placed
CloneBlock being cloned (creative)
HarvestBlock being harvested

Blocks reference block sound sets via the BlockSoundSetId property:

BlockType example (excerpt)
{
"BlockSoundSetId": "BSS_Stone"
}

UI Sound Sets define sounds for specific interface interactions.

{
"SoundEvents": {
"<context>": "<sound_event_id>"
},
"Category": "<audio_category>"
}
FieldTypeDescription
SoundEventsobjectMap of context key to sound event ID
CategorySoundCategorySound category enum: Music, Ambient, SFX, UI
CreativePlayDefaults.json
{
"SoundEvents": {
"Error": "SFX_Creative_Play_Error",
"Rotate_Yaw": "SFX_Rotate_Yaw_Default",
"Rotate_Pitch": "SFX_Rotate_Pitch_Default",
"Rotate_Roll": "SFX_Rotate_Roll_Default",
"Eyedropper_Select": "SFX_Creative_Play_Eyedropper_Select",
"Add_Mask": "SFX_Creative_Play_Add_Mask",
"Set_Mask": "SFX_Creative_Play_Set_Mask",
"Selection_Scale": "SFX_Creative_Play_Selection_Scale",
"Selection_Drag": "SFX_Creative_Play_Selection_Drag",
"Selection_Widget": "SFX_Creative_Play_Selection_Widget",
"Selection_Place": "SFX_Creative_Play_Selection_Place",
"Brush_Mode": "SFX_Creative_Play_Brush_Mode",
"Brush_Erase": "SFX_Creative_Play_Brush_Erase",
"Brush_Paint": "SFX_Creative_Play_Brush_Paint_Base",
"Brush_Stamp": "SFX_Creative_Play_Brush_Stamp",
"Brush_Paint_Idle_Layer": "SFX_Creative_Play_Brush_Paint_Idle_Layer",
"Brush_Paint_Move_Layer": "SFX_Creative_Play_Brush_Paint_Move_Layer",
"Brush_Shape": "SFX_Creative_Play_Brush_Shape",
"Paste": "SFX_Creative_Play_Paste"
},
"Category": "UI"
}

Audio categories define volume settings and hierarchy for groups of sounds.

{
"Volume": <float>,
"Parent": "<parent_category_id>"
}
FieldTypeDescription
VolumefloatVolume adjustment in decibels (-100 to 10). Acts as an audio bus — combined with parent volumes up the hierarchy
ParentstringParent category for inheritance
CategoryDescription
AudioCat_MusicBackground music
AudioCat_WeaponsWeapon sounds
AudioCat_FootstepsMovement sounds
AudioCat_NPCNPC vocalizations
AudioCat_InventoryInventory interactions
AudioCat_DiscoveryDiscovery notifications

NPC-specific audio categories inherit from AudioCat_NPC:

AudioCat_NPC_Wolf.json
{
"Volume": 0,
"Parent": "AudioCat_NPC"
}

Available NPC Categories:

  • Livestock: AudioCat_NPC_Cow, AudioCat_NPC_Sheep, AudioCat_NPC_Pig, AudioCat_NPC_Horse, AudioCat_NPC_Chicken
  • Predators: AudioCat_NPC_Wolf, AudioCat_NPC_Bear_Grizzly, AudioCat_NPC_Hyena, AudioCat_NPC_Fox
  • Creatures: AudioCat_NPC_Spider, AudioCat_NPC_Snake, AudioCat_NPC_Scorpion, AudioCat_NPC_Bat
  • Enemies: AudioCat_NPC_Zombie, AudioCat_NPC_Skeleton, AudioCat_NPC_Goblin, AudioCat_NPC_Trork
  • Mythical: AudioCat_NPC_Dragon, AudioCat_NPC_Yeti, AudioCat_NPC_Fen_Stalker
  • Birds: AudioCat_NPC_Crow, AudioCat_NPC_Owl, AudioCat_NPC_Sparrow, AudioCat_NPC_Raven

Weapon-specific categories for combat sounds:

CategoryDescription
AudioCat_SwordSword combat sounds
AudioCat_BattleaxeAxe combat sounds
AudioCat_MaceBlunt weapon sounds
AudioCat_DaggersDagger combat sounds
AudioCat_ShortbowBow sounds
AudioCat_Hand_CrossbowCrossbow sounds
AudioCat_Magic_StaffStaff/magic sounds
AudioCat_ShieldShield block sounds

Ambience systems define environmental audio with conditions.

Each AmbienceFX asset can contain multiple audio components:

FieldTypeDescription
ConditionsobjectWhen this ambience activates
Soundsobject[]Positional emitter sounds
MusicobjectMusic tracks to play
AmbientBedobjectBackground ambient loop
SoundEffectobjectReverb/EQ effects to apply
PriorityintPriority for music and sound effect (higher = higher priority, min 0)
BlockedAmbienceFxIdsstring[]Other AmbienceFX IDs this one blocks
AudioCategorystringAudio category for volume routing (affects ambient bed and music, not emitters)

Background ambient loops:

AmbFX_Zone1_Plains_Gen_Day.json
{
"Conditions": {
"DayTime": {
"Min": 5,
"Max": 19
},
"SunLightLevel": {
"Min": 10,
"Max": 15
},
"EnvironmentTagPattern": {
"Op": "And",
"Patterns": [
{ "Op": "Equals", "Tag": "Zone1" },
{
"Op": "Or",
"Patterns": [
{ "Op": "Equals", "Tag": "Plains" },
{ "Op": "Equals", "Tag": "Encounters" }
]
}
]
},
"Walls": {
"Min": 0,
"Max": 3
}
},
"AmbientBed": {
"Track": "Sounds/Environments/Zone1/Environments/Plains/Day/Z1_Plains_Gen_Day_Stereo_LOOP.ogg",
"Volume": 1.0,
"TransitionSpeed": "Default"
}
}
FieldTypeDefaultDescription
TrackstringPath to stereo audio file
Volumefloat0Volume in dB (-100 to 10)
TransitionSpeedstring"Default"Fade speed: Default, Fast, Instant

Positional ambient sounds:

Emit_Zone1_Plains_Gen_Day.json
{
"Conditions": {
"DayTime": {
"Min": 5,
"Max": 19
},
"SunLightLevel": {
"Min": 10,
"Max": 15
},
"EnvironmentTagPattern": {
"Op": "And",
"Patterns": [
{ "Op": "Equals", "Tag": "Zone1" },
{ "Op": "Or", "Patterns": [
{ "Op": "Equals", "Tag": "Plains" },
{ "Op": "Equals", "Tag": "Encounters" }
]}
]
},
"WeatherTagPattern": {
"Op": "Not",
"Pattern": { "Op": "Equals", "Tag": "Rain" }
}
},
"Sounds": [
{
"SoundEventId": "SFX_Z1_Emit_Plains_Gen_Day_Birds",
"Frequency": { "Min": 1, "Max": 3 },
"Radius": { "Min": 1, "Max": 7 }
},
{
"SoundEventId": "SFX_Z1_Emit_Plains_Gen_Day_Insects",
"Radius": { "Min": 2, "Max": 8 },
"Frequency": { "Min": 2, "Max": 4 }
},
{
"SoundEventId": "SFX_Z1_Emit_Plains_Gen_Day_Wind",
"Frequency": { "Min": 0, "Max": 2 },
"Radius": { "Min": 2, "Max": 5 }
}
]
}
FieldTypeDefaultDescription
NeverboolfalseIf true, never conditionally triggers (can still be set server-side)
EnvironmentIdsstring[]Specific environment IDs to match
EnvironmentTagPatternobjectEnvironment tag pattern matching
WeatherIdsstring[]Specific weather IDs to match
WeatherTagPatternobjectWeather tag pattern matching
FluidFXIdsstring[]Fluid effect IDs to match
SurroundingBlockSoundSetsobject[]Block sound sets surrounding the player
Altitudeobject{ Min: 0, Max: 512 }Y-level range
Wallsobject{ Min: 0, Max: 4 }Enclosure level
RoofboolfalseWhether a roof is required
RoofMaterialTagPatternobjectTag pattern to match roof material
FloorboolfalseWhether a floor is required
SunLightLevelobject{ Min: 0, Max: 15 }Sun exposure level
TorchLightLevelobject{ Min: 0, Max: 15 }Torch light level
GlobalLightLevelobject{ Min: 0, Max: 15 }Combined light level
DayTimeobject{ Min: 0, Max: 24 }Hour range
OperatorDescription
EqualsTag matches exactly
AndAll patterns must match
OrAny pattern must match
NotPattern must not match
FieldTypeDefaultDescription
SoundEventIdstringSound event to play
Play3Dstring"Random"3D positioning mode: Random, LocationName, No
BlockSoundSetIdstringOptional block sound set filter
Altitudestring"Normal"Altitude positioning: Normal, Lowest, Highest, Random
Frequencyobject{ Min: 1, Max: 10 }Time between plays (seconds)
Radiusobject{ Min: 0, Max: 24 }Distance range (blocks)

Conditional music tracks:

{
"Conditions": { ... },
"Music": {
"Tracks": [
"Music/Zone1/Plains/Z1_Plains_Day_01.ogg",
"Music/Zone1/Plains/Z1_Plains_Day_02.ogg"
],
"Volume": -3.0
},
"Priority": 5
}
FieldTypeDefaultDescription
Tracksstring[]Array of music file paths (must be non-empty)
Volumefloat0Volume in dB (-100 to 10)

Apply reverb and EQ based on conditions:

{
"Conditions": { ... },
"SoundEffect": {
"ReverbEffectId": "Rev_Cave",
"EqualizerEffectId": "EQ_Default",
"IsInstant": false
},
"Priority": 10
}
FieldTypeDefaultDescription
ReverbEffectIdstringReverb effect to apply
EqualizerEffectIdstringEQ effect to apply
IsInstantboolfalseWhether to apply the effect instantly
  • DirectoryAssets/Server/Audio/AmbienceFX/
    • DirectoryAmbience/
      • DirectoryZone1/
        • DirectoryGlobal/
          • DirectoryNight/
          • DirectoryWind/
          • DirectorySunrise/
          • DirectorySunset/
        • DirectoryEnvironments/
          • DirectoryPlains/
            • DirectoryDay/
            • DirectoryNight/
          • DirectoryForest/
          • DirectorySwamp/
          • DirectoryMountain/
          • DirectoryShore/
          • DirectoryDungeon/
          • DirectoryTrork/
          • DirectoryKweebec/
      • DirectoryZone2/
      • DirectoryZone3/
      • DirectoryZone4/
      • DirectoryGlobal/
        • DirectoryCave/
      • DirectoryUnique/
        • DirectoryForgotten_Temple/
        • DirectoryDread_Wade/
    • DirectoryReverbZones/
      • DirectoryPlains/
      • DirectoryForest/
      • DirectoryMountain/
      • DirectorySwamp/
      • DirectoryUnderground/
      • DirectoryPrefabs/
MyPlugin_ISS_Custom.json
{
"SoundEvents": {
"Drop": "SFX_MyPlugin_Item_Drop",
"Drag": "SFX_MyPlugin_Item_Drag"
}
}
AudioCat_NPC_MyCreature.json
{
"Volume": 0,
"Parent": "AudioCat_NPC"
}
AmbFX_MyPlugin_Cave.json
{
"Conditions": {
"SunLightLevel": {
"Min": 0,
"Max": 4
},
"EnvironmentTagPattern": {
"Op": "Equals",
"Tag": "Cave"
}
},
"AmbientBed": {
"Track": "Sounds/MyPlugin/Cave_Ambient_LOOP.ogg",
"Volume": -5.0
}
}
  1. Use appropriate categories - Match item type to sound set
  2. Inherit from parents - Use Parent for NPC categories
  3. Set conditions carefully - Ensure ambience doesn’t overlap incorrectly
  4. Use tag patterns - Combine environment and weather tags
  5. Test volume levels - Ensure sounds aren’t too loud/quiet
  6. Follow naming conventions - Use ISS_, AudioCat_, AmbFX_ prefixes