I use trusses. I have invisible collision parts for walls and floors because my meshes are too complex. And yet, I still can’t get from the ground to the top of the ladder and up onto the platform above. I can get up there, it just takes a lot of luck.
One thing you will notice is that the climbing animation works (I could do something about the speed) but more often than not, she walks up the ladder. I tried changing “MaxSlopeAngle” on humanoid down to 20 degrees. Made it impossible to clear a curb, but little impact on the ladder.
Turns out this is a half dozen problems, not just one.
I was thinking the way you were, which is why I made the collision building to start with. This is SO close to the problem… this part of the problem was CanTouch and/or CanQuery, and I did it to myself.
So I correctly turned off collisions, moved up INTO the mesh hull and then I stopped… because I was using Mouse.hit to move, and it was registering behind my character on the OUTSIDE of the hull. Get to the top, then the Mouse says turn around and go home! OOPS!
Once I figured this out, I was able to get into the second floor.
This also solved part of my problem. Apparently ladders only work completely vertical? That’s really lame, but making the ladder vertical ended the running animations. Thanks!
BTW length didn’t matter, as the floor platform still counted as the ladder, it seems.
I’ll be testing this a bit more, and see if there are any other ladder related bugs. This really helped!
Goodness! Quite the turn of events, ay? Glad you got that figured out. I’m not quite sure what you mean you were using Mouse.Hit. (i think it’s gonna be deprecated anyway) I hope to see more.
I have been coding for about 4 months, and “one button movement” was the first thing I wrote. This is how I move around. I know it’s archaic now (and I see I used 2 different services?), but at the time I felt clever! Yeah, it’s on the chopping block soon…
mouse.Move:Connect(function()
targetPosition = mouse.Hit.p
if jumpDelay then
targetDirection = (targetPosition - hrp.Position)
end
targetMagnitude = targetDirection.Magnitude
local pressed = UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1)
if pressed then
pivotBody(targetPosition)
end
end)
The next fix was less about the ladder. The animation leading up to putting the torch in the mouth was supposed to stop all movement with an unbind step, but had broken, allowing the player to climb the ladder while that animation was running. Turns out I had relocated that script to the server but the bind was on the client. That was easy enough to repair.
Still 3 unsatisfactory visuals to correct, but these require new code. Nothing to do with ladders.
The idle animation while the torch is in the mouth should be empty handed, but I never actually coded that. Looks like the player is still holding an invisible torch, and ruins the effect.
There should be a service to cancel the torch juggling if the player walks away from the ladder.
I should throw in a jaw only animation so that idle movement looks correct too.
And now for a more relaxing climb into the stables! I’m calling this thread solved, and I’ll award the solution to Laufeyson (for solving the only problem that was not self-sabotage)! Thanks everyone!