Detect wallhopping

Hello,

I’m making a game which is basically a mix between an obby and a puzzle. The player has the ability to interact with blocks by pushing or pulling them. For example, when the player is faced with a wall of blocks, one way to climb it would be to pull the blocks in a way that creates a staircase.

However, because the blocks are only 8 studs in size, players can simply wallhop the entire wall, which ruins the puzzle aspect of the game.

Disabling shiftlock is not a viable solution to me as many players play obby games with shiftlock enabled.

How would I detect if a player wallhopped? If it’s difficult to detect a player wallhopping one or two blocks, is it possible to detect if they wallhopped like 5 blocks or more?

3 Likes

I haven’t heard of any sort of wallhop glitch (other than the one that was fixed a decade ago)
If the players can jump off the rims of the crates, then you can make the entire “visible” box non-colliding and give it a cube-shaped hitbox that stays flush with nearby ones.
Also, disabling shiftlock wouldn’t help if the player can fully zoom in to fix the character’s direction to the camera’s direction.

If it is because of the groves on the model what you could do as a sort of solution is put an invisible solid wall just far enough forward that it covers the groves, thus preventing wall hopping. This is a sort of weird solution, but I haven’t really ever encountered this issue before.

1 Like

Alright, so I’ve tried creating a solid box around the model, like this:

And I also set the various parts that make up the block model to be non-collidable:

However, after testing, it seems it is still possible to some extent to “wall hop” the blocks
ezgif-7-abd5b5729093
ezgif-7-9661c33ee52b

If it helps, here’s a post which refers to the same exact glitch:

You can overlap the physical hitbox by extending over each other, which would counteract the wallhopping. Whatever is causing this wallhopping is the floating-point error, which cause the game to believe you were briefly standing there.

I tried doing that and sadly it’s still wallhoppable

I’m starting to think there’s no way to prevent this behavior or to reliably detect it…

Maybe extend the box out of all sides, not height only.

Wall flicking like that isn’t really patchsble, because with any sized parts you can flick your camera up them. I’m not really sure if thrrrd anything you could do except edit the design of your level to not be able to go around it??

1 Like

Hm, this seems to be quite the pickle here. I didn’t even know this existed.

In your case my solution would then be to add a ceiling or teleport hitbox thing that teleports the player back to the ground if they wallhop, sadly I don’t think there’s a real quick and easy fix to this, only hacky weird ways of doing so.

Your game seems to use some sort of grid system, so this will likely work (if it doesn’t then it won’t work probably).

Basically, instead of trying to detect when they wallhop, you can instead make it impossible to wallhop by having no horizontal seams. Basically, when boxes are stacked on top of each other, instead of having like 5 different cubes, you instead make an invisible part that extends upwards until there is an empty space (also all the boxes would have to be cancollide false or this wouldn’t work). Each tower of boxes would have one singular hitbox, which would make it impossible to wallhop. When the boxes move, you update the hitboxes for the stack the box was in before the move and the stack the box moved to.

I hope you understand, if you don’t then tell me and I can try to get some pictures showing what i mean later.

I’m not sure if this is the solution to your problem, but if I were you, I would add an invisible part where the blocks meet each other. The invisible block should be about as long as your crate, 1 stud high (y), and 0.05 studs thin. Here is a visual aid to better explain what I am talking about. There should be one invisible block between each and every crate.

Hope this helps! :smiley:

I mean 99% of players probably won’t wallhop, so why worry? :stuck_out_tongue:
Only the real obby sweats will, potentially letting this slide will save a lot of time

I’m guessing you mean something like this, where the red box to the side represents the hitbox of the stack of blocks?

This actually sounds more interesting than my detection system which occasionally throws false positives. Might try to implement this when I got time.

Hi,

I tried your solution and sadly it didn’t work, it seems like even 0.05 studs is enough for the Roblox physics engine to treat the part as a platform, and I ended up jumping up the invisible parts instead

Yes, that is what I mean. It might be a bit complex to make but it should work (just make sure to make the boxes cancollide false or else you could still wallhop on them).

That is most unfortunate; I wish you the best of luck in finding a solution to your problem.

1 Like

After implementing this solution, it actually ended up working nicely. Thank you for your help.