Invalid argument #3 (string expected, got table)

hello everyone, I’m trying to make a footstep sound script, and I’m getting this problem of (invalid argument #3 (string expected, got table) ). Any help on how to fix this.

Script:

local soundboard = {

	Concrete = {
		"rbxassetid://6026529903",
		"rbxassetid://6026529887",
		"rbxassetid://6026529862",
		"rbxassetid://6026529840",
		"rbxassetid://6026529818",
		"rbxassetid://6026529791",
		"rbxassetid://6026529773",
		"rbxassetid://6026529752",
		"rbxassetid://6026529732",
		"rbxassetid://6026529709",
		"rbxassetid://6026529682",
		"rbxassetid://6026529649",
		"rbxassetid://6026529624",
		"rbxassetid://6026529596",
		"rbxassetid://6026529570",
		"rbxassetid://6026529548",
		"rbxassetid://6026529529"
	},

	Dirt = {
		"rbxassetid://6026529510",
		"rbxassetid://6026529479",
		"rbxassetid://6026529455",
		"rbxassetid://6026529426",
		"rbxassetid://6026529403",
		"rbxassetid://6026529380",
		"rbxassetid://6026529353",
		"rbxassetid://6026529332",
		"rbxassetid://6026529302",
		"rbxassetid://6026529285",
		"rbxassetid://6026529263",
		"rbxassetid://6026529241",
		"rbxassetid://6026529218",
		"rbxassetid://6026529201"
	},

	Glass = {
		"rbxassetid://6026529185",
		"rbxassetid://6026529160",
		"rbxassetid://6026529132",
		"rbxassetid://6026529110",
		"rbxassetid://6026529091",
		"rbxassetid://6026529067",
		"rbxassetid://6026529041",
		"rbxassetid://6026529021"
	},

	Gravel = {
		"rbxassetid://6026528992",
		"rbxassetid://6026528968",
		"rbxassetid://6026528938",
		"rbxassetid://6026528910",
		"rbxassetid://6026528890",
		"rbxassetid://6026528867",
		"rbxassetid://6026528838",
		"rbxassetid://6026528810",
		"rbxassetid://6026528783",
		"rbxassetid://6026528757"
	},

	Metal_Chainlink = {
		"rbxassetid://6026528733",
		"rbxassetid://6026528705",
		"rbxassetid://6026528676",
		"rbxassetid://6026528646",
		"rbxassetid://6026528628",
		"rbxassetid://6026528611",
		"rbxassetid://6026528585",
		"rbxassetid://6026528552"
	},

	Metal_Grate = {
		"rbxassetid://6026528156",
		"rbxassetid://6026528216",
		"rbxassetid://6026528188",
		"rbxassetid://6026528244",
		"rbxassetid://6026528266",
		"rbxassetid://6026528287",
		"rbxassetid://6026528308",
		"rbxassetid://6026528332",
		"rbxassetid://6026528357",
		"rbxassetid://6026528385",
		"rbxassetid://6026528410",
		"rbxassetid://6026528441",
		"rbxassetid://6026528469",
		"rbxassetid://6026528496",
		"rbxassetid://6026528524"
	},

	Metal_Solid = {
		"rbxassetid://6026527724",
		"rbxassetid://6026527764",
		"rbxassetid://6026527787",
		"rbxassetid://6026527808",
		"rbxassetid://6026527837",
		"rbxassetid://6026527863",
		"rbxassetid://6026527891",
		"rbxassetid://6026527914",
		"rbxassetid://6026527941",
		"rbxassetid://6026527966",
		"rbxassetid://6026527992",
		"rbxassetid://6026528021",
		"rbxassetid://6026528049",
		"rbxassetid://6026528077",
		"rbxassetid://6026528109",
		"rbxassetid://6026528135"
	},

	Mud = {
		"rbxassetid://6026527485",
		"rbxassetid://6026527515",
		"rbxassetid://6026527542",
		"rbxassetid://6026527565",
		"rbxassetid://6026527590",
		"rbxassetid://6026527619",
		"rbxassetid://6026527643",
		"rbxassetid://6026527701",
		"rbxassetid://6026527665"
	},

	Rubber = {
		"rbxassetid://6026527312",
		"rbxassetid://6026527333",
		"rbxassetid://6026527355",
		"rbxassetid://6026527373",
		"rbxassetid://6026527397",
		"rbxassetid://6026527418",
		"rbxassetid://6026527438",
		"rbxassetid://6026527460"
	},

	Sand = {
		"rbxassetid://6026526986",
		"rbxassetid://6026527009",
		"rbxassetid://6026527039",
		"rbxassetid://6026527068",
		"rbxassetid://6026527096",
		"rbxassetid://6026527126",
		"rbxassetid://6026527161",
		"rbxassetid://6026527185",
		"rbxassetid://6026527213",
		"rbxassetid://6026527233",
		"rbxassetid://6026527251",
		"rbxassetid://6026527280"
	},

	Tile = {
		"rbxassetid://6026526636",
		"rbxassetid://6026526656",
		"rbxassetid://6026526679",
		"rbxassetid://6026526696",
		"rbxassetid://6026526715",
		"rbxassetid://6026526748",
		"rbxassetid://6026526771",
		"rbxassetid://6026526795",
		"rbxassetid://6026526825",
		"rbxassetid://6026526840",
		"rbxassetid://6026526866",
		"rbxassetid://6026526891",
		"rbxassetid://6026526928",
		"rbxassetid://6026526956"
	},

	Wood = {
		"rbxassetid://6026526251",
		"rbxassetid://6026526275",
		"rbxassetid://6026526300",
		"rbxassetid://6026526323",
		"rbxassetid://6026526351",
		"rbxassetid://6026526385",
		"rbxassetid://6026526422",
		"rbxassetid://6026526450",
		"rbxassetid://6026526470",
		"rbxassetid://6026526499",
		"rbxassetid://6026526518",
		"rbxassetid://6026526541",
		"rbxassetid://6026526561",
		"rbxassetid://6026526588",
		"rbxassetid://6026526612"
	},

	Snow = {
		"rbxassetid://6045131088",
		"rbxassetid://6045131054",
		"rbxassetid://6045131022",
		"rbxassetid://6045130992",
		"rbxassetid://6045130947",
		"rbxassetid://6045130914",
		"rbxassetid://6045130868",
		"rbxassetid://6045130832",
		"rbxassetid://6045130795",
		"rbxassetid://6045130744",
		"rbxassetid://6045130703",
		"rbxassetid://6045130649"
	}

}

local enumtomat = {

	[Enum.Material.Slate] = 		soundboard.Concrete,
	[Enum.Material.Concrete] = 		soundboard.Concrete,
	[Enum.Material.Brick] = 		soundboard.Concrete,
	[Enum.Material.Cobblestone] = 	soundboard.Concrete,
	[Enum.Material.Sandstone] =		soundboard.Concrete,
	[Enum.Material.Rock] = 			soundboard.Concrete,
	[Enum.Material.Basalt] = 		soundboard.Concrete,
	[Enum.Material.CrackedLava] = 	soundboard.Concrete,
	[Enum.Material.Asphalt] = 		soundboard.Concrete,
	[Enum.Material.Limestone] = 	soundboard.Concrete,
	[Enum.Material.Pavement] = 		soundboard.Concrete,

	[Enum.Material.Plastic] = 		soundboard.Tile,
	[Enum.Material.Marble] = 		soundboard.Tile,
	[Enum.Material.Granite] = 		soundboard.Tile,
	[Enum.Material.Neon] = 			soundboard.Tile,

	[Enum.Material.Wood] = 			soundboard.Wood,
	[Enum.Material.WoodPlanks] = 	soundboard.Wood,

	[Enum.Material.CorrodedMetal] = soundboard.Metal_Solid,
	[Enum.Material.DiamondPlate] = 	soundboard.Metal_Solid,
	[Enum.Material.Metal] = 		soundboard.Metal_Solid,

	[Enum.Material.Foil] = 			soundboard.Metal_Grate,

	[Enum.Material.Grass] = 		soundboard.Dirt,
	[Enum.Material.Ground] = 		soundboard.Dirt,
	[Enum.Material.LeafyGrass] = 	soundboard.Dirt,

	[Enum.Material.Sand] = 			soundboard.Sand,
	[Enum.Material.Fabric] = 		soundboard.Sand,
	[Enum.Material.Salt] = 			soundboard.Sand,

	[Enum.Material.Snow] = 			soundboard.Snow,

	[Enum.Material.Ice] = 			soundboard.Glass,
	[Enum.Material.Glacier] = 		soundboard.Glass,
	[Enum.Material.Glass] = 		soundboard.Glass,

	[Enum.Material.Pebble] = 		soundboard.Gravel,

	[Enum.Material.SmoothPlastic] = soundboard.Rubber,
	[Enum.Material.ForceField] = 	soundboard.Rubber,

	[Enum.Material.Mud] = 			soundboard.Mud

}

local char = script.Parent
		
local humanoid = char:WaitForChild("Humanoid")
local hrp = char:WaitForChild("HumanoidRootPart")
		
local footstepsSound = hrp:WaitForChild("Running")
		
humanoid:GetPropertyChangedSignal("FloorMaterial"):Connect(function()
			
	local floorMat = humanoid.FloorMaterial
	local soundOfMat = enumtomat[floorMat] --problem
			
	if soundOfMat then
		footstepsSound.SoundId = soundOfMat
		
	else
		footstepsSound.SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3"
	end
end)
1 Like

Use the tostring function when you’re attempting to change a Material’s sound inside a table, as it’s attempting to find a string value but apparently ended up being a table instead:

local floodMat = tostring(humanoid.FloorMaterial)
print(floodMat)

You should probably also change your Enums as well

Also how much sounds do you need geez

1 Like

The sounds are grouped in lists. By the looks of it, you are assigning the SoundId as a table. You can fix this by:

-- change this line
footstepsSound.SoundId = soundOfMat
-- to this
footstepsSound.SoundId = soundOfMat[math.random(1,#soundOfMat)]

Good luck!

1 Like

thanks for the help, btw these arent my sounds, their @uglyburger0 's sounds for his game which he let the sounds be open source

2 Likes