Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
Workspace = :()
Debris = :()
player = Players.LocalPlayer
player
()
character = player.Character player.CharacterAdded:()
humanoidRootPart = character:(, )
humanoid = character:(, )
camera = Workspace.CurrentCamera Workspace.ActiveCamera
humanoidRootPart humanoid
maxDistance =
basePullStrength =
minCableLength =
maxCableLength =
maxSwingSpeed =
cableThickness =
baseReelFast =
baseReelSlack = -
sideSwingForce =
maxRollAngle = .()
maxPitchAngle = .()
tiltLerpSpeed =
defaultFOV = (camera camera.FieldOfView)
fovMax =
fovSpeedStart =
fovSpeedMax =
fovLerpSpeed =
swingModeEnabled =
soundFolder = humanoidRootPart:()
soundFolder
soundFolder = .()
soundFolder.Name =
soundFolder.Parent = humanoidRootPart
(name, id, volume, looped)
snd = soundFolder:(name) .()
snd.Name = name
snd.SoundId = id
snd.Volume = volume
snd.Looped = looped
snd.Parent = soundFolder
snd
sfxShoot = (, , , )
sfxGasBoost = (, , , )
sfxWind = (, , , )
sfxSlash = (, , , )
sfxEject = (, , , )
(() sfxWind:() )
(snd)
(()
snd.TimePosition =
snd:()
)
character:()
character.ODM_Gear_Model:()
gearFolder = .()
gearFolder.Name =
gearFolder.Parent = character
hasBladesEquipped =
(name, size, cframeOffset, color, material, parentPart, shape)
part = .()
part.Name = name
part.Size = size
part.Color = color
part.Material = material .Material.SmoothPlastic
part.CanCollide =
part.Massless =
shape part.Shape = shape
targetPart = parentPart humanoidRootPart
weld = .()
weld.Part0 = targetPart
weld.Part1 = part
part.CFrame = targetPart.CFrame * cframeOffset
weld.Parent = part
part.Parent = gearFolder
part
metalColor = .(, , )
darkMetal = .(, , )
gasColor = .(, , )
bladeColor = .(, , )
(, .(, , ), .(-, -, ) * .(, .(-), ), metalColor)
(, .(, , ), .(-, -, ), gasColor, .Material.SmoothPlastic, , .PartType.Cylinder)
(, .(, , ), .(-, -, ), gasColor, .Material.SmoothPlastic, , .PartType.Cylinder)
(, .(, , ), .(, -, ) * .(, .(), ), metalColor)
(, .(, , ), .(, -, ), gasColor, .Material.SmoothPlastic, , .PartType.Cylinder)
(, .(, , ), .(, -, ), gasColor, .Material.SmoothPlastic, , .PartType.Cylinder)
(, .(, , ), .(, -, ), darkMetal)
leftArm = character:() character:()
rightArm = character:() character:()
leftBladePart, rightBladePart
leftArm rightArm
(, .(, , ), .(, -, ) * .(.(), , ), darkMetal, , leftArm)
(, .(, , ), .(, -, -), metalColor, , leftArm)
(, .(, , ), .(, -, ) * .(.(), , ), darkMetal, , rightArm)
(, .(, , ), .(, -, -), metalColor, , rightArm)
leftBladePart = (, .(, , ), .(, -, -), bladeColor, .Material.Metal, leftArm)
rightBladePart = (, .(, , ), .(, -, -), bladeColor, .Material.Metal, rightArm)
playerGui = player:(, )
playerGui
playerGui:()
playerGui.ODMMobileGui:()
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.Parent = playerGui
reticle = .()
reticle.Name =
reticle.Size = .(, , , )
reticle.AnchorPoint = .(, )
reticle.Position = .(, , , )
reticle.BackgroundColor3 = .(, , )
reticle.BackgroundTransparency =
reticle.BorderSizePixel =
reticle.Parent = screenGui
reticleCorner = .()
reticleCorner.CornerRadius = .(, )
reticleCorner.Parent = reticle
keyContainer = .()
keyContainer.Name =
keyContainer.Parent = screenGui
(name, text, size, position, onPress, onRelease)
btn = .()
btn.Name = name
btn.Size = size
btn.Position = position
btn.BackgroundColor3 = .(, , )
btn.BackgroundTransparency =
btn.Text = text
btn.TextColor3 = .(, , )
btn.Font = .Font.SourceSansBold
btn.TextSize =
btn.Parent = keyContainer
corner = .()
corner.CornerRadius = .(, )
corner.Parent = btn
btn.InputBegan:((input)
input.UserInputType == .UserInputType.Touch input.UserInputType == .UserInputType.MouseButton1
onPress ()
)
btn.InputEnded:((input)
input.UserInputType == .UserInputType.Touch input.UserInputType == .UserInputType.MouseButton1
onRelease ()
)
btn
left = { active = }
right = { active = }
isActionBusy =
isAttacking =
()
camera = Workspace.CurrentCamera Workspace.ActiveCamera
camera ,
origin = camera.CFrame.Position
direction = camera.CFrame.LookVector
params = RaycastParams.()
params.FilterDescendantsInstances = { character, gearFolder, camera }
params.FilterType = .RaycastFilterType.Blacklist
params.IgnoreWater =
result = Workspace:(origin, direction * maxDistance, params)
result result.Position
result.Position, result.Instance
,
(side)
data = (side == ) left right
data
data.beam (() data.beam:() ) data.beam =
data.attach0 (() data.attach0:() ) data.attach0 =
data.attach1 (() data.attach1:() ) data.attach1 =
data.anchor (() data.anchor:() ) data.anchor =
data.active =
(side)
data = (side == ) left right
(side)
hitPos, hitPart = ()
hitPos
(sfxShoot)
anchor = .()
anchor.Size = .(, , )
anchor.Anchored =
anchor.CanCollide =
anchor.Transparency =
anchor.Position = hitPos
anchor.Parent = Workspace
hitPart hitPart.Anchored ==
weld = .()
weld.Part0 = anchor
weld.Part1 = hitPart
weld.Parent = anchor
data.anchor = anchor
data.attach1 = .(, data.anchor)
attach0 = .()
attach0.Position = (side == ) .(-, -, ) .(, -, )
attach0.Parent = humanoidRootPart
beam = .()
beam.Attachment0 = attach0
beam.Attachment1 = data.attach1
beam.Width0 = cableThickness
beam.Width1 = cableThickness
beam.FaceCamera =
beam.LightEmission =
beam.Color = ColorSequence.((side == ) .(, , ) .(, , ))
beam.Parent = humanoidRootPart
data.beam = beam
data.attach0 = attach0
data.length = (humanoidRootPart.Position - hitPos).Magnitude
data.active =
()
isAttacking hasBladesEquipped
isAttacking =
(sfxSlash)
.(, ()
isAttacking =
)
()
isActionBusy
isActionBusy =
(sfxGasBoost)
burstEffect = .()
burstEffect.Texture =
burstEffect.Size = NumberSequence.({NumberSequenceKeypoint.(, ), NumberSequenceKeypoint.(, )})
burstEffect.Transparency = NumberSequence.({NumberSequenceKeypoint.(, ), NumberSequenceKeypoint.(, )})
burstEffect.Lifetime = NumberRange.(, )
burstEffect.Rate =
burstEffect.Speed = NumberRange.(, )
burstEffect.Parent = humanoidRootPart
lookVector = camera.CFrame.LookVector
humanoidRootPart.AssemblyLinearVelocity = lookVector * + .(, , )
.(, ()
burstEffect.Enabled =
Debris:(burstEffect, )
isActionBusy =
)
()
isActionBusy hasBladesEquipped
isActionBusy =
(sfxSlash)
isGrounded = humanoid.FloorMaterial ~= .Material.Air humanoidRootPart.Velocity.Y ==
isGrounded
humanoid.Sit =
forwardDir = humanoidRootPart.CFrame.LookVector
humanoidRootPart.AssemblyLinearVelocity = (forwardDir * ) + .(, , )
originalFriction = humanoidRootPart.CustomPhysicalProperties
humanoidRootPart.CustomPhysicalProperties = PhysicalProperties.(, , , , )
.(, ()
humanoidRootPart humanoidRootPart.Parent
humanoid.Sit =
humanoidRootPart.CustomPhysicalProperties = originalFriction
(sfxGasBoost)
launchVerticalVel = .( * Workspace.Gravity * )
currentForward = humanoidRootPart.CFrame.LookVector
humanoidRootPart.AssemblyLinearVelocity = (currentForward * ) + .(, launchVerticalVel, )
isActionBusy =
)
forwardDir = humanoidRootPart.CFrame.LookVector
humanoidRootPart:(forwardDir * )
.(, ()
isActionBusy =
)
(bladePart)
bladePart bladePart.Parent
cframe = bladePart.CFrame
droppedPart = .()
droppedPart.Size = bladePart.Size
droppedPart.Color = bladePart.Color
droppedPart.Material = bladePart.Material
droppedPart.CFrame = cframe
droppedPart.CanCollide =
droppedPart.Parent = Workspace
droppedPart.AssemblyLinearVelocity = humanoidRootPart.AssemblyLinearVelocity + (humanoidRootPart.CFrame.RightVector * .(-, )) + .(, , )
droppedPart.AssemblyAngularVelocity = .(.(-, ), .(-, ), .(-, ))
Debris:(droppedPart, )
(, , .(, , , ), .(, , , ),
() () ,
() ()
)
(, , .(, , , ), .(, -, , ),
() () ,
() ()
)
swingBtn
swingBtn = (, , .(, , , ), .(, -, , ),
()
swingModeEnabled = swingModeEnabled
swingModeEnabled
swingBtn.Text =
swingBtn.BackgroundColor3 = .(, , )
swingBtn.Text =
swingBtn.BackgroundColor3 = .(, , )
,
)
swingBtn.BackgroundColor3 = .(, , )
(, , .(, , , ), .(, -, , -),
() () ,
)
slideBtn = (, , .(, , , ), .(, -, , -),
() () ,
)
(, , .(, , , ), .(, -, , -),
() () ,
)
toggleBtn
()
hasBladesEquipped
hasBladesEquipped =
(sfxEject)
leftBladePart (leftBladePart) leftBladePart.Transparency =
rightBladePart (rightBladePart) rightBladePart.Transparency =
toggleBtn
toggleBtn.Text =
toggleBtn.BackgroundColor3 = .(, , )
slideBtn
slideBtn.BackgroundTransparency =
(sfxGasBoost)
.()
hasBladesEquipped =
leftBladePart leftBladePart.Transparency =
rightBladePart rightBladePart.Transparency =
toggleBtn
toggleBtn.Text =
toggleBtn.BackgroundColor3 = .(, , )
slideBtn
slideBtn.BackgroundTransparency =
toggleBtn = (, , .(, , , ), .(, -, , -),
() () ,
)
currentRoll, currentPitch = ,
RunService.Heartbeat:((dt)
humanoidRootPart humanoidRootPart.Parent humanoid
isGrappling = left.active right.active
moveDir = humanoid.MoveDirection
isGrappling
humanoid:(.HumanoidStateType.Freefall)
activeCables = (left.active ) + (right.active )
speedMultiplier = (activeCables == )
currentPullStrength = basePullStrength * speedMultiplier
currentReelFast = baseReelFast * speedMultiplier
currentReelSlack = baseReelSlack * speedMultiplier
localMove = humanoidRootPart.CFrame:(moveDir)
isSwinging =
isGrappling swingModeEnabled localMove.Z >= -
isSwinging =
isGrappling
localMove.Z >
_, data ({ left, right })
data.active
data.length = .(data.length - (currentReelSlack * dt), minCableLength, maxCableLength)
localMove.Z < -
_, data ({ left, right })
data.active
data.length = .(data.length - (currentReelFast * dt), minCableLength, maxCableLength)
.(localMove.X) >
sideVector = humanoidRootPart.CFrame.RightVector * localMove.X
humanoidRootPart:(sideVector * sideSwingForce * speedMultiplier)
rootJoint = humanoidRootPart:()
rootJoint
targetRoll =
targetPitch =
isGrappling
targetRoll = -localMove.X * maxRollAngle
left.active right.active
targetRoll = targetRoll - .()
right.active left.active
targetRoll = targetRoll + .()
targetPitch = -localMove.Z * maxPitchAngle
currentRoll = currentRoll + (targetRoll - currentRoll) * .(tiltLerpSpeed * dt, , )
currentPitch = currentPitch + (targetPitch - currentPitch) * .(tiltLerpSpeed * dt, , )
rootJoint.C0 = .(, , )
* .(-.pi/ + currentPitch, , .pi)
* .(, , currentRoll)
_, data ({ left, right })
data.active data.anchor
toAnchor = data.anchor.Position - humanoidRootPart.Position
distance = toAnchor.Magnitude
dir = toAnchor.Unit
isSwinging
distance > data.length
vel = humanoidRootPart.AssemblyLinearVelocity
velAlongCable = vel:(dir)
velAlongCable <
humanoidRootPart.AssemblyLinearVelocity = vel - (dir * velAlongCable)
humanoidRootPart:(dir * ((distance - data.length) * currentPullStrength))
data.length = distance
distance > data.length
humanoidRootPart:(dir * ((distance - data.length) * currentPullStrength))
vel = humanoidRootPart.AssemblyLinearVelocity
vel.Magnitude > maxSwingSpeed
humanoidRootPart.AssemblyLinearVelocity = vel.Unit * maxSwingSpeed
speed = humanoidRootPart.AssemblyLinearVelocity.Magnitude
t = .((speed - fovSpeedStart) / .(, (fovSpeedMax - fovSpeedStart)), , )
(()
sfxWind.Volume = .(t * , , )
sfxWind.PlaybackSpeed = + (t * )
)
camera = Workspace.CurrentCamera Workspace.ActiveCamera
camera
camera.FieldOfView = camera.FieldOfView + ((defaultFOV + (fovMax - defaultFOV) * t) - camera.FieldOfView) * .(fovLerpSpeed * dt, , )
)
.(()
(runODM)
)
player.CharacterAdded:(()
.()
(runODM)
)Odm script mobile hve fun Also sorry for those who tried it and it didn't work

Universal