← Back to Portal Hub

Roblox Sunucu Yetkili Anti-Cheat: Speed Hack, Noclip Tespiti ve Fizik Doğrulama

By DopaBrain Studio Engineering Team • 2026-09-30 • Technical Guide

Roblox çok oyunculu oyunlarında istemci taraflı (LocalScript) hile koruma sistemleri, modern bellek enjektörleri karşısında tamamen etkisizdir.

Adil bir rekabet sağlamak için sunucu yetkili bir güvenlik modeli şarttır. Delta-time ile hareket kontrolü, raycast ile duvar geçişi engelleme ve şüpheli durumlarda konumu geri sararak hileler engellenir.

1. İstemci Taraflı Korumalar Neden Başarısız Olur

Roblox istemci hilelerinin çalışma prensiplerini anlamak:

2. Sunucu Yetkili Hız ve Işınlanma Doğrulaması

Ping dalgalanmalarında yanlış uyarı vermeden hız anomalilerini tespit etme:

Luau Sunucu Anti-Cheat Servisi: Hız Kontrolü ve Noclip Tespiti
--!strict
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")

local AntiCheatService = {}

type PlayerRecord = {
    lastPosition: Vector3,
    lastTick: number,
    anomalyBuffer: number,
    isFalling: boolean
}

local trackedPlayers: { [Player]: PlayerRecord } = {}
local RAY_PARAMS = RaycastParams.new()
RAY_PARAMS.FilterType = RaycastFilterType.Exclude

function AntiCheatService.InitPlayer(player: Player)
    local char = player.Character or player.CharacterAdded:Wait()
    local hrp = char:WaitForChild("HumanoidRootPart") :: BasePart
    trackedPlayers[player] = {
        lastPosition = hrp.Position,
        lastTick = os.clock(),
        anomalyBuffer = 0,
        isFalling = false
    }
end

function AntiCheatService.OnHeartbeat(dt: number)
    local now = os.clock()
    for player, record in pairs(trackedPlayers) do
        local char = player.Character
        if not char then continue end
        local hrp = char:FindFirstChild("HumanoidRootPart") :: BasePart?
        local humanoid = char:FindFirstChildOfClass("Humanoid")
        if not hrp or not humanoid or humanoid.Health <= 0 then continue end
        
        local currentPos = hrp.Position
        local displacement = (currentPos - record.lastPosition).Magnitude
        local maxAllowed = (humanoid.WalkSpeed * dt * 1.35) + 0.5
        
        if displacement > maxAllowed and not record.isFalling then
            record.anomalyBuffer += (displacement - maxAllowed)
            if record.anomalyBuffer > 15 then
                hrp.CFrame = CFrame.new(record.lastPosition)
                hrp.AssemblyLinearVelocity = Vector3.zero
                record.anomalyBuffer = 0
                continue
            end
        else
            record.anomalyBuffer = math.max(0, record.anomalyBuffer - (dt * 5))
        end
        
        RAY_PARAMS.FilterDescendantsInstances = { char }
        local dir = currentPos - record.lastPosition
        if dir.Magnitude > 0.1 then
            local hit = Workspace:Raycast(record.lastPosition, dir, RAY_PARAMS)
            if hit and hit.Instance and hit.Instance.CanCollide then
                hrp.CFrame = CFrame.new(record.lastPosition)
                hrp.AssemblyLinearVelocity = Vector3.zero
                continue
            end
        end
        record.lastPosition = currentPos
        record.lastTick = now
    end
end

RunService.Heartbeat:Connect(AntiCheatService.OnHeartbeat)
Players.PlayerAdded:Connect(AntiCheatService.InitPlayer)
return AntiCheatService

3. Raycast ile Noclip ve Duvar Geçişlerini Engelleme

Oyuncuların katı nesnelerin içinden geçmesini durdurma:

4. Ağ Gecikmesi Telafisi ve Paket Dalgalanmaları

Yüksek pingli oyuncuları mağdur etmeden koruma sağlama:

5. Büyük Ölçekli Mimari ve Performans

Sunucu hızını düşürmeden 50+ oyunculu sunucuları koruma:

Frequently Asked Questions

LocalScript üzerinden hız kontrolü neden çalışmaz?

İstemci yerel belleğini kontrol edebilir ve bu kontrolleri rahatlıkla etkisizleştirebilir.

Patlama veya savrulma etkileri nasıl idare edilir?

Sunucu tarafından uygulanan itme güçlerinde oyuncunun hız limiti geçici olarak yükseltilir.

Sunucuda raycast yapmak kasmaya yol açar mı?

Doğru optimize edilmiş raycastler 50 oyuncu için kare başına 0.2 ms'den az sürer.

Explore More Interactive Tests & Guides

Discover personalized cognitive assessments, stress evaluations, and game psychology tools on DopaBrain.

Go to Portal Hub