Quick actions

cmd+k|ctrl+k

Navigation

Languages

Simple LUA Obfuscator

Snippet info

Language

Lua

Visibility

public

Author

01a04956-364c-71d5-8e27-ed6ddc4ca173

Created

2026-08-28T17:06:53.878838Z

Updated

2026-08-28T17:06:53.878838Z

--[[
-- 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