Back to Improved Footsteps

Configuration

You'll want to locate the FootstepsConfig.luau module inside ReplicatedStorage after set up (see installation for the setup guide)

Editing configuration

Inside the module you'll get something like this:

Lua
--!strict

const Config = {
	ANIMATION_MARKERS_ENABLED = true,
	
	ANIMATION_MARKER_NAME = "Footstep",
	
	ANIMATION_MARKER_TO_LIMB_NAMES = {
		R15 = {
			["Left"] = "LeftFoot",
			["Right"] = "RightFoot",
		},
		
		R6 = {
			["Left"] = "Left Leg",
			["Right"] = "Right Leg",
		},
	},
	
	USE_RAYCAST_FOR_MATERIAL = true,
	
	STATIC_STEP_INTERVAL = {
		R15 = {
			Min = 0.27,
			Max = 0.27,
		},
		
		R6 = {
			Min = 0.35,
			Max = 0.35,
		},
	},
	
	NPC_TAG = "FootstepsEnabled",
	
	DISTANCE_ATTENUATION = {
		[0] = 1.0, -- 0 studs has 100% volume
		[40] = 0.3, -- 40 studs has 30% volume
		[75] = 0.0, -- 75 studs has 0% volume
	},
}

return Config

What does each configuration do?

Let's break down what each does so you can get the most out of the system.


Marker vs Static

Marker-based footsteps are always highly more preferred than Static ones. See our Marker animation setup guide here. ANIMATION_MARKERS_ENABLED - When set to true, all players will use Marker footsteps. If false, all players will use Static footsteps. What's the difference?

ANIMATION_MARKER_NAME - The marker to listen for within animations. When a character plays an animation, the system will check when the animation reaches this marker, and if it does, a footstep will be played.

ANIMATION_MARKER_TO_LIMB_NAMES

  • R15 - A set of marker values to limb names for R15 rigs. This is used to determine where you want the audio to play from. It's recommended not to change this.
  • R6 - A set of marker values to limb names for R6 rigs. This is used to determine where you want the audio to play from. It's recommended not to change this.

Raycasting over Humanoid.FloorMaterial

Raycasting will almost always give better results over a single Humanoid.FloorMaterial value. This is because both legs will rely on the humanoid, rather than the material they're actually standing on, which can ruin some immersive experiences.

USE_RAYCAST_FOR_MATERIAL - When true, the system will use raycasts over using the traditional Humanoid.FloorMaterial property. This allows more robust detection for multisound support.


Static footsteps

The intervals have already been refined to a certain baseline to be clean and scale well with speed, but it's possible to use your own.

STATIC_STEP_INTERVAL

  • R15 - The interval at which Static footsteps play at for R15 rigs. This is only a baseline and characters are higher speeds will play at different intervals.
  • R6 - The interval at which Static footsteps play at for R6 rigs. This is only a baseline and characters are higher speeds will play at different intervals.

NPCs

Improve not only player characters, but also non-player ones too.

NPC_TAG - Automatically detect NPCs by using a CollectionService tag. For a proper setup guide for NPCs, see this page.


Realism

Give your footsteps actual distance attenuation and make them feel like actual steps.

DISTANCE_ATTENUATION - The distance at which audio begins to fall off based on distance. The key (value in brackets) is the distance in studs. The value (value after the equals sign) is the baseline volume.