AOT REVOLUTION ODM DASH ASSIST NERP SOURCE CODE
Attack on Titan RevolutionDescription
⚡ GOD ODM DASH ASSIST [AOT REVOLUTION] ⚡ Smooth and lightweight ODM Dash Assist script for both Mobile and PC players! ⚠️ HOW TO USE (MUST READ): 1. You MUST double jump into the air FIRST before pressing Q or E, After u press now u manual SLASH 2. Press Q / E (PC) or tap DASH Q / DASH E (Mobile) while in mid-air to swoop into the Titan's nape. 3. If you get stuck on buildings... well, figure it out yourself haha! (Try using noclip) OR IMPROVE YOU SKILL without hit building always jump ✨ Features: - ⚡ Curved ODM Dash (Swoops to the nearest Titan nape) - 📱 Mobile Support (On-screen DASH Q & DASH E buttons) - 🔒 Lock / Unlock UI Position (Prevents accidental dragging on mobile) - 🎮 PC & Mobile Compatible - IMAKE THIS SCRIPT 1 YEAR AGO , i hope u enjoy or u can add to your script
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 ]]
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local CoreGui = game:GetService("CoreGui")
local VirtualUser = game:GetService("VirtualUser")
local Camera = Workspace.CurrentCamera
local Player = Players.LocalPlayer
-- Clean UI & Visual FOV Lama Kalau Ada
if CoreGui:FindFirstChild("AssassinFOVUI") then CoreGui.AssassinFOVUI:Destroy() end
if getgenv().TitanFOVCircle then
pcall(function() getgenv().TitanFOVCircle:Remove() end)
end
-- ==========================================
-- SETUP UI BARU (FOV SYSTEM + LOCK UI)
-- ==========================================
local ScreenGui = Instance.new("ScreenGui", CoreGui)
ScreenGui.Name = "AssassinFOVUI"
local MainFrame = Instance.new("Frame", ScreenGui)
MainFrame.Size = UDim2.new(0, 220, 0, 185)
MainFrame.Position = UDim2.new(0.5, -110, 0.7, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 10, 20)
MainFrame.Active = true
Instance.new("UICorner", MainFrame)
local StatusTxt = Instance.new("TextLabel", MainFrame)
StatusTxt.Size = UDim2.new(1, 0, 0.14, 0)
StatusTxt.Text = "👑 GOD ODM COMBO"
StatusTxt.TextColor3 = Color3.fromRGB(255, 215, 0)
StatusTxt.BackgroundTransparency = 1
StatusTxt.Font = Enum.Font.GothamBold
-- Lock / Unlock UI Button
local LockBtn = Instance.new("TextButton", MainFrame)
LockBtn.Size = UDim2.new(0.9, 0, 0.15, 0)
LockBtn.Position = UDim2.new(0.05, 0, 0.15, 0)
LockBtn.Text = "🔓 UI: UNLOCKED"
LockBtn.BackgroundColor3 = Color3.fromRGB(50, 150, 80)
LockBtn.TextColor3 = Color3.new(1, 1, 1)
LockBtn.Font = Enum.Font.GothamBold
Instance.new("UICorner", LockBtn)
-- FOV Toggle Button
local FovToggleBtn = Instance.new("TextButton", MainFrame)
FovToggleBtn.Size = UDim2.new(0.9, 0, 0.15, 0)
FovToggleBtn.Position = UDim2.new(0.05, 0, 0.33, 0)
FovToggleBtn.Text = "🎯 FOV TARGET: OFF"
FovToggleBtn.BackgroundColor3 = Color3.fromRGB(60, 40, 80)
FovToggleBtn.TextColor3 = Color3.new(1, 1, 1)
FovToggleBtn.Font = Enum.Font.GothamBold
Instance.new("UICorner", FovToggleBtn)
-- FOV Size Controls (- / Value / +)
local FovMinusBtn = Instance.new("TextButton", MainFrame)
FovMinusBtn.Size = UDim2.new(0.2, 0, 0.15, 0)
FovMinusBtn.Position = UDim2.new(0.05, 0, 0.51, 0)
FovMinusBtn.Text = "➖"
FovMinusBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 60)
FovMinusBtn.TextColor3 = Color3.new(1, 1, 1)
FovMinusBtn.Font = Enum.Font.GothamBold
Instance.new("UICorner", FovMinusBtn)
local FovLabel = Instance.new("TextLabel", MainFrame)
FovLabel.Size = UDim2.new(0.5, 0, 0.15, 0)
FovLabel.Position = UDim2.new(0.25, 0, 0.51, 0)
FovLabel.Text = "FOV: 150"
FovLabel.TextColor3 = Color3.fromRGB(200, 200, 255)
FovLabel.BackgroundTransparency = 1
FovLabel.Font = Enum.Font.GothamBold
local FovPlusBtn = Instance.new("TextButton", MainFrame)
FovPlusBtn.Size = UDim2.new(0.2, 0, 0.15, 0)
FovPlusBtn.Position = UDim2.new(0.75, 0, 0.51, 0)
FovPlusBtn.Text = "➕"
FovPlusBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 60)
FovPlusBtn.TextColor3 = Color3.new(1, 1, 1)
FovPlusBtn.Font = Enum.Font.GothamBold
Instance.new("UICorner", FovPlusBtn)
-- Button khas Mobile (Q & E)
local QBtn = Instance.new("TextButton", MainFrame)
QBtn.Size = UDim2.new(0.425, 0, 0.22, 0)
QBtn.Position = UDim2.new(0.05, 0, 0.71, 0)
QBtn.Text = "⚡ DASH Q"
QBtn.BackgroundColor3 = Color3.fromRGB(40, 90, 160)
QBtn.TextColor3 = Color3.new(1, 1, 1)
QBtn.Font = Enum.Font.GothamBold
Instance.new("UICorner", QBtn)
local EBtn = Instance.new("TextButton", MainFrame)
EBtn.Size = UDim2.new(0.425, 0, 0.22, 0)
EBtn.Position = UDim2.new(0.525, 0, 0.71, 0)
EBtn.Text = "⚡ DASH E"
EBtn.BackgroundColor3 = Color3.fromRGB(40, 90, 160)
EBtn.TextColor3 = Color3.new(1, 1, 1)
EBtn.Font = Enum.Font.GothamBold
Instance.new("UICorner", EBtn)
-- ==========================================
-- STATE VARIABLES & LOCK DRAG LOGIC
-- ==========================================
local isLocked = false
local isFovEnabled = false
local fovRadius = 150
local attackState = "IDLE"
local currentTarget = nil
local retreatEndTime = 0
local curveDirection = 1
local startDist = 0
-- Sistem Drag UI (Boleh Kunci / Unlock)
local dragging, dragInput, mousePos, framePos
MainFrame.InputBegan:Connect(function(input)
if isLocked then return end -- Tak boleh heret kalau UI dah KUNCI
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragInput = input
mousePos = input.Position
framePos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then dragging = false end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging and not isLocked then
local delta = input.Position - mousePos
MainFrame.Position = UDim2.new(framePos.X.Scale, framePos.X.Offset + delta.X, framePos.Y.Scale, framePos.Y.Offset + delta.Y)
end
end)
LockBtn.MouseButton1Click:Connect(function()
isLocked = not isLocked
LockBtn.Text = isLocked and "🔒 UI: LOCKED" or "🔓 UI: UNLOCKED"
LockBtn.BackgroundColor3 = isLocked and Color3.fromRGB(180, 50, 50) or Color3.fromRGB(50, 150, 80)
end)
-- ==========================================
-- FOV CIRCLE DRAWING (VISUAL BULATAN)
-- ==========================================
local fovCircle = nil
pcall(function()
fovCircle = Drawing.new("Circle")
fovCircle.Thickness = 1.5
fovCircle.NumSides = 36
fovCircle.Radius = fovRadius
fovCircle.Filled = false
fovCircle.Color = Color3.fromRGB(255, 215, 0)
fovCircle.Visible = false
getgenv().TitanFOVCircle = fovCircle
end)
local function updateFovUI()
FovLabel.Text = "FOV: " .. tostring(fovRadius)
if fovCircle then
fovCircle.Radius = fovRadius
fovCircle.Visible = isFovEnabled
end
end
FovToggleBtn.MouseButton1Click:Connect(function()
isFovEnabled = not isFovEnabled
FovToggleBtn.Text = isFovEnabled and "🎯 FOV TARGET: ON" or "🎯 FOV TARGET: OFF"
FovToggleBtn.BackgroundColor3 = isFovEnabled and Color3.fromRGB(150, 50, 255) or Color3.fromRGB(60, 40, 80)
updateFovUI()
end)
FovMinusBtn.MouseButton1Click:Connect(function()
fovRadius = math.clamp(fovRadius - 20, 10, 500)
updateFovUI()
end)
FovPlusBtn.MouseButton1Click:Connect(function()
fovRadius = math.clamp(fovRadius + 20, 10, 500)
updateFovUI()
end)
-- Update kedudukan bulatan FOV di skrin
RunService.RenderStepped:Connect(function()
if fovCircle then
local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
fovCircle.Position = center
end
end)
-- ==========================================
-- SMART TARGET SCAN (WITH FOV LIMIT)
-- ==========================================
local function getClosestNape(hrp)
local closestNape = nil
local bestDist = math.huge
local viewportCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
local TitansFolder = Workspace:FindFirstChild("Titans")
if TitansFolder then
for _, titan in pairs(TitansFolder:GetChildren()) do
local hitboxes = titan:FindFirstChild("Hitboxes")
local hit = hitboxes and hitboxes:FindFirstChild("Hit")
local nape = hit and hit:FindFirstChild("Nape")
if nape and nape.Parent then
local screenPos, onScreen = Camera:WorldToViewportPoint(nape.Position)
-- Semak syarat FOV jika FOV di-ON-kan
local inFov = true
if isFovEnabled then
if not onScreen then
inFov = false
else
local screenDist = (Vector2.new(screenPos.X, screenPos.Y) - viewportCenter).Magnitude
if screenDist > fovRadius then
inFov = false
end
end
end
if inFov then
local dist = (nape.Position - hrp.Position).Magnitude
if dist < bestDist then
bestDist = dist
closestNape = nape
end
end
end
end
end
return closestNape
end
-- ==========================================
-- TRIGGER DASH LOGIC
-- ==========================================
local function triggerDash()
local char = Player.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
local target = getClosestNape(hrp)
if target then
currentTarget = target
startDist = (currentTarget.Position - hrp.Position).Magnitude
attackState = "DASHING"
curveDirection = math.random(1, 2) == 1 and 1 or -1
hrp.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
hrp.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
elseif attackState == "DASHING" then
attackState = "IDLE"
currentTarget = nil
end
end
-- Mobile UI Click Events
QBtn.MouseButton1Click:Connect(triggerDash)
EBtn.MouseButton1Click:Connect(triggerDash)
-- Keyboard Inputs (PC)
UserInputService.InputBegan:Connect(function(input, isTyping)
if isTyping then return end
local char = Player.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
if input.KeyCode == Enum.KeyCode.Q or input.KeyCode == Enum.KeyCode.E then
triggerDash()
end
-- Tekan Space bar untuk cancel
if input.KeyCode == Enum.KeyCode.Space then
if attackState == "DASHING" or attackState == "RETREATING" then
attackState = "IDLE"
currentTarget = nil
hrp.MaxForce = Vector3.new(0, 0, 0)
end
end
end)
-- ==========================================
-- HEARTBEAT (CURVED DASH & RETREAT ENGINE)
-- ==========================================
RunService.Heartbeat:Connect(function()
local char = Player.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
if attackState == "DASHING" then
if not currentTarget or not currentTarget.Parent then
attackState = "IDLE"
return
end
local dist = (currentTarget.Position - hrp.Position).Magnitude
local toTarget = (currentTarget.Position - hrp.Position).Unit
hrp.CFrame = CFrame.new(hrp.Position, currentTarget.Position)
if dist > 15 then
-- FASA 1: LERP LENGKUNGAN ARC
local progress = math.clamp(dist / (startDist > 0 and startDist or 1), 0, 1)
local curveFactor = math.sin(progress * math.pi) * 350
local sideVector = toTarget:Cross(Vector3.new(0, 1, 0)).Unit * curveDirection
local swoopDir = (toTarget * 400 + sideVector * curveFactor).Unit
hrp.Velocity = swoopDir * 480
hrp.MaxForce = Vector3.new(100000, 100000, 100000)
else
-- FASA 2: INSTANT SLASH & RETREAT
hrp.Velocity = toTarget * 480
pcall(function()
if mouse1click then
mouse1click()
else
VirtualUser:Button1Down(Vector2.new(0,0))
VirtualUser:Button1Up(Vector2.new(0,0))
end
end)
attackState = "RETREATING"
retreatEndTime = tick() + 0.35
end
elseif attackState == "RETREATING" then
-- FASA 3: BACKFLIP RETREAT
if tick() < retreatEndTime then
local speed = 450
local flipVel = (-Camera.CFrame.LookVector * (speed / 1.2)) + (hrp.CFrame.UpVector * (speed / 2.6))
hrp.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
hrp.Velocity = flipVel
else
attackState = "IDLE"
currentTarget = nil
hrp.MaxForce = Vector3.new(0, 0, 0)
end
end
end)Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.


Your community, in one place