The only way to kick someone out of a game is to crash their client with any memory-eating bug, like instancing a billion parts or messages, or while true do Delay(0, function() end) end This is very messy to do and isn’t professional in the slightest because it eats up mem.
Player:Kick() leaves the client in a free-cam state. It deletes GUIs, so they can still zoom around the map.
To prevent zooming around the map, we can call workspace:ClearAllChildren() locally (or loop through workspace and delete anything that isn’t Terrain), as well as workspace.Terrain:Clear() so they can’t find hidden secrets, etc.
Requesting something with the same functionality as instancing a bugged ManualSurfaceJointInstance (now patched), which pops up saying roblox has to quit.
Perhaps Player:Kick() would send a signal to the client first, then the client would pop up the freeze+popup notice at the same time the disconnect happens.