Making a "Wall Climbing" System

Just shoot a ray during the main the result and if it doesn’t overlap with the main result switch to that?

Thank you so much for making this! There is one thing that’s kinda weird though. Your raycasting uses a CollisionGroup called “canClimb” and you turned off collision between “canClimb” and “Default”. The limbs of the character should be in the CollisionGroup called “Default” but for some reason I still collide with the walls. How did you pull that off? Also when i add a new CollisionGroup via code, I can walk straight through the “canClimb” walls. Do you have any fix for this?

Edit: It’s not just via code, it’s always the code when you add a collisiongroup. I have a collisiongroup with a name that starts with “a”. I turned off all the collisions for that group inside the CollisionGroup Editor UI made by Roblox. I’m not sure if it depends on the alphabetical order of the collisiongroups but that’s highly unlikely.

Your issue is RaycastParams, change the FilterType or CollisionGroup in the code.

1 Like

why and how do people format their code like that

wouldn’t it take ages to do that?

1 Like

Seems this script is broken? From what I can tell it does nothing
EDIT: So the issue is that the collision group to diferentiate between what can and can’t be climbed is refered to as “Climbable” in the script, while its actually called “canClimb” in the game. Change the name of the collision group to “Climbable” to fix this issue.

Sorry for the late response as college has been killing me but I went on studio to try this, and the bug doesn’t seem to be there? it could also be the fact that collision groups were updated a while back.

I was able to create this with a few hours of work, you are able to climb around corners and edges with ease. I’m using recasting and align position with some other stuff to get this effect.

4 Likes

Is there any way of obtaining a public copy of this? I’m working on something similar and tremendously struggling.

I’m not sure which method I used to obtain this as it was a old project, however I do remember that I used recasting & body position

1 Like

Do you have any suggestions one what I can use to detect the corners? I’ve got everything except that! :woozy_face:

you could use raycasting or regions

1 Like

code it or use a truss, simple as that

1 Like

using a truss would not work for this for the following reasons:

  • You have no control over them
  • The movement changes based on your camera angle
  • You cannot move left and right
  • You can easily fall of them
  • you would need to place them on every climbable service in every spot of your maps
2 Likes

Doing the movement this way allows for the magnitude to be greater than the speed you assigned if 2 perpendicular keys are press, but that’s okay since the new and improved LinearVelocity allows you to add a MaxMagnitude. But this all doesn’t really matter unless all directions having the same speed is crucial to said game.

I just figured out how to create this so if anyone has any issues and I happen to be available, Just reply to this Comment!

1 Like

yo bro can you help me out, I really dk how to do this cause they deprecated BodyGyro. I tried LineForce and VectorForce but they’re still affected by gravity.

BodyGyro is used for determining orientation, not re-positioning. VectorForce is literally in the name, basically creating a force along a vector. LineForce is trying to keep the relative distance between 2 attachments (keeping the distance between 2 points).

You may want to look into AlignOrientation for orientation and use an AlignPosition for the alignment of your character.

Hope this helps!

I know that u might not reply but i was wondering when u said u use humanoid movedirection property and apply it to the bodyvelocity, Im confused on how that works

Aight thanks bro, I’ll check them out!

I use AlignPosition for my system. I find it more intuitive to work with than LinearVelocity in this scenario. Makes it easier to interpolate movement how you want it.

2 Likes