Client/character freezes when holding right click on top of window [repro]

It’s been a little over a year since this was bumped. This bug is still commonly exploited.

IIRC, TNT Rush, one of the games used in the Voltron event, had to implement a workaround that kicked players if they froze in the air for too long because this was such a common issue. Longstanding and widespread because players have had plenty of time to document and spread the exploit.

This has been around for ages

Can confirm this bug is still alive and kicking. Holding it for 30+ seconds also doesn’t appear to kick you from “losing connection”. Odd as it seems to affect everything from graphics to sound (I can hear the footstep sound stuck in a loop). My best guess is it floods the main (windows UI) loop with messages and doesn’t free up enough in the queue to allow for other threads to process.

Right clicking the top bar on windows in windowed view causes your game to freeze. This also prevents your character from being moved, and moving parts seem to not collide with your character while frozen.
This happens 100% of the time in every roblox game.

https://gyazo.com/d84dce9e6e4be7db78366d82300ad5c3

This is a fairly well known bug, but I haven’t found any posts about it. There is also another way to use this bug to walk through any wall under 1.1 studs thick.
This only works sometimes
This may be hard to reproduce but I’ll give all the steps here
Align your character flat against the wall, then push your character away slightly using shift lock and rotating your camera. Then straighten your character again and turn off shift lock.
Wait about a second, it doesn’t work if you do the rest immediately after aligning yourself.
Tap W and freeze your game, wait a bit and unfreeze. If you’re lucky and the wall is thin enough, you’ll be on the other side.
https://gyazo.com/ca7dcfa970d89b250ca205de8567dbf6
(This also works in R15 but is harder due to animations)

2 Likes

I didn’t even know about wall clipping using this. I repro’d this exact noclip scenario with your steps 3 times in 20 tries. The wall was just under 1 stud thick. Crazy how easily reproable this is (I tested with r6, have not tried r15)

alternative wording of steps:

  • align yourself flat facing the wall
  • turn on shiftlock, take half a stud step back, turn off shiftlock
  • tap w and then immediately right-click-hold the window bar for a second
  • bam, other side (might take a couple tries)
1 Like

Recently, I have noticed that when you right click on the white screen in the Roblox player that it lags your character and makes your character just sit there like a duck, (basically makes you look like your flying).

This frame timeout can cause players to fly and if you have an anti-exploit script in your game, it might count that as flying and kick the player. To add onto that, if the player was playing a survive the lava game, or more specifically “Plates of Fate” then the player could basically fly over the lava or lava like brick and not die from it, this could affect others players experiences in the game. Although, I have also noticed that when you do it for too long that Roblox kicks you out of the server for an error of some sort.

Basically, players right click on the white part of the screen and move there mouse down and then it “lags” there character and makes them look like there flying.

1 Like

Oh yeah I don’t think anyone mentioned this but it happens with all windows applications. Not sure why but it doesn’t work if you use roblox downloaded from the windows store (also don’t know why). Can confirm this is still being used. If you don’t want people to do this in your game, just kick them if their FPS is 0 for too long. I’ve seen a lot of big games do this like Epic Minigames.

How would you get a player’s FPS?

You can measure the time elapsed since game:GetService(“RunService”).RenderStepped

local t = tick()
local count = 0
local fps = 60
game:GetService("RunService").RenderStepped:connect(function()
    count = count + 1
    if tick()-t >= 1 then
        fps = count
        count = 0
        t = tick()
    end
end)

(Untested code lol^)

This seems to be an issue that a surprising amount of people, and developers, don’t know about., even if it is one of the most well-known glitches. This is still abused, and unpatched in many games, even extremely popular ones that just came out. E.g., SamsonXVI’s Mansion, which was made in late 2019, and updated January of this year. The game has over 30 million visits, and, at one stage, you have to avoid spiders that crawl over the floor. If you touch them, you lose health.

You can abuse this glitch and unfairly take no damage. Because the stage doesn’t last that long, Roblox doesn’t auto-kick you.

1 Like

When you do this, Windows pauses your client. I’ve seen in several games with client-sided scripts, if you do this, those scripts get paused (eg. a timer in my parkour game doesn’t loop and do the wait(1) because you are holding the application’s topbar with right click)

This makes your character “fly” because your client isn’t calculating physics on your character when it is paused. Your client has network ownership of your character, and the server does not do calculations via gravity and movement because this would make your experience very laggy. This application pause bug seems to be an inherent bug in Windows that I have seen across other software if I am remembering correctly. As I am aware, this bug is impossible on Mac.

I don’t think this is fixable on Roblox’s end. Some good solutions could be done on your end, such as to just implement good flying checks and don’t ban the player for hovering, just kick them or respawn their character. If Roblox can fix this, that would be very cool, but in that case, it may incentivize some users to use exploits to fly.

I have also noticed this occurs when holding down the close X with leftclick.

1 Like

This is all correct as far as I know. This sort of “freeze glitch” will work for quite literally any non-fullscreen program where the topbar is visible. Minecraft, Chrome, etc. This is related to how Windows handles things, and as far as I know, can’t be circumvented. I’m not sure why exactly this happens, but it won’t be possible to change without some kind of background service/program running.

1 Like

This is fixable on roblox’s end by removing the bar and replacing the - [] X buttons with lua. There’s probably another solution too. Who knows. Hope they fix it though

1 Like

I had originally sent this to the exploit reports team because I did not know this thread existed. Posting this here for the hope of getting it fixed.

There are probably many other uses to abuse this bug. Though the big one is the ability to outlast cooldown timers indefinitely.

Bug: Breaking Time

Reproduction:

  1. Be on a computer version of Roblox.
  2. Press the X in the top right corner, click and drag your cursor off the X. Your game should appear frozen.
  3. Your character is now also frozen in whatever it is doing, likely as a form of lag compensation.
  4. Let go of the mouse. Your character should now fall and activate any inputs put in whilst frozen.

Why this is bad:

  • This frozen state can be abused to bypass various forms of debounces, wait(), fall damage, and reaction time mechanics in games.
  • The developer can not counteract this without punishing lagging players.
  • You can equip/dequip backpack items while being frozen.

Potential fix:

  • Ensure that clicking X makes the player leave, they can’t click and drag to cancel it.

Demonstrations of the bug:

https://youtu.be/oToqbCwbpTU
Being used to bypass a debounce cooldown for an ability in The Day the Noobs Took Over Roblox 3. Abusing it basically gives you the ability to fly.

https://i.gyazo.com/9c6c59f34af21e1369366f339c328c72.gif
Being used to keep your character alive from fall damage longer than intended in Natural Disaster Survival. This could be used to win rounds.

1 Like

I think this is one of the most interesting bugs your ever going to see…

This has existed for quite a while now and honestly its really simple to reproduce. It is not reproducible on studio as far as I am aware seeming as you don’t have the same exit button as you would in the game client. As far as I’m aware this has just been something which has existed for a long time and honestly you can really ruin games with it especially when a boss has to try to kill you and said boss can’t reach you.

So how do I freeze myself in time, where the server continues but you remain frozen in that exact instant?

  • When your in game simply click and hold (but do not release) the exit button. Your screen will freeze, so will your character in game - your audio will continue depending on the sound type. That is all it takes to suspend yourself in time folks. If you release at the center of your screen or anywhere which isn’t the cross then you will simply continue falling. You can of course, exit normally but either way your character freezes.

Example of it being done (added the music for your own benefit so you can see my PC is still running and I haven’t lied):

Want to try it yourself? Have a high platform!
https://www.roblox.com/games/5221290592/High-Platform

3 Likes

Has anyone created their own half-fix to this so it can’t be abused? Such as kicking/killing player on the client if detected somehow. I tried doing this myself, and it worked, however, players whos game client legitimately froze for a few seconds would obviously be affected.

My anti-exploit system that handles character movement and such works by taking away a players network ownership of their character for a few seconds, so I might just link it to that.

The only other way of getting around this is having game-moderators treat it as a half-exploit and punishing players who use it (It is abused at times to avoid fall damage etc).

Some things to note about this, it is a 100% client sided bug. Meaning server sided code won’t be affected much or at all, if you have cooldown timers or anything of the sort, they shouldn’t be running on the client anyway as exploiters can quite easily by injecting code. Of course, this bug will also freeze all client scripts and all parts that the client has network ownership of (and all parts anchored to it).

You can use this to phase through walls in any direction, it is quite hard but can be very consistent with practice, only works on walls 1 stud or thinner at 16 studs per second speed.

There isn’t really a surefire server sided way to detect this as far as I’m aware, but obviously you can check if RenderStepped hasn’t fired for 5 seconds on the client and kill/kick them if not. Most people abusing a glitch probably won’t exploit just to allow them to abuse the glitch anyway. (Epic Minigames does this)

Roblox can’t really fix this, since it works on all windows applications (besides apps from windows store). The only way it can really be fixed completely by roblox is just by only letting users download windows 10 roblox and discontinue the old roblox application, which wouldn’t really work anyway since mac users wouldn’t be able to play.

Oh yes, it also works on mobile devices but repro is a bit different of course, I’ve never done it before but all you have to do is tab out of the roblox app and go back into it when you want to unfreeze.

3 Likes

Is there any solution to this? Players have been using this bug to freeze their characters completely in a game dependent on forced character movement.

2 Likes

This is still happening. This is an annoying issue to tackle. Roblox should really just work on making Roblox continue running while moving the window as some games already do.

It seems that it happens because of Window’s context bar opening upon right-click. Having a custom title bar would fix Roblox’s issue like in the UWP version.

1 Like