So Im trying to have a level commands where it will level the user when !level Bxl0c 1 is ran but my 2nd argument expects a string and I dont want that? anyway to fix im not very smart

local commands = {}

local admins = {
     "Bxl0c";
	"DrCoffeez";
	"FoxyIsMyPetAnimal"
}

local prefix = "!"

local function findPlayer(name)
	
	for _, player in pairs(game.Players:GetPlayers()) do
		if string.lower(player.Name) == name then 
			return player
		end
	end

    return nil

end
	
		

local function isAdmin(player)
	for _, v in pairs(admins) do
		if v == player.Name then
			return true
		end
	end

   return false
end

---------------------------------
--Level command

commands.level = function(sender, arguments)

	print("Level Fired By "..sender.Name)

	for _, playerName in pairs(arguments) do
		print(playerName)
	end

	local playerToLevel = arguments[1]
	local HmLvl = arguments[2]

	if playerToLevel then
		local plrToL = findPlayer(playerToLevel)

		if plrToL then
			game.Players[plrToL].Extra.Data_Level.Value = HmLvl
		end
	end

end

game.Players.PlayerAdded:Connect(function(player)
	player.Chatted:Connect(function(message,recipient)
		if isAdmin(player) then
			message = string.lower(message)

			local splitString = message:split(" ")

			local slashCommand = splitString[1]

			local cmd = slashCommand:split(prefix)

			local cmdName = cmd[2]

			if commands[cmdName] then

				local arguments = {}

				for i = 1, #splitString, 1 do
					table.insert(arguments,splitString[i])
				end

				commands[cmdName](player,arguments)

			end


		end
	end)
end)


local function findPlayer(name)

	for _, player in pairs(game.Players:GetPlayers()) do
		if string.lower(player.Name) == name then
			return player
		end
	end

	return nil

end

local function isAdmin(player)
	for _, v in pairs(admins) do
		if v == player.Name then
			return true
		end
	end

	return false
end

thanks if anyone can help