Yeah I know, thats why I said its a bad idea.
I just showed it as an example, he can just add a userId.
As I said, your post doesnt help, because I’m not making a black list, I’m making a ban system.
I don’t want to exclude certain players, i want to make a system that will ban any player that does a certain action and then saving that ban data.
How would I save the PlayerDataTable?
Could you tell me how to save tables? because that was my original question.
Yeah you need to use some sort of datastore to save the table.
That was my original question, how would I do that?
I already mentioned looking into Datastore2 or ProfileService. There are many post and videos about it. They have all the information and documents required to get started.
You need to put it in a pcall function.
The script probably timed out
I think your script should look like this…
local SaveData = game:GetService("DataStoreService"):GetDataStore("SaveBannedData") function saveData(data, key) local info = data local success, err = pcall(function() SaveData:SetAsync(key, info) end) if success then print("Success!") return "Success" end if err then return false end end function readData(key) local success, currentExperience = pcall(function() return SaveData:GetAsync(key) end) if success then return currentExperience else return false end end function removeData(key) local success, nickname = pcall(function() return SaveData:RemoveAsync(key) end) if success then return true end end local banned = readData("BannedPlayers") game.Players.PlayerAdded:Connect(function(player) while true do wait(1) if player does action then table.insert(banned, player.UserId) else -- do nothing end if table.find(banned, player.UserId) then player:Kick("You have been banned.") else -- do nothing end end end) game.Players.PlayerRemoving:Connect(function(player) -- so that is works in the actual game local isSaved = saveData(banned, "BannedPlayers") if isSaved then print("Saved successfully!") end end) game:BindToClose(function() -- so that it works in roblox studio local isSaved = saveData(banned, "BannedPlayers") if isSaved then print("Saved successfully!") end end)
Also, make sure that in the game settings, that Enable Studio Access to API Services is ON
Thanks for the reply, I appreciate it , could you explain how the script works?
the functions use a pcall function so that it returns an error instead of crashing the entire script.
the banned uses datastores because it won’t automatically save.
in the PlayerRemoving event, it checks if it saves because each function returns a bool (true or false)
the game:BindToClose() function is there because if the game gets shutdown or you are trying to test it in studio, it will still save.
if you want an easier explanation, I recommend you check out these links.