Skip to content

Commit fd4322f

Browse files
Create anti-cheat-code-and-text.md
Anti-Cheat for Roblox.com
1 parent 0b82f97 commit fd4322f

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

anti-cheat-code-and-text.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Anti-Cheat: Unauthorized Script Detection for Roblox Games
2+
3+
## Introduction
4+
5+
In this document, we'll cover how to implement a system that detects unauthorized scripts in Roblox games. If a player tries to insert scripts that are not in the `ServerScriptService`, the game will automatically ban and disconnect them.
6+
7+
## Key Practices
8+
9+
- **Server-Side Script Validation**: Always ensure that scripts inserted by players are monitored and validated.
10+
- **Game Integrity**: Prevent players from injecting or modifying scripts in unauthorized locations.
11+
12+
## Example Code: Unauthorized Script Detection
13+
14+
The following Lua code checks if a player has implemented any scripts outside of `ServerScriptService` and bans them if detected.
15+
16+
```lua
17+
-- Function to check if a player has unauthorized scripts
18+
local function checkForUnauthorizedScripts(player)
19+
-- Get the player's scripts folder (if they have one)
20+
local playerScripts = player:FindFirstChild("PlayerScripts")
21+
if not playerScripts then return end
22+
23+
-- Loop through each script in PlayerScripts
24+
for _, script in pairs(playerScripts:GetChildren()) do
25+
-- Check if the script is located outside of ServerScriptService (i.e. unauthorized)
26+
if script:IsA("Script") or script:IsA("LocalScript") then
27+
local scriptParent = script.Parent
28+
if scriptParent.Name ~= "ServerScriptService" then
29+
-- If unauthorized script is found, ban the player and disconnect
30+
game:GetService("BanService"):BanPlayer(player, "Implemented unauthorized scripts.")
31+
player:Kick("You have been permanently banned for attempting to modify the game with unauthorized scripts.")
32+
break
33+
end
34+
end
35+
end
36+
end
37+
38+
-- Monitor for new players joining the game
39+
game.Players.PlayerAdded:Connect(function(player)
40+
-- Call the function to check the player's scripts
41+
checkForUnauthorizedScripts(player)
42+
end)
43+
44+
-- Optional: Check periodically for any new scripts added while the game is running
45+
game:GetService("RunService").Heartbeat:Connect(function()
46+
for _, player in pairs(game.Players:GetPlayers()) do
47+
checkForUnauthorizedScripts(player)
48+
end
49+
end)

0 commit comments

Comments
 (0)