How would i make a Dash System specifically like this?

I want to make a dash system like this?
As you can see this is a dash system where you press WASD (any key) and it replicated your character and moves it in the direction you’re going and that wind line.

Im trying to make a system like this but I need ideas, any help?


You can get the MoveDirection of the player, or you can get the keys the player is pressing, which you would transfer to the server via a RemoteEvent. You could then use BodyMovers to move the character some distance away from the original point, with the player’s MoveDirection (or lookvector depending on method).

1 Like

I never done MoveDirection before. And when u say keys would i do UIS?

1 Like

You would indeed use UserInputService for that.

1 Like

So i would do

if Key.KeyCode == Enum.KeyCode.Q then

1 Like

No. There is a function called GetKeysPressed() in UserInputService, which (of course) gets the keys the player is holding down, meaning you could see if the player is holding down W, A, S or D.
Something like this.

local KeysPressed = UserInputService:GetKeysPressed()
local MoveDir =

for _,v in pairs(KeysPressed) do
   if v == Enum.KeyCode.W then
      MoveDir = MoveDir +, 0, 1)
   elseif v == Enum.KeyCode.A then
      MoveDir = MoveDir -
   elseif v == Enum.KeyCode.S then
      MoveDir = MoveDir -, 0, -1)
   elseif v == Enum.KeyCode.D then
      MoveDir = MoveDir +

oh, Sorry I thought you meant regular UIS, my bad. But what about cloning the characters parts? thats what im confused on since i never did it before

1 Like

You would have to make the player’s Character archivable or create a completely new character that applies your character’s description, which I wouldn’t recommend. I would just use trails.

1 Like

I can see that they used, either bodyforce or tweening, cloning, trails, and animations. So try utilizing these things:

You would have to make the animations and trails yourself, put this script into starter GUI

local UIS = game:GetService("UserInputService")
local TS = game:GetService("TweenService")
local AnimationLeft = --AnimationId(leftAnimation)
local AnimationRight = --AnimationId(rightAnimation)
local Character = game.Players.LocalPlayer.Character

    if Input. KeyCode == Enum.KeyCode.Q then
        -- Tween the player
        -- Set the trail enabled to true
        -- Play the Animation
         for i = 1, 5 do
            for i, v in pairs(Character:GetChildren) do
                if v:IsA("Mesh") or v:IsA("Accessory") then
                    for i = 1,10 do
                        v.Transparency = v.Transparency + 0.1

For the animation you must make it yourself and add an animation events into the animation,
then you can use GetKeyFrameReachedSignal to add an event to those animation events you just make in the animation editor,
then you want to make a R15 Rig and put it into ReplicatedStorage, then when the event fires.
you want to clone that R15 Rig into the workspace and set its CFrame using SetPrimaryPartCFrame functions, and you also want to load the animation into the R15 Rig using LoadAnimation functions, then you will also use TimePosition and Length and AdjustSpeed.
and you also want to use Trails and parent it into the Character RightHand,LeftHand,RightFoot and LeftFoot.
and now you already got the Effects. and to move the Character you can use UserInputService and RemoteEvent.
after that make a script in ServerScriptService or any place you want that can execute a script, and now you can use TweenService or Lerp to make the player go up DON'T FORGET TO ANCHOR THE CHARACTER! , then after the character go up you can use BodyVelocity and set the velocity depending on the CFrame of the Character and there you go! now you have that dash system!


what would that do? and what is “paris” never heard of it…


Thank you I will try my best by using this


It would tween the player to a position, and that was a typo, soory