Skip to content

Adding Sounds

Sounds are defined as SoundEvent assets — JSON files that reference .ogg audio files and control how they play (volume, pitch, distance, layering).

Pack location: Common/Sounds/ (audio files) + corresponding SoundEvent JSON
Base game reference: Assets.zip/Common/Sounds/

  • Format: Ogg Vorbis (.ogg)
  • Block sounds: mono (single channel)
  • Item sounds: stereo (two channels)
  • Other sounds: mono or stereo

A SoundEvent defines a single playable sound with one or more layers.

{
"Volume": 0,
"Pitch": 0,
"StartAttenuationDistance": 2.0,
"MaxDistance": 16.0,
"MaxInstance": 50,
"PreventSoundInterruption": false,
"AudioCategory": "SFX_Category",
"Layers": [
{
"Files": [
"Sounds/SFX/My_Sound_01.ogg",
"Sounds/SFX/My_Sound_02.ogg"
]
}
]
}
FieldTypeDefaultDescription
Volumefloat0Base volume in decibels (-100 to +10)
Pitchfloat0Base pitch in semitones (-12 to +12)
StartAttenuationDistancefloat2.0Distance (blocks) before volume fades
MaxDistancefloat16.0Maximum audible distance (blocks)
MaxInstanceint50Max concurrent instances (1-100)
PreventSoundInterruptionbooleanfalsePrevents this sound from being interrupted
AudioCategorystringReferences an AudioCategory asset for volume bus grouping
MusicDuckingVolumefloat0How much to duck music when playing (-100 to 0 dB)
AmbientDuckingVolumefloat0How much to duck ambient when playing (-100 to 0 dB)

Each SoundEvent can have multiple layers that play independently. Each layer selects a random file from its Files array.

{
"Layers": [
{
"Volume": 0,
"StartDelay": 0.0,
"Looping": false,
"Probability": 100,
"ProbabilityRerollDelay": 1.0,
"RoundRobinHistorySize": 3,
"RandomSettings": {
"MinVolume": -3,
"MaxVolume": 3,
"MinPitch": -2,
"MaxPitch": 2
},
"Files": [
"Sounds/SFX/Hit_01.ogg",
"Sounds/SFX/Hit_02.ogg",
"Sounds/SFX/Hit_03.ogg"
]
}
]
}
FieldTypeDefaultDescription
Volumefloat0Layer volume in dB (-100 to +10)
StartDelayfloat0.0Delay before playing (seconds)
LoopingbooleanfalseWhether the layer loops
Probabilityint100Chance to play each time (0-100%)
ProbabilityRerollDelayfloat1.0Seconds before re-rolling probability
RoundRobinHistorySizeint0Prevents repeating recent files (0 = disabled, max 32)
RandomSettingsobjectPer-play volume/pitch randomization

RandomSettings adds variation each time the sound plays:

FieldTypeRangeDescription
MinVolumefloat-100 to 0 dBMinimum volume offset
MaxVolumefloat0 to +10 dBMaximum volume offset
MinPitchfloat-12 to 0 semitonesMinimum pitch offset
MaxPitchfloat0 to +12 semitonesMaximum pitch offset
MaxStartOffsetfloatsecondsRandom start position for looping sounds

Map block interaction events to SoundEvent IDs. Each block type can reference a BlockSoundSet.

Pack location: Alongside block definitions

{
"SoundEvents": {
"Walk": "SFX_Block_Walk_Stone",
"Land": "SFX_Block_Land_Stone",
"MoveIn": "SFX_Block_MoveIn_Stone",
"MoveOut": "SFX_Block_MoveOut_Stone",
"Hit": "SFX_Block_Hit_Stone",
"Break": "SFX_Block_Break_Stone",
"Build": "SFX_Block_Build_Stone",
"Clone": "SFX_Block_Clone_Stone",
"Harvest": "SFX_Block_Harvest_Stone"
},
"MoveInRepeatRange": { "min": 0.5, "max": 1.5 }
}

Block sound events:

EventWhen it plays
WalkPlayer walks on the block
LandPlayer lands on the block
MoveInEntity enters the block’s space
MoveOutEntity leaves the block’s space
HitBlock is hit (mining)
BreakBlock is broken
BuildBlock is placed
CloneBlock is cloned (creative)
HarvestBlock is gathered

Block sounds must be mono and non-looping.

Map item UI events to SoundEvent IDs.

{
"SoundEvents": {
"Drag": "SFX_Item_Drag_Default",
"Drop": "SFX_Item_Drop_Default"
}
}
EventWhen it plays
DragItem dragged in inventory UI
DropItem dropped in inventory UI

Item sounds must be stereo and non-looping.

Each SoundEvent plays through a sound category bus:

CategoryUse for
MusicBackground music
AmbientEnvironmental ambience
SFXSound effects (default)
UIUI interaction sounds

AudioCategory assets define volume bus hierarchies. Child categories inherit parent volume (multiplicative).

{
"Volume": 0
}
{
"DeathSoundEventId": "SFX_Arrow_Impact"
}
{
"Effects": {
"WorldSoundEventId": "SFX_Sword_Swing",
"PlayerSoundEventId": "SFX_Weapon_Whoosh"
}
}

WorldSoundEventId plays as a 3D sound at the interaction position. PlayerSoundEventId plays as a 2D sound to the acting player only.

{
"Type": "PlaySound",
"SoundEventId": "SFX_Wolf_Growl"
}

See Gathering config for block interaction sounds.

WhatYour PackBase Game Reference
Audio files (.ogg)Common/Sounds/Assets.zip/Common/Sounds/
SoundEvent definitionswith audio fileswith audio files
Block sound setswith block definitionsAssets.zip/Server/Item/Block/Sounds/
Item sound setswith item definitionsAssets.zip/Server/Item/ItemSounds/