Climbing / Running up walls Physics

I have been looking around on the Dev Forum and I can’t really find a significant answer to my question, and my question is the following:

How would I design Climbing / Running up a wall? For an example, in the game BoostVector you can slide off of certain ramps, walls, you can even climb them. How would I approach this? I’m looking for a very detailed answer that is significant.

5 Likes

I’m not sure if this is possible with a default Humanoid, but you could check out EgoMoose’s Character Controller. It can walk up walls, and is pretty great in general.
You can look at the code, and if you don’t want to use his, it’d probably be a good starting point for making your own.

1 Like

I’m just looking for a detailed explanation of how to do this, just every individual detail. But I’ll look into this module.

1 Like

A janky way of doing it, albeit much easier, would be to set an animation to play upon entering a space near your wall. It all depends on play style. Could you be more specific to your type of game? First Person, Third Person, Parkour, Roleplay, etc.?

No I’m just looking for a way to do some wall climbing or running up wall physics.

You could try some fancy math with body position and body rotation. If you want “physics”, try body force.

1 Like

Alright, uh also do you know how to stop the Player from walking whenever a body velocity is inserted into their HumanoidRootPart? Everytime I insert a body velocity into the HumanoidRootPart and I want the Player to move foward with the LookVector of the rootpart, the Player starts to play the walking animation and the walking sound, it’s kinda irritating.

In that case, you should have a separate script/function that disables the animator (not deletes) and mutes the sound volume for walking.

Yeah but the physics of the humanoid is triggering this to happen, I’m not entirely sure how I would stop physics in that instance. I’ve read up on Platform stand but it always seems to glitches my character halfway into the baseplate.

If you want to stop physics entirely, anchor the humanoid root part.

But then again body movers wouldn’t work in that instance

I’m a little confused. Do you want to disable physics or just remove default character animations/sounds?

Well here’s my problem and I’ve had it for awhile now. Everytime I want to use BodyVelocity on a Character, I insert it into their HumanoidRootPart. And if I want to move it foward, I usually just do that by using the HumanoidRootPart’s LookVector BodyVel.Velocity = Part.CFrame.LookVector * Num Now once all that is completed, the results are the character displaying the walking animation and walking sound. I know that this is caused by physics because my Character is touching the ground, I’m just kind of curious how I disable physics so that whenever I insert that bodymover into the RootPart, physics won’t be applied based on touch and etc.

I can’t see a 100% clear fix to this except to just use a body position to keep the player slightly above the ground (maybe 0.2 studs).

Alright, thanks for your help. :3

1 Like

Once your character spawns into game all the roblox scripts load into it. You can copy them and go back into studio and put them in your starter character in order to manually overwrite them. Then you will have to open them and edit them to your needs (Example: change the animate script to not play an animation if a body mover is moving them).

Alternatively you can create your own animate script with the same name as the Roblox one and it will overwrite it if it’s in the starter character.

I know, I’ve done this so much times trust me. Nothing new to me. But that’s not the efficient way to stop the problem. The reason why the walking animation plays and why the sound plays is because the Player is triggering the physics because they’re touching something. Disabling the animate script wouldn’t be efficient in this scenario because it doesn’t fix the physic issue. I still don’t know how to fix this.

1 Like

It is not a physics issue. The animation script and the control script have nothing to do with Roblox’s back-end physics engine.

The issue is that you are relying on their custom scripts for controlling a character, and trying to combine your own additions without working with their scripts.

The solution; either write your own control and animate script, or edit theirs to your needs.

No, it is. The whole reason why the walking animation and sound plays is because the player is touching the ground, whenever the Body Mover is applied and it moves them while they’re on the ground it plays the walking sound and animation.

Because there arent many written approaches to this in Roblox you should do what I do, Look up how to do something in another engine like Unity or UE4 and try to replicate it into your game. BoostVector looks like it handles it with adjusting this gravity plus the movments speed in the game is super high so try messing with the ingame physics

2 Likes