Run it
Copy the script and paste it into your executor.
(()
Luna = (
:(, )
)()
Players = :()
ReplicatedStorage = :()
RunService = :()
UserInputService = :()
Workspace = :()
LogService = :()
Lighting = :()
LocalPlayer = Players.LocalPlayer
Camera = Workspace.CurrentCamera
ClientRuntime = (ReplicatedStorage.Shared.ClientRuntime)
(method, ...)
results = .((method, ...))
results[], results[], results[]
(method, ...)
luaOk, success, response = (method, ...)
luaOk , , success
, success, response
(method, ...)
luaOk, value = (method, ...)
luaOk
value
STUDS_PER_BLOCK = (()
v = (() ClientRuntime.StudsPerBlock )
(v) == v
)()
(position)
.(
.(position.X / STUDS_PER_BLOCK) * STUDS_PER_BLOCK,
.(position.Y / STUDS_PER_BLOCK) * STUDS_PER_BLOCK,
.(position.Z / STUDS_PER_BLOCK) * STUDS_PER_BLOCK
)
State = {
target = ,
packets = ,
errors = ,
lastAck = ,
autoAttack = ,
autoAttackCPS = ,
killAura = ,
killAuraRange = ,
killAuraCPS = ,
killAuraMulti = ,
killAuraTeamCheck = ,
killAuraShowRange = ,
killAuraNPCs = ,
killAuraPlayers = ,
combatReach = (ClientRuntime.GetCombatReach) ,
blockReach = (ClientRuntime.GetBlockReach) ,
aimlock = ,
aimlockActive = ,
aimlockKey = .KeyCode.Q,
aimlockFOV = ,
aimlockSmoothing = ,
aimlockPart = ,
aimlockTeamCheck = ,
aimlockShowFOV = ,
aimlockNPCs = ,
triggerBot = ,
triggerBotCPS = ,
triggerBotRange = ,
criticals = ,
espEnabled = ,
espHighlight = ,
espNames = ,
espHealth = ,
espDistance = ,
espTracers = ,
espTeamCheck = ,
espNPCs = ,
espFillColor = .(, , ),
espOutlineColor = .(, , ),
espFillTransparency = ,
espOutlineTransparency = ,
velocityEnabled = ,
velocityWalkSpeed = ,
velocityJumpPower = ,
noclip = ,
fly = ,
flySpeed = ,
infiniteJump = ,
antiKick = ,
antiKB = ,
antiKBPercent = ,
stepEnabled = ,
stepHeight = ,
spider = ,
spiderSpeed = ,
longJump = ,
longJumpBoost = ,
autoWalk = ,
nuker = ,
nukerCPS = ,
nukerRange = ,
scaffold = ,
scaffoldCPS = ,
scaffoldBlock = ,
tower = ,
towerCPS = ,
towerBlock = ,
autoBridge = ,
autoBridgeCPS = ,
autoBridgeBlock = ,
freecam = ,
freecamSpeed = ,
fullbright = ,
noFog = ,
customFOV = ,
fovValue = ,
coordsEnabled = ,
breadcrumbs = ,
breadcrumbColor = .(, , ),
autoRespawn = ,
}
HIDDEN_CLASSES = {
BodyVelocity = , BodyGyro = , BodyForce = , BodyPosition = ,
BodyAngularVelocity = , BodyThrust = , LinearVelocity = ,
AlignOrientation = , VectorForce = ,
}
SUPPRESSED_STATES = {
[.HumanoidStateType.PlatformStanding] = ,
[.HumanoidStateType.StrafingNoPhysics] = ,
[.HumanoidStateType.Physics] = ,
}
HiddenInstances = {}
StateHookConnections = {}
espCache = {}
fovCircle =
flyBodyVelocity =
flyBodyGyro =
currentAimlockTarget =
killAuraThread =
autoAttackThread =
nukerThread =
scaffoldThread =
towerThread =
autoBridgeThread =
triggerBotThread =
killAuraToken =
autoAttackToken =
nukerToken =
scaffoldToken =
towerToken =
autoBridgeToken =
triggerBotToken =
killAuraVisualPart =
statsParagraph
npcCache = {}
npcCacheTick =
NPC_CACHE_INTERVAL =
espUpdateTick =
ESP_UPDATE_INTERVAL =
uiUpdateTick =
UI_UPDATE_INTERVAL =
originalCameraType =
originalLighting = {}
originalFog = {}
coordsGui =
coordsLabel =
breadcrumbParts = {}
lastBreadcrumbPos =
BREADCRUMB_SPACING =
blinkPositions = {}
longJumpApplied =
lastConfigSave =
(inst) inst HiddenInstances[inst] =
(inst) inst HiddenInstances[inst] =
(inst) HiddenInstances[inst] ==
(inst)
char = LocalPlayer LocalPlayer.Character
char (inst) ~=
s, r = (() inst == char inst:(char) )
s r
()
(checkcaller) == ()
(()
() ~= (getnamecallmethod) ~=
oldNamecall
oldNamecall = (, , (self, ...)
s, r = ((...)
method = ()
args = {...}
method == State.antiKick self == LocalPlayer
(method == method == ) args[] HIDDEN_CLASSES[args[]] (self) ()
(method == method == ) (self) ()
results = (self, ...)
filtered = {}
_, v (results) (v) filtered[#filtered+] = v
filtered
(self, ...)
, ...)
s r
(self, ...)
)
)
(()
() ~=
oldIndex
oldIndex = (, , (self, key)
s, r = (()
() (self) == self:() (self)
key == State.velocityEnabled
key == State.velocityEnabled
key == State.velocityEnabled
key == State.fly
(self, key)
)
s r
(self, key)
)
)
(()
() ~=
oldNewindex
oldNewindex = (, , (self, key, value)
(()
() (self) == self:() (self)
key == State.velocityEnabled (self, key, State.velocityWalkSpeed);
key == State.velocityEnabled (self, key, State.velocityJumpPower);
key == State.fly
(self, key, value)
)
)
)
(()
(getconnections) ~=
_, c ((LogService.MessageOut)) (() c:() )
_, c ((LocalPlayer.Idled)) (() c:() )
)
(char)
(()
char
_, c (StateHookConnections) (() c:() )
StateHookConnections = {}
humanoid = char:(, )
humanoid
StateHookConnections[#StateHookConnections+] = humanoid.StateChanged:((_, newState)
(()
State.fly SUPPRESSED_STATES[newState] humanoid:(.HumanoidStateType.Running)
)
)
rootPart = char:(, )
rootPart
StateHookConnections[#StateHookConnections+] = rootPart.ChildAdded:((child)
(() HIDDEN_CLASSES[child.ClassName] (child) child:() )
)
State.autoRespawn
humanoid.Died:(()
State.autoRespawn .(); (()
remote = ReplicatedStorage:(, )
remote remote:() remote:()
remote remote:() remote:()
)
)
)
(()
LocalPlayer.Character (LocalPlayer.Character)
LocalPlayer.CharacterAdded:((char) (hookCharacterStateChanges, char) )
)
(title, content)
(() Luna:({ Title = title, Content = content }) )
()
(()
statsParagraph
bridgeOk, bridgeReady = (ClientRuntime.IsReady)
bridgeStatus = (bridgeOk bridgeReady == ) (bridgeOk )
statsParagraph:({
Title = ,
Text = .. (State.target)
.. .. (State.packets)
.. .. (State.errors)
.. .. (State.lastAck)
.. .. bridgeStatus
.. .. (State.killAura ) .. .. (State.triggerBot ) .. .. (State.autoAttack )
.. .. (State.nuker ) .. .. (State.scaffold ) .. .. (State.tower )
.. .. (State.combatReach) .. .. (State.blockReach),
})
)
(name)
(name) ~= name ==
low = .(name)
_, p (Players:()) .(p.Name) == low p
_, p (Players:()) .(.(p.Name), , #low) == low p
(player)
player
char = player.Character
char
hum = char:()
hum hum.Health <=
char
()
char = LocalPlayer.Character
char char:()
()
char = LocalPlayer.Character
char char:()
()
now = .()
now - npcCacheTick < NPC_CACHE_INTERVAL npcCache
npcCacheTick = now
list = {}
playerChars = {}
_, p (Players:()) p.Character playerChars[p.Character] =
(parent)
_, obj (parent:())
(()
obj:() playerChars[obj]
hum = obj:()
hum hum.Health >
root = obj:() obj:()
root list[#list+] = obj
)
(Workspace)
_, folder (Workspace:())
(() folder:() (folder) )
npcCache = list
list
(target)
luaOk, success, response = (ClientRuntime.Attack, target)
luaOk success
State.packets +=
, response
State.errors +=
, response
breakVisualPool = {}
MAX_BREAK_VISUALS =
(position)
snapped = (position)
#breakVisualPool >= MAX_BREAK_VISUALS
oldest = .(breakVisualPool, )
(() oldest:() )
part = .()
part.Size = .(STUDS_PER_BLOCK, STUDS_PER_BLOCK, STUDS_PER_BLOCK)
part.Position = snapped
part.Anchored =
part.CanCollide =
part.Transparency =
part.Material = .Material.ForceField
part.Color = .(, , )
part.CastShadow =
part.Parent = Workspace
breakVisualPool[#breakVisualPool + ] = part
.(()
steps =
shrinkTime =
startSize = part.Size
i = , steps
part part.Parent
alpha = i / steps
part.Size = startSize * ( - alpha * )
part.Transparency = + alpha *
.(shrinkTime / steps)
(() part:() )
idx, pooled (breakVisualPool)
pooled == part .(breakVisualPool, idx);
)
(position)
payload = { action = }
position payload.blockPosition = (position)
luaOk, success, response = (ClientRuntime.Execute, payload)
luaOk success
State.packets +=
position .(spawnBreakVisual, position)
, response
State.errors +=
, response
(position, options)
options = options {}
snapped = (position)
payload = {
action = ,
position = snapped,
blockType = options.blockType ,
}
options.hand payload.hand = options.hand
options.normal payload.normal = options.normal
options.placementFace payload.placementFace = options.placementFace
luaOk, success, response = (ClientRuntime.Execute, payload)
luaOk success
State.packets +=
, response
State.errors +=
, response
(options)
options = options {}
payload = {
action = ,
blockType = options.blockType ,
}
options.forceOffhand payload.forceOffhand =
luaOk, success, response = (ClientRuntime.Execute, payload)
luaOk success
State.packets +=
, response
State.errors +=
, response
(length, options)
options = options {}
length = length
blockType = options.blockType State.scaffoldBlock
underFeet = options.underFeet ~=
stepDelay = options.stepDelay
root = ()
root ,
lookFlat = root.CFrame.LookVector * .(, , )
lookFlat.Magnitude < lookFlat = .(, , ) lookFlat = lookFlat.Unit
yOffset = underFeet -STUDS_PER_BLOCK
startPos = root.Position + .(, yOffset, )
placed =
i = , length -
targetPos = startPos + lookFlat * (i * STUDS_PER_BLOCK)
ok = (targetPos, { blockType = blockType })
ok placed +=
stepDelay > i < length - .(stepDelay)
, placed
(target, sourceTag)
State.criticals
(()
hum = ()
hum hum.FloorMaterial ~= .Material.Air
hum:(.HumanoidStateType.Jumping)
.()
)
ok, response = (target)
ok
(()
(target) ==
State.lastAck = (sourceTag ) .. .. target.Name
State.lastAck = (sourceTag ) ..
)
State.lastAck = (sourceTag ) .. .. (response )
(sourceTag)
tp = (State.target)
tp State.errors += ; State.lastAck = ;
(tp, sourceTag )
(sourceTag, position)
ok, response = (position)
ok State.lastAck = (sourceTag ) .. ;
State.lastAck = (sourceTag ) .. .. (response )
(sourceTag, position, options)
position
ok, response = (position, options)
ok State.lastAck = (sourceTag ) .. ;
State.lastAck = (sourceTag ) .. .. (response )
ok, response = (options {})
ok State.lastAck = (sourceTag ) .. ;
State.lastAck = (sourceTag ) .. .. (response )
()
ok1, s1 = (ClientRuntime.SetCombatReach, State.combatReach)
ok1 s1 State.packets += State.errors +=
ok2, s2 = (ClientRuntime.SetBlockReach, State.blockReach)
ok2 s2 State.packets += State.errors +=
State.lastAck = .. (State.combatReach) .. .. (State.blockReach)
(updateUi)
(, .. (State.combatReach) .. .. (State.blockReach))
()
ok1, s1 = (ClientRuntime.ResetCombatReach)
ok1 s1 State.packets += State.errors +=
ok2, s2 = (ClientRuntime.ResetBlockReach)
ok2 s2 State.packets += State.errors +=
State.combatReach = (ClientRuntime.GetCombatReach)
State.blockReach = (ClientRuntime.GetBlockReach)
State.lastAck = ; (updateUi); (, )
()
cr = (ClientRuntime.GetCombatReach)
br = (ClientRuntime.GetBlockReach)
(cr) == State.combatReach = cr
(br) == State.blockReach = br
State.lastAck = ; (updateUi)
()
localRoot = ()
localRoot {}
rangeStuds = State.killAuraRange * STUDS_PER_BLOCK
localPos = localRoot.Position
targets = {}
State.killAuraPlayers
_, player (Players:())
player ~= LocalPlayer (State.killAuraTeamCheck player.Team player.Team == LocalPlayer.Team)
char = (player)
char
root = char:()
root
dist = (root.Position - localPos).Magnitude
dist <= rangeStuds targets[#targets+] = { target = player, distance = dist }
State.killAuraNPCs
_, npc (())
(()
root = npc:() npc:()
root
hum = npc:()
hum hum.Health >
dist = (root.Position - localPos).Magnitude
dist <= rangeStuds targets[#targets+] = { target = npc, distance = dist }
)
.(targets, (a, b) a.distance < b.distance )
targets
()
killAuraThread
killAuraToken +=
token = killAuraToken
killAuraThread = .(()
State.killAura token == killAuraToken
targets = ()
#targets >
State.killAuraMulti
i = , #targets (targets[i].target, )
(targets[].target, )
.( / .(State.killAuraCPS, ))
token == killAuraToken killAuraThread =
)
()
State.killAura =
killAuraToken +=
killAuraThread =
()
autoAttackThread
autoAttackToken +=
token = autoAttackToken
autoAttackThread = .(()
State.autoAttack token == autoAttackToken
tp = (State.target)
tp (tp) (tp, )
.( / .(State.autoAttackCPS, ))
token == autoAttackToken autoAttackThread =
)
()
State.autoAttack =
autoAttackToken +=
autoAttackThread =
()
mouse = LocalPlayer:()
mouse mouse.Target
target = mouse.Target
model = target:()
model
hum = model:()
hum hum.Health <=
localRoot = ()
targetRoot = model:() model:()
localRoot targetRoot
(targetRoot.Position - localRoot.Position).Magnitude > State.triggerBotRange * STUDS_PER_BLOCK
player = Players:(model)
player player == LocalPlayer
player State.killAuraTeamCheck player.Team player.Team == LocalPlayer.Team
player model
()
triggerBotThread
triggerBotToken +=
token = triggerBotToken
triggerBotThread = .(()
State.triggerBot token == triggerBotToken
target = ()
target (target, )
.( / .(State.triggerBotCPS, ))
token == triggerBotToken triggerBotThread =
)
()
State.triggerBot =
triggerBotToken +=
triggerBotThread =
()
nukerThread
nukerToken +=
token = nukerToken
nukerThread = .(()
State.nuker token == nukerToken
root = ()
root State.nukerRange >
center = (root.Position)
r = State.nukerRange
breakCount =
x = -r, r y = -r, r z = -r, r
token ~= nukerToken
pos = center + .(x, y, z) * STUDS_PER_BLOCK
(pos)
breakCount +=
breakCount % == .()
()
.( / .(State.nukerCPS, , ))
token == nukerToken nukerThread =
)
()
State.nuker =
nukerToken +=
nukerThread =
()
scaffoldThread
scaffoldToken +=
token = scaffoldToken
scaffoldThread = .(()
State.scaffold token == scaffoldToken
root = ()
root
({ blockType = State.scaffoldBlock })
.( / .(State.scaffoldCPS, , ))
token == scaffoldToken scaffoldThread =
)
()
State.scaffold =
scaffoldToken +=
scaffoldThread =
()
towerThread
towerToken +=
token = towerToken
towerThread = .(()
State.tower token == towerToken
root = ()
hum = ()
root hum
hum:(.HumanoidStateType.Jumping)
.()
root root.Parent token == towerToken
belowPos = root.Position - .(, STUDS_PER_BLOCK, )
(belowPos, { blockType = State.towerBlock })
.()
.()
.( / .(State.towerCPS, ))
token == towerToken towerThread =
)
()
State.tower =
towerToken +=
towerThread =
()
autoBridgeThread
autoBridgeToken +=
token = autoBridgeToken
autoBridgeThread = .(()
State.autoBridge token == autoBridgeToken
root = ()
root
hum = ()
hum hum.MoveDirection.Magnitude >
moveDir = .(hum.MoveDirection.X, , hum.MoveDirection.Z)
moveDir.Magnitude >
dir = moveDir.Unit
i = ,
pos = root.Position + dir * (i * STUDS_PER_BLOCK) - .(, STUDS_PER_BLOCK, )
(pos, { blockType = State.autoBridgeBlock })
belowPos = root.Position - .(, STUDS_PER_BLOCK, )
(belowPos, { blockType = State.autoBridgeBlock })
.( / .(State.autoBridgeCPS, ))
token == autoBridgeToken autoBridgeThread =
)
()
State.autoBridge =
autoBridgeToken +=
autoBridgeThread =
()
State.killAura State.killAuraShowRange
localRoot = ()
localRoot
killAuraVisualPart killAuraVisualPart.Parent
killAuraVisualPart = .()
killAuraVisualPart.Shape = .PartType.Ball
killAuraVisualPart.Anchored =
killAuraVisualPart.CanCollide =
killAuraVisualPart.Material = .Material.ForceField
killAuraVisualPart.Color = .(, , )
killAuraVisualPart.Transparency =
killAuraVisualPart.CastShadow =
killAuraVisualPart.Parent = Workspace
r = State.killAuraRange * STUDS_PER_BLOCK
killAuraVisualPart.Size = .(r*, r*, r*)
killAuraVisualPart.Position = localRoot.Position
killAuraVisualPart (() killAuraVisualPart:() ); killAuraVisualPart =
()
closest, closestDist = , State.aimlockFOV
mousePos = UserInputService:()
_, player (Players:())
player ~= LocalPlayer (State.aimlockTeamCheck player.Team player.Team == LocalPlayer.Team)
char = (player)
char
part = char:(State.aimlockPart) char:()
part
sp, on = Camera:(part.Position)
on
dist = (.(sp.X, sp.Y) - mousePos).Magnitude
dist < closestDist closestDist = dist; closest = char
State.aimlockNPCs
_, npc (())
(()
part = npc:(State.aimlockPart) npc:()
part
sp, on = Camera:(part.Position)
on
dist = (.(sp.X, sp.Y) - mousePos).Magnitude
dist < closestDist closestDist = dist; closest = npc
)
closest
(key)
cache = espCache[key]
cache
(() cache.highlight cache.highlight:() )
(() cache.billboard cache.billboard:() )
(() cache.tracer cache.tracer:() )
cache.charAddedConn (() cache.charAddedConn:() )
espCache[key] =
(key, isNPCTarget)
isNPCTarget key == LocalPlayer
(key)
cache = { isNPC = isNPCTarget }
espCache[key] = cache
cache.highlight = .()
cache.highlight.FillColor = State.espFillColor
cache.highlight.OutlineColor = State.espOutlineColor
cache.highlight.FillTransparency = State.espFillTransparency
cache.highlight.OutlineTransparency = State.espOutlineTransparency
cache.highlight.DepthMode = .HighlightDepthMode.AlwaysOnTop
cache.billboard = .()
cache.billboard.Size = .(, , , )
cache.billboard.StudsOffset = .(, , )
cache.billboard.AlwaysOnTop =
cache.billboard.LightInfluence =
cache.nameLabel = .()
cache.nameLabel.Size = .(, , , )
cache.nameLabel.BackgroundTransparency =
cache.nameLabel.TextColor3 = .(, , )
cache.nameLabel.TextStrokeTransparency =
cache.nameLabel.TextStrokeColor3 = .(, , )
cache.nameLabel.Font = .Font.GothamBold
cache.nameLabel.TextSize =
cache.nameLabel.Parent = cache.billboard
cache.healthBg = .()
cache.healthBg.Size = .(, , , )
cache.healthBg.Position = .(, , , )
cache.healthBg.BackgroundColor3 = .(, , )
cache.healthBg.BorderSizePixel =
cache.healthBg.BorderColor3 = .(, , )
cache.healthBg.Parent = cache.billboard
cache.healthBar = .()
cache.healthBar.Size = .(, , , )
cache.healthBar.BackgroundColor3 = .(, , )
cache.healthBar.BorderSizePixel =
cache.healthBar.Parent = cache.healthBg
cache.distLabel = .()
cache.distLabel.Size = .(, , , )
cache.distLabel.Position = .(, , , )
cache.distLabel.BackgroundTransparency =
cache.distLabel.TextColor3 = .(, , )
cache.distLabel.TextStrokeTransparency =
cache.distLabel.TextStrokeColor3 = .(, , )
cache.distLabel.Font = .Font.Gotham
cache.distLabel.TextSize =
cache.distLabel.Parent = cache.billboard
(()
cache.tracer = .()
cache.tracer.Thickness = ; cache.tracer.Color = State.espFillColor; cache.tracer.Transparency = ; cache.tracer.Visible =
)
isNPCTarget (key) == key:()
cache.charAddedConn = key.CharacterAdded:(() .(); espCache[key] (createESP, key, ) )
()
_, player (Players:())
player ~= LocalPlayer State.espEnabled (player, ) (player)
State.espEnabled State.espNPCs _, npc (()) (npc, )
() key (espCache) (key)
()
State.espEnabled
State.espNPCs
_, npc (()) espCache[npc] (createESP, npc, )
localRoot = ()
key, cache (espCache)
(()
key ((key) == key.Parent) (key);
char, displayName
cache.isNPC
char = key; displayName = .. key.Name
State.espNPCs cache.highlight.Parent = ; cache.billboard.Enabled = ; cache.tracer cache.tracer.Visible = ;
State.espTeamCheck key.Team key.Team == LocalPlayer.Team cache.highlight.Parent = ; cache.billboard.Enabled = ; cache.tracer cache.tracer.Visible = ;
char = key.Character; displayName = key.DisplayName .. .. key.Name ..
char char.Parent cache.highlight.Parent = ; cache.billboard.Enabled = ; cache.tracer cache.tracer.Visible = ;
hum = char:()
rootPart = char:() char:()
head = char:()
hum rootPart hum.Health <= cache.highlight.Parent = ; cache.billboard.Enabled = ; cache.tracer cache.tracer.Visible = ;
State.espHighlight
cache.highlight.FillColor = State.espFillColor; cache.highlight.OutlineColor = State.espOutlineColor
cache.highlight.FillTransparency = State.espFillTransparency; cache.highlight.OutlineTransparency = State.espOutlineTransparency
cache.highlight.Adornee = char; cache.highlight.Parent = char
cache.highlight.Parent =
adorn = head rootPart
cache.billboard.Adornee = adorn; cache.billboard.Parent = adorn; cache.billboard.Enabled =
cache.nameLabel.Visible = State.espNames; cache.nameLabel.Text = displayName
cache.healthBg.Visible = State.espHealth
ratio = .(hum.Health / hum.MaxHealth, , )
cache.healthBar.Size = .(ratio, , , )
cache.healthBar.BackgroundColor3 = .(*(-ratio), *ratio, )
cache.distLabel.Visible = State.espDistance
localRoot cache.distLabel.Text = .((rootPart.Position - localRoot.Position).Magnitude) ..
cache.distLabel.Text =
cache.tracer State.espTracers
sp, on = Camera:(rootPart.Position)
on cache.tracer.From = .(Camera.ViewportSize.X/, Camera.ViewportSize.Y); cache.tracer.To = .(sp.X, sp.Y); cache.tracer.Color = State.espFillColor; cache.tracer.Visible =
cache.tracer.Visible =
cache.tracer cache.tracer.Visible =
)
()
(()
State.freecam State.freecam = ; Camera.CameraType = originalCameraType .CameraType.Custom
char = LocalPlayer.Character; char
rootPart = char:(); rootPart
hum = char:()
flyBodyVelocity (flyBodyVelocity); (() flyBodyVelocity:() )
flyBodyGyro (flyBodyGyro); (() flyBodyGyro:() )
flyBodyVelocity = .(); flyBodyVelocity.MaxForce = .(.huge,.huge,.huge); flyBodyVelocity.Velocity = .zero; flyBodyVelocity.Parent = rootPart; (flyBodyVelocity)
flyBodyGyro = .(); flyBodyGyro.MaxTorque = .(.huge,.huge,.huge); flyBodyGyro.D = ; flyBodyGyro.P = ; flyBodyGyro.Parent = rootPart; (flyBodyGyro)
hum hum.PlatformStand =
)
()
(()
flyBodyVelocity (flyBodyVelocity); (() flyBodyVelocity:() ); flyBodyVelocity =
flyBodyGyro (flyBodyGyro); (() flyBodyGyro:() ); flyBodyGyro =
char = LocalPlayer.Character
char hum = char:(); hum hum.PlatformStand =
)
()
State.fly State.fly = ; (stopFly)
State.aimlockActive = ; currentAimlockTarget =
originalCameraType = Camera.CameraType
Camera.CameraType = .CameraType.Scriptable
()
Camera.CameraType = originalCameraType .CameraType.Custom
(()
hum = ()
hum Camera.CameraSubject = hum
)
()
originalLighting.Ambient = Lighting.Ambient
originalLighting.Brightness = Lighting.Brightness
originalLighting.OutdoorAmbient = Lighting.OutdoorAmbient
Lighting.Ambient = .(, , )
Lighting.Brightness =
Lighting.OutdoorAmbient = .(, , )
_, effect (Lighting:())
(()
effect:()
originalLighting[effect] = { Density = effect.Density, Color = effect.Color }
effect.Density =
effect:()
originalLighting[effect] = { Enabled = effect.Enabled }
effect.Enabled =
)
()
(() originalLighting.Ambient Lighting.Ambient = originalLighting.Ambient )
(() originalLighting.Brightness Lighting.Brightness = originalLighting.Brightness )
(() originalLighting.OutdoorAmbient Lighting.OutdoorAmbient = originalLighting.OutdoorAmbient )
inst, props (originalLighting)
(inst) == (props) ==
(() k, v (props) inst[k] = v )
originalLighting = {}
()
originalFog.FogEnd = Lighting.FogEnd
originalFog.FogStart = Lighting.FogStart
Lighting.FogEnd =
Lighting.FogStart =
_, effect (Lighting:())
(()
effect:()
originalFog[effect] = effect.Density
effect.Density =
)
()
(() originalFog.FogEnd Lighting.FogEnd = originalFog.FogEnd )
(() originalFog.FogStart Lighting.FogStart = originalFog.FogStart )
inst, val (originalFog)
(inst) == (() inst.Density = val )
originalFog = {}
()
coordsGui
(()
coordsGui = .()
coordsGui.Name =
coordsGui.ResetOnSpawn =
coordsLabel = .()
coordsLabel.Size = .(, , , )
coordsLabel.Position = .(, -, , -)
coordsLabel.BackgroundColor3 = .(, , )
coordsLabel.BackgroundTransparency =
coordsLabel.TextColor3 = .(, , )
coordsLabel.Font = .Font.RobotoMono
coordsLabel.TextSize =
coordsLabel.Parent = coordsGui
pg = LocalPlayer:()
pg coordsGui.Parent = pg
)
()
coordsGui (() coordsGui:() ); coordsGui = ; coordsLabel =
()
State.coordsEnabled coordsGui () ;
coordsGui ()
coordsLabel
root = ()
root
p = root.Position
blockPos = (p) / STUDS_PER_BLOCK
coordsLabel.Text = .(, p.X, p.Y, p.Z, blockPos.X, blockPos.Y, blockPos.Z)
coordsLabel.Visible =
coordsLabel.Text =
()
_, p (breadcrumbParts) (() p:() )
breadcrumbParts = {}
lastBreadcrumbPos =
()
State.breadcrumbs
root = ()
root
pos = root.Position
lastBreadcrumbPos (pos - lastBreadcrumbPos).Magnitude < BREADCRUMB_SPACING
lastBreadcrumbPos = pos
part = .()
part.Size = .(, , )
part.Position = pos - .(, , )
part.Anchored =
part.CanCollide =
part.Material = .Material.Neon
part.Color = State.breadcrumbColor
part.Transparency =
part.CastShadow =
part.Shape = .PartType.Ball
part.Parent = Workspace
breadcrumbParts[#breadcrumbParts+] = part
#breadcrumbParts >
(() breadcrumbParts[]:() )
.(breadcrumbParts, )
()
root = ()
root
blinkPositions[#blinkPositions+] = root.CFrame
(, .. #blinkPositions)
()
#blinkPositions == (, );
root = ()
root
root.CFrame = blinkPositions[#blinkPositions]
.(blinkPositions)
(, .. #blinkPositions .. )
(distance)
root = ()
root root.CFrame = root.CFrame + root.CFrame.LookVector * (distance ); (, .. (distance ))
()
root = ()
root
params = RaycastParams.()
params.FilterType = .RaycastFilterType.Exclude
params.FilterDescendantsInstances = {LocalPlayer.Character}
dir = root.CFrame.LookVector
result = Workspace:(root.Position, dir * , params)
result
root.CFrame = .(result.Position + dir * , result.Position + dir * )
(, )
()
luaOk, success, response = (ClientRuntime.Handshake, { session = , ts = .() })
luaOk success
State.packets += ; State.lastAck = ; (updateUi); (, )
State.errors += ; State.lastAck = .. (response ); (updateUi); (, .. (response ))
()
luaOk, success, response = (ClientRuntime.Pulse, { ts = .() })
luaOk success State.packets += ; State.lastAck =
State.errors += ; State.lastAck = .. (response )
(updateUi)
()
State.killAura = ; State.autoAttack = ; State.aimlock = ; State.aimlockActive =
State.triggerBot = ; State.criticals =
State.fly = ; State.noclip = ; State.velocityEnabled = ; State.infiniteJump =
State.antiKB = ; State.stepEnabled = ; State.spider = ; State.longJump = ; State.autoWalk =
State.nuker = ; State.scaffold = ; State.tower = ; State.autoBridge =
State.freecam = ; State.fullbright = ; State.noFog = ; State.customFOV =
State.coordsEnabled = ; State.breadcrumbs = ; State.espEnabled =
killAuraToken += ; autoAttackToken += ; triggerBotToken +=
nukerToken += ; scaffoldToken += ; towerToken += ; autoBridgeToken +=
killAuraThread = ; autoAttackThread = ; nukerThread = ; scaffoldThread =
towerThread = ; autoBridgeThread = ; triggerBotThread = ; currentAimlockTarget =
(stopFly); (stopFreecam); (disableFullbright); (disableNoFog)
(clearAllESP); (clearBreadcrumbs); (destroyCoordsHUD)
killAuraVisualPart (() killAuraVisualPart:() ); killAuraVisualPart =
(() Camera.FieldOfView = )
LocalPlayer.Character
h = LocalPlayer.Character:()
h h.WalkSpeed = ; h.JumpPower =
(resetReach)
State.packets = ; State.errors = ; State.lastAck =
(, )
(()
fovCircle = .(); fovCircle.Color = .(,,); fovCircle.Thickness = ; fovCircle.NumSides = ; fovCircle.Filled = ; fovCircle.Transparency = ; fovCircle.Visible =
)
(()
Players.PlayerAdded:((player)
State.espEnabled (createESP, player, )
)
)
(() Players.PlayerRemoving:((player) (removeESP, player) ) )
(()
LocalPlayer.CharacterAdded:((char)
(hookCharacterStateChanges, char)
State.fly .(); (startFly)
)
)
(()
UserInputService.InputBegan:((input, processed)
processed
(()
input.KeyCode == State.aimlockKey State.aimlock State.freecam
State.aimlockActive = State.aimlockActive
State.aimlockActive currentAimlockTarget = () currentAimlockTarget =
State.infiniteJump input.KeyCode == .KeyCode.Space
hum = ()
hum hum:(.HumanoidStateType.Jumping)
input.KeyCode == .KeyCode.P ()
input.KeyCode == .KeyCode.B UserInputService:(.KeyCode.LeftControl) ()
input.KeyCode == .KeyCode.V UserInputService:(.KeyCode.LeftControl) ()
)
)
)
(()
RunService.Stepped:(()
(()
State.noclip LocalPlayer.Character
_, part (LocalPlayer.Character:())
part:() part.CanCollide =
)
(()
State.antiKB LocalPlayer.Character
root = ()
root
_, child (root:())
(child:() child:() child:() child:()) (child)
State.antiKBPercent >=
child:()
(()
child:()
child.Velocity = child.Velocity * ( - State.antiKBPercent / )
)
)
(()
State.stepEnabled LocalPlayer.Character
hum = ()
hum hum.HipHeight = State.stepHeight
)
(()
State.spider LocalPlayer.Character
root = ()
hum = ()
root hum
params = RaycastParams.()
params.FilterType = .RaycastFilterType.Exclude
params.FilterDescendantsInstances = {LocalPlayer.Character}
directions = {root.CFrame.RightVector, -root.CFrame.RightVector, root.CFrame.LookVector, -root.CFrame.LookVector}
_, dir (directions)
result = Workspace:(root.Position, dir * , params)
result
root.Velocity = .(root.Velocity.X, State.spiderSpeed, root.Velocity.Z)
)
(()
State.autoWalk
hum = ()
hum hum:(.(, , -))
)
)
)
(()
RunService.RenderStepped:(()
(()
State.aimlock State.aimlockActive State.freecam
currentAimlockTarget currentAimlockTarget.Parent
hum = currentAimlockTarget:()
hum hum.Health >
part = currentAimlockTarget:(State.aimlockPart) currentAimlockTarget:()
part
goal = .(Camera.CFrame.Position, part.Position)
State.aimlockSmoothing <= Camera.CFrame = goal
Camera.CFrame = Camera.CFrame:(goal, / State.aimlockSmoothing)
currentAimlockTarget = ()
currentAimlockTarget = ()
)
(()
fovCircle
fovCircle.Position = UserInputService:(); fovCircle.Radius = State.aimlockFOV
fovCircle.Visible = State.aimlockShowFOV State.aimlock
)
(()
State.fly flyBodyVelocity flyBodyGyro
dir = .zero
UserInputService:(.KeyCode.W) dir += Camera.CFrame.LookVector
UserInputService:(.KeyCode.S) dir -= Camera.CFrame.LookVector
UserInputService:(.KeyCode.A) dir -= Camera.CFrame.RightVector
UserInputService:(.KeyCode.D) dir += Camera.CFrame.RightVector
UserInputService:(.KeyCode.Space) dir += .(,,)
UserInputService:(.KeyCode.LeftShift) dir -= .(,,)
dir.Magnitude > dir = dir.Unit
flyBodyVelocity.Velocity = dir * State.flySpeed; flyBodyGyro.CFrame = Camera.CFrame
)
(()
State.freecam
speed = State.freecamSpeed
dir = .zero
UserInputService:(.KeyCode.W) dir += Camera.CFrame.LookVector
UserInputService:(.KeyCode.S) dir -= Camera.CFrame.LookVector
UserInputService:(.KeyCode.A) dir -= Camera.CFrame.RightVector
UserInputService:(.KeyCode.D) dir += Camera.CFrame.RightVector
UserInputService:(.KeyCode.Space) dir += .(,,)
UserInputService:(.KeyCode.LeftShift) dir -= .(,,)
UserInputService:(.KeyCode.E) speed = speed *
dir.Magnitude > dir = dir.Unit
Camera.CFrame = Camera.CFrame + dir * speed * (/)
)
(()
State.velocityEnabled LocalPlayer.Character
hum = LocalPlayer.Character:()
hum hum.WalkSpeed = State.velocityWalkSpeed; hum.JumpPower = State.velocityJumpPower
)
(()
State.longJump
hum = ()
root = ()
hum root hum:() == .HumanoidStateType.Freefall
longJumpApplied
longJumpApplied =
root.Velocity = .(
root.Velocity.X * State.longJumpBoost,
root.Velocity.Y,
root.Velocity.Z * State.longJumpBoost
)
longJumpApplied =
)
(()
State.customFOV Camera.FieldOfView = State.fovValue
)
(updateKillAuraVisual)
(updateCoords)
(updateBreadcrumbs)
now = .()
now - espUpdateTick >= ESP_UPDATE_INTERVAL espUpdateTick = now; (updateESP)
now - uiUpdateTick >= UI_UPDATE_INTERVAL uiUpdateTick = now; (updateUi)
)
)
Window = Luna:({
Name = ,
Subtitle = ,
LoadingEnabled = ,
LoadingTitle = ,
LoadingSubtitle = ,
ConfigSettings = { RootFolder = , ConfigFolder = },
KeySystem = ,
})
CombatTab = Window:({ Name = , ShowTitle = })
WorldTab = Window:({ Name = , ShowTitle = })
ESPTab = Window:({ Name = , ShowTitle = })
MovementTab = Window:({ Name = , ShowTitle = })
RenderTab = Window:({ Name = , ShowTitle = })
MiscTab = Window:({ Name = , ShowTitle = })
SessionTab = Window:({ Name = , ShowTitle = })
CombatTab:()
CombatTab:({ Name = , PlaceholderText = , CurrentValue = , Numeric = , MaxCharacters = , Enter = , Callback = (t) State.target = (t ) }, )
CombatTab:({ Name = , Description = , Callback = () (() () (, ) ) })
CombatTab:({ Name = , Callback = () (() s=; _=, () s+= ; (, s..) ) })
CombatTab:({ Name = , Description = , CurrentValue = , Callback = (v) State.autoAttack = v; v () () }, )
CombatTab:({ Name = , Range = {, }, Increment = , CurrentValue = , Callback = (v) State.autoAttackCPS = v }, )
CombatTab:()
CombatTab:({ Name = , Description = , CurrentValue = , Callback = (v) State.killAura = v; v () () }, )
CombatTab:({ Name = , Description = ..STUDS_PER_BLOCK.., Range = {, }, Increment = , CurrentValue = , Callback = (v) State.killAuraRange = v }, )
CombatTab:({ Name = , Range = {, }, Increment = , CurrentValue = , Callback = (v) State.killAuraCPS = v }, )
CombatTab:({ Name = , CurrentValue = , Callback = (v) State.killAuraMulti = v }, )
CombatTab:({ Name = , CurrentValue = , Callback = (v) State.killAuraPlayers = v }, )
CombatTab:({ Name = , CurrentValue = , Callback = (v) State.killAuraNPCs = v }, )
CombatTab:({ Name = , CurrentValue = , Callback = (v) State.killAuraTeamCheck = v }, )
CombatTab:({ Name = , CurrentValue = , Callback = (v) State.killAuraShowRange = v }, )
CombatTab:()
CombatTab:({ Name = , Description = , CurrentValue = , Callback = (v) State.triggerBot = v; v () () }, )
CombatTab:({ Name = , Range = {, }, Increment = , CurrentValue = , Callback = (v) State.triggerBotCPS = v }, )
CombatTab:({ Name = , Range = {, }, Increment = , CurrentValue = , Callback = (v) State.triggerBotRange = v }, )
CombatTab:()
CombatTab:({ Name = , Description = , CurrentValue = , Callback = (v) State.criticals = v }, )
CombatTab:()
CombatTab:({ Name = , Description = , CurrentValue = , Callback = (v) State.antiKB = v }, )
CombatTab:({ Name = , Range = {, }, Increment = , CurrentValue = , Callback = (v) State.antiKBPercent = v }, )
CombatTab:()
CombatTab:({ Name = , Range = {, }, Increment = , CurrentValue = State.combatReach, Callback = (v) State.combatReach = v }, )
CombatTab:({ Name = , Range = {, }, Increment = , CurrentValue = State.blockReach, Callback = (v) State.blockReach = v }, )
CombatTab:({ Name = , Callback = () (applyReach) })
CombatTab:({ Name = , Callback = () (resetReach) })
CombatTab:({ Name = , Description = , Callback = () (syncReach) })
CombatTab:()
CombatTab:({ Name = , Description = , CurrentValue = , Callback = (v) State.aimlock = v; v State.aimlockActive = ; currentAimlockTarget = }, )
CombatTab:({ Name = , CurrentValue = , Callback = (v) State.aimlockShowFOV = v }, )
CombatTab:({ Name = , Range = {, }, Increment = , CurrentValue = , Callback = (v) State.aimlockFOV = v }, )
CombatTab:({ Name = , Range = {, }, Increment = , CurrentValue = , Callback = (v) State.aimlockSmoothing = v }, )
CombatTab:({ Name = , Options = {,,,}, CurrentOption = , Callback = (o) State.aimlockPart = o }, )
CombatTab:({ Name = , CurrentValue = , Callback = (v) State.aimlockTeamCheck = v }, )
CombatTab:({ Name = , CurrentValue = , Callback = (v) State.aimlockNPCs = v }, )
WorldTab:()
WorldTab:({ Name = , Description = , CurrentValue = , Callback = (v) State.nuker = v; v () () }, )
WorldTab:({ Name = , Range = {, }, Increment = , CurrentValue = , Callback = (v) State.nukerCPS = v }, )
WorldTab:({ Name = , Range = {, }, Increment = , CurrentValue = , Callback = (v) State.nukerRange = v }, )
WorldTab:({ Name = , Callback = () (() () ) })
WorldTab:()
WorldTab:({ Name = , Description = , CurrentValue = , Callback = function(v) State.scaffold = v; if v then startScaffold() else stopScaffold() end end }, "ScaffoldToggle")
WorldTab:CreateSlider({ Name = "Scaffold CPS", Range = {1, 20}, Increment = 1, CurrentValue = 10, Callback = function(v) State.scaffoldCPS = v end }, "ScaffoldCPS")
WorldTab:CreateDropdown({ Name = "Block Type", Options = {"Stone","Dirt","Oak Planks","Cobblestone","Glass","Brick","Sand","Gravel","Oak Log"}, CurrentOption = "Stone", Callback = function(o) State.scaffoldBlock = o end }, "ScaffoldBlock")
WorldTab:CreateButton({ Name = "Scaffold Line (10)", Description = "Place 10 blocks ahead", Callback = function() pcall(function()
local ok, count = runtimeScaffold(10, { blockType = State.scaffoldBlock })
notify("Scaffold", ok and ("Placed " .. count .. " blocks") or "Failed")
end) end })
WorldTab:CreateButton({ Name = "Scaffold Line (25)", Callback = function() pcall(function()
local ok, count = runtimeScaffold(25, { blockType = State.scaffoldBlock })
notify("Scaffold", ok and ("Placed " .. count .. " blocks") or "Failed")
end) end })
WorldTab:CreateSection("Tower")
WorldTab:CreateToggle({ Name = "Enable Tower", Description = "Build upward by jumping", CurrentValue = false, Callback = function(v) State.tower = v; if v then startTower() else stopTower() end end }, "TowerToggle")
WorldTab:CreateSlider({ Name = "Tower CPS", Range = {1, 10}, Increment = 1, CurrentValue = 5, Callback = function(v) State.towerCPS = v end }, "TowerCPS")
WorldTab:CreateDropdown({ Name = "Tower Block", Options = {"Stone","Dirt","Oak Planks","Cobblestone","Glass","Brick"}, CurrentOption = "Stone", Callback = function(o) State.towerBlock = o end }, "TowerBlock")
WorldTab:CreateSection("AutoBridge")
WorldTab:CreateToggle({ Name = "Enable AutoBridge", Description = "Place blocks in movement direction", CurrentValue = false, Callback = function(v) State.autoBridge = v; if v then startAutoBridge() else stopAutoBridge() end end }, "AutoBridgeToggle")
WorldTab:CreateSlider({ Name = "AutoBridge CPS", Range = {1, 20}, Increment = 1, CurrentValue = 8, Callback = function(v) State.autoBridgeCPS = v end }, "AutoBridgeCPS")
WorldTab:CreateDropdown({ Name = "AutoBridge Block", Options = {"Stone","Dirt","Oak Planks","Cobblestone","Glass","Brick"}, CurrentOption = "Stone", Callback = function(o) State.autoBridgeBlock = o end }, "AutoBridgeBlock")
WorldTab:CreateSection("Place/Break")
WorldTab:CreateButton({ Name = "Place Block (once)", Callback = function() pcall(function() doPlaceBlock("manual") end) end })
WorldTab:CreateButton({ Name = "Place Offhand", Callback = function() pcall(function() doPlaceBlock("manual", nil, { forceOffhand = true }) end) end })
WorldTab:CreateButton({ Name = "Place At Feet", Callback = function() pcall(function()
local root = getLocalRoot()
if root then
runtimePlaceAt(root.Position - Vector3.new(0, STUDS_PER_BLOCK, 0), { blockType = State.scaffoldBlock })
end
end) end })
WorldTab:CreateButton({ Name = "Break At Look", Callback = function() pcall(function()
local mouse = LocalPlayer:GetMouse()
if mouse and mouse.Hit then doBreakBlock("manual", mouse.Hit.Position) end
end) end })
ESPTab:CreateSection("Player ESP")
ESPTab:CreateToggle({ Name = "Enable ESP", CurrentValue = false, Callback = function(v) State.espEnabled = v; if v then refreshAllESP() else clearAllESP() end end }, "ESPToggle")
ESPTab:CreateToggle({ Name = "Highlight", CurrentValue = true, Callback = function(v) State.espHighlight = v end }, "ESPHighlight")
ESPTab:CreateToggle({ Name = "Names", CurrentValue = true, Callback = function(v) State.espNames = v end }, "ESPNames")
ESPTab:CreateToggle({ Name = "Health Bar", CurrentValue = true, Callback = function(v) State.espHealth = v end }, "ESPHealth")
ESPTab:CreateToggle({ Name = "Distance", CurrentValue = true, Callback = function(v) State.espDistance = v end }, "ESPDistance")
ESPTab:CreateToggle({ Name = "Tracers", CurrentValue = false, Callback = function(v) State.espTracers = v end }, "ESPTracers")
ESPTab:CreateToggle({ Name = "Team Check", CurrentValue = false, Callback = function(v) State.espTeamCheck = v end }, "ESPTeamCheck")
ESPTab:CreateToggle({ Name = "Show NPCs", CurrentValue = false, Callback = function(v) State.espNPCs = v; if State.espEnabled then refreshAllESP() end end }, "ESPNPCs")
ESPTab:CreateSection("Appearance")
ESPTab:CreateSlider({ Name = "Fill Transparency", Range = {0, 100}, Increment = 5, CurrentValue = 75, Callback = function(v) State.espFillTransparency = v/100 end }, "ESPFillTransparency")
ESPTab:CreateSlider({ Name = "Outline Transparency", Range = {0, 100}, Increment = 5, CurrentValue = 0, Callback = function(v) State.espOutlineTransparency = v/100 end }, "ESPOutlineTransparency")
ESPTab:CreateButton({ Name = "Color: Red", Callback = function() State.espFillColor = Color3.fromRGB(255,0,0); State.espOutlineColor = Color3.fromRGB(255,255,255) end })
ESPTab:CreateButton({ Name = "Color: Purple", Callback = function() State.espFillColor = Color3.fromRGB(170,0,255); State.espOutlineColor = Color3.fromRGB(255,255,255) end })
ESPTab:CreateButton({ Name = "Color: Cyan", Callback = function() State.espFillColor = Color3.fromRGB(0,255,255); State.espOutlineColor = Color3.fromRGB(255,255,255) end })
ESPTab:CreateButton({ Name = "Color: Green", Callback = function() State.espFillColor = Color3.fromRGB(0,255,0); State.espOutlineColor = Color3.fromRGB(255,255,255) end })
MovementTab:CreateSection("Speed")
MovementTab:CreateToggle({ Name = "Speed Override", CurrentValue = false, Callback = function(v) State.velocityEnabled = v; if not v and LocalPlayer.Character then local h = LocalPlayer.Character:FindFirstChildOfClass("Humanoid"); if h then h.WalkSpeed=16; h.JumpPower=50 end end end }, "VelocityToggle")
MovementTab:CreateSlider({ Name = "Walk Speed", Range = {0, 500}, Increment = 1, CurrentValue = 16, Callback = function(v) State.velocityWalkSpeed = v end }, "WalkSpeed")
MovementTab:CreateSlider({ Name = "Jump Power", Range = {0, 500}, Increment = 1, CurrentValue = 50, Callback = function(v) State.velocityJumpPower = v end }, "JumpPower")
MovementTab:CreateToggle({ Name = "Infinite Jump", CurrentValue = false, Callback = function(v) State.infiniteJump = v end }, "InfiniteJump")
MovementTab:CreateSection("Flight")
MovementTab:CreateToggle({ Name = "Fly", Description = "WASD+Space/LShift", CurrentValue = false, Callback = function(v) State.fly = v; if v then startFly() else stopFly() end end }, "FlyToggle")
MovementTab:CreateSlider({ Name = "Fly Speed", Range = {10, 500}, Increment = 5, CurrentValue = 50, Callback = function(v) State.flySpeed = v end }, "FlySpeed")
MovementTab:CreateSection("Movement Mods")
MovementTab:CreateToggle({ Name = "Noclip", CurrentValue = false, Callback = function(v) State.noclip = v end }, "NoclipToggle")
MovementTab:CreateToggle({ Name = "Step", Description = "Auto-step up blocks", CurrentValue = false, Callback = function(v) State.stepEnabled = v; if not v then pcall(function() local h = getLocalHumanoid(); if h then h.HipHeight = 0 end end) end end }, "StepToggle")
MovementTab:CreateSlider({ Name = "Step Height", Range = {1, 10}, Increment = 0.5, CurrentValue = 3, Callback = function(v) State.stepHeight = v end }, "StepHeight")
MovementTab:CreateToggle({ Name = "Spider", Description = "Climb walls", CurrentValue = false, Callback = function(v) State.spider = v end }, "SpiderToggle")
MovementTab:CreateSlider({ Name = "Spider Speed", Range = {1, 50}, Increment = 1, CurrentValue = 10, Callback = function(v) State.spiderSpeed = v end }, "SpiderSpeed")
MovementTab:CreateToggle({ Name = "Long Jump", Description = "Boost horizontal while airborne", CurrentValue = false, Callback = function(v) State.longJump = v end }, "LongJumpToggle")
MovementTab:CreateSlider({ Name = "LJ Boost", Range = {1, 3}, Increment = 0.1, CurrentValue = 1.5, Callback = function(v) State.longJumpBoost = v end }, "LJBoost")
MovementTab:CreateToggle({ Name = "Auto Walk", CurrentValue = false, Callback = function(v) State.autoWalk = v end }, "AutoWalkToggle")
MovementTab:CreateSection("Teleport")
MovementTab:CreateButton({ Name = "Blink Forward 10", Callback = function() pcall(blinkForward, 10) end })
MovementTab:CreateButton({ Name = "Blink Forward 25", Callback = function() pcall(blinkForward, 25) end })
MovementTab:CreateButton({ Name = "Blink Save (Ctrl+B)", Callback = function() pcall(blinkSave) end })
MovementTab:CreateButton({ Name = "Blink Load (Ctrl+V)", Callback = function() pcall(blinkLoad) end })
MovementTab:CreateButton({ Name = "Phase Through Wall", Callback = function() pcall(doPhase) end })
RenderTab:CreateSection("Camera")
RenderTab:CreateToggle({ Name = "Freecam", Description = "Detached camera movement", CurrentValue = false, Callback = function(v) State.freecam = v; if v then startFreecam() else stopFreecam() end end }, "FreecamToggle")
RenderTab:CreateSlider({ Name = "Freecam Speed", Range = {10, 500}, Increment = 5, CurrentValue = 50, Callback = function(v) State.freecamSpeed = v end }, "FreecamSpeed")
RenderTab:CreateToggle({ Name = "Custom FOV", CurrentValue = false, Callback = function(v) State.customFOV = v; if not v then pcall(function() Camera.FieldOfView = 70 end) end end }, "CustomFOVToggle")
RenderTab:CreateSlider({ Name = "FOV Value", Range = {30, 140}, Increment = 5, CurrentValue = 70, Callback = function(v) State.fovValue = v end }, "FOVValue")
RenderTab:CreateSection("World Render")
RenderTab:CreateToggle({ Name = "Fullbright", Description = "Remove darkness", CurrentValue = false, Callback = function(v) State.fullbright = v; if v then enableFullbright() else disableFullbright() end end }, "FullbrightToggle")
RenderTab:CreateToggle({ Name = "No Fog", Description = "Remove fog effects", CurrentValue = false, Callback = function(v) State.noFog = v; if v then enableNoFog() else disableNoFog() end end }, "NoFogToggle")
RenderTab:CreateSection("HUD")
RenderTab:CreateToggle({ Name = "Coordinates", Description = "Show XYZ + block position", CurrentValue = false, Callback = function(v) State.coordsEnabled = v; if not v then destroyCoordsHUD() end end }, "CoordsToggle")
RenderTab:CreateToggle({ Name = "Breadcrumbs", Description = "Leave a trail of markers", CurrentValue = false, Callback = function(v) State.breadcrumbs = v; if not v then clearBreadcrumbs() end end }, "BreadcrumbsToggle")
RenderTab:CreateButton({ Name = "Clear Breadcrumbs", Callback = function() clearBreadcrumbs() end })
MiscTab:CreateSection("Safety")
MiscTab:CreateToggle({ Name = "Anti-Kick", CurrentValue = true, Callback = function(v) State.antiKick = v end }, "AntiKickToggle")
MiscTab:CreateToggle({ Name = "Auto Respawn", CurrentValue = false, Callback = function(v) State.autoRespawn = v end }, "AutoRespawnToggle")
MiscTab:CreateButton({ Name = "PANIC (P key)", Description = "Disable ALL features instantly", Callback = function() pcall(doPanic) end })
MiscTab:CreateSection("Config")
MiscTab:CreateButton({ Name = "Save Config", Description = "Save all settings to file", Callback = function() pcall(saveConfig); notify("Config", "Saved") end })
MiscTab:CreateButton({ Name = "Load Config", Description = "Load settings from file", Callback = function() pcall(loadConfig) end })
MiscTab:CreateButton({ Name = "Reset Config", Description = "Delete saved config file", Callback = function()
pcall(function()
if typeof(delfile) == "function" and typeof(isfile) == "function" and isfile("LunaClient/config.json") then
delfile("LunaClient/config.json")
notify("Config", "Config file deleted")
end
end)
end })
SessionTab:CreateSection("Stats")
statsParagraph = SessionTab:CreateParagraph({ Title = "Runtime Stats", Text = "Initializing..." })
SessionTab:CreateSection("Bridge")
SessionTab:CreateButton({ Name = "Init Bridge", Description = "Call ClientRuntime.Init()", Callback = function() pcall(function() local luaOk, r = safeBridgeCall(ClientRuntime.Init); notify("Init", luaOk and r and "Success" or "Failed") end) end })
SessionTab:CreateButton({ Name = "Check Ready", Callback = function() pcall(function() local luaOk, r = safeBridgeCall(ClientRuntime.IsReady); notify("Ready", luaOk and tostring(r) or "Error") end) end })
SessionTab:CreateButton({ Name = "Check Bridge", Callback = function() pcall(function() local luaOk, a, e = safeBridgeCall(ClientRuntime.IsBridgeAvailable); notify("Bridge", luaOk and (tostring(a) .. " " .. tostring(e or "")) or "Error") end) end })
SessionTab:CreateButton({ Name = "Handshake", Callback = function() pcall(doHandshake) end })
SessionTab:CreateButton({ Name = "Pulse", Callback = function() pcall(doPulse) end })
SessionTab:CreateButton({ Name = "Sync Reach", Callback = function() pcall(function() syncReach(); notify("Sync", "State synced") end) end })
SessionTab:CreateButton({ Name = "Get All Values", Callback = function() pcall(function()
local vals = callValue(ClientRuntime.GetAll)
if not vals then notify("Values", "Failed"); return end
local txt = ""
for k, v in pairs(vals) do txt = txt .. k .. "=" .. tostring(v) .. " " end
notify("Values", txt == "" and "empty" or txt)
end) end })
SessionTab:CreateButton({ Name = "Get Overrides", Callback = function() pcall(function()
local ov = callValue(ClientRuntime.GetOverrides)
if not ov then notify("Overrides", "Failed"); return end
local txt = ""
for k, v in pairs(ov) do txt = txt .. k .. "=" .. tostring(v) .. " " end
notify("Overrides", txt == "" and "none" or txt)
end) end })
SessionTab:CreateSection("Subscriptions")
SessionTab:CreateButton({ Name = "Watch Combat Reach", Callback = function() pcall(function()
ClientRuntime.OnChanged("combatReach", function(newVal) State.combatReach = newVal; pcall(updateUi) end)
notify("Subscribe", "Watching combatReach")
end) end })
SessionTab:CreateButton({ Name = "Watch Block Reach", Callback = function() pcall(function()
ClientRuntime.OnChanged("blockReach", function(newVal) State.blockReach = newVal; pcall(updateUi) end)
notify("Subscribe", "Watching blockReach")
end) end })
SessionTab:CreateSection("Cleanup")
SessionTab:CreateButton({ Name = "Reset Counters", Callback = function() State.packets=0; State.errors=0; State.lastAck="none" end })
SessionTab:CreateButton({ Name = "Destroy All ESP", Callback = function() clearAllESP(); State.espEnabled=false end })
SessionTab:CreateButton({ Name = "Stop All Combat", Callback = function()
State.killAura=false; State.autoAttack=false; State.aimlock=false; State.aimlockActive=false; State.triggerBot=false; State.criticals=false; State.antiKB=false
killAuraToken+=1; autoAttackToken+=1; triggerBotToken+=1
killAuraThread=nil; autoAttackThread=nil; triggerBotThread=nil; currentAimlockTarget=nil
if killAuraVisualPart then pcall(function() killAuraVisualPart:Destroy() end); killAuraVisualPart=nil end
end })
SessionTab:CreateButton({ Name = "Stop All World", Callback = function()
State.nuker=false; State.scaffold=false; State.tower=false; State.autoBridge=false
nukerToken+=1; scaffoldToken+=1; towerToken+=1; autoBridgeToken+=1
nukerThread=nil; scaffoldThread=nil; towerThread=nil; autoBridgeThread=nil
end })
SessionTab:CreateButton({ Name = "Stop All Movement", Callback = function()
State.fly=false; State.noclip=false; State.velocityEnabled=false; State.infiniteJump=false
State.stepEnabled=false; State.spider=false; State.longJump=false; State.autoWalk=false; State.freecam=false
pcall(stopFly); pcall(stopFreecam)
if LocalPlayer.Character then local h=LocalPlayer.Character:FindFirstChildOfClass("Humanoid"); if h then h.WalkSpeed=16; h.JumpPower=50; h.HipHeight=0 end end
end })
SessionTab:CreateButton({ Name = "PANIC / Full Reset", Callback = function() pcall(doPanic) end })
pcall(updateUi)
local CONFIG_FOLDER = "LunaClient"
local CONFIG_FILE = CONFIG_FOLDER .. "/config.json"
local CONFIG_AUTO_SAVE_INTERVAL = 30
local SAVEABLE_KEYS = {
"autoAttackCPS", "killAuraRange", "killAuraCPS", "killAuraMulti",
"killAuraTeamCheck", "killAuraShowRange", "killAuraNPCs", "killAuraPlayers",
"triggerBotCPS", "triggerBotRange", "criticals", "antiKB", "antiKBPercent",
"combatReach", "blockReach", "aimlock", "aimlockFOV", "aimlockSmoothing",
"aimlockPart", "aimlockTeamCheck", "aimlockNPCs", "aimlockShowFOV",
"nukerCPS", "nukerRange", "scaffoldCPS", "scaffoldBlock",
"towerCPS", "towerBlock", "autoBridgeCPS", "autoBridgeBlock",
"velocityWalkSpeed", "velocityJumpPower", "flySpeed",
"stepHeight", "spiderSpeed", "longJumpBoost",
"freecamSpeed", "fovValue", "antiKick",
"espHighlight", "espNames", "espHealth", "espDistance", "espTracers",
"espTeamCheck", "espNPCs", "espFillTransparency", "espOutlineTransparency",
}
saveConfig = function()
pcall(function()
if typeof(writefile) ~= "function" or typeof(isfile) ~= "function" or typeof(makefolder) ~= "function" then return end
if not isfolder(CONFIG_FOLDER) then makefolder(CONFIG_FOLDER) end
local data = {}
for _, key in ipairs(SAVEABLE_KEYS) do
local val = State[key]
if val ~= nil then
if typeof(val) == "Color3" then
data[key] = { _type = "Color3", r = math.floor(val.R * 255), g = math.floor(val.G * 255), b = math.floor(val.B * 255) }
else
data[key] = val
end
end
end
local HttpService = game:GetService("HttpService")
writefile(CONFIG_FILE, HttpService:JSONEncode(data))
lastConfigSave = os.clock()
end)
end
loadConfig = function()
pcall(function()
if typeof(readfile) ~= "function" or typeof(isfile) ~= "function" then return end
if not isfile(CONFIG_FILE) then return end
local HttpService = game:GetService("HttpService")
local raw = readfile(CONFIG_FILE)
local data = HttpService:JSONDecode(raw)
if type(data) ~= "table" then return end
for _, key in ipairs(SAVEABLE_KEYS) do
local val = data[key]
if val ~= nil then
if type(val) == "table" and val._type == "Color3" then
State[key] = Color3.fromRGB(val.r or 255, val.g or 255, val.b or 255)
else
State[key] = val
end
end
end
notify("Config", "Settings loaded")
end)
end
pcall(loadConfig)
task.spawn(function()
while true do
task.wait(CONFIG_AUTO_SAVE_INTERVAL)
pcall(saveConfig)
end
end)
local luaOk, bridgeAvailable = safeBridgeCall(ClientRuntime.IsBridgeAvailable)
if luaOk and bridgeAvailable then
notify("LunaClient", "Bridge available")
else
local initOk, initResult = safeBridgeCall(ClientRuntime.Init)
if initOk and initResult then
notify("LunaClient", "Bridge initialized")
else
notify("LunaClient", "Bridge init failed")
end
end
end)
Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com.