Найти в Дзене

Анти чит для роблокса

Ну короче, вот тебе рабочий анти-чит для Роблокса. Я постарался объяснить всё максимально просто, чтобы даже если ты не супер разбираешься в скриптах, смог это настроить. Что делает этот анти-чит? Он следит за игроками и, если кто-то юзает читы, сначала кикает, а потом, если нарушений будет много, банит навсегда. Вот что он проверяет: Телепорты – если игрок резко переместился слишком далеко. Скорость – если бежит быстрее, чем должно быть. Высота прыжка – если прыгнул выше нормы. Резкие повороты камеры – если дергает камерой слишком сильно, как будто чит наводит прицел. Аим-бот на монстра – если подозрительно долго и точно смотрит на голову монстра. Штрафы – за первое нарушение кик, за 5 нарушений бан навсегда. Что нужно сделать? Открываешь Studio. В Explorer находишь ServerScriptService (если нет – нажми View → Explorer). Создаёшь новый Script (правой кнопкой Insert Object → Script). Вставляешь туда вот этот код: lua Копируй local Players = game:GetService("Players") local DataStor

Ну короче, вот тебе рабочий анти-чит для Роблокса. Я постарался объяснить всё максимально просто, чтобы даже если ты не супер разбираешься в скриптах, смог это настроить.

Что делает этот анти-чит?

Он следит за игроками и, если кто-то юзает читы, сначала кикает, а потом, если нарушений будет много, банит навсегда. Вот что он проверяет:

Телепорты – если игрок резко переместился слишком далеко.

Скорость – если бежит быстрее, чем должно быть.

Высота прыжка – если прыгнул выше нормы.

Резкие повороты камеры – если дергает камерой слишком сильно, как будто чит наводит прицел.

Аим-бот на монстра – если подозрительно долго и точно смотрит на голову монстра.

Штрафы – за первое нарушение кик, за 5 нарушений бан навсегда.

Что нужно сделать?

Открываешь Studio.

В Explorer находишь ServerScriptService (если нет – нажми View → Explorer).

Создаёшь новый Script (правой кнопкой Insert Object → Script).

Вставляешь туда вот этот код:

lua

Копируй

local Players = game:GetService("Players")

local DataStoreService = game:GetService("DataStoreService")

local BanDataStore = DataStoreService:GetDataStore("BanList")

-- Настройки анти-чита

local MAX_TELEPORT_DISTANCE = 50

local MAX_WALK_SPEED = 16

local MAX_JUMP_HEIGHT = 50

local MAX_AIM_ANGLE = 150

local MONSTER_HEAD_NAME = "Head"

local AUTO_TRACK_TIME = 10

local violations = {}

-- Проверка на бан

local function checkBan(player)

local success, isBanned = pcall(function()

return BanDataStore:GetAsync(player.UserId)

end)

if success and isBanned then

player:Kick("Ты забанен за читы, удачи.")

return true

end

return false

end

-- Функция бана

local function banPlayer(player)

local success, err = pcall(function()

BanDataStore:SetAsync(player.UserId, true)

end)

if success then

player:Kick("Ты в перманентном бане. Читы не помогут!")

else

warn("Ошибка бана: " .. tostring(err))

end

end

-- Отслеживание игрока

local function trackPlayer(player)

local character = player.Character

if not character then return end

local humanoid = character:FindFirstChildOfClass("Humanoid")

if not humanoid then return end

local rootPart = character:FindFirstChild("HumanoidRootPart")

if not rootPart then return end

local lastPosition = rootPart.Position

local lastCameraCFrame = nil

local aimStartTime = nil

while player and player.Parent do

task.wait(0.1)

if not character or not humanoid or not rootPart then break end

-- Проверка на телепорт

local distanceMoved = (rootPart.Position - lastPosition).Magnitude

if distanceMoved > MAX_TELEPORT_DISTANCE then

violations[player] = (violations[player] or 0) + 1

player:Kick("Телепорт detected.")

return

end

lastPosition = rootPart.Position

-- Проверка на скорость

if humanoid.WalkSpeed > MAX_WALK_SPEED then

violations[player] = (violations[player] or 0) + 1

player:Kick("Ты слишком быстрый.")

return

end

-- Проверка на высоту прыжка

if humanoid.JumpPower > MAX_JUMP_HEIGHT then

violations[player] = (violations[player] or 0) + 1

player:Kick("Слишком высоко прыгаешь.")

return

end

-- Проверка на резкие повороты камеры

local cameraCFrame = workspace.CurrentCamera.CFrame

if lastCameraCFrame then

local angleDiff = math.deg((cameraCFrame.LookVector:Dot(lastCameraCFrame.LookVector)))

if math.abs(angleDiff) > MAX_AIM_ANGLE then

violations[player] = (violations[player] or 0) + 1

player:Kick("Камера слишком резкая, читер?")

return

end

end

lastCameraCFrame = cameraCFrame

-- Проверка на аим-бот (если игрок долго фиксируется на голове монстра)

local lookingAtMonster = false

for _, monster in pairs(workspace:GetChildren()) do

if monster:FindFirstChild(MONSTER_HEAD_NAME) then

local head = monster[MONSTER_HEAD_NAME]

local direction = (head.Position - rootPart.Position).unit

local dotProduct = direction:Dot(cameraCFrame.LookVector)

if dotProduct > 0.98 then

lookingAtMonster = true

break

end

end

end

if lookingAtMonster then

if not aimStartTime then

aimStartTime = tick()

elseif tick() - aimStartTime > AUTO_TRACK_TIME then

violations[player] = (violations[player] or 0) + 1

player:Kick("Аим-бот не пройдет.")

return

end

else

aimStartTime = nil

end

-- Бан после 5 нарушений

if violations[player] and violations[player] >= 5 then

banPlayer(player)

return

end

end

end

-- Когда игрок заходит в игру

Players.PlayerAdded:Connect(function(player)

if checkBan(player) then return end

violations[player] = 0

player.CharacterAdded:Connect(function()

task.wait(2)

trackPlayer(player)

end)

end)

Как это работает?

✅ Если игрок телепортируется – кик.

✅ Если его скорость больше нормы – кик.

✅ Если он прыгает выше положенного – кик.

✅ Если камера поворачивается слишком резко – кик.

✅ Если слишком долго смотрит на монстра – кик.

✅ Если нарушит 5 раз – бан навсегда.

Что делать дальше?

Сохранить игру.

Протестировать анти-чит (можно через команды в Command Bar: game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 50).