Simple LUA Obfuscator
--[[
-- For people who are new to obfuscating, here is a easy and simple way to obfuscate your scripts!
-- By M0_0Y on ROBLOX
]]
local throw_away = {}
local SCRIPT_TO_OBFUSCATE = [[
print(" local repo = "https://raw.githubusercontent.com/Ali-lov3/Obsidian-UiLibs/refs/heads/main/"
local Library = loadstring(game:HttpGet(repo .. "Library.lua"))()
local ThemeManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/Ali-lov3/Obsidian-UiLibs/refs/heads/main/addons/ThemeManager.lua"))()
local SaveManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/Ali-lov3/Obsidian-UiLibs/refs/heads/main/addons/SaveManager.lua"))()
local Options = Library.Options
local Toggles = Library.Toggles
Library.ForceCheckbox = false
Library.ShowToggleFrameInKeybinds = true
local Window = Library:CreateWindow({
Title = "Rocket Silent Aim",
Footer = "by thedude_whotalks",
Icon = 95816097006870,
NotifySide = "Right",
ShowCustomCursor = true,
})
local Tabs = {
Main = Window:AddTab("Main", "user"),
["UI Settings"] = Window:AddTab("UI Settings", "settings"),
}
local LeftGroupBox = Tabs.Main:AddLeftGroupbox("Rocket Silent Aim", "boxes")
-- ===== ROCKET SILENT AIM IMPLEMENTATION =====
local utility = {
target = nil,
Workspace = cloneref(game:GetService("Workspace")),
UserInputService = cloneref(game:GetService("UserInputService")),
Players = cloneref(game:GetService("Players")),
RunService = cloneref(game:GetService("RunService")),
ShootFunc = filtergc("function", {Name = "shootLauncher"}, true),
Enabled = false,
}
utility.Camera = utility.Workspace.CurrentCamera
utility.NPC = utility.Workspace.NPC
utility.LocalPlayer = utility.Players.LocalPlayer
utility.CreateParams = function()
local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
params.FilterDescendantsInstances = {utility.LocalPlayer.Character}
params.IgnoreWater = true
return params or nil
end
utility.isVisible = function(self, target)
if not target or typeof(target) ~= "Instance" then
return false
end
if not target:IsA("BasePart") then
return false
end
local origin = self.Camera.CFrame
local direction = (target.Position - origin.Position)
local params = self.CreateParams()
if not params then return false end
local result = self.Workspace:Raycast(origin.Position, direction, params)
if result then
return result.Instance:FindFirstAncestorOfClass("Model"):FindFirstChildOfClass("Tool") ~= nil
else
return false
end
end
utility.GetAllPlayers = function(self)
local chars = {}
for _, plr in ipairs(self.Players:GetPlayers()) do
if plr.Character and plr.Character:FindFirstChild("Humanoid") and plr.Character:FindFirstChildOfClass("Tool") then
table.insert(chars, plr.Character)
end
end
for _, char in ipairs(self.NPC:GetChildren()) do
if char and char:FindFirstChild("Humanoid") and char:FindFirstChildOfClass("Tool") then
table.insert(chars, char)
end
end
return chars
end
utility.GetClosestPlayer = function(self)
local closestDistance = math.huge
local closest = nil
for _, char in pairs(self:GetAllPlayers()) do
if not char then continue end
if char.Name == self.LocalPlayer.Name then continue end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then continue end
local hum = char:FindFirstChild("Humanoid")
if not hum or hum.Health <= 0 then continue end
local head = char:FindFirstChild("Head")
if not head then continue end
local screenPos, onScreen = self.Camera:WorldToViewportPoint(hrp.Position)
if onScreen then
local distance = (Vector2.new(screenPos.X, screenPos.Y) - self.UserInputService:GetMouseLocation()).Magnitude
if distance < closestDistance then
if not self:isVisible(head) then continue end
closestDistance = distance
closest = head
end
end
end
return closest
end
utility.RunService.RenderStepped:Connect(function()
utility.target = utility:GetClosestPlayer()
end)
utility.shootLauncher = hookfunction(utility.ShootFunc, function(p1,p2)
if utility.target and utility.Enabled then
local oldcf = utility.Camera.CFrame
utility.Camera.CFrame = CFrame.lookAt(utility.Camera.CFrame.Position, utility.target.Position)
local result = utility.shootLauncher(p1,p2)
utility.Camera.CFrame = oldcf
return result
end
return utility.shootLauncher(p1,p2)
end)
-- ===== UI TOGGLES =====
LeftGroupBox:AddToggle("RocketSilentAim", {
Text = "Rocket Silent Aim",
Tooltip = "Toggle rocket silent aim on/off",
Default = false,
Disabled = false,
Visible = true,
Risky = false,
Callback = function(Value)
utility.Enabled = Value
print("[Rocket Silent Aim] Enabled:", Value)
end,
})
LeftGroupBox:AddButton({
Text = "ESP",
Func = function()
loadstring(game:HttpGet("https://raw.githubusercontent.com/L5ks8/Esp/main/loader"))()
print("[ESP] Loaded")
end,
DoubleClick = false,
Tooltip = "Load ESP",
Disabled = false,
Visible = true,
Risky = false,
})
-- UI Settings Tab
local MenuGroup = Tabs["UI Settings"]:AddLeftGroupbox("Menu", "wrench")
MenuGroup:AddToggle("KeybindMenuOpen", {
Default = Library.KeybindFrame.Visible,
Text = "Open Keybind Menu",
Callback = function(value)
Library.KeybindFrame.Visible = value
end,
})
MenuGroup:AddToggle("ShowCustomCursor", {
Text = "Custom Cursor",
Default = true,
Callback = function(Value)
Library.ShowCustomCursor = Value
end,
})
MenuGroup:AddDropdown("NotificationSide", {
Values = { "Left", "Right" },
Default = "Right",
Text = "Notification Side",
Callback = function(Value)
Library:SetNotifySide(Value)
end,
})
MenuGroup:AddDropdown("DPIDropdown", {
Values = { "50%", "75%", "100%", "125%", "150%", "175%", "200%" },
Default = "100%",
Text = "DPI Scale",
Callback = function(Value)
Value = Value:gsub("%%", "")
Library:SetDPIScale(tonumber(Value))
end,
})
MenuGroup:AddSlider("UICornerSlider", {
Text = "Corner Radius",
Default = Library.CornerRadius,
Min = 0,
Max = 20,
Rounding = 0,
Callback = function(value)
Window:SetCornerRadius(value)
end,
})
MenuGroup:AddDivider()
MenuGroup:AddLabel("Menu bind")
:AddKeyPicker("MenuKeybind", { Default = "RightShift", NoUI = true, Text = "Menu keybind" })
MenuGroup:AddButton("Unload", function()
Library:Unload()
end)
Library.ToggleKeybind = Options.MenuKeybind
ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)
SaveManager:IgnoreThemeSettings()
SaveManager:SetIgnoreIndexes({ "MenuKeybind" })
ThemeManager:SetFolder("RocketSilentAim")
SaveManager:SetFolder("RocketSilentAim")
SaveManager:SetSubFolder("RocketSilentAim")
SaveManager:BuildConfigSection(Tabs["UI Settings"])
ThemeManager:ApplyToTab(Tabs["UI Settings"])
SaveManager:LoadAutoloadConfig() ")
]]
function GetBytes()
for num = 1, #SCRIPT_TO_OBFUSCATE do
throw_away[num] = string.byte(SCRIPT_TO_OBFUSCATE, num)
end
end
function ConvertString()
local string_buffer = "";
for obj = 1, #throw_away do
string_buffer = string_buffer .. "\\" .. throw_away[obj]
end
return string_buffer
end
function Obfuscate()
GetBytes()
local str = ConvertString()
return print('loadstring("' .. str .. '")()')
end
Obfuscate()INFO