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?
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.
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.
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??
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.
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).