Need Help Making my Dash System Dash In all Directions EVEN When out of Shift-Lock

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!
    I think most people experience the problem when making a Dash System with Front face of humanoidRootPart When, it wont dash normally when u enable or disbale shift-lock but some games make it work normally, So i want to know how to Make it dash normally when shift-lock is enable or disabled.
  2. What is the issue? Include screenshots / videos if possible!
    I need Help Making a Dash Like what is shown in this video notice it still dashes normally when u enabled/Disable Shift-lock I have No Clue how to achieve this. but i do know how to make a normal Dash.
    Normal Dash When Shift-lock Is Enabled or Disabled Video
Code I normally use to Make my dash Script:
Well i just use the HumanoidRootPart.Cframe.LookVector

Please do not ask people to write entire scripts or design entire systems for you. If you can’t answer the three questions above, you should probably pick a different category.

1 Like

Help please guys anyone i really need this

Where’s your code? A 1 sentence summary of your code isn’t enough for us to help you with.

Ok i just made this simple Script for this thread, cuz i thought most people would know of this problem when making dash script.

local player = game.Players.LocalPlayer
local char = script.Parent
local humanoid = char:WaitForChild(“Humanoid”)
local HumRP= char:WaitForChild(“HumanoidRootPart”)
local UIS = game:GetService(“UserInputService”)
local debris = game:GetService(“Debris”)
local Debounce = false
UIS.InputBegan:Connect(function(input,gpe)
if gpe then return end
if input.KeyCode == Enum.KeyCode.Q and UIS:IsKeyDown(Enum.KeyCode.W) and Debounce == false then
Debounce = true
local BV = Instance.new(“BodyVelocity”)
BV.Parent = HumRP
BV.MaxForce = Vector3.new(99999,99999,99999)
BV.Velocity = HumRP.CFrame.LookVector * 100
debris:AddItem(BV,0.3)
task.wait(1)
Debounce = false

elseif input.KeyCode == Enum.KeyCode.Q and UIS:IsKeyDown(Enum.KeyCode.S) then
	local BV = Instance.new("BodyVelocity")
	BV.Parent = HumRP
	BV.MaxForce = Vector3.new(99999,99999,99999)
	BV.Velocity = HumRP.CFrame.LookVector * -100
	debris:AddItem(BV,0.3)
	
elseif input.KeyCode == Enum.KeyCode.Q and UIS:IsKeyDown(Enum.KeyCode.D) then
	local BV = Instance.new("BodyVelocity")
	BV.Parent = HumRP
	BV.MaxForce = Vector3.new(99999,99999,99999)
	BV.Velocity = HumRP.CFrame.rightVector * 100
	debris:AddItem(BV,0.3)
	
elseif input.KeyCode == Enum.KeyCode.Q and UIS:IsKeyDown(Enum.KeyCode.A) then
	local BV = Instance.new("BodyVelocity")
	BV.Parent = HumRP
	BV.MaxForce = Vector3.new(99999,99999,99999)
	BV.Velocity = HumRP.CFrame.rightVector * -100
	debris:AddItem(BV,0.3)
end

end)

Try this:

--//Services
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")

--//Variables
local player = Players.LocalPlayer
local char = script.Parent
local humanoid = char:WaitForChild("Humanoid")
local HumRP= char:WaitForChild("HumanoidRootPart")

--//Controls
local Debounce = false

--//Functions
local function CreateBodyVelocity(velocity, parent)
	local BV = Instance.new("BodyVelocity")
	BV.MaxForce = Vector3.one * 99999
	BV.Velocity = velocity
	BV.Parent = parent
	
	task.delay(0.3, function()
		BV:Destroy()
	end)
end

UIS.InputBegan:Connect(function(input,gpe)
	if gpe then 
		return
	end
	
	if input.KeyCode == Enum.KeyCode.Q and UIS.MouseBehavior ~= Enum.MouseBehavior.LockCenter then
		CreateBodyVelocity(HumRP.CFrame.LookVector * 100, HumRP)
		
		return
	end
	
	if input.KeyCode == Enum.KeyCode.Q and UIS:IsKeyDown(Enum.KeyCode.W) and not Debounce then
		Debounce = true
		
		CreateBodyVelocity(HumRP.CFrame.LookVector * 100, HumRP)

		task.wait(1)
		Debounce = false
	elseif input.KeyCode == Enum.KeyCode.Q and UIS:IsKeyDown(Enum.KeyCode.S) then
		CreateBodyVelocity(HumRP.CFrame.LookVector * -100, HumRP)
	elseif input.KeyCode == Enum.KeyCode.Q and UIS:IsKeyDown(Enum.KeyCode.D) then
		CreateBodyVelocity(HumRP.CFrame.RightVector * 100, HumRP)
	elseif input.KeyCode == Enum.KeyCode.Q and UIS:IsKeyDown(Enum.KeyCode.A) then
		CreateBodyVelocity(HumRP.CFrame.RightVector * -100, HumRP)
	end
end)

oh wow i didnt know there was a way to check of the mouse is locked IN the center “Enum.MouseBehavior.LockCenter”

Bro it works perfectly damn ty i didnt think it was dat simple

No problem. If you have any more questions, feel free to ask.

Also if you want to add animations make a table:

ForwardDash = Humanoid:WaitForChild("Animator"):LoadAnimation(game.ReplicatedStorage:WaitForChild("Animations"):WaitForChild("Dash"):WaitForChild("YourAnimation")) -- Make sure to make your own Animation

Then add:

AnimsTable.ForwardDash:Play() -- Make sure to change the ForwardDash according to which key your pressing

After the:

CreateBodyVelocity(HumRP.CFrame.LookVector * -100, HumRP)

Hope this helps!