i have searched everywhere but i found nothing…
here’s a unity tutorial that makes what I want
3d or 2d? Also do you have a problem?
If there isn’t a problem there is nothing to solve.
I’m making the system right now. It might take a while to make, So be patient. Right now I’m almost done with the sliding.
well, the camera is 2d but everything else is 3d
Maybe taking a look at this would help.
Another one that may also be some use.
Roblox has a tutorial on the DevHub about double jumping if you needed that at all or if anyone wants that:
Hope this helps.
hmmm ive looked everywhere and i don’t think those are the right thing
I made a wall jump and wall slide system and figured it out. Last night I made the slide system. That was pretty easy. All you need to do is make a Body Velocity. That slows the player down while falling or jumping. It makes the player slower while touching the wall.
local BodyVelocity = Instance.new("BodyVelocity")
BodyVelocity.Velocity = Vector3.new(0, -10, 0)
BodyVelocity.Parent = player.Character.HumanoidRootPart
That’s an example I used in my script. Then I made an animation of a player sliding on the wall.
Then I added a little extra. I added some dust on the player’s hand from falling.
Here is the code for the sliding:
local Slide = workspace.Slide
Slide.Touched:Connect(function(obj)
local BodyVelocity = Instance.new("BodyVelocity")
BodyVelocity.Velocity = Vector3.new(0, -10, 0)
BodyVelocity.Parent = player.Character.HumanoidRootPart
local Anim = player.Character.Humanoid:WaitForChild("Animator")
local Animation = Instance.new("Animation")
Animation.AnimationId = "rbxassetid://7102656249"
local slideAnim = Anim:LoadAnimation(Animation)
local smoke = Instance.new("Smoke")
smoke.Parent = player.Character.RightHand
smoke.Size = Vector3.new(1, 1, 1)
smoke.Color = Slide.Color
slideAnim:Play()
then I made the wall jump system. All I did was what @Reditect did. I made it so the player could jump when the player was on the wall.
Here is the script overall:
local player = game.Players.LocalPlayer
local Slide = workspace.Wall1.Slide
local Slide2 = workspace.Wall2.Slide
local UserInputService = game:GetService("UserInputService")
local localPlayer = game.Players.LocalPlayer
local character
local humanoid
local canDoubleJump = false
local hasDoubleJumped = false
local oldPower
local TIME_BETWEEN_JUMPS = 0.2
local DOUBLE_JUMP_POWER_MULTIPLIER = 2
function onJumpRequest()
if not character or not humanoid or not character:IsDescendantOf(workspace) or
humanoid:GetState() == Enum.HumanoidStateType.Dead then
return
end
if canDoubleJump and not hasDoubleJumped then
hasDoubleJumped = true
humanoid.JumpPower = oldPower * DOUBLE_JUMP_POWER_MULTIPLIER
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
local function characterAdded(newCharacter)
character = newCharacter
humanoid = newCharacter:WaitForChild("Humanoid")
hasDoubleJumped = false
canDoubleJump = false
oldPower = humanoid.JumpPower
humanoid.StateChanged:connect(function(old, new)
if new == Enum.HumanoidStateType.Landed then
canDoubleJump = false
hasDoubleJumped = false
humanoid.JumpPower = oldPower
elseif new == Enum.HumanoidStateType.Freefall then
wait()
canDoubleJump = true
end
end)
end
localPlayer.CharacterAdded:connect(characterAdded)
Slide.Touched:Connect(function(obj)
local BodyVelocity = Instance.new("BodyVelocity")
BodyVelocity.Velocity = Vector3.new(0, -10, 0)
BodyVelocity.Parent = player.Character.HumanoidRootPart
local Anim = player.Character.Humanoid:WaitForChild("Animator")
local Animation = Instance.new("Animation")
Animation.AnimationId = "rbxassetid://7102656249"
local slideAnim = Anim:LoadAnimation(Animation)
local smoke = Instance.new("Smoke")
smoke.Parent = player.Character.RightHand
smoke.Size = Vector3.new(1, 1, 1)
smoke.Color = Slide.Color
slideAnim:Play()
player.Character.Humanoid.JumpHeight = 30
UserInputService.JumpRequest:connect(function()
onJumpRequest()
BodyVelocity:Destroy()
slideAnim:Stop()
smoke:Destroy()
end)
Slide.TouchEnded:Connect(function()
onJumpRequest()
BodyVelocity:Destroy()
slideAnim:Stop()
smoke:Destroy()
canDoubleJump = false
player.Character.Humanoid.JumpHeight = 30
end)
end)
Slide2.Touched:Connect(function(obj)
local BodyVelocity = Instance.new("BodyVelocity")
BodyVelocity.Velocity = Vector3.new(0, -10, 0)
BodyVelocity.Parent = player.Character.HumanoidRootPart
local Anim = player.Character.Humanoid:WaitForChild("Animator")
local Animation = Instance.new("Animation")
Animation.AnimationId = "rbxassetid://7102656249"
local slideAnim = Anim:LoadAnimation(Animation)
local smoke = Instance.new("Smoke")
smoke.Parent = player.Character.RightHand
smoke.Size = Vector3.new(1, 1, 1)
smoke.Color = Slide.Color
slideAnim:Play()
player.Character.Humanoid.JumpHeight = 30
UserInputService.JumpRequest:connect(function()
onJumpRequest()
BodyVelocity:Destroy()
slideAnim:Stop()
smoke:Destroy()
end)
Slide2.TouchEnded:Connect(function()
onJumpRequest()
BodyVelocity:Destroy()
slideAnim:Stop()
smoke:Destroy()
canDoubleJump = false
player.Character.Humanoid.JumpHeight = 30
end)
end)
Here is the open-sourced game:
Here is a video of it
The wall jump didn’t work as planned. You can just edit the jump power settings.
At least the wall slide worked. I hope this is what you are looking for. I fixed the wall jump a little bit, not too much. It’s still extremely hard to get to the top.
That was me almost making it to the top. If it’s too hard to wall jump then change the jump power or jump height. You can also change the body velocity.
Anyways, Enjoy the wall jump and slide system. Lol, It took me an eternity to make it.
where would i put this script in? starterpack?
is this a part im supposed to name? (idk if im right but i think you need to add “game.” into it)
Yes your supposed to name it a something like that. No, you do not need to add game to it. I see what you are saying. You can do no game because it is easier to do.
No. Put it in StarterPlayer, StarterCharacrterScripts.
what about the player errors?
i added local player = game.players.local player
and there is a end error
you forgot to close the function. Put an end at the end of the code. Is the error in local player = game.Players.LocalPlayer line 3? Make sure.
Is the error fixed? or is it still messed up?
yea its still have that error for some reason ;-;
Give me an example of the code. Is the error in the game I made or the game your making?
in mine(btw ur is not uncopylocked)
hmm weird that’s my bad lol. Im going to fix that.