Description
Not every script lives up to the hype, but this one for One Tap delivers what it promises. Featuring Overview and Visuals among other tools, it’s worth trying if you want to get more out of your sessions. no key needed.
What This Script Can Do
- Overview: Handles Overview automatically in One Tap, so you don’t have to do it manually every session.
- Visuals: Handles Visuals automatically in One Tap, so you don’t have to do it manually every session.
- Movement: Gives you access to Movement in One Tap, which can make a real difference during longer play sessions.
- Combat Lab: Adds Combat Lab functionality to your One Tap setup, helpful for both new and experienced players.
- Access: No key system or Linkvertise redirect needed — just paste and run.
- Executor Compatibility: Works great on Delta, Codex, Hydrogen, Wave, and most mobile and PC executors.
How to Use This Script
- Open Roblox and search for One Tap, then join any active server.
- Wait until you’re fully loaded into the game world before running any script.
- Open your executor app (Delta, Codex, Hydrogen, Wave, or any compatible one) and go to the script tab.
- Copy the loadstring code shown on this page and paste it into your executor’s script box, then press Execute.
- A GUI or confirmation should appear in-game — use it to turn on the features you want and adjust any settings.
Features
Compatible Executors
Script
--[[
NEBULA // PREMIUM // HACKING V11
Roblox Studio - LocalScript
Install: StarterPlayer > StarterPlayerScripts
Features:
- Viewmodel & Camera Angle Lock (FPS Engine Compatibility)
- Full Character Rotation
- Team Check & Wall Check
- Smooth hold-right-click camera aim assist for living enemy players and TrainingDummies
- Server-side weapon hit validation recommended; weapon remote overrides and triggerbot disabled
- ESP & Skeleton ESP
- Movement: fly, walk/jump settings, authorized player teleport, test-point loop teleport
]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local mouse = player:GetMouse()
local PURPLE = Color3.fromRGB(160, 85, 255)
local NEBULA_BLUE = Color3.fromRGB(55, 160, 255)
local PREMIUM_GOLD = Color3.fromRGB(255, 196, 55)
local HACKING_GREEN = Color3.fromRGB(65, 235, 125)
local BRAND_RICH_TEXT = 'NEBULA // PREMIUM // HACKING V11'
local BG = Color3.fromRGB(13, 10, 22)
local PANEL = Color3.fromRGB(27, 21, 41)
local WHITE = Color3.fromRGB(241, 235, 255)
local enabled = {}
local espObjects = {}
local skeletonLines = {}
local originalCollisions = {}
local originalEffects = {}
local snowEnabled = false
local snowRunning = false
local fpsBoostEnabled = false
local motionBlurEnabled = false
local noclipEnabled = false
local menuOpen = true
-- Combat settings
local AIMBOT_FOV = 600
local isRightMouseDown = false
-- Motion blur state
local lastCameraLook = nil
local currentBlur = 0
local blurEffect
local BLUR_MAX = 3
local BLUR_SENSITIVITY = 18
local BLUR_THRESHOLD = 0.015
local BLUR_RESPONSE = 12
local originalShadows = Lighting.GlobalShadows
-- Clean up existing UI
local oldGui = playerGui:FindFirstChild("NEBULA_HACKING_V2")
if oldGui then
oldGui:Destroy()
end
-- MAIN GUI
local gui = Instance.new("ScreenGui")
gui.Name = "NEBULA_HACKING_V2"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.DisplayOrder = 20
gui.Parent = playerGui
-- Keep one visible cursor while the menu is open: hide Roblox's default icon
-- and draw a single NEBULA cursor that follows the same mouse position.
local originalMouseIconEnabled = UserInputService.MouseIconEnabled
local originalMouseBehavior = UserInputService.MouseBehavior
local customCursor = Instance.new("Frame")
customCursor.Name = "NebulaCursor"
customCursor.Size = UDim2.fromOffset(10, 10)
customCursor.AnchorPoint = Vector2.new(0.5, 0.5)
customCursor.BackgroundColor3 = NEBULA_BLUE
customCursor.BorderSizePixel = 0
customCursor.Visible = false
customCursor.ZIndex = 1000
customCursor.Parent = gui
local cursorCorner = Instance.new("UICorner")
cursorCorner.CornerRadius = UDim.new(1, 0)
cursorCorner.Parent = customCursor
local cursorStroke = Instance.new("UIStroke")
cursorStroke.Color = PREMIUM_GOLD
cursorStroke.Thickness = 1.5
cursorStroke.Parent = customCursor
-- Run after Roblox's camera update so first-person mouse locking does not
-- immediately recapture the pointer while the panel is open.
RunService:BindToRenderStep("NebulaCursorControl", Enum.RenderPriority.Last.Value, function()
if menuOpen and customCursor.Visible then
-- Keep the real Roblox icon hidden and unlock the mouse for UI clicks.
if UserInputService.MouseIconEnabled then
UserInputService.MouseIconEnabled = false
end
if UserInputService.MouseBehavior ~= Enum.MouseBehavior.Default then
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
end
local mousePosition = UserInputService:GetMouseLocation()
customCursor.Position = UDim2.fromOffset(mousePosition.X, mousePosition.Y)
end
end)
local main = Instance.new("Frame")
main.Name = "Main"
main.Size = UDim2.fromOffset(650, 450)
main.Position = UDim2.new(0.5, -325, 0.5, -225)
main.BackgroundColor3 = BG
main.BorderSizePixel = 0
main.Parent = gui
Instance.new("UICorner", main).CornerRadius = UDim.new(0, 12)
local mainStroke = Instance.new("UIStroke")
mainStroke.Color = PURPLE
mainStroke.Thickness = 1.5
mainStroke.Parent = main
-- No animated overlay or outline pulse; only the panel open/close transitions remain.
local top = Instance.new("Frame")
top.Size = UDim2.new(1, 0, 0, 76)
top.BackgroundColor3 = Color3.fromRGB(32, 21, 50)
top.BorderSizePixel = 0
top.Parent = main
Instance.new("UICorner", top).CornerRadius = UDim.new(0, 12)
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -65, 0, 44)
title.Position = UDim2.fromOffset(18, 5)
title.BackgroundTransparency = 1
title.Text = BRAND_RICH_TEXT
title.RichText = true
title.TextColor3 = WHITE
title.TextXAlignment = Enum.TextXAlignment.Left
title.Font = Enum.Font.GothamBlack
title.TextSize = 23
title.Parent = top
-- Animate the actual title with a brief 1011101-style binary decode.
-- This changes only the title text; it does not create another overlay.
local titleAnimationToken = 0
local function animateTitleBinary()
titleAnimationToken += 1
local token = titleAnimationToken
local function binaryChunk(length)
local digits = table.create(length)
for i = 1, length do
digits[i] = math.random(0, 1) == 1 and "1" or "0"
end
return table.concat(digits)
end
task.spawn(function()
for frame = 1, 8 do
if token ~= titleAnimationToken or not title.Parent then return end
local nebulaBits = frame == 1 and "1011101" or binaryChunk(7)
local premiumBits = binaryChunk(7)
local hackingBits = binaryChunk(7)
title.Text = '' .. nebulaBits .. ' // '
.. '' .. premiumBits .. ' // '
.. '' .. hackingBits .. ' '
.. 'V11'
task.wait(0.055)
end
if token == titleAnimationToken and title.Parent then
title.Text = BRAND_RICH_TEXT
end
end)
end
local subtitle = Instance.new("TextLabel")
subtitle.Size = UDim2.new(1, -25, 0, 20)
subtitle.Position = UDim2.fromOffset(19, 45)
subtitle.BackgroundTransparency = 1
subtitle.Text = ""
subtitle.Visible = false
subtitle.TextColor3 = PURPLE
subtitle.TextXAlignment = Enum.TextXAlignment.Left
subtitle.Font = Enum.Font.Code
subtitle.TextSize = 12
subtitle.Parent = top
local close = Instance.new("TextButton")
close.Size = UDim2.fromOffset(36, 36)
close.Position = UDim2.new(1, -47, 0, 17)
close.BackgroundColor3 = Color3.fromRGB(78, 37, 102)
close.Text = "×"
close.TextColor3 = WHITE
close.Font = Enum.Font.GothamBold
close.TextSize = 25
close.Parent = top
Instance.new("UICorner", close).CornerRadius = UDim.new(0, 8)
local sidebar = Instance.new("Frame")
sidebar.Position = UDim2.fromOffset(12, 88)
sidebar.Size = UDim2.new(0, 165, 1, -126)
sidebar.BackgroundColor3 = PANEL
sidebar.BorderSizePixel = 0
sidebar.Parent = main
Instance.new("UICorner", sidebar).CornerRadius = UDim.new(0, 8)
local sideLayout = Instance.new("UIListLayout")
sideLayout.Padding = UDim.new(0, 7)
sideLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
sideLayout.SortOrder = Enum.SortOrder.LayoutOrder
sideLayout.Parent = sidebar
local sidePad = Instance.new("UIPadding")
sidePad.PaddingTop = UDim.new(0, 10)
sidePad.Parent = sidebar
local content = Instance.new("ScrollingFrame")
content.Position = UDim2.fromOffset(190, 88)
content.Size = UDim2.new(1, -202, 1, -126)
content.BackgroundColor3 = PANEL
content.BorderSizePixel = 0
content.ScrollBarThickness = 3
content.ScrollBarImageColor3 = PURPLE
content.AutomaticCanvasSize = Enum.AutomaticSize.Y
content.CanvasSize = UDim2.new()
content.Parent = main
Instance.new("UICorner", content).CornerRadius = UDim.new(0, 8)
local contentLayout = Instance.new("UIListLayout")
contentLayout.Padding = UDim.new(0, 7)
contentLayout.SortOrder = Enum.SortOrder.LayoutOrder
contentLayout.Parent = content
local contentPad = Instance.new("UIPadding")
contentPad.PaddingTop = UDim.new(0, 10)
contentPad.PaddingLeft = UDim.new(0, 10)
contentPad.PaddingRight = UDim.new(0, 10)
contentPad.PaddingBottom = UDim.new(0, 10)
contentPad.Parent = content
local status = Instance.new("TextLabel")
status.Position = UDim2.new(0, 12, 1, -31)
status.Size = UDim2.new(1, -24, 0, 23)
status.BackgroundTransparency = 1
status.Text = "SYSTEM READY // NOSNIY ADMIN"
status.TextColor3 = Color3.fromRGB(190, 165, 220)
status.Font = Enum.Font.Code
status.TextSize = 10
status.TextXAlignment = Enum.TextXAlignment.Left
status.Parent = main
-- Floating reopen button
local reopen = Instance.new("TextButton")
reopen.Name = "FloatingNebulaButton"
reopen.Size = UDim2.fromOffset(54, 54)
reopen.Position = UDim2.new(0, 18, 0.5, 0)
reopen.BackgroundColor3 = BG
reopen.Text = "👨🏻💻"
reopen.RichText = false
reopen.TextColor3 = WHITE
reopen.Font = Enum.Font.GothamBold
reopen.TextSize = 28
reopen.Visible = false
reopen.Active = true
reopen.Parent = gui
Instance.new("UICorner", reopen).CornerRadius = UDim.new(0, 9)
local reopenStroke = Instance.new("UIStroke")
reopenStroke.Color = PURPLE
reopenStroke.Thickness = 1.5
reopenStroke.Parent = reopen
-- Draggable function
local function makeDraggable(handle, target, ignoreButton)
local dragging = false
local dragStart, startPosition, activeInput
handle.InputBegan:Connect(function(input)
if ignoreButton and input.UserInputType ~= Enum.UserInputType.MouseButton1 and input.UserInputType ~= Enum.UserInputType.Touch then
return
end
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPosition = target.Position
activeInput = input
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if not dragging then return end
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
if activeInput and activeInput.UserInputType == Enum.UserInputType.Touch and input ~= activeInput and input.UserInputType ~= Enum.UserInputType.MouseMovement then
return
end
local delta = input.Position - dragStart
target.Position = UDim2.new(
startPosition.X.Scale,
startPosition.X.Offset + delta.X,
startPosition.Y.Scale,
startPosition.Y.Offset + delta.Y
)
end
end)
end
makeDraggable(top, main, false)
makeDraggable(reopen, reopen, false)
local openingAnimationToken = 0
local function playNebulaOpenAnimation()
openingAnimationToken += 1
local token = openingAnimationToken
local intro = Instance.new("Frame")
intro.Name = "NebulaBinaryIntro"
intro.Size = UDim2.fromScale(1, 1)
intro.Position = UDim2.fromScale(0, 0)
intro.BackgroundColor3 = Color3.fromRGB(3, 4, 10)
intro.BackgroundTransparency = 1
intro.BorderSizePixel = 0
intro.ZIndex = 100
intro.Parent = gui
local left = Instance.new("Frame")
left.Name = "BinarySide"
left.Size = UDim2.new(0.5, 0, 1, 0)
left.Position = UDim2.new(-0.5, 0, 0, 0)
left.BackgroundColor3 = Color3.fromRGB(7, 5, 15)
left.BackgroundTransparency = 0.08
left.BorderSizePixel = 0
left.ClipsDescendants = true
left.ZIndex = 101
left.Parent = intro
local right = Instance.new("Frame")
right.Name = "BrandSide"
right.Position = UDim2.new(1, 0, 0, 0)
right.Size = UDim2.new(0.5, 0, 1, 0)
right.BackgroundColor3 = Color3.fromRGB(5, 6, 12)
right.BackgroundTransparency = 0.08
right.BorderSizePixel = 0
right.ClipsDescendants = true
right.ZIndex = 101
right.Parent = intro
local leftStroke = Instance.new("UIStroke")
leftStroke.Color = PURPLE
leftStroke.Thickness = 1.5
leftStroke.Transparency = 0.12
leftStroke.Parent = left
local binaryRows = {}
local function makeBinaryText(length)
local chunks = table.create(length)
for i = 1, length do
if math.random(0, 1) == 1 then
chunks[i] = '1'
else
chunks[i] = '0'
end
end
return table.concat(chunks)
end
for row = 1, 13 do
local binary = Instance.new("TextLabel")
binary.Name = "BinaryRow" .. row
binary.BackgroundTransparency = 1
binary.Position = UDim2.new(0, 18 + ((row % 3) * 15), 0, (row - 1) * 43 - 20)
binary.Size = UDim2.new(1, -26, 0, 34)
binary.Font = Enum.Font.Code
binary.TextSize = 23
binary.TextXAlignment = Enum.TextXAlignment.Left
binary.RichText = true
binary.Text = makeBinaryText(25)
binary.TextColor3 = WHITE
binary.TextTransparency = 0.18
binary.ZIndex = 102
binary.Parent = left
table.insert(binaryRows, binary)
end
-- Smooth, low-cost data flicker; cancel immediately if the intro is closed.
task.spawn(function()
while token == openingAnimationToken and intro.Parent do
for _, binary in ipairs(binaryRows) do
if binary.Parent and math.random() > 0.22 then
binary.Text = makeBinaryText(25)
end
end
task.wait(0.11)
end
end)
local accent = Instance.new("Frame")
accent.Name = "AccentBar"
accent.AnchorPoint = Vector2.new(0.5, 0.5)
accent.Position = UDim2.new(0.5, 0, 0.365, 0)
accent.Size = UDim2.new(0, 0, 0, 3)
accent.BackgroundColor3 = PURPLE
accent.BorderSizePixel = 0
accent.ZIndex = 103
accent.Parent = right
local brand = Instance.new("TextLabel")
brand.Name = "IntroBrand"
brand.BackgroundTransparency = 1
brand.AnchorPoint = Vector2.new(0.5, 0.5)
brand.Position = UDim2.new(0.5, 0, 0.445, 14)
brand.Size = UDim2.new(0.94, 0, 0, 58)
brand.Font = Enum.Font.GothamBlack
brand.Text = BRAND_RICH_TEXT
brand.RichText = true
brand.TextColor3 = WHITE
brand.TextSize = 24
brand.TextScaled = true
brand.TextTransparency = 1
brand.ZIndex = 103
brand.Parent = right
local brandStroke = Instance.new("UIStroke")
brandStroke.Color = PURPLE
brandStroke.Thickness = 1.2
brandStroke.Transparency = 1
brandStroke.Parent = brand
local status = Instance.new("TextLabel")
status.Name = "IntroStatus"
status.BackgroundTransparency = 1
status.AnchorPoint = Vector2.new(0.5, 0.5)
status.Position = UDim2.new(0.5, 0, 0.535, 12)
status.Size = UDim2.new(0.88, 0, 0, 26)
status.Font = Enum.Font.Code
status.Text = ""
status.TextColor3 = PURPLE
status.TextTransparency = 1
status.TextSize = 14
status.ZIndex = 103
status.Parent = right
TweenService:Create(intro, TweenInfo.new(0.22, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
BackgroundTransparency = 0.04
}):Play()
TweenService:Create(left, TweenInfo.new(0.48, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
Position = UDim2.new(0, 0, 0, 0)
}):Play()
TweenService:Create(right, TweenInfo.new(0.48, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
Position = UDim2.new(0.5, 0, 0, 0)
}):Play()
TweenService:Create(accent, TweenInfo.new(0.42, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
Size = UDim2.new(0.66, 0, 0, 3)
}):Play()
TweenService:Create(brand, TweenInfo.new(0.42, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
Position = UDim2.new(0.5, 0, 0.445, 0),
TextTransparency = 0
}):Play()
TweenService:Create(brandStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Transparency = 0.2
}):Play()
TweenService:Create(status, TweenInfo.new(0.32, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Position = UDim2.new(0.5, 0, 0.535, 0),
TextTransparency = 0
}):Play()
local initializing = "[ INITIALIZING SYSTEM... ]"
task.spawn(function()
for i = 1, #initializing do
if token ~= openingAnimationToken or not intro.Parent then return end
status.Text = string.sub(initializing, 1, i)
task.wait(0.022)
end
end)
task.delay(1.12, function()
if token ~= openingAnimationToken or not intro.Parent then
if intro.Parent then intro:Destroy() end
return
end
status.Text = "[ ACCESS GRANTED // NEBULA ONLINE ]"
status.TextColor3 = Color3.fromRGB(120, 255, 177)
TweenService:Create(accent, TweenInfo.new(0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
BackgroundColor3 = Color3.fromRGB(120, 255, 177)
}):Play()
TweenService:Create(brandStroke, TweenInfo.new(0.18), {
Color = Color3.fromRGB(120, 255, 177),
Transparency = 0.08
}):Play()
task.wait(0.36)
if token ~= openingAnimationToken or not intro.Parent then return end
for _, obj in ipairs(intro:GetDescendants()) do
if obj:IsA("GuiObject") then
local props = {BackgroundTransparency = 1}
if obj:IsA("TextLabel") then props.TextTransparency = 1 end
TweenService:Create(obj, TweenInfo.new(0.28, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), props):Play()
elseif obj:IsA("UIStroke") then
TweenService:Create(obj, TweenInfo.new(0.22), {Transparency = 1}):Play()
end
end
TweenService:Create(intro, TweenInfo.new(0.28, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
BackgroundTransparency = 1
}):Play()
task.delay(0.3, function()
if intro.Parent then intro:Destroy() end
if token == openingAnimationToken then
main.Visible = true
main.BackgroundTransparency = 0
main.Position = UDim2.new(0.5, -325, 0.5, -210)
main.Size = UDim2.fromOffset(0, 0)
local guiOpenTween = TweenService:Create(main, TweenInfo.new(0.48, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Size = UDim2.fromOffset(650, 450),
Position = UDim2.new(0.5, -325, 0.5, -225),
BackgroundTransparency = 0
})
guiOpenTween:Play()
end
end)
end)
end
local function setMenu(open)
menuOpen = open
if open then
-- Use the custom NEBULA cursor and prevent the default cursor showing twice.
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
UserInputService.MouseIconEnabled = false
customCursor.Visible = true
main.Visible = false
reopen.Visible = false
animateTitleBinary()
playNebulaOpenAnimation()
else
openingAnimationToken += 1
local closeToken = openingAnimationToken
local intro = gui:FindFirstChild("NebulaBinaryIntro")
if intro then intro:Destroy() end
reopen.Visible = true
customCursor.Visible = false
UserInputService.MouseIconEnabled = originalMouseIconEnabled
UserInputService.MouseBehavior = originalMouseBehavior
-- Smoothly shrink and lift the panel instead of abruptly hiding it.
if main.Visible then
TweenService:Create(main, TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.In), {
Size = UDim2.fromOffset(610, 410),
Position = UDim2.new(0.5, -305, 0.5, -220),
BackgroundTransparency = 0.12
}):Play()
task.delay(0.21, function()
if not menuOpen and closeToken == openingAnimationToken then
main.Visible = false
main.Size = UDim2.fromOffset(650, 450)
main.Position = UDim2.new(0.5, -325, 0.5, -225)
main.BackgroundTransparency = 0
end
end)
else
main.Visible = false
end
end
end
close.MouseButton1Click:Connect(function() setMenu(false) end)
reopen.MouseButton1Click:Connect(function() setMenu(true) end)
-- Apply the single-cursor setup on startup (menuOpen starts true).
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
UserInputService.MouseIconEnabled = false
customCursor.Visible = true
-- GUI HELPERS
local function clearContent()
for _, child in ipairs(content:GetChildren()) do
if child ~= contentLayout and child ~= contentPad and child:IsA("GuiObject") then
child:Destroy()
end
end
end
local function addHeading(text)
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -4, 0, 27)
label.BackgroundTransparency = 1
label.Text = " " .. text
label.TextColor3 = PURPLE
label.Font = Enum.Font.GothamBold
label.TextSize = 13
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = content
end
local function addButton(text, callback)
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, -4, 0, 38)
button.BackgroundColor3 = Color3.fromRGB(38, 29, 54)
button.Text = text
button.TextColor3 = WHITE
button.Font = Enum.Font.GothamMedium
button.TextSize = 12
button.AutoButtonColor = false
button.Parent = content
Instance.new("UICorner", button).CornerRadius = UDim.new(0, 6)
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(69, 51, 91)
stroke.Parent = button
button.MouseEnter:Connect(function()
TweenService:Create(button, TweenInfo.new(0.12), { BackgroundColor3 = Color3.fromRGB(61, 39, 82) }):Play()
end)
button.MouseLeave:Connect(function()
TweenService:Create(button, TweenInfo.new(0.12), { BackgroundColor3 = Color3.fromRGB(38, 29, 54) }):Play()
end)
button.MouseButton1Click:Connect(callback)
return button
end
-- TEAM CHECK HELPER
local function isSameTeam(targetModel)
if not enabled["Team Check"] then return false end
local targetPlayer = Players:GetPlayerFromCharacter(targetModel)
if targetPlayer and player then
if targetPlayer.Team ~= nil and player.Team ~= nil then
return targetPlayer.Team == player.Team
elseif targetPlayer.TeamColor == player.TeamColor then
return true
end
end
return false
end
-- WALL CHECK HELPER
local function isVisible(targetPart)
if not enabled["Wall Check"] then return true end
local camera = workspace.CurrentCamera
if not camera or not targetPart then return false end
local origin = camera.CFrame.Position
local destination = targetPart.Position
local direction = destination - origin
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
local ignoreList = {}
if player.Character then table.insert(ignoreList, player.Character) end
if targetPart.Parent then table.insert(ignoreList, targetPart.Parent) end
raycastParams.FilterDescendantsInstances = ignoreList
local result = workspace:Raycast(origin, direction, raycastParams)
return result == nil
end
-- TARGET SCANNING LOGIC
-- Only living enemy player characters and models in TrainingDummies are targetable.
local function getValidTargets()
local targets = {}
local seen = {}
local function addTarget(model)
if not model or model == player.Character or seen[model] then return end
local humanoid = model:FindFirstChildOfClass("Humanoid")
local head = model:FindFirstChild("Head")
if not humanoid or humanoid.Health 0 and part and part:IsA("BasePart") then
local screenPosition, onScreen = camera:WorldToViewportPoint(part.Position)
if onScreen and screenPosition.Z > 0 and isVisible(part) then
local point = Vector2.new(screenPosition.X, screenPosition.Y)
local distance = (point - screenCenter).Magnitude
if distance < closestDistance then
closestDistance = distance
closestPart = part
end
end
end
end
return closestPart
end
local function processAimbot(deltaTime)
if not enabled["Aimbot"] or not isRightMouseDown then
currentAimTarget = nil
return
end
if UserInputService:GetFocusedTextBox() then return end
local camera = workspace.CurrentCamera
if not camera then return end
-- Keep the same target between frames to reduce jitter/target hopping.
if not currentAimTarget or not currentAimTarget.Parent then
currentAimTarget = getClosestAimTarget()
else
local model = currentAimTarget:FindFirstAncestorOfClass("Model")
local humanoid = model and model:FindFirstChildOfClass("Humanoid")
if not model or (humanoid and humanoid.Health <= 0) or not isVisible(currentAimTarget) then
currentAimTarget = getClosestAimTarget()
end
end
local target = currentAimTarget
if not target or not target.Parent then return end
local direction = target.Position - camera.CFrame.Position
if direction.Magnitude 0 and p2.Z > 0 then
local delta = Vector2.new(p2.X - p1.X, p2.Y - p1.Y)
line.Position = UDim2.fromOffset((p1.X + p2.X) / 2, (p1.Y + p2.Y) / 2)
line.Size = UDim2.fromOffset(delta.Magnitude, 2)
line.Rotation = math.deg(math.atan2(delta.Y, delta.X))
line.Visible = true
else
line.Visible = false
end
elseif line then
line.Visible = false
end
end
for index = #bones + 1, #lines do
lines[index].Visible = false
end
end
for model in pairs(skeletonLines) do
if not validSet[model] then removeESP(model) end
end
end
-- SNOW EFFECT
local snowGui = Instance.new("ScreenGui")
snowGui.Name = "NebulaSnow"
snowGui.IgnoreGuiInset = true
snowGui.ResetOnSpawn = false
snowGui.DisplayOrder = 5
snowGui.Parent = playerGui
local function setSnow(state)
snowEnabled = state
if not state then
snowGui:ClearAllChildren()
status.Text = "SNOWING DISABLED"
return
end
status.Text = "SNOWING ENABLED"
if snowRunning then return end
snowRunning = true
task.spawn(function()
while snowEnabled do
local flake = Instance.new("TextLabel")
flake.BackgroundTransparency = 1
flake.Text = "❄"
flake.TextColor3 = Color3.fromRGB(238, 243, 255)
flake.TextTransparency = math.random(0, 35) / 100
flake.TextSize = math.random(12, 24)
flake.Font = Enum.Font.Gotham
flake.AnchorPoint = Vector2.new(0.5, 0.5)
flake.Position = UDim2.fromScale(math.random(0, 100) / 100, -0.04)
flake.Size = UDim2.fromOffset(30, 30)
flake.Parent = snowGui
local duration = math.random(5, 10)
local startX = flake.Position.X.Scale
local drift = math.random(-12, 12) / 100
TweenService:Create(flake, TweenInfo.new(duration, Enum.EasingStyle.Linear), {
Position = UDim2.fromScale(math.clamp(startX + drift, 0, 1), 1.05),
Rotation = math.random(-180, 180)
}):Play()
task.delay(duration, function()
if flake.Parent then flake:Destroy() end
end)
task.wait(0.16)
end
snowRunning = false
end)
end
-- MOTION BLUR
blurEffect = Lighting:FindFirstChild("NebulaMotionBlur")
if not blurEffect or not blurEffect:IsA("BlurEffect") then
blurEffect = Instance.new("BlurEffect")
blurEffect.Name = "NebulaMotionBlur"
blurEffect.Parent = Lighting
end
blurEffect.Size = 0
blurEffect.Enabled = false
local function resetMotionBlur()
currentBlur = 0
lastCameraLook = nil
if blurEffect then
blurEffect.Size = 0
blurEffect.Enabled = false
end
end
local function updateMotionBlur(deltaTime)
if not motionBlurEnabled or fpsBoostEnabled then
if currentBlur ~= 0 or blurEffect.Enabled then
currentBlur = 0
blurEffect.Size = 0
blurEffect.Enabled = false
end
lastCameraLook = nil
return
end
local camera = workspace.CurrentCamera
if not camera then resetMotionBlur() return end
local currentLook = camera.CFrame.LookVector
if not lastCameraLook then
lastCameraLook = currentLook
blurEffect.Enabled = true
blurEffect.Size = currentBlur
return
end
local movement = (currentLook - lastCameraLook).Magnitude
lastCameraLook = currentLook
local targetBlur = 0
if movement > BLUR_THRESHOLD then
targetBlur = math.clamp(movement * BLUR_SENSITIVITY, 0, BLUR_MAX)
end
local dt = math.min(deltaTime, 0.1)
local alpha = 1 - math.exp(-BLUR_RESPONSE * dt)
currentBlur += (targetBlur - currentBlur) * alpha
currentBlur = math.clamp(currentBlur, 0, BLUR_MAX)
blurEffect.Size = currentBlur
blurEffect.Enabled = currentBlur > 0.05
end
-- FPS BOOST
local function setFPSBoost(state)
if fpsBoostEnabled == state then return end
fpsBoostEnabled = state
if state then
originalShadows = Lighting.GlobalShadows
table.clear(originalEffects)
for _, effect in ipairs(Lighting:GetDescendants()) do
if effect:IsA("PostEffect") then
originalEffects[effect] = effect.Enabled
effect.Enabled = false
end
end
resetMotionBlur()
Lighting.GlobalShadows = false
pcall(function()
settings().Rendering.QualityLevel = Enum.QualityLevel.Level01
end)
status.Text = "FPS BOOST ENABLED"
else
for effect, wasEnabled in pairs(originalEffects) do
if effect.Parent and effect ~= blurEffect then
effect.Enabled = wasEnabled
end
end
table.clear(originalEffects)
Lighting.GlobalShadows = originalShadows
pcall(function()
settings().Rendering.QualityLevel = Enum.QualityLevel.Automatic
end)
resetMotionBlur()
status.Text = "FPS BOOST DISABLED"
end
end
-- NOCLIP
local function setNoclip(state)
noclipEnabled = state
status.Text = "NOCLIP: " .. (state and "ON" or "OFF")
if not state then
for part, originalValue in pairs(originalCollisions) do
if part.Parent then
part.CanCollide = originalValue
end
end
table.clear(originalCollisions)
end
end
RunService.Stepped:Connect(function()
if not noclipEnabled then return end
local character = player.Character
if not character then return end
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
if originalCollisions[part] == nil then
originalCollisions[part] = part.CanCollide
end
part.CanCollide = false
end
end
end)
player.CharacterAdded:Connect(function()
table.clear(originalCollisions)
end)
-- MOVEMENT MODULE (for your own Roblox Studio test game)
-- Player teleport is a one-shot action. Loop teleport uses only designated test points.
local flyEnabled = false
local flySpeed = 60
local loopTeleportEnabled = false
local walkSpeedValue = 16
local jumpPowerValue = 50
local selectedTeleportUserId = nil
local movementLoopToken = 0
local flightVelocity = nil
local flightGyro = nil
local flightConnection = nil
local function getCharacterParts()
local character = player.Character
if not character then return nil, nil, nil end
return character, character:FindFirstChildOfClass("Humanoid"), character:FindFirstChild("HumanoidRootPart")
end
local function clearFlightObjects()
if flightConnection then
flightConnection:Disconnect()
flightConnection = nil
end
if flightVelocity then
flightVelocity:Destroy()
flightVelocity = nil
end
if flightGyro then
flightGyro:Destroy()
flightGyro = nil
end
end
local function setFly(state)
flyEnabled = state
clearFlightObjects()
local _, humanoid, root = getCharacterParts()
if not state then
if humanoid then
humanoid.PlatformStand = false
humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
end
status.Text = "FLY: OFF"
return
end
if not humanoid or not root then
flyEnabled = false
status.Text = "FLY FAILED: CHARACTER NOT READY"
return
end
flightVelocity = Instance.new("BodyVelocity")
flightVelocity.Name = "NebulaFlightVelocity"
flightVelocity.MaxForce = Vector3.new(1e6, 1e6, 1e6)
flightVelocity.P = 1e4
flightVelocity.Velocity = Vector3.zero
flightVelocity.Parent = root
flightGyro = Instance.new("BodyGyro")
flightGyro.Name = "NebulaFlightGyro"
flightGyro.MaxTorque = Vector3.new(1e6, 1e6, 1e6)
flightGyro.P = 8e3
flightGyro.CFrame = workspace.CurrentCamera and workspace.CurrentCamera.CFrame or root.CFrame
flightGyro.Parent = root
flightConnection = RunService.Heartbeat:Connect(function()
if not flyEnabled or not root.Parent or not flightVelocity or not flightGyro then
return
end
local camera = workspace.CurrentCamera
if not camera then return end
local direction = Vector3.zero
if UserInputService:IsKeyDown(Enum.KeyCode.W) then direction += camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then direction -= camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then direction += camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then direction -= camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then direction += Vector3.yAxis end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then direction -= Vector3.yAxis end
if direction.Magnitude > 0 then direction = direction.Unit end
flightVelocity.Velocity = direction * flySpeed
flightGyro.CFrame = CFrame.lookAt(root.Position, root.Position + camera.CFrame.LookVector)
end)
status.Text = "FLY: ON // WASD + SPACE/CTRL // SPEED " .. flySpeed
end
local function getTestPoints()
local folder = workspace:FindFirstChild("NebulaTestPoints")
local points = {}
if folder then
for _, object in ipairs(folder:GetChildren()) do
if object:IsA("BasePart") then table.insert(points, object) end
end
end
table.sort(points, function(a, b) return a.Name < b.Name end)
return points
end
local function teleportToPlayer()
local targetPlayer = nil
if selectedTeleportUserId then
for _, candidate in ipairs(Players:GetPlayers()) do
if candidate.UserId == selectedTeleportUserId then
targetPlayer = candidate
break
end
end
end
local _, humanoid, root = getCharacterParts()
local targetCharacter = targetPlayer and targetPlayer.Character
local targetRoot = targetCharacter and targetCharacter:FindFirstChild("HumanoidRootPart")
if not root or not humanoid or humanoid.Health <= 0 then
status.Text = "TELEPORT FAILED: YOUR CHARACTER NOT READY"
return
end
if not targetPlayer or targetPlayer == player or not targetRoot then
status.Text = "SELECT AN AVAILABLE PLAYER FIRST"
return
end
-- Use only in your own Studio test place / authorized admin system.
root.CFrame = targetRoot.CFrame * CFrame.new(3, 0, 0)
status.Text = "TELEPORTED BESIDE " .. targetPlayer.Name
end
local function teleportToNextTestPoint()
local _, humanoid, root = getCharacterParts()
if not root or not humanoid or humanoid.Health 0 then
root.CFrame = currentPoints[index].CFrame + Vector3.new(0, 3, 0)
status.Text = "LOOP TELEPORT: " .. currentPoints[index].Name
end
task.wait(2)
end
end)
end
local function setMovementStats()
local _, humanoid = getCharacterParts()
if not humanoid then
status.Text = "MOVEMENT SETTINGS APPLY AFTER RESPAWN"
return
end
humanoid.WalkSpeed = walkSpeedValue
humanoid.UseJumpPower = true
humanoid.JumpPower = jumpPowerValue
status.Text = string.format("WALK SPEED: %d // JUMP POWER: %d", walkSpeedValue, jumpPowerValue)
end
player.CharacterAdded:Connect(function()
task.wait(0.5)
if flyEnabled then setFly(true) end
setMovementStats()
table.clear(originalCollisions)
end)
-- PAGES & NAVIGATION
local pages = {}
local function showPage(name)
clearContent()
status.Text = "MODULE: " .. name
if pages[name] then
pages[name]()
end
end
pages["OVERVIEW"] = function()
addHeading("SYSTEM OVERVIEW")
addButton("NEBULA // ADMIN PANEL", function()
status.Text = "NEBULA SYSTEMS ONLINE"
end)
addButton("Scan Targets (Players & Dummies)", function()
local targets = getValidTargets()
status.Text = "TARGETS DETECTED: " .. #targets
end)
addButton("Toggle menu [RightShift]", function()
setMenu(false)
end)
addHeading("MODULE INFORMATION")
addButton("Combat modules: active", function()
status.Text = "COMBAT MODULES OPERATIONAL"
end)
end
pages["VISUALS"] = function()
addHeading("TARGET VISUALS")
addButton(
"Health / Name / Distance ESP: " .. (enabled["Health / Name / Distance ESP"] and "ON" or "OFF"),
function()
enabled["Health / Name / Distance ESP"] = not enabled["Health / Name / Distance ESP"]
if not enabled["Health / Name / Distance ESP"] then
for model in pairs(espObjects) do removeESP(model) end
end
status.Text = "TARGET ESP: " .. (enabled["Health / Name / Distance ESP"] and "ON" or "OFF")
showPage("VISUALS")
end
)
addButton(
"Skeleton ESP: " .. (enabled["Skeleton ESP"] and "ON" or "OFF"),
function()
enabled["Skeleton ESP"] = not enabled["Skeleton ESP"]
status.Text = "SKELETON ESP: " .. (enabled["Skeleton ESP"] and "ON" or "OFF")
showPage("VISUALS")
end
)
addHeading("ENVIRONMENT EFFECTS")
addButton("Snowing: " .. (snowEnabled and "ON" or "OFF"), function()
setSnow(not snowEnabled)
showPage("VISUALS")
end)
addButton("FPS Boost: " .. (fpsBoostEnabled and "ON" or "OFF"), function()
setFPSBoost(not fpsBoostEnabled)
showPage("VISUALS")
end)
addButton("Motion Blur: " .. (motionBlurEnabled and "ON" or "OFF"), function()
motionBlurEnabled = not motionBlurEnabled
resetMotionBlur()
status.Text = "MOTION BLUR: " .. (motionBlurEnabled and "ON" or "OFF")
showPage("VISUALS")
end)
addButton("Refresh target visuals", function()
updateESP()
updateSkeletons()
status.Text = "VISUALS REFRESHED"
end)
end
pages["MOVEMENT"] = function()
addHeading("CHARACTER MOVEMENT")
addButton("Fly: " .. (flyEnabled and "ON" or "OFF"), function()
setFly(not flyEnabled)
showPage("MOVEMENT")
end)
addButton("Flight Speed: " .. flySpeed .. " (click to cycle)", function()
local speeds = {30, 60, 90, 120}
local index = table.find(speeds, flySpeed) or 1
flySpeed = speeds[(index % #speeds) + 1]
if flyEnabled then setFly(true) end
status.Text = "FLIGHT SPEED: " .. flySpeed
showPage("MOVEMENT")
end)
addButton("Walk Speed: " .. walkSpeedValue .. " (click to cycle)", function()
local speeds = {16, 24, 32, 40}
local index = table.find(speeds, walkSpeedValue) or 1
walkSpeedValue = speeds[(index % #speeds) + 1]
setMovementStats()
showPage("MOVEMENT")
end)
addButton("Jump Power: " .. jumpPowerValue .. " (click to cycle)", function()
local powers = {50, 65, 80, 100}
local index = table.find(powers, jumpPowerValue) or 1
jumpPowerValue = powers[(index % #powers) + 1]
setMovementStats()
showPage("MOVEMENT")
end)
addButton("Noclip / Phase: " .. (noclipEnabled and "ON" or "OFF"), function()
setNoclip(not noclipEnabled)
showPage("MOVEMENT")
end)
addButton("Restore character collisions", function()
setNoclip(false)
status.Text = "COLLISIONS RESTORED"
showPage("MOVEMENT")
end)
addHeading("TELEPORT")
addButton("Cycle player target", function()
local choices = {}
for _, candidate in ipairs(Players:GetPlayers()) do
if candidate ~= player and candidate.Character
and candidate.Character:FindFirstChild("HumanoidRootPart") then
table.insert(choices, candidate)
end
end
table.sort(choices, function(a, b) return a.Name < b.Name end)
if #choices == 0 then
selectedTeleportUserId = nil
status.Text = "NO OTHER PLAYERS AVAILABLE"
else
local currentIndex = 0
for index, candidate in ipairs(choices) do
if candidate.UserId == selectedTeleportUserId then currentIndex = index break end
end
local nextPlayer = choices[(currentIndex % #choices) + 1]
selectedTeleportUserId = nextPlayer.UserId
status.Text = "TELEPORT TARGET: " .. nextPlayer.Name
end
end)
addButton("Teleport to selected player", function()
teleportToPlayer()
end)
addButton("Teleport to next test point", function()
teleportToNextTestPoint()
end)
addButton("Loop Teleport: " .. (loopTeleportEnabled and "ON" or "OFF"), function()
setLoopTeleport(not loopTeleportEnabled)
showPage("MOVEMENT")
end)
addButton("STOP Loop Teleport", function()
setLoopTeleport(false)
showPage("MOVEMENT")
end)
addButton("Reset movement settings", function()
setFly(false)
setLoopTeleport(false)
walkSpeedValue = 16
jumpPowerValue = 50
flySpeed = 60
setMovementStats()
status.Text = "MOVEMENT SETTINGS RESET"
showPage("MOVEMENT")
end)
addHeading("TEST POINT SETUP")
addButton("Test point setup instructions", function()
status.Text = "CREATE Workspace.NebulaTestPoints AND ADD PARTS"
end)
addHeading("SERVER FEATURES")
addButton("God Mode", function()
status.Text = "GOD MODE REQUIRES SERVER-SIDE LOGIC"
end)
addButton("Hitbox Expansion", function()
status.Text = "USE SERVER-CONTROLLED HITBOXES"
end)
end
pages["COMBAT LAB"] = function()
addHeading("COMBAT MODULES")
-- Clickable smoothness slider (0 = fast, 100 = smooth/slow).
local smoothLabel = Instance.new("TextLabel")
smoothLabel.Size = UDim2.new(1, -4, 0, 24)
smoothLabel.BackgroundTransparency = 1
smoothLabel.Text = "Aim Smoothness: " .. AIM_SMOOTHNESS .. " / 100"
smoothLabel.TextColor3 = WHITE
smoothLabel.Font = Enum.Font.GothamMedium
smoothLabel.TextSize = 12
smoothLabel.TextXAlignment = Enum.TextXAlignment.Left
smoothLabel.Parent = content
local slider = Instance.new("TextButton")
slider.Size = UDim2.new(1, -12, 0, 20)
slider.BackgroundColor3 = Color3.fromRGB(38, 29, 54)
slider.Text = ""
slider.AutoButtonColor = false
slider.Parent = content
Instance.new("UICorner", slider).CornerRadius = UDim.new(0, 8)
local fill = Instance.new("Frame")
fill.Size = UDim2.new(AIM_SMOOTHNESS / 100, 0, 1, 0)
fill.BackgroundColor3 = PURPLE
fill.BorderSizePixel = 0
fill.Parent = slider
Instance.new("UICorner", fill).CornerRadius = UDim.new(0, 8)
local function setAimSmoothnessFromX(x)
local width = math.max(slider.AbsoluteSize.X, 1)
local fraction = math.clamp((x - slider.AbsolutePosition.X) / width, 0, 1)
AIM_SMOOTHNESS = math.clamp(math.floor(fraction * 100 + 0.5), 0, 100)
smoothLabel.Text = "Aim Smoothness: " .. AIM_SMOOTHNESS .. " / 100"
fill.Size = UDim2.new(AIM_SMOOTHNESS / 100, 0, 1, 0)
end
local draggingSmoothness = false
slider.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
draggingSmoothness = true
local pointerX = input.Position.X
setAimSmoothnessFromX(pointerX)
end
end)
UserInputService.InputChanged:Connect(function(input)
if draggingSmoothness and (input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch) then
setAimSmoothnessFromX(input.Position.X)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
draggingSmoothness = false
end
end)
addButton("Reset Smoothness to 50", function()
AIM_SMOOTHNESS = 50
smoothLabel.Text = "Aim Smoothness: " .. AIM_SMOOTHNESS .. " / 100"
fill.Size = UDim2.new(AIM_SMOOTHNESS / 100, 0, 1, 0)
status.Text = "AIM SMOOTHNESS RESET TO 50"
end)
for _, name in ipairs({"Aimbot", "Aimbot Auto-Fire", "Silent Aim", "Trigger Bot", "Team Check", "Wall Check"}) do
addButton(
name .. ": " .. (enabled[name] and "ON" or "OFF"),
function()
enabled[name] = not enabled[name]
status.Text = name .. ": " .. (enabled[name] and "ACTIVE" or "OFF")
showPage("COMBAT LAB")
end
)
end
addHeading("INSTRUCTIONS")
addButton("Aimbot: Hold Right-Click to lock on", function()
status.Text = "AIMBOT USES HOLD RIGHT-CLICK"
end)
end
for _, pageName in ipairs({"OVERVIEW", "VISUALS", "MOVEMENT", "COMBAT LAB"}) do
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, -12, 0, 36)
button.BackgroundColor3 = Color3.fromRGB(39, 29, 55)
button.Text = pageName
button.TextColor3 = WHITE
button.Font = Enum.Font.GothamBold
button.TextSize = 11
button.AutoButtonColor = false
button.Parent = sidebar
Instance.new("UICorner", button).CornerRadius = UDim.new(0, 6)
button.MouseButton1Click:Connect(function()
showPage(pageName)
end)
end
-- KEYBIND AND MOUSE INPUT HANDLERS
UserInputService.InputBegan:Connect(function(input, processed)
-- B toggles the panel unless the player is typing into a text box.
if input.KeyCode == Enum.KeyCode.B then
if UserInputService:GetFocusedTextBox() then return end
setMenu(not menuOpen)
return
end
if processed then return end
-- Keep RightShift as an alternate toggle shortcut.
if input.KeyCode == Enum.KeyCode.RightShift then
if UserInputService:GetFocusedTextBox() then return end
setMenu(not menuOpen)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
isRightMouseDown = true
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton2 then
isRightMouseDown = false
end
end)
-- Run after the Roblox camera update so the smooth practice aim is not overwritten.
RunService:BindToRenderStep("NebulaAimbotStep", Enum.RenderPriority.Camera.Value + 1, function(deltaTime)
processAimbot(deltaTime)
end)
-- MAIN RENDER LOOP
RunService.RenderStepped:Connect(function(deltaTime)
updateESP()
updateSkeletons()
updateMotionBlur(deltaTime)
processTriggerbot()
forceWeaponAim()
end)
showPage("OVERVIEW")
-- Play the binary hacker-style intro on initial launch too.
setMenu(true)
print("NEBULA // PREMIUM // HACKING V11 loaded")
No comments yet. Be the first!