Global Ban Script Model

So, I’m currently making a game where you can publish your own game easily (entirely through modules). Would there be a way that if a specific script was in your game, that it would call function to do something? Kind of like this, but across every game:

local banned = {}

if table.find(banned, player.UserId) then
    player:Kick()
end

DataStoreService probably, add a table in their data to determine if they’re banned or not.

So this would work inside of every game?

(Owned or not owned by me)

Only places within a certain game/experience, if you want something cross-experience, you need to use an external database.

So you would use HTTPService on something like a google spreadsheet, and then script the rest with google scripts?

HttpService would be the way to go, you could have a comma-delimited list of blacklisted user IDs stored in a pastebin paste.

Something like this?

Could you teach me how to do the rest?

local httpService = game:GetService("HttpService")

local url = "https://pastebin.com/Ktv2kriE"
local players = game:GetService("Players")
local http = game:GetService("HttpService")
local pasteUrl = "https://pastebin.com/raw/{PasteIdHere}"

local blacklisted = {}

local success, result = pcall(function()
	return http:GetAsync(pasteUrl)
end)

if success then
	if result then
		splitResult = result:split(", ")
		for _, userId in ipairs(splitResult) do
			userId = tonumber(userId)
			if userId then
				table.insert(blacklisted, userId)
			end
		end
	end
else
	warn(result)
end

players.PlayerAdded:Connect(function(player)
	task.wait(1)
	if table.find(blacklisted, player.UserId) then
		player:Kick("You are blacklisted!")
	end
end)

Example paste URL: https://pastebin.com/raw/rjGgL7N5