M
Description
dash indicators for side dash and etc, only supports every character except haruta and some other ones for now(used claude for this)
GAMEJujutsu Shenanigans [THROWABLES]
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
-- LocalScript: put in StarterPlayerScripts
-- Builds the frontdash + sidedash UIs and handles their cooldown indicators
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local WHITE = Color3.fromRGB(255, 255, 255)
local BLACK = Color3.fromRGB(0, 0, 0) -- cooldown color (change if it's hard to see)
----------------------------------------------------------------
-- UI CREATION
----------------------------------------------------------------
local function createDashUI(guiName, text, framePosition)
local gui = Instance.new("ScreenGui")
gui.Name = guiName
gui.ResetOnSpawn = false -- keeps the UI alive when you die
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = playerGui
local frame = Instance.new("Frame")
frame.Parent = gui
frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
frame.BackgroundTransparency = 0.7
frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
frame.BorderSizePixel = 0
frame.Position = framePosition
frame.Size = UDim2.new(0, 35, 0, 37)
local label = Instance.new("TextLabel")
label.Parent = frame
label.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
label.BackgroundTransparency = 1
label.BorderColor3 = Color3.fromRGB(0, 0, 0)
label.BorderSizePixel = 0
label.Size = UDim2.new(0, 35, 0, 37)
label.Font = Enum.Font.ArimoBold
label.Text = text
label.TextColor3 = WHITE
label.TextSize = 14
return label
end
local labels = {
frontdash = createDashUI("frontdash", "FD", UDim2.new(0.357477844, 0, 0.803122282, 0)),
sidedash = createDashUI("sidedash", "SD", UDim2.new(0.378843158, 0, 0.803122282, 0)),
}
----------------------------------------------------------------
-- DASH SETTINGS
----------------------------------------------------------------
local dashes = {
frontdash = {
cooldown = 6,
ids = {
"110978068388232", -- front dash
"99451940496871", -- front dash special
"130135202362252", -- front dash 1
"113722638806911", -- front dash 2
"81708642912019", -- front dash 3
},
},
sidedash = {
cooldown = 2,
ids = {
"75203303352791", -- right side dash
"117223862448096", -- left side dash
},
},
}
-- Lookup: animation id -> dash name
local animToDash = {}
for dashName, data in pairs(dashes) do
for _, animId in ipairs(data.ids) do
animToDash[animId] = dashName
end
end
-- Token per dash so old timers can't overwrite a newer cooldown or a reset
local tokens = { frontdash = 0, sidedash = 0 }
----------------------------------------------------------------
-- COOLDOWN LOGIC
----------------------------------------------------------------
local function startCooldown(dashName)
tokens[dashName] += 1
local myToken = tokens[dashName]
labels[dashName].TextColor3 = BLACK
task.delay(dashes[dashName].cooldown, function()
if tokens[dashName] == myToken then
labels[dashName].TextColor3 = WHITE
end
end)
end
local function resetAll()
for dashName, label in pairs(labels) do
tokens[dashName] += 1 -- cancels any running timers
label.TextColor3 = WHITE
end
end
----------------------------------------------------------------
-- CHARACTER HOOKUP
----------------------------------------------------------------
local function onCharacter(character)
resetAll()
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
animator.AnimationPlayed:Connect(function(track)
local animId = string.match(track.Animation.AnimationId, "%d+")
local dashName = animToDash[animId]
if dashName then
startCooldown(dashName)
end
end)
humanoid.Died:Connect(resetAll)
end
player.CharacterAdded:Connect(onCharacter)
if player.Character then
task.spawn(onCharacter, player.Character)
endReview the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place