Anti Tab Glitch (server-sided | original release)

It’s a built-in for roblox, that has no bypass yet.

2 Likes

I personally don’t think you should kick them. Setting the network ownership of their character to the server is both funnier and guarantees that any false positives are completely harmless.

9 Likes

LoL Yeah, this is totally customizable

2 Likes

Fixed a death bug, that would cause the player to be kicked.

2 Likes

Really neat! Never knew that roblox had its own function to check a players ping, learned something new lol.

3 Likes

Came out recently,
read more here: Using :GetNetworkPing() to get players ping

2 Likes

Agreed, this is no module I plan on working on.
It was just a concept.

3 Likes

That might be an issue. I’ve commonly had my ping over 200ms in a 15-player server, and I don’t have relatively bad internet.

Though, this is a good anti-cheat system. I might use it in the future if I find players abusing it.

3 Likes

according to google sources over 140 MS is considered laggy.

You could also just remove it?
:man_shrugging:

3 Likes

Not in Roblox.

Yeah, but then it might trigger accidentally. I’m not really sure how to solve it, but you can simulate it with IncomingReplicationLag in studio settings to try and find a fix.

3 Likes

Just up it to 400 MS or 500 MS.

3 Likes

Try doing task.wait(Player:GetNetworkPing()) so that it will automatically adjust.

3 Likes

Always be recording the player’s ping, get the mean of the last X amount of ping ms’s, if the current ping differs by too much (aka: a spike) set ownership of the character to the server until the ping stabilizes.

6 Likes

Unstable Network / Ping Spikes seem to also trigger this

1 Like

why not teleport the player character to the old position other than kicking the player? so

Player:Kick('Tab-Glitching')

would be

HumanoidRootPart.Position = OldPosition
HumanoidRootPart.Velocity = Vector3.zero -- idk about this one

whatdya think?

1 Like

This is not an anti-tp anticheat. How would you even define the old position? Before they glitched? That would just be doing what the exploit is supposed to do; to stall their fall.

If you want the anticheat to be less intrusive in other ways then just reset the player instead of kicking them

1 Like

I think this should work better (I know that this is a release, just sharing my method)

local players = game:GetService("Players")
local localplayer = players.LocalPlayer

function checkTick(last: number): number
	return tick() - last
end

while task.wait() do
	local new = tick()
	task.wait(1)
	local calculated = checkTick(new)
	if calculated >= 1.5 then
		localplayer["Kick\000" .. tostring(tick())](localplayer, "You have been kicked for tab glitching.")
	end
end
1 Like

Wouldn’t this be better?

-- Force the character to fall by using roblox network owner physics
if HumanoidRootPart:GetNetworkOwner() ~= nil then
      HumanoidRootPart:SetNetworkOwner(nil)
      task.wait(5)
      HumanoidRootPart:SetNetworkOwner(Player)
end
1 Like

Trying to implement a completely foolproof method to try & put an end to tab glitching through Modules/Scripts is flat out impossible, there are so many variables to consider when accounting for a player’s ping, and blatantly considering a certain circumstance “tab glitching” isn’t a good practice.

Just submit a bug report, they could easily add a bandaid fix to this by detecting if the player is holding right click on the topbar’s window for prolonged periods of time.

1 Like

so if i have bad internet i can glitch all I want?
amazing!

also the main thing the freeze glitch is used for is noclip which this doesnt detect for

3 Likes