#Best way to learn AC

1 messages · Page 1 of 1 (latest)

formal jackal
#

Im kinda new to LuaU and I know a tiny bit of basics after watching the first few bits of Brawl Devs video but I want to learn some basics and try to learn how to make Anti Cheat and just need some pointers where to find out how to start

formal jackal
waxen hamlet
#

the problem with yt tuts is that even if it was posted 3 weeks ago it could be outdated

orchid island
crystal solstice
#

like dont put a remote in your game that an exploiter can fire with a dollar amount and your server just lets them have it

crystal solstice
boreal anchor
crystal solstice
boreal anchor
crystal solstice
drowsy wasp
crystal solstice
# drowsy wasp what if he uses Lv and Ar

then the detection becomes specific to the game. i tried to make a full on instance tree watcher and it is too unstable, there are too many variables and a lot of potential for false positives so it's not worth the effort or the performance cost

#

e.g what if your game naturally adds Highlight to other player's characters sometimes, and an exploiter just adds highlights to everyone at all times? how do you tell the difference?

boreal anchor
crystal solstice
crystal solstice
drowsy wasp
boreal anchor
#

I mean it does make it annoying for any exploiters so I guess its not totally useless

crystal solstice
#

but that dont mean i have to let it be easy epic

crystal solstice
crystal solstice
#

this anticheat has other requirements, you aren't going to accidently create deprecated instance classes while using this

drowsy wasp
#

wrong forum

#

blyat

#

i forgot which

drowsy wasp
#
drowsy wasp
#

wrong link

crystal solstice
#

the point is to show general concept of the handshake and yes, i am aware

drowsy wasp
#

The Problem of ur anticheat the exploiter can add himself speedbypass via Their console bar

crystal solstice
#

wat

#

one does not just simply bypass this anticheat

drowsy wasp
#

while urs its only based of basic Speed

crystal solstice
#

idk what this term you're using means in the way you're using it, basic speed?

crystal solstice
#

lol

#

that's just one of the few bits i can share without giving too much away

drowsy wasp
#

i will eat j

#

u

crystal solstice
#

no, that is in there just to catch skids

#

that is not a critical detection

#

in fact that's one of the lowest severity detections in here so far

#

by comparison, calling the detection function with invalid parameters is a critically severe detection

#

because it means you have found and have access to the internals of the anticheat

#

at least to some degree

#

this isn't my first time making an anticheat 😂

drowsy wasp
#

i think u could js add a beam infront of ur char and it will be speed limit,if the Hrp touches it it means the Speed bypassed

crystal solstice
#

the exploiter can just delete the beam

crystal solstice
#

meanwhile, i can just listen for local changes to walkspeed and if they are unexpected you get ban

drowsy wasp
#

like u could detect that he deleted it

#

= ban

#

no?

crystal solstice
#

no

#

an exploiter has more access than you might realize

#

they can just remove the function from your code, in a manner of speaking

drowsy wasp
#

Ik

#

ik

#

and ye there is a downside

#

even if exploiter deletes the beam he could add new

#

without colide

#

or like js replace it

crystal solstice
#

or just disconnected your .touched event

drowsy wasp
#

check dms

crystal solstice
#

just sayin im working on an anticheat and take it from me just do server only, you'd have to be mad to attempt this. fortunately i've got that on my side.

drowsy wasp
#

Like if its sets on Nil

#

they aint finding shit

crystal solstice
#

they can pull instances from nil

#

you can require() destroyed modulescripts too aint that fun

drowsy wasp
crystal solstice
#

then they too skidded to handle what i've got waiting for them

#

or their computer bluescreens and crashes because their memory gets capped out

#

due to trying to hold onto all nil instances and turning off gc hehe

#

while i spam 100 clones every frame

#

good luck

#

-# im exaggerating but srsly, good luck to anyone who wants to try. i wouldn't want to be them

#

besides, most cheaters spend money on their cheats. at a point, they'll just buy my gamepasses instead 🙂

drowsy wasp
#

...

#

u can crack most of them

#

and there is free executors

crystal solstice
crystal solstice
drowsy wasp
#

for wall

drowsy wasp
#

thrkught walls

#

u can even change ur speed

#

nvm

#

u can detect it

#

Js checked

crystal solstice
#

that's hilarious, i dont think i can trivially detect that on the client, so that gets deferred to serverside movespeed checks, which you still need to do

crystal solstice
drowsy wasp
#

the tween it will be counted as smooth movement even if the exploiter make it on ctazy value

#

crazy

crystal solstice
#

tweening position isn't all that useful and you cant tween a model's position

#

so this is actually game defined, and you can check it on the server. i can check it on client too if i wanted to

drowsy wasp
#

but they could bypass the distance

#

if aka i set the distance to check its 50 studs

#

they could js stop at 45-49

#

to avoid the teleports

#

and client wont do shit after it

#

man,fuck this anticheat

#

buttt

crystal solstice
drowsy wasp
#

wait

crystal solstice
#

it's the same as checking for highlights on the client - i can make that check because running on the client, server can't do it

#

the point of my anticheat is so you can make those checks at all without being hijacked by skids

drowsy wasp
#

but u actually could tho

crystal solstice
#

every frame

formal jackal
#

I know basic functions

formal jackal
#

The basics

#

Docs or tutorials

drowsy wasp
#

tutorial; only first 5 mins or explanation of the work and fry ur brain on system

#

else u will js copy paste

formal jackal
#

Wdym skidding

drowsy wasp
#

Docs,only if u understand

drowsy wasp
#

me skid

formal jackal
#

Like steal code?

drowsy wasp
formal jackal
#

Hows that gonna teach me

drowsy wasp
#

Its just offend and don't bother with the joke

drowsy wasp
#

thats the best answer

formal jackal
drowsy wasp
#

everything helps but to actually script u need time :P

formal jackal
#

Ok

drowsy wasp
crystal solstice
#

touch all the buttons and see what happens, ya?

formal jackal
#

tyy

waxen hamlet
#

That just depends on the person and how they’re learning

#

but for example everyone watches brawl dev who’s tutorials are 1+ years old and uses older APIs

waxen hamlet
crystal solstice
crystal solstice
formal jackal
crystal solstice
formal jackal
#

what would i make for a begineer

crystal solstice
#

put a button on the screen that spawns a part.

#

touch a part to change its color.

#

every second your character jumpheight gets bigger

#

and then save your jump power into a datastore

#

and then put it on leaderstats

#

and then make a touch button that resets your jump power and gives you wins

#

and then make the jump power increase faster with more wins

#

and then take a screenshot and release your very first +1jump/sec game

#

-# if you can't make +1jump/sec without a step by step tutorial how do you plan on making anything else

formal jackal
#

alr

waxen hamlet
waxen hamlet
waxen hamlet
#

they're complex in the eyes of a beginner

formal jackal
#

get a position

waxen hamlet
#

Part.Position

formal jackal
#

instead of using a part and putting it in a position then copying that position and pasting it in the code

waxen hamlet
#

oh

#

no probably not

#

The game can't read your mind on where you wanna place things

formal jackal
#

ok

#
local button = script.Parent

button.MouseButton1Click:Connect(function()
    local part = Instance.new("Part")
    part.Position = Vector3.new(0, 0.5, -8.898)
    part.Parent = workspace
end)
#

this is what i got so far

waxen hamlet
#

you could do

#

the parts new position = old position + 5 studs

#

that way it dont just jump

#

once

formal jackal
waxen hamlet
#

any direction 5 studs yea

#

depends what u do

formal jackal
#

is there a way to make a radius of teh player and make it spawn outside that radius?

#

pretty advavced for a beginner imo

waxen hamlet
#

yeah

waxen hamlet
formal jackal
#

ok

waxen hamlet
#

for something like preventing it from moving when inside of the players range (e.g. 5 studs) you would get the player position and the part position, then use .Magnitude to get the distance between them, and prevent the part from jumping if its within that distance.

formal jackal
#

im rn just using docs hopefully that can help me learn

#
    epicPart.Touched:Connect(function(hit)
        local player = Players:GetPlayerFromCharacter(hit.Parent)
        if player then
            local r = math.random(0, 255)
            local g = math.random(0, 255)
            local b = math.random(0, 255)

            epicPart.Color = Color3.fromRGB(r, g, b)
        end
    end)```
formal jackal
waxen hamlet
#

like

waxen hamlet
drowsy wasp
#

but ye spent more time on roblox studio

#

:P

waxen hamlet
drowsy wasp
#

its peak

waxen hamlet
#

docs aint peak to a beginner

waxen hamlet
formal jackal
formal jackal
waxen hamlet
#

above the touched put "local debounce = false"

#

then check inside the script "if debounce == false then" and after you change the colour set "debounce = true"

#

Example:

local debounce = false
epicPart.Touched:Connect(function(hit)
    local player = Players:GetPlayerFromCharacter(hit.Parent)
    if player and debounce == false then
        local r = math.random(0, 255)
        local g = math.random(0, 255)
        local b = math.random(0, 255)

        epicPart.Color = Color3.fromRGB(r, g, b)
        debounce = true
    end
end)
formal jackal
#

Okay

formal jackal
waxen hamlet
#

yea

formal jackal
#

didnt work

waxen hamlet
#

?

#

send the ocde

#

code

formal jackal
#
local Players = game:GetService("Players")
local button = script.Parent

button.MouseButton1Click:Connect(function()
    local epicPart = Instance.new("Part")
    epicPart.Position = Vector3.new(0, 0.5, -8.898)
    epicPart.Parent = workspace

     local debounce = false
    epicPart.Touched:Connect(function(hit)
        local player = Players:GetPlayerFromCharacter(hit.Parent)
        if player and debounce == false then
            local r = math.random(0, 255)
            local g = math.random(0, 255)
            local b = math.random(0, 255)

            epicPart.Color = Color3.fromRGB(r, g, b)
            local debounce = true
        end
    end)
end)```
waxen hamlet
#

did u even read the one i sent

#

OH

#

wait

#

wtf

#

why have u got a touched function inside of a clicked function

formal jackal
#

uhmm

#

🤷

waxen hamlet
#

basically

#

every time u click the button

#

it sets debounce back to false

formal jackal
#

OHH

#

that means sense

waxen hamlet
#

you're running a fresh code every time u click it

#

so just make them seperate blocks Thumbsup

formal jackal
#

so how would i learn if docs isnt for beginners

waxen hamlet
#

it is for beginners

#

just slightly more confusing

waxen hamlet
formal jackal
#
local Players = game:GetService("Players")
local button = script.Parent

button.MouseButton1Click:Connect(function()
    local epicPart = Instance.new("Part")
    epicPart.Position = Vector3.new(0, 0.5, -8.898)
    epicPart.Parent = workspace
end)

local debounce = false
epicPart.Touched:Connect(function(hit)
    local player = Players:GetPlayerFromCharacter(hit.Parent)
    if player and debounce == false then
        local r = math.random(0, 255)
        local g = math.random(0, 255)
        local b = math.random(0, 255)

        epicPart.Color = Color3.fromRGB(r, g, b)
        local debounce = true
    end
end)```
#

i did tis wrong

#

didnt i

waxen hamlet
#

i mean

#

looks fine to me

formal jackal
#

Players.Sonarsilly.PlayerGui.GUI.SpawnButton.Script:11: attempt to index nil with 'Touched'

waxen hamlet
#

OH

#

above the debounce

formal jackal
#

oh

waxen hamlet
#

ig you could make a variable for the new part

formal jackal
#

i need smth that can tell me more basics

waxen hamlet
#

and then search workspace for that part

waxen hamlet
formal jackal
waxen hamlet
#

also whys ur script inside of a gui

waxen hamlet
formal jackal
waxen hamlet
#

so you would do something like uh

local newPart = workspace:FindFirstChild("Epic")
if not newPart then return end
waxen hamlet
#

only goes in a gui if its something like a state controller for the button

#

which yours 50% is

#

the other half should be either a server script in SSS or a local script in SPS/SCS

formal jackal
#

so the button touch stuff

orchid geodeBOT
#

studio** You are now Level 6! **studio

formal jackal
#

in sss

#

then button click in button

waxen hamlet
#

yeah pretty much

formal jackal
#

do i use like yt tutorials to learn or nah

waxen hamlet
#

GUI Script:

local Players = game:GetService("Players")
local button = script.Parent

button.MouseButton1Click:Connect(function()
    local epicPart = Instance.new("Part")
    epicPart.Position = Vector3.new(0, 0.5, -8.898)
    epicPart.Parent = workspace
end)

Server OR Local Script:

local Players = game:GetService("Players")
local debounce = false

epicPart.Touched:Connect(function(hit)
    local player = Players:GetPlayerFromCharacter(hit.Parent)
    if player and debounce == false then
        local r = math.random(0, 255)
        local g = math.random(0, 255)
        local b = math.random(0, 255)

        epicPart.Color = Color3.fromRGB(r, g, b)
        local debounce = true
    end
end)```
waxen hamlet
#

more up to date with APIs

formal jackal
#

so just ask it to teach me the basics?

waxen hamlet
#

kinda

#

anyway

#

I fixed your code

formal jackal
#

coolio

waxen hamlet
#

ServerScriptService -> ServerScript
ButtonGui -> LocalScript

Server:

local Players = game:GetService("Players")
local Epic = workspace:WaitForChild("Epic")

local debounce = false
Epic.Touched:Connect(function(hit)
    local player = Players:GetPlayerFromCharacter(hit.Parent)
    if player and debounce == false then
        print(debounce)
        local r = math.random(0, 255)
        local g = math.random(0, 255)
        local b = math.random(0, 255)

        Epic.Color = Color3.fromRGB(r, g, b)
        debounce = true
    end
end)```
### __Local:__
```lua
local Players = game:GetService("Players")
local button = script.Parent

button.MouseButton1Click:Connect(function()
    local epicPart = Instance.new("Part")
    epicPart.Position = Vector3.new(0, 0.5, -8.898)
    epicPart.Parent = workspace
end)```
formal jackal
#

whats changed

waxen hamlet
#

rename it to "Epic"

#

and then it looks for that part

#

and does its job

formal jackal
#

sick

#

it isnt changing for other spawns

#

hm

waxen hamlet
#

it wont

#

@formal jackal

#
local Players = game:GetService("Players")
local button = script.Parent

button.MouseButton1Click:Connect(function()
    local epicPart = Instance.new("Part")
    epicPart.Position = Vector3.new(0, 0.5, -8.898)
    epicPart.Parent = workspace
        
    epicPart.Touched:Connect(function(hit)
        local char = Players:GetPlayerFromCharacter(hit.Parent)
        if char then
            if epicPart.Color == Color3.fromRGB(163, 162, 165) then
                local r = math.random(0, 255)
                local g = math.random(0, 255)
                local b = math.random(0, 255)
                
                epicPart.Color = Color3.fromRGB(r, g, b)
            end
        end
    end)
end)```
#

that one does it for parts that are spawned

#

it basically checks if they're not the default colour then change

formal jackal
#

damn ur good

waxen hamlet
#
local Players = game:GetService("Players")
local button = script.Parent

button.MouseButton1Click:Connect(function()
    local epicPart = Instance.new("Part") -- Creates new part
    epicPart.Position = Vector3.new(0, 0.5, -8.898) -- Sets part position
    epicPart.Parent = workspace -- Sets parts parent
    epicPart.Name = "EpicPart" -- Sets parts name
        
    epicPart.Touched:Connect(function(hit) -- Checks if part was touched (by anything)
        local char = Players:GetPlayerFromCharacter(hit.Parent) -- Attempts to get the player from the part that touched the part
        if char then -- If the player exists / touched the part then
            if epicPart.Color == Color3.fromRGB(163, 162, 165) then -- Checks if it is the default colour or not
                local r = math.random(0, 255) -->!!!!!!!!!!!!!!!!!<
                local g = math.random(0, 255) -->Randomises Colour<
                local b = math.random(0, 255) -->iiiiiiiiiiiiiiiii<
                
                epicPart.Color = Color3.fromRGB(r, g, b) -- Randomised Colour
            end
        end
    end)
end)```
#

Commented version

#

for better understanding

formal jackal
waxen hamlet
#

learn the basics

#

then once you done that, build a simulator.

#

a basic, 2015 simulator

formal jackal
#

what should i make now

orchid island
waxen hamlet
formal jackal
unkempt barn
#

dont build an anticheat. just make sure your game is fully server authorative

crystal solstice
crystal solstice
unkempt barn
crystal solstice
unkempt barn
crystal solstice
unkempt barn
#

then what was your point?

crystal solstice
crystal solstice
unkempt barn
crystal solstice
unkempt barn
#

building a client side anticheat means nothing with server authority

unkempt barn
#

its nothing to do with programming capabilities

crystal solstice
#

you kinda need to know what you're doing

unkempt barn
#

no you literally can't stop cheats fully client side

#

or even making any progress

#

roblox btw

crystal solstice
#

well I have certainly made progress

#

yes roblox luau and all of its restrictions

unkempt barn
crystal solstice
#

I am aware

unkempt barn
#

its always easy just to delete the scripts that hook onto it

crystal solstice
#

would be nice if roblox could just let me have registry and gc but i think they disable it to stop us messing with corescripts

crystal solstice
#

what is deleting a script going to do when i've already deleted all the scripts in the game

unkempt barn
#

but think about it like this, if you just have all coins on the server and the client can only make requests and never run actions. then you have a client side script that tries to protect the value. which one is safer?

orchid geodeBOT
#

studio** You are now Level 17! **studio

crystal solstice
#

what

#

no one is saying it is easy, nor is anyone saying it is ever going to be perfect. what I am saying is, what it's hard so you won't even try?

#

just simply have no clientside defences, at all? is that what you're suggesting?

unkempt barn
crystal solstice
unkempt barn
#

the only thing they can do is use like aimbot, esp etc

crystal solstice
#

you forgot saveinstance() 💀

unkempt barn
#

yeah but we cant do anything about that

#

lol

crystal solstice
#

or so you assume, so that's the reason why it's not worth even trying?

unkempt barn
#

no im not saying its hard

#

its just not possible

#

roblox is the only one who can attempt to stop it

crystal solstice
#

i mean if you're happy having zero clientside defenses at all i mean no one is going to say it's wrong, i wouldn't, but i'm not going to say it is right either.

unkempt barn
#

anyways if you really want to make save instance less usefull just dont replicate important assets back until actually needed. that way half of the game wont even work when decompiled

unkempt barn
crystal solstice
#

from what i've seen so far, you can make it really difficult for exploiters to steal your stuff or break into your game code. that's assuming you at least try

#

if you do nothing, boy howdy is it easy for a slobbering ipad kid to step in and just download your entire game

#

minus serverscriptservice/storage ofc

#

and if you don't mind me pointing out

#

do you realize just how many cheaters there are in this server?

#

like, just in this server alone

#

and then consider how many there are across the rest of roblox

#

I mean

unkempt barn
#

not actually true because they cant get server sripts

crystal solstice
unkempt barn
#

yeah but anyways all of this isnt controllable under you

#

only thing you have to do: never trust the client

#

keep it separate from the server. its just replicating things and reporting what it does

crystal solstice
#

https://www.malwarebytes.com/blog/news/2026/04/hackers-stole-hundreds-of-thousands-of-roblox-accounts-heres-what-to-do

The hackers distributed infostealing malware disguised as game-enhancement tools
what they mean is cheats. all the stolen accounts were cheaters.

Hackers used fake Roblox “game enhancements” to steal login details from hundreds of thousands of players, then sold the accounts for profit.

#

and those are just the ones who fell for it

crystal solstice
#

now, i'm like 99% certain that the rhetoric of "dont even bother securing the client" is actually pushed by all these cheaters who enjoy the perks of having 0 defenses in all roblox games they play

#

makes it extremely easy to distribute cheats for a wide variety of games without having to deal with anyone's even remotely trivial defenses

unkempt barn
#

did you listen to a thing?

crystal solstice
#

and then you consider the money behind it all

crystal solstice
unkempt barn
#

at this point i hope not

crystal solstice
#

that's my opinion, i know it's not entirely accurate since many legitimate players and devs buy into the rhetoric also, but really, the only person who says such things as "dont even try to stop cheaters", are themselves cheaters.

#

the majority of the time.

unkempt barn
#

ok give me a script that stops every person from using saveinstance

crystal solstice
#

why tf would i give this out for free, i plan to sell it 😂

#

and if you were paying attention, i did mention one way to stop it, or at least make it excrutiatingly difficult for the cheaters

#

but y'know, i'm the one not listening to a thing, apparently

unkempt barn
formal jackal
waxen hamlet
#

ah

drowsy wasp
#

Butt
u can safe the scripts from them

#

they can stole Map,Localscripts(turn it off),Remote events (They can delete,rename)
but they cant copy the serverscripts

crystal solstice
crystal solstice
drowsy wasp
crystal solstice
#

lol

drowsy wasp
#

brother thinks if 1 shi gets deleted the game will be safe for 100%

crystal solstice
#

it still sends

drowsy wasp
#

ig bruh

#

ig

crystal solstice
#

there is also no bypass

#

you'd have to delete the remote to disable my primary comms

#
  1. that's not the only way to send messages to the server
#
  1. if you delete it you crash 2 seconds later so said alt methods to send messages to the server can be sent
drowsy wasp
crystal solstice
#

and rip your client

#

i'm not sure why you're trying 😂

#

i mean, the only kind of people trying to convince me not to build this are themselves cheaters

crystal solstice
drowsy wasp
#

i am not expitotercrying

crystal solstice
#

roblox is in a pretty sad state since normal code is so limited, but what, you think that's going to stop me? 😂

drowsy wasp
#

?

crystal solstice
#

what

drowsy wasp
#

or i didnt understand well

crystal solstice
#

no, this is fairly cheap

#

performance cost very smol

drowsy wasp
#

wait i think i got wdyn

#

wdym

#

u call the server to check

#

if the remoteevents doesnt exist

crystal solstice
crystal solstice
#

and check what

drowsy wasp
crystal solstice
#

that's not networked tho

#

what 😂

drowsy wasp
#

But they could destroy

crystal solstice
drowsy wasp
#

and game will still think that remote events still exidts

drowsy wasp
crystal solstice
#

what is the point you're trying to make here?

drowsy wasp
#

holdon

crystal solstice
#

that you don't know how a clientside anticheat can work?

#

basically, if you touch anything you get ban/crash, if you delete anything you get ban/crash, if the game doesn't like certain things done to the data model you get ban/crash, there is no code to steal without subjecting yourself to a lot of pain, there is no traditional way to access my game's memory, and if you try to hijack anything you get ban/crash. nothing you can do without taking extreme and drastic measures just to get around my anticheat, before attempting to do any of the actual cheating you set out to do in the first place. which is all assuming you're able to decompile and/or reverse engineer how it works in the first place.

#

and obviously

#

despite the fact that even if you had a perfect copy of my anticheat you still couldn't break it

#

it would still be foolish to teach you, or anyone else how it works, such that anyone has an easier time trying to bypass it, eliminating the whole point of all this work i'm putting in.

crystal solstice
#

that's not by accident

crystal solstice
unkempt barn
#

just spamming the same gif over and over again 🫩

crystal solstice
#

spam? i sent it once...

crystal solstice
unkempt barn
#

yeah this is why u are gonna fail

crystal solstice
#

y u mad tho

#

what do you care if i waste my time on a clientside anticheat or not

#

or maybe, you just don't want anyone setting a precedent that you can actually secure the client, and all the big studios start implementing their own meaning long gone will the days be that you can just pull skidded cheats out of a literally built-in cheat browser.

#

for the days of needing game-specific cheats will be upon you

unkempt barn
#

you literally couldn’t patch all cheats. clearly you don’t know what you are doing

#

No you can’t “secure” the client reliably

#

always going to be easy to get around

crystal solstice
#

clearly you're just a salty cheater who doesn't like the idea that someone is building a proper anticheat

unkempt barn
#

clearly you’re just a skid

crystal solstice
#

i'd rather be a skid than a salty cheater ngl

unkempt barn
#

how am I a cheater then?

crystal solstice
unkempt barn
#

because it’s useless…

crystal solstice
#

let me waste my time then, since it has nothing to do with you?

unkempt barn
#

go ahead then, just don’t spread useless information to others

crystal solstice
#

i mean OP asked about anticheat and that's what we're still discussing, and here's you saying give up before even trying

unkempt barn
#

no need to try when it’s not possible

crystal solstice
#

look at you go!

unkempt barn
#

explain to me what “secure the client” means

crystal solstice
#

you show me!

unkempt barn
#

and explain how it couldnt just be bypassed in a second

crystal solstice
#

not sure what you're showing me but, you sure do show it!

unkempt barn
#

lmao he couldnt even try

crystal solstice
crystal solstice
unkempt barn
#

and tell me how that isnt easily bypassable

crystal solstice
#

if you don't want to believe me, i don't really care 😂

#

i have nothing to prove to you

unkempt barn
#

literally do

crystal solstice
#

you wish

unkempt barn
#

so you are admitting you are wrong?

formal jackal
#

i love how this became a anti cheat battle off

formal jackal
#

theres this like fly script

#

but they like

#

rotate super fast

#

how deos that work

unkempt barn
#

you are probably talking about a spinbot

#

they just rotate the humanoid rootpart really quickly

#

patched with server authority enabled

formal jackal
unkempt barn
#

example

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:WaitForChild("HumanoidRootPart")
local speed = 500 -- rotation speed

game:GetService("RunService").RenderStepped:Connect(function(deltaTime)
    hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(speed * deltaTime), 0)
end)
crystal solstice
#

you can't detect it either since they could just have extremely high mouse sensitivity

#

falls under mechanical advantages; to a point you cannot stop hardware attacks, like if someone points an actual camera at the screen and has a custom hardware mouse, it is plausible to use that to create pure hardware aimbots