This might seem confusing but hopefully you can understand.
Lets say we have a table called bannedplayers.
local bannedplayers = {"bannedplayer1", "bannedplayer2", "someone"}
It could be an empty table or no. Now let say we also have an admin gui which only admins can access. They can ban, kick people for hours, days, week, months, years. Once that code executes it will create a new index in the bannedplayers table. If the player got banned for a week. He will stay inside that list for a week and he will get removed. Or if that is too complicated we can just create new tables with the time of the ban. For example a table called bannedplayers4aweek.
The thing is that this shall be done without shutting down the severs. And I do not think that is possible but with HttpServices it can be. I have seen this before in a game called CB:RO.
I am not asking for script ofc but how could this be done? I just want to get some ideas.

4 comments
With datastore, you can just have a table of temp bans that store a list: [UserName: string, BanTime: number]
BanTime being actually the time the ban expires. So you would set it relative to the current time.
^ how can I save tables in the server and I assume that the server would need to be shutdown so the other servers get affected by this change? It is like gui. If you modify the gui the changes won't be saved unless the player resets.
Like you said, httpsservice. You'd probably use something like trello to record the ban in a specified board. You can then refer to that board and return a json table and convert it with JSONDecode. You can then lookup a player in that table and compare timestamps. Trello also has an extensive api, so you probably wouldn't even need to do the json part to find someone.