title says it all.
example: (sorry for external media.)
robloxapp-20241027-2044263.wmv (7.4 MB)
if you need the code:
code
in a server script in workspace:
game.ReplicatedStorage.Vault.OnServerEvent:Connect(function(player,lookvector)
local character = player.Character
local hum = character.Humanoid
print(hum.JumpPower)
hum:LoadAnimation(character.MovementAnims.Vault):Play()
hum.HipHeight = 2
character.MomentumModifiers.VaultInstant.Value = 20
character.MomentumModifiers.VaultAcceleration.Value = 10
print("set vaultaccel")
task.wait(0.5)
character.MomentumModifiers.VaultInstant.Value = 0
hum.HipHeight = 0
end)
game.ReplicatedStorage.SkateBegin.OnServerEvent:Connect(function(player)
local character = player.Character
local hum = character.Humanoid
hum:LoadAnimation(character.MovementAnims.SkateBegin):Play()
task.wait(0.2)
hum:LoadAnimation(character.MovementAnims.SkateStand):Play()
character.MomentumModifiers.Skating.Value = 20
character.TopSpeed.Value = 300
character.Skateboard.Trail.Enabled = true
character.Skateboard.CheckerTrail.Enabled = true
end)
game.ReplicatedStorage.SkateEnd.OnServerEvent:Connect(function(player)
task.wait(0.3)
local character = player.Character
local hum = character.Humanoid
for i,v in pairs(hum.Animator:GetPlayingAnimationTracks()) do
if v.Name == "SkateStand" then
v:Stop()
end
end
hum:LoadAnimation(character.MovementAnims.SkateEnd):Play()
character.MomentumModifiers.Skating.Value = 0
character.TopSpeed.Value = 10
character.Skateboard.Trail.Enabled = false
character.Skateboard.CheckerTrail.Enabled = false
end)
in a script in startercharacterscripts:
local continuousmovementcounter = 0
local continuousmovementval = script.Parent.MomentumModifiers.ContinuousMovement
local vaultaccelval = script.Parent.MomentumModifiers.VaultAcceleration
local vaultinstantval = script.Parent.MomentumModifiers.VaultInstant
local skateval = script.Parent.MomentumModifiers.Skating
while true do
task.wait(0.1)
if script.Parent.Humanoid.MoveDirection.Magnitude > 0.1 then
continuousmovementcounter += 0.1
elseif continuousmovementval.Value > 0 then
continuousmovementval.Value -= 0.1
end
if continuousmovementcounter >= continuousmovementval.Value and continuousmovementval.Value < 10 then
continuousmovementval.Value += 1
continuousmovementcounter = 0
end
if script.Parent.MomentumModifiers.VaultAcceleration.Value > 0.1 then
script.Parent.MomentumModifiers.VaultAcceleration.Value -= 0.2
end
script.Parent.Humanoid.WalkSpeed = 20 + continuousmovementval.Value + vaultaccelval.Value + skateval.Value + vaultinstantval.Value
end
in a local script in startercharacterscripts:
local character = script.Parent
local skating = false
game.UserInputService.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.Space then
if character.Humanoid:GetState() == Enum.HumanoidStateType.Running then
local walllower = workspace:Raycast(character.HumanoidRootPart.Position,character.HumanoidRootPart.CFrame.LookVector*2)
local wallupper = workspace:Raycast(character.HumanoidRootPart.Position + Vector3.new(0,5,0),character.HumanoidRootPart.CFrame.LookVector*2 + Vector3.new(0,5,0))
print(walllower)
print(wallupper)
if walllower.Instance and not wallupper and skating == false then
print("trying to vault")
game.ReplicatedStorage.Vault:FireServer(character.HumanoidRootPart.CFrame.LookVector)
end
end
end
if input.KeyCode == Enum.KeyCode.LeftShift then
if skating == false then
print("begin")
skating = true
game.ReplicatedStorage.SkateBegin:FireServer()
repeat
wait(0.1)
until skating == false
game.ReplicatedStorage.SkateEnd:FireServer()
end
end
end)
game.UserInputService.InputEnded:Connect(function(input)
if input.KeyCode == Enum.KeyCode.LeftShift then
if skating == true then
print("end")
skating = false
end
end
end)