--!optimize 2
setfpscap(240)
repeat task.wait() setfpscap(math.huge) until game:IsLoaded()
local LigmaUIVersion
if not isfolder('ligma') then
makefolder('ligma')
end
if isfolder('ligma/.cache') then
for _, v in listfiles('ligma/.cache') do
delfile(v)
end
end
local verdata = game:HttpGet('https://raw.githubusercontent.com/Phemeti/Project-Ligma-Recreation/refs/heads/main/info/version.txt')
if not isfile('ligma/version.txt') then
writefile('ligma/version.txt', verdata)
elseif isfile('ligma/version.txt') and readfile('ligma/version.txt') ~= verdata then
writefile('ligma/version.txt', verdata)
end
if hookfunction then
if identifyexecutor and ({identifyexecutor()})[1] ~= 'Project Ligma' then
hookfunction(getgenv().identifyexecutor, function()
return 'Project Ligma', LigmaUIVersion
end)
elseif getexecutorname and getexecutorname() ~= 'Project Ligma' then
hookfunction(getgenv().getexecutorname, function()
return 'Project Ligma'
end)
end
else
if identifyexecutor and ({identifyexecutor()})[1] ~= 'Project Ligma' then
getgenv().identifyexecutor = function()
return 'Project Ligma', LigmaUIVersion
end
elseif getexecutorname and getexecutorname() ~= 'Project Ligma' then
getgenv().getexecutorname = function()
return 'Project Ligma'
end
end
end
local Whitelist = {
['6monthbanomg'] = true
}
local __DEBUG = true
local ALLOW_I_DONT_WANT_THESE_PEOPLE_TO_HAVE__DEBUG = false
local I_DONT_WANT_THESE_PEOPLE_TO_HAVE__DEBUG = {
['6monthbanomg'] = true
}
local playersService = game:GetService('Players')
local coreGui = game:GetService('CoreGui')
local tweenService = game:GetService('TweenService')
local http = game:GetService('HttpService')
local soundService = game:GetService('SoundService')
local UIS = game:GetService("UserInputService")
local chatservice = game:GetService("TextChatService")
local runservice = game:GetService('RunService')
local textservice = game:GetService('TextService')
local startergui = game:GetService('StarterGui')
local logservice = game:GetService("LogService")
local rbxreplicatedstorage = game:GetService('RobloxReplicatedStorage')
local player = playersService.LocalPlayer
local mouse = player:GetMouse()
local textService = game:GetService("TextService")
local runService = game:GetService("RunService")
local players = game:GetService("Players")
local mouse = players.LocalPlayer:GetMouse()
local function draggable(Frame)
Frame.Active = true
Frame.Draggable = true
-- code is sloppy anyway
--[[dragToggle = nil
local dragSpeed = 0
dragInput = nil
dragStart = nil
local dragPos = nil
function updateInput(input)
local Delta = input.Position - dragStart
local Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + Delta.X, startPos.Y.Scale, startPos.Y.Offset + Delta.Y)
Frame.Position = Position
end
Frame.InputBegan:Connect(function(input)
if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) and UIS:GetFocusedTextBox() == nil then
dragToggle = true
dragStart = input.Position
startPos = Frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragToggle = false
end
end)
end
end)
Frame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
game:GetService("UserInputService").InputChanged:Connect(function(input)
if input == dragInput and dragToggle then
updateInput(input)
end
end)]]
end
-- Exploit Functions
local ExploitFunctions = {
filetype = function(file)
return ((isfile(file) and 'file') or (isfolder(file) and 'folder')) or nil
end
}
for name, func in ExploitFunctions do
getgenv()[name] = func
end
local player = playersService.LocalPlayer
local Ligma = {}
if ALLOW_I_DONT_WANT_THESE_PEOPLE_TO_HAVE__DEBUG then
if I_DONT_WANT_THESE_PEOPLE_TO_HAVE__DEBUG[player.Name] then
__DEBUG = false
end
end
if shared.LigmaMaid then
for _, v in shared.LigmaMaid do
pcall(function() v:Destroy() end)
pcall(function() v:Disable() end)
pcall(function() v:Stop() end)
pcall(function() v:Disconnect() end)
end
end
shared.LigmaMaid = {}
local Maid = {}
Maid.AddCleanup = function(self, obj)
table.insert(shared.LigmaMaid, obj)
return obj
end
local function check(plr)
if Whitelist[plr.Name] then
local whisper = rbxreplicatedstorage.ExperienceChat.WhisperChat:InvokeServer(plr.UserId)
if whisper then
local old = chatservice.OnIncomingMessage
chatservice.OnIncomingMessage = function(message)
local props = Instance.new("TextChatMessageProperties")
if message.TextSource then
local target = playersService:GetPlayerByUserId(message.TextSource.UserId)
if enabled and target == player then
return nil
end
end
return props
end
whisper:SendAsync('iamusingproject')
task.wait(0.05)
chatservice.OnIncomingMessage = old
old = nil
end
end
end
for _, v in playersService:GetPlayers() do
if v ~= player then
check(v)
end
end
Maid:AddCleanup(playersService.PlayerAdded:Connect(function(v)
if v ~= player then
check(v)
end
end))
-- my bad i dont fucking know how to make shit config systems
--if not isfolder('ligma') then
--makefolder('ligma')
--end
if not isfolder('ligma/config') then
makefolder('ligma/config')
end
if not isfolder('ligma/.cache') then
makefolder('ligma/.cache')
end
Ligma.AddConfig = function(self, name, setval)
if not isfile('ligma/config/'..name) then
writefile('ligma/config/'..name, setval)
end
local module = {}
module.SetValue = function(self, val)
writefile('ligma/config/'..name, val)
end
module.GetValue = function(self)
return readfile('ligma/config/'..name)
end
return module
end
local Config = {
Keybind = Ligma:AddConfig('Keybind', 'Z'),
PS4Logo = Ligma:AddConfig('PS4Logo', 'true'),
FPSCounter = Ligma:AddConfig('FPSCounter', 'true'),
IgnoreScriptwarning = Ligma:AddConfig('IgnoreScriptWarning', 'false'),
EnableTooltips = Ligma:AddConfig('EnableTooltips', 'true'),
SoundsToggle = Ligma:AddConfig('SoundsToggle', 'true')
}
local function toBool(v)
return v == true or v == "true"
end
local function ApplyPS4(value)
local state = toBool(value)
if shared.PS4Logo then
shared.PS4Logo.Visible = state
end
end
Ligma.AddSound = function(self, soundsettings)
local startupmodule = {}
local startup = Instance.new('Sound')
Maid:AddCleanup(startup)
startup.SoundId = soundsettings.Id
startup.Parent = soundService
startup.Volume = soundsettings.Volume or 1.3
startup.PlaybackSpeed = soundsettings.Speed or 1
startup.Looped = soundsettings.Looped or false
if soundsettings.Playing then
startup:Play()
end
startupmodule.Play = function(self)
if readfile('ligma/config/SoundsToggle') == 'true' then
startup:Play()
end
end
startupmodule.Stop = function(self)
startup:Stop()
end
startupmodule.SetProperty = function(self, prop, val)
startup[prop] = val
end
return startupmodule
end
local textService = game:GetService("TextService")
local function Priority(frame)
local function bringToFront(frame)
local maxZ = 0
for _, obj in ipairs(frame.Parent:GetChildren()) do
if obj ~= frame and (obj:IsA("Frame") or obj:IsA("TextLabel") or obj:IsA("ImageLabel")) then
if obj.ZIndex > maxZ then
maxZ = obj.ZIndex
end
end
end
frame.ZIndex = maxZ + 1
end
frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
bringToFront(frame)
end
end)
end
local closesound = Ligma:AddSound({
Id = 'rbxassetid://88440088035194',
Volume = 1,
Speed = 1,
Looped = false
})
local opensound = Ligma:AddSound({
Id = 'rbxassetid://83200075873367',
Volume = 1,
Speed = 1,
Looped = false
})
local hoversound = Ligma:AddSound({
Id = 'rbxassetid://124400323975890',
Volume = 1,
Speed = 1,
Looped = false
})
local function AddSounds(obj)
obj.MouseButton1Down:Connect(function()
opensound:Play()
--gui.Visible = false
end)
obj.MouseEnter:Connect(function()
hoversound:Play()
--gui.Visible = false
end)
end
if shared.oldligmagui then
shared.oldligmagui:Destroy()
end
-- Ligma Screen Gui / GUI / UI / Screen GUI / MainGUI / Main GUI
local ScreenGui = Instance.new("ScreenGui")
shared.oldligmagui = ScreenGui
ScreenGui.IgnoreGuiInset = true
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = gethui and gethui() or coreGui
local function text2x(textInstance)
local sizeParams = textService:GetTextSize(
textInstance.Text,
textInstance.TextSize,
textInstance.Font,
Vector2.new(math.huge, math.huge)
)
return sizeParams.X
end
local function AddTooltip(obj, name, dark)
local ToolTip = Instance.new("TextLabel")
ToolTip.Parent = ScreenGui
ToolTip.BackgroundColor3 = not dark and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(10,10,10)
ToolTip.BorderColor3 = Color3.fromRGB(84, 84, 84)
ToolTip.Font = Enum.Font.Arial
ToolTip.Text = name
ToolTip.TextColor3 = not dark and Color3.fromRGB(0, 0, 0) or Color3.fromRGB(244,244,244)
ToolTip.TextSize = 15.000
ToolTip.TextWrapped = false
ToolTip.Visible = false
ToolTip.Size = UDim2.new(0, text2x(ToolTip) + 15, 0, 24)
obj.MouseEnter:Connect(function()
if readfile('ligma/config/EnableTooltips') == 'true' then
ToolTip.Size = UDim2.new(0, text2x(ToolTip) + 15 - 10, 0, 24 - 10)
tweenService:Create(
ToolTip,
TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out),
{
Size = UDim2.new(0, text2x(ToolTip) + 15, 0, 24)
}
):Play()
ToolTip.Visible = true
else
ToolTip.Visible = false
end
end)
obj.MouseLeave:Connect(function()
if readfile('ligma/config/EnableTooltips') == 'true' then
ToolTip.Size = UDim2.new(0, text2x(ToolTip) + 15, 0, 24)
ToolTip.Visible = false
local clone = ToolTip:Clone()
clone.Visible = true
clone.Parent = ToolTip.Parent
local scale = Instance.new('UIScale')
scale.Parent = clone
tweenService:Create(
clone,
TweenInfo.new(1, Enum.EasingStyle.Quint, Enum.EasingDirection.Out),
{
Transparency = 1
}
):Play()
tweenService:Create(
scale,
TweenInfo.new(1, Enum.EasingStyle.Quint, Enum.EasingDirection.Out),
{
Scale = -2
}
):Play()
else
ToolTip.Visible = false
end
end)
runService.RenderStepped:Connect(function()
ToolTip.Position = UDim2.new(0, mouse.X + 10, 0, mouse.Y + 30)
end)
end
local Main = Instance.new("Frame")
Main.Parent = ScreenGui
Main.Size = UDim2.new(0, 540, 0, 310)
Main.Position = UDim2.new(0.5, -270, 0.5, -155)
Main.BackgroundColor3 = Color3.fromRGB(240,240,240)
Main.BorderColor3 = Color3.fromRGB(120,120,120)
Main.Visible = false
shared.PS4Logo = nil
if not __DEBUG then
do
local size = 700
Ligma:AddSound({
Id = 'rbxassetid://123072435492721',
Volume = 1,
Speed = 1,
Looped = false
}):Play()
local icon = Instance.new('ImageButton')
shared.PS4Logo = icon
icon.BackgroundTransparency = 1
icon.ImageTransparency = 1
icon.Size = UDim2.new(0, size, 0, size)
icon.AnchorPoint = Vector2.new(0.5, 0.5)
icon.Position = UDim2.new(0.5, 0, 0.5, 0)
icon.Image = 'rbxassetid://87162794'
icon.Parent = ScreenGui
icon.ZIndex = 9e9
tweenService:Create(
icon,
TweenInfo.new(
1,
Enum.EasingStyle.Quint,
Enum.EasingDirection.Out
),
{
ImageTransparency = 0,
Size = UDim2.new(0, 200, 0, 200)
}
):Play()
task.delay(1, function()
tweenService:Create(
icon,
TweenInfo.new(
1,
Enum.EasingStyle.Quint,
Enum.EasingDirection.InOut
),
{
AnchorPoint = Vector2.new(0, 1),
Position = UDim2.new(0, 30, 1, -30),
Rotation = -360,
Size = UDim2.new(0, 150, 0, 150)
}
):Play()
end)
task.wait(2)
icon.Rotation = 0
local spinning = false
local resetTween = nil
icon.MouseEnter:Connect(function()
spinning = true
if resetTween then resetTween:Cancel() end
end)
icon.MouseLeave:Connect(function()
icon.ImageColor3 = Color3.fromRGB(255,255,255)
spinning = false
resetTween = tweenService:Create(
icon,
TweenInfo.new(1, Enum.EasingStyle.Quint, Enum.EasingDirection.Out),
{ Rotation = 0 }
)
resetTween:Play()
end)
icon.MouseButton1Down:Connect(function()
icon.ImageColor3 = Color3.fromRGB(199, 199, 199)
end)
icon.MouseButton1Up:Connect(function()
icon.ImageColor3 = Color3.fromRGB(255,255,255)
end)
runservice.RenderStepped:Connect(function(dt)
if spinning then
icon.Rotation += 180 * dt
end
end)
end
else
local icon = Instance.new('ImageButton')
shared.PS4Logo = icon
icon.BackgroundTransparency = 1
icon.ImageTransparency = 0
icon.Size = UDim2.new(0, 150, 0, 150)
icon.AnchorPoint = Vector2.new(0, 1)
icon.Position = UDim2.new(0, 30, 1, -30)
icon.Image = 'rbxassetid://87162794'
icon.Parent = ScreenGui
icon.ZIndex = 9e9
local spinning = false
local resetTween = nil
icon.MouseEnter:Connect(function()
spinning = true
if resetTween then resetTween:Cancel() end
end)
icon.MouseLeave:Connect(function()
spinning = false
resetTween = tweenService:Create(
icon,
TweenInfo.new(1, Enum.EasingStyle.Quint, Enum.EasingDirection.Out),
{ Rotation = 0 }
)
resetTween:Play()
end)
icon.MouseButton1Down:Connect(function()
icon.ImageColor3 = Color3.fromRGB(199, 199, 199)
end)
icon.MouseButton1Up:Connect(function()
icon.ImageColor3 = Color3.fromRGB(255,255,255)
end)
runservice.RenderStepped:Connect(function(dt)
if spinning then
icon.Rotation += 180 * dt
end
end)
end
ApplyPS4(Config.PS4Logo:GetValue())
local function addClose(gui)
local TextButton_2 = Instance.new("TextButton")
TextButton_2.Parent = gui
TextButton_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton_2.BorderColor3 = Color3.fromRGB(200, 200, 200)
TextButton_2.Position = UDim2.new(1, -25, 0, 0)
TextButton_2.Size = UDim2.new(0, 25, 0, 25)
TextButton_2.Font = Enum.Font.SourceSans
TextButton_2.Text = "X"
TextButton_2.TextColor3 = Color3.fromRGB(0, 0, 0)
TextButton_2.TextSize = 16.000
TextButton_2.AutoButtonColor = false
TextButton_2.MouseButton1Down:Connect(function()
closesound:Play()
gui.Visible = false
end)
TextButton_2.MouseEnter:Connect(function()
tweenService:Create(
TextButton_2,
TweenInfo.new(
0.2,
Enum.EasingStyle.Quint,
Enum.EasingDirection.Out
),
{
BackgroundColor3 = Color3.fromRGB(200, 40, 40)
}
):Play()
end)
TextButton_2.MouseLeave:Connect(function()
tweenService:Create(
TextButton_2,
TweenInfo.new(
0.4,
Enum.EasingStyle.Quint,
Enum.EasingDirection.Out
),
{
BackgroundColor3 = Color3.fromRGB(255, 255, 255)
}
):Play()
end)
return TextButton_2
end
local function createinteractivefeature(btn)
btn.AutoButtonColor = false
btn.MouseEnter:Connect(function()
btn.BackgroundColor3 = Color3.fromRGB(222,222,222)
end)
btn.MouseLeave:Connect(function()
btn.BackgroundColor3 = Color3.fromRGB(245,245,245)
end)
btn.MouseButton1Down:Connect(function()
btn.BackgroundColor3 = Color3.fromRGB(177,177,177)
end)
btn.MouseButton1Up:Connect(function()
btn.BackgroundColor3 = Color3.fromRGB(235,235,235)
end)
btn.MouseButton1Click:Connect(function()
btn.BorderColor3 = Color3.fromRGB(0,120,215)
end)
UIS.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
local m = UIS:GetMouseLocation()
if not (
m.X >= btn.AbsolutePosition.X and
m.X <= btn.AbsolutePosition.X + btn.AbsoluteSize.X and
m.Y >= btn.AbsolutePosition.Y and
m.Y <= btn.AbsolutePosition.Y + btn.AbsoluteSize.Y
) then
btn.BorderColor3 = Color3.fromRGB(150,150,150)
end
end
end)
end
Main.Visible = true
local TopBar = Instance.new("Frame")
TopBar.Parent = Main
TopBar.Size = UDim2.new(1,0,0,18)
TopBar.BackgroundColor3 = Color3.fromRGB(255,255,255)
TopBar.BorderColor3 = Color3.fromRGB(150,150,150)
local BallFrame = Instance.new("ImageLabel")
BallFrame.Parent = TopBar
BallFrame.Size = UDim2.new(0,14,0,14)
BallFrame.Position = UDim2.new(0,3,0,2)
BallFrame.BackgroundTransparency = 1
BallFrame.Image = 'rbxassetid://87162794'
BallFrame.BackgroundColor3 = Color3.fromRGB(210,210,210)
BallFrame.BorderSizePixel = 0
local Title = Instance.new("TextLabel")
Title.Parent = TopBar
Title.Size = UDim2.new(0,180,1,0)
Title.Position = UDim2.new(0,22,0,0)
Title.BackgroundTransparency = 1
Title.Text = "Project Ligma"
Title.TextColor3 = Color3.fromRGB(0,0,0)
Title.Font = Enum.Font.Arial
Title.TextSize = 12
Title.TextXAlignment = Enum.TextXAlignment.Left
do
local FPS = Instance.new("TextLabel")
shared.FPSCounter = FPS
FPS.Parent = TopBar
FPS.Size = UDim2.new(0,180,1,0)
FPS.Position = UDim2.new(0,98,0,0)
FPS.BackgroundTransparency = 1
FPS.Text = ""
FPS.TextColor3 = Color3.fromRGB(0,0,0)
FPS.TextTransparency = 0.5
FPS.Font = Enum.Font.Arial
FPS.TextSize = 8
FPS.TextXAlignment = Enum.TextXAlignment.Left
--[[
Getting the most accurate player FPS.
DevForum Link: https://devforum.roblox.com/t/get-client-fps-trough-a-script/282631/13
Credits: HowManySmall
]]
local TimeFunction = time
local LastIteration, Start
local FrameUpdateTable = {}
game:GetService("RunService").Heartbeat:Connect(function()
LastIteration = TimeFunction()
for Index = #FrameUpdateTable, 1, -1 do
FrameUpdateTable[Index + 1] = FrameUpdateTable[Index] >= LastIteration - 1 and FrameUpdateTable[Index] or nil
end
FrameUpdateTable[1] = LastIteration
FPS.Text = tostring(math.floor(TimeFunction() - Start >= 1 and #FrameUpdateTable or #FrameUpdateTable / (TimeFunction() - Start))) .. " FPS"
end)
Start = TimeFunction()
end
local Minimize = Instance.new("TextButton")
Minimize.Parent = TopBar
Minimize.Size = UDim2.new(0,16,1,0)
Minimize.Position = UDim2.new(1,-34,0,0)
Minimize.Text = "-"
Minimize.BackgroundTransparency = 1
Minimize.TextColor3 = Color3.fromRGB(0,0,0)
Minimize.Font = Enum.Font.Arial
Minimize.TextSize = 14
local Close = Instance.new("TextButton")
Close.Parent = TopBar
Close.Size = UDim2.new(0,16,1,0)
Close.Position = UDim2.new(1,-18,0,0)
Close.Text = "X"
Close.BorderSizePixel = 0
Close.BackgroundColor3 = Color3.fromRGB(255,50,50)
Close.BackgroundTransparency = 1
Close.TextColor3 = Color3.fromRGB(0,0,0)
Close.Font = Enum.Font.Arial
Close.TextSize = 12
Close.MouseEnter:Connect(function()
tweenService:Create(
Close,
TweenInfo.new(
0.2,
Enum.EasingStyle.Quint,
Enum.EasingDirection.Out
),
{
BackgroundTransparency = 0
}
):Play()
end)
Close.MouseLeave:Connect(function()
tweenService:Create(
Close,
TweenInfo.new(
0.4,
Enum.EasingStyle.Quint,
Enum.EasingDirection.Out
),
{
BackgroundTransparency = 1
}
):Play()
end)
local TextService = game:GetService("TextService")
local Scroller = Instance.new("ScrollingFrame")
Scroller.Parent = Main
Scroller.Size = UDim2.new(0, 370, 0, 255)
Scroller.Position = UDim2.new(0, 5, 0, 24)
Scroller.BackgroundColor3 = Color3.fromRGB(245,245,245)
Scroller.BorderColor3 = Color3.fromRGB(150,150,150)
Scroller.ScrollBarImageColor3 = Color3.fromRGB(0,0,0)
Scroller.ScrollBarThickness = 6
Scroller.ScrollingDirection = Enum.ScrollingDirection.XY
Scroller.CanvasSize = UDim2.new(0,0,0,255)
local Lines = Instance.new("TextLabel")
Lines.Parent = Scroller
Lines.Size = UDim2.new(0,30,0,255)
Lines.BackgroundColor3 = Color3.fromRGB(200,200,200)
Lines.TextColor3 = Color3.fromRGB(100,100,100)
Lines.Font = Enum.Font.Code
Lines.TextSize = 12
Lines.TextXAlignment = Enum.TextXAlignment.Center
Lines.TextYAlignment = Enum.TextYAlignment.Top
Lines.Text = "1"
local ScriptBox = Instance.new("TextBox")
ScriptBox.Parent = Scroller
ScriptBox.Position = UDim2.new(0,35,0,0)
ScriptBox.Size = UDim2.new(1,-35,0,255)
ScriptBox.BackgroundTransparency = 0
ScriptBox.BackgroundColor3 = Color3.fromRGB(ScriptBoxBackgroundColor,ScriptBoxBackgroundColor,ScriptBoxBackgroundColor)
ScriptBox.Text = "print('hello world')"
ScriptBox.TextColor3 = Color3.fromRGB(ScriptBoxTextColor,ScriptBoxTextColor,ScriptBoxTextColor)
ScriptBox.TextXAlignment = Enum.TextXAlignment.Left
ScriptBox.TextYAlignment = Enum.TextYAlignment.Top
ScriptBox.ClearTextOnFocus = false
ScriptBox.MultiLine = true
ScriptBox.TextWrapped = false
ScriptBox.Font = Enum.Font.Code
ScriptBox.TextSize = 12
local ScriptBoxBackgroundColor
local ScriptBoxTextColor
local function updatescriptboxcolors(bkgcolor, txtcolor)
-- this is like the only time i've seen column be "useful"
ScriptBoxBackgroundColor = bkgcolor or 233
ScriptBoxTextColor = txtcolor or 10
ScriptBox.BackgroundColor3 = Color3.fromRGB(ScriptBoxBackgroundColor,ScriptBoxBackgroundColor,ScriptBoxBackgroundColor)
ScriptBox.TextColor3 = Color3.fromRGB(ScriptBoxTextColor,ScriptBoxTextColor,ScriptBoxTextColor)
end
updatescriptboxcolors()
local function GetLineHeight()
local testSize = TextService:GetTextSize(
"A",
ScriptBox.TextSize,
ScriptBox.Font,
Vector2.new(math.huge, math.huge)
)
return testSize.Y
end
local LINE_HEIGHT = GetLineHeight()
local function GetCursorLine()
local pos = ScriptBox.CursorPosition
if pos < 1 then return nil end
local textBefore = ScriptBox.Text:sub(1, pos - 1)
local line = 1
for _ in textBefore:gmatch("\n") do
line += 1
end
return line
end
local function GetCursorX()
local pos = ScriptBox.CursorPosition
if pos < 1 then return nil end
local textBefore = ScriptBox.Text:sub(1, pos - 1)
local lastLine = textBefore:match("([^\n]*)$") or ""
local size = TextService:GetTextSize(
lastLine,
ScriptBox.TextSize,
ScriptBox.Font,
Vector2.new(math.huge, math.huge)
)
return size.X
end
local function GetMaxLineWidth()
local maxWidth = 0
for line in ScriptBox.Text:gmatch("([^\n]*)\n?") do
local size = TextService:GetTextSize(
line,
ScriptBox.TextSize,
ScriptBox.Font,
Vector2.new(math.huge, math.huge)
)
if size.X > maxWidth then
maxWidth = size.X
end
end
return maxWidth
end
local function UpdateLayout()
if Scroller.AbsoluteSize.X < 1 or Scroller.AbsoluteSize.Y < 1 then return end
local count = 1
for _ in ScriptBox.Text:gmatch("\n") do
count += 1
end
local nums = {}
for i = 1, count do
nums[i] = tostring(i)
end
Lines.Text = table.concat(nums, "\n")
local height = math.max(count * LINE_HEIGHT + LINE_HEIGHT, 255)
local maxWidth = GetMaxLineWidth()
local width = math.max(maxWidth + 100, Scroller.AbsoluteSize.X)
ScriptBox.Size = UDim2.new(0, math.max(width - 35, Scroller.AbsoluteSize.X - 35), 0, height)
Lines.Size = UDim2.new(0, 30, 0, height)
Scroller.CanvasSize = UDim2.new(0, width, 0, height)
end
local function UpdateScroll()
if Scroller.AbsoluteSize.X < 1 or Scroller.AbsoluteSize.Y < 1 then return end
local currentLine = GetCursorLine()
local cursorX = GetCursorX()
if not currentLine or not cursorX then return end
local width = Scroller.CanvasSize.X.Offset
local height = Scroller.CanvasSize.Y.Offset
local y = (currentLine - 1) * LINE_HEIGHT
local visibleTop = Scroller.CanvasPosition.Y
local visibleBottom = visibleTop + Scroller.AbsoluteWindowSize.Y
local newY = Scroller.CanvasPosition.Y
if y < visibleTop then
newY = math.max(0, y)
elseif y + LINE_HEIGHT > visibleBottom then
newY = math.max(0, y - Scroller.AbsoluteWindowSize.Y + LINE_HEIGHT + 4)
end
local visibleLeft = Scroller.CanvasPosition.X
local visibleRight = visibleLeft + Scroller.AbsoluteWindowSize.X
local newX = Scroller.CanvasPosition.X
if cursorX < visibleLeft then
newX = math.max(0, cursorX)
elseif cursorX > visibleRight - 60 then
newX = math.max(0, cursorX - Scroller.AbsoluteWindowSize.X + 80)
end
newX = math.min(newX, math.max(0, width - Scroller.AbsoluteWindowSize.X))
newY = math.min(newY, math.max(0, height - Scroller.AbsoluteWindowSize.Y))
Scroller.CanvasPosition = Vector2.new(newX, newY)
end
ScriptBox:GetPropertyChangedSignal("Text"):Connect(function()
UpdateLayout()
UpdateScroll()
end)
ScriptBox:GetPropertyChangedSignal("CursorPosition"):Connect(UpdateScroll)
Scroller:GetPropertyChangedSignal("AbsoluteSize"):Connect(UpdateLayout)
UpdateLayout()
Lines.InputBegan:Connect(function(input)
if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end
local relativeY = (input.Position.Y - Lines.AbsolutePosition.Y) + Scroller.CanvasPosition.Y
local lineIndex = math.floor(relativeY / LINE_HEIGHT) + 1
local totalLines = 1
for _ in ScriptBox.Text:gmatch("\n") do
totalLines += 1
end
lineIndex = math.clamp(lineIndex, 1, totalLines)
local text = ScriptBox.Text
local lineStart = 1
local currentLine = 1
while currentLine < lineIndex do
local nl = text:find("\n", lineStart, true)
if not nl then break end
lineStart = nl + 1
currentLine += 1
end
local nl = text:find("\n", lineStart, true)
ScriptBox:CaptureFocus()
ScriptBox.SelectionStart = lineStart
if nl then
ScriptBox.CursorPosition = nl + 1
else
ScriptBox.CursorPosition = #text + 1
end
end)
local SidePanel = Instance.new("ScrollingFrame")
SidePanel.Parent = Main
SidePanel.Size = UDim2.new(0,70,0,255)
SidePanel.Position = UDim2.new(0,360,0,24)
SidePanel.BackgroundColor3 = Color3.fromRGB(188,188,188)
SidePanel.BorderColor3 = Color3.fromRGB(150,150,150)
SidePanel.ScrollBarThickness = 6
SidePanel.ScrollingDirection = Enum.ScrollingDirection.Y
SidePanel.CanvasSize = UDim2.new(0,0,0,0)
do
local UIPadding = Instance.new("UIPadding")
UIPadding.Parent = SidePanel
UIPadding.PaddingBottom = UDim.new(0, 1)
UIPadding.PaddingLeft = UDim.new(0, 1)
UIPadding.PaddingRight = UDim.new(0, 1)
UIPadding.PaddingTop = UDim.new(0, 1)
end
local SidePanelLayout = Instance.new("UIListLayout")
SidePanelLayout.Parent = SidePanel
SidePanelLayout.SortOrder = Enum.SortOrder.LayoutOrder
SidePanelLayout.FillDirection = Enum.FillDirection.Vertical
SidePanelLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
SidePanel.CanvasSize = UDim2.new(0, 0, 0, SidePanelLayout.AbsoluteContentSize.Y)
end)
local function AddSideButton(text, fontSize)
local btn = Instance.new("TextButton")
btn.Parent = SidePanel
btn.Size = UDim2.new(1,0,0,75)
btn.Text = text..''
btn.BackgroundColor3 = Color3.fromRGB(245,245,245)
btn.BorderColor3 = Color3.fromRGB(150,150,150)
btn.TextColor3 = Color3.fromRGB(0,0,0)
btn.Font = Enum.Font.Arial
btn.AutoButtonColor = false
btn.TextSize = fontSize or 13
createinteractivefeature(btn)
return btn
end
local Exec = AddSideButton("EXE", 15)
local Clear = AddSideButton("CLEAR", 12)
local Copy = AddSideButton("COPY", 11)
Copy.MouseButton1Down:Connect(function()
pcall(function()
(toclipboard or setclipboard or clipboard or syn.toclipboard or syn.setclipboard)(tostring(ScriptBox.Text))
end)
end)
--local R6 = AddSideButton("R6", 14)
do
local Dissector = Instance.new("ImageButton")
Dissector.Parent = Main
Dissector.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Dissector.BackgroundTransparency = 1
Dissector.ImageTransparency = 0.2
Dissector.BorderColor3 = Color3.fromRGB(0, 0, 0)
AddSounds(Dissector)
Dissector.Position = UDim2.new(
0,
30 * 16,
0,
280
)
if not isfile('ligma/exhume.png') then
writefile('ligma/exhume.png', game:HttpGet('https://raw.githubusercontent.com/Phemeti/Project-Ligma-Recreation/refs/heads/main/Exhume_Dark.png'))
end
Dissector.BorderSizePixel = 0
Dissector.Size = UDim2.new(0, 30, 0, 30)
Dissector.Image = getcustomasset('ligma/exhume.png')
Dissector.ImageColor3 = Color3.fromRGB(0, 0, 0)
AddTooltip(Dissector, 'Script viewer by Squrri')
local Frame = Instance.new("Frame")
local TextLabel = Instance.new("TextLabel")
local TextLabel_2 = Instance.new("TextLabel")
local TextLabel_3 = Instance.new("TextLabel")
local TextBox = Instance.new("TextBox")
local UICorner = Instance.new("UICorner")
local UIStroke = Instance.new("UIStroke")
local TextButton = Instance.new("TextButton")
local UIStroke_2 = Instance.new("UIStroke")
local UICorner_2 = Instance.new("UICorner")
local TextButton_2 = Instance.new("TextButton")
--local UIStroke_3 = Instance.new("UIStroke")
Frame.Visible = false
Frame.Parent = ScreenGui
Frame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Frame.BorderColor3 = Color3.fromRGB(158, 158, 158)
Frame.AnchorPoint = Vector2.new(0.5, 0.5)
local UserInputService = game:GetService("UserInputService")
local gui = Frame
local dragging
local dragInput
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
gui.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
gui.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = gui.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
gui.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
Frame.Position = UDim2.new(0.5, 0, 0.5, 0)
Frame.Size = UDim2.new(0, 347, 0, 257)
TextLabel.Parent = Frame
TextLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextLabel.BackgroundTransparency = 1.000
TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.BorderSizePixel = 0
TextLabel.Size = UDim2.new(0, 347, 0, 29)
TextLabel.Font = Enum.Font.Arial
TextLabel.Text = "Exhume Dissector"
TextLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.TextSize = 20.000
TextLabel_2.Parent = Frame
TextLabel_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextLabel_2.BackgroundTransparency = 1.000
TextLabel_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextLabel_2.BorderSizePixel = 0
TextLabel_2.Position = UDim2.new(0, 0, 0.112840466, 0)
TextLabel_2.Size = UDim2.new(0, 347, 0, 42)
TextLabel_2.Font = Enum.Font.Arial
TextLabel_2.Text = "Exhume is a Exploit API that allows you to view LocalScripts/ModuleScripts contents, letting you see stuff like functions, variables, etc."
TextLabel_2.TextColor3 = Color3.fromRGB(83, 83, 83)
TextLabel_2.TextSize = 12.000
TextLabel_2.TextStrokeColor3 = Color3.fromRGB(121, 121, 121)
TextLabel_2.TextWrapped = true
TextLabel_2.TextYAlignment = Enum.TextYAlignment.Top
TextLabel_3.Parent = Frame
TextLabel_3.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextLabel_3.BackgroundTransparency = 1.000
TextLabel_3.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextLabel_3.BorderSizePixel = 0
TextLabel_3.Position = UDim2.new(0, 0, 0.898832679, 0)
TextLabel_3.Size = UDim2.new(0, 347, 0, 26)
TextLabel_3.Font = Enum.Font.Arial
TextLabel_3.Text = "To use this, first, put in the script name that you want, then, press \"Dissect\", and Exhume will do the work."
TextLabel_3.TextColor3 = Color3.fromRGB(112, 112, 112)
TextLabel_3.TextSize = 10.000
TextLabel_3.TextStrokeColor3 = Color3.fromRGB(121, 121, 121)
TextLabel_3.TextWrapped = true
TextLabel_3.TextYAlignment = Enum.TextYAlignment.Top
TextBox.Parent = Frame
TextBox.BackgroundColor3 = Color3.fromRGB(238, 238, 238)
TextBox.BorderColor3 = Color3.fromRGB(188, 188, 188)
TextBox.Position = UDim2.new(0.0778097957, 0, 0.365758747, 0)
TextBox.Size = UDim2.new(0, 294, 0, 41)
TextBox.ClearTextOnFocus = false
TextBox.Font = Enum.Font.RobotoMono
TextBox.Text = ""
TextBox.PlaceholderText = 'Animate...'
TextBox.TextColor3 = Color3.fromRGB(0, 0, 0)
TextBox.TextSize = 15.000
UICorner.CornerRadius = UDim.new(0, 3)
UICorner.Parent = TextBox
UIStroke.Parent = TextBox
UIStroke.Color = Color3.fromRGB(186, 186, 186)
UIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
TextButton.Parent = Frame
TextButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextButton.BorderSizePixel = 0
TextButton.Position = UDim2.new(0.291066289, 0, 0.61867702, 0)
TextButton.Size = UDim2.new(0, 146, 0, 32)
TextButton.Font = Enum.Font.SourceSans
TextButton.Text = "Dissect"
TextButton.TextColor3 = Color3.fromRGB(0, 0, 0)
TextButton.TextScaled = true
local UIPadding = Instance.new("UIPadding")
UIPadding.Parent = TextButton
UIPadding.PaddingBottom = UDim.new(0, 6)
UIPadding.PaddingLeft = UDim.new(0, 5)
UIPadding.PaddingRight = UDim.new(0, 5)
UIPadding.PaddingTop = UDim.new(0, 6)
local canDissect = true
TextButton.MouseButton1Down:Connect(function()
if not canDissect then return end
local name = TextBox.Text
local script = nil
canDissect = false
TextButton.Text = 'Finding script...'
for _, v in game:GetDescendants() do
if (v:IsA('LocalScript') or v:IsA('ModuleScript')) and v.Name:find(name) then
script = v
break
end
end
if script == nil then
TextButton.Text = 'Couldn\'t find: '..name
task.wait(1)
TextButton.Text = "Dissect"
canDissect = true
return
end
TextButton.Text = 'Loading Exhume API...'
local Exhume = loadstring(game:HttpGet('https://raw.githubusercontent.com/Phemeti/Exhume/refs/heads/main/ExhumeAPI.lua', true))()
TextButton.Text = 'Dissecting script, please wait...'
local suc, res = pcall(function()
return Exhume:RunDissector(script)
end)
if suc then
ScriptBox.Text = res:GetContents()
TextButton.Text = 'Finished!'
task.wait(1)
TextButton.Text = 'Dissect'
canDissect = true
else
TextButton.Text = 'Failed to dissect...'
task.wait(1)
TextButton.Text = 'Dissect'
canDissect = true
end
end)
UIStroke_2.Parent = TextButton
UIStroke_2.Color = Color3.fromRGB(186, 186, 186)
UIStroke_2.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
UICorner_2.CornerRadius = UDim.new(0, 3)
UICorner_2.Parent = TextButton
TextButton_2.Parent = Frame
TextButton_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton_2.BorderColor3 = Color3.fromRGB(200, 200, 200)
TextButton_2.Position = UDim2.new(0.927953899, 0, 0, 0)
TextButton_2.Size = UDim2.new(0, 25, 0, 25)
TextButton_2.Font = Enum.Font.SourceSans
TextButton_2.Text = "X"
TextButton_2.TextColor3 = Color3.fromRGB(0, 0, 0)
TextButton_2.TextSize = 16.000
TextButton_2.AutoButtonColor = false
--UIStroke_3.Parent = Frame
--UIStroke_3.Color = Color3.fromRGB(186, 186, 186)
--UIStroke_3.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
Dissector.MouseButton1Down:Connect(function()
Frame.Visible = not Frame.Visible
end)
TextButton_2.MouseButton1Down:Connect(function()
Frame.Visible = false
end)
TextButton_2.MouseEnter:Connect(function()
tweenService:Create(
TextButton_2,
TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.Out),
{ BackgroundColor3 = Color3.fromRGB(200, 40, 40) }
):Play()
end)
TextButton_2.MouseLeave:Connect(function()
tweenService:Create(
TextButton_2,
TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out),
{ BackgroundColor3 = Color3.fromRGB(255, 255, 255) }
):Play()
end)
createinteractivefeature(TextButton)
end
local RightPanel = Instance.new("ScrollingFrame")
local function paneldivider(text)
local DiViDeR = Instance.new("TextButton")
DiViDeR.Parent = RightPanel
DiViDeR.AutoButtonColor = false
DiViDeR.Size = UDim2.new(1,0,0,25)
DiViDeR.Position = UDim2.new(0,0,0,0)
DiViDeR.Text = text
DiViDeR.BorderSizePixel = 0
DiViDeR.BackgroundColor3 = Color3.fromRGB(222,222,222)
DiViDeR.TextColor3 = Color3.fromRGB(70,70,70)
DiViDeR.Font = Enum.Font.Arial
DiViDeR.TextSize = 13
end
local PANELIST = Instance.new("UIListLayout")
PANELIST.Parent = RightPanel
RightPanel.Parent = Main
RightPanel.ScrollBarThickness = 5
RightPanel.Size = UDim2.new(0,90,0,255)
RightPanel.Position = UDim2.new(0,445,0,24)
RightPanel.BackgroundColor3 = Color3.fromRGB(177,177,177)
RightPanel.BorderColor3 = Color3.fromRGB(150,150,150)
local function AddFile(name, script)
if not isfile('ligma/blacklisted_files/'..name) then
local thing = Instance.new("TextButton")
thing.Parent = RightPanel
thing.Size = UDim2.new(1,0,0,20)
thing.Position = UDim2.new(0,0,0,66)
thing.Text = tostring(name)..' '
thing.BackgroundColor3 = Color3.fromRGB(245,245,245)
thing.BorderSizePixel = 0.7
thing.TextColor3 = Color3.fromRGB(0,0,0)
thing.Font = Enum.Font.Arial
thing.TextSize = 11
thing.MouseButton1Down:Connect(function()
ScriptBox.Text = tostring(script)
end)
end
end
paneldivider('Client-Side')
AddFile('Vape V4', [[loadstring(game:HttpGet("https://raw.githubusercontent.com/7GrandDadPGN/VapeV4ForRoblox/main/NewMainScript.lua", true))()]])
AddFile('Hrakeri', [[local LMG2L = {}
-- ScreenGui
LMG2L["ScreenGui_1"] = Instance.new("ScreenGui", game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui"))
LMG2L["ScreenGui_1"].Name = "Hrakeri gui v3"
LMG2L["ScreenGui_1"].ZIndexBehavior = Enum.ZIndexBehavior.Sibling
-- Frame
LMG2L["Frame_2"] = Instance.new("Frame", LMG2L["ScreenGui_1"])
local frame = LMG2L["Frame_2"]
frame.BorderSizePixel = 0
frame.BackgroundColor3 = Color3.fromRGB(255,244,0)
frame.Size = UDim2.new(0,626,0,396)
frame.Position = UDim2.new(0,74,0,-52)
-- Drag Script
local UserInputService = game:GetService("UserInputService")
local dragging, dragStart, startPos = false, nil, nil
local function update(input)
local delta = input.Position - dragStart
frame.Position = UDim2.new(startPos.X.Scale,startPos.X.Offset + delta.X,startPos.Y.Scale,startPos.Y.Offset + delta.Y)
end
frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
frame.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseMovement) then
update(input)
end
end)
-- Title
LMG2L["TextLabel_16"] = Instance.new("TextLabel", frame)
local title = LMG2L["TextLabel_16"]
title.Size = UDim2.new(0,624,0,34)
title.Position = UDim2.new(0,0,0,2)
title.BackgroundTransparency = 1
title.Text = "Hrakeri gui v3"
title.TextScaled = true
title.TextWrapped = true
title.TextColor3 = Color3.fromRGB(255,255,255)
-- TextBox Project
LMG2L["TextBox_17"] = Instance.new("TextBox", frame)
local projectBox = LMG2L["TextBox_17"]
projectBox.Size = UDim2.new(0,244,0,118)
projectBox.Position = UDim2.new(0,16,0,260)
projectBox.BackgroundColor3 = Color3.fromRGB(255,255,255)
projectBox.BorderSizePixel = 2
projectBox.Text = ""
projectBox.TextScaled = true
projectBox.TextWrapped = true
-- Clear Project Button
LMG2L["TextButton17_18"] = Instance.new("TextButton", frame)
local clearBtn = LMG2L["TextButton17_18"]
clearBtn.Size = UDim2.new(0,126,0,64)
clearBtn.Position = UDim2.new(0,380,0,326)
clearBtn.Text = "Clear"
clearBtn.TextScaled = true
clearBtn.BackgroundColor3 = Color3.fromRGB(255,0,0)
clearBtn.MouseButton1Click:Connect(function()
projectBox.Text = ""
end)
-- Function to create buttons easily
local function createButton(name,text,pos,size,color,callback)
local btn = Instance.new("TextButton", frame)
btn.Name = name
btn.Text = text
btn.Position = pos
btn.Size = size
btn.BackgroundColor3 = color
btn.TextScaled = true
btn.TextWrapped = true
btn.MouseButton1Click:Connect(callback)
return btn
end
-- Buttons
-- Skybox (لون Ø£ØÙ…ر)
createButton("TextButton1","Skybox",UDim2.new(0,8,0,54),UDim2.new(0,102,0,50),Color3.fromRGB(255,0,0),function()
local Lighting = game:GetService("Lighting")
local sky = Instance.new("Sky")
sky.Parent = Lighting
local id = "rbxassetid://72667530159358"
sky.SkyboxBk = id
sky.SkyboxDn = id
sky.SkyboxFt = id
sky.SkyboxLf = id
sky.SkyboxRt = id
sky.SkyboxUp = id
Lighting.Brightness = 2
Lighting.ClockTime = 14
end)
-- Decal
createButton("TextButton2","Decal",UDim2.new(0,124,0,56),UDim2.new(0,102,0,48),Color3.fromRGB(255,0,0),function()
local id = "72667530159358"
for _, obj in pairs(game:GetDescendants()) do
if obj:IsA("Part") or obj:IsA("MeshPart") then
for _, face in pairs({Enum.NormalId.Back,Enum.NormalId.Top,Enum.NormalId.Left,Enum.NormalId.Front,Enum.NormalId.Right,Enum.NormalId.Bottom}) do
local decal = Instance.new("Decal")
decal.Parent = obj
decal.Texture = "rbxassetid://"..id
decal.Face = face
end
end
end
end)
-- Pictures
createButton("TextButton3","Pictures",UDim2.new(0,236,0,58),UDim2.new(0,106,0,48),Color3.fromRGB(255,0,0),function()
local pe = Instance.new("ParticleEmitter", game.Players.LocalPlayer.Character:WaitForChild("Torso"))
pe.Texture = "rbxassetid://72667530159358"
pe.VelocitySpread = 90
end)
-- Jump scare
createButton("TextButton4","Jump scare",UDim2.new(0,356,0,56),UDim2.new(0,102,0,48),Color3.fromRGB(255,0,0),function()
local me = game.Players.LocalPlayer.Name
for i,v in pairs(game.Players:GetPlayers()) do
if v.Name ~= me and v:FindFirstChild("PlayerGui") and not v.PlayerGui:FindFirstChild("Screamer") then
spawn(function()
local newgui = Instance.new("ScreenGui", v.PlayerGui)
newgui.Name = "Screamer"
local newimage = Instance.new("ImageLabel", newgui)
newimage.Image = "rbxassetid://102469273448144"
newimage.Size = UDim2.new(1,0,1,0)
local s = Instance.new("Sound", newgui)
s.SoundId = "rbxassetid://6129291390"
s.Volume = 10
s.Looped = true
s:Play()
wait(9.4)
newgui:Destroy()
end)
end
end
end)]])
AddFile('TeamMaker', [[-- LocalScript inside StarterPlayerScripts
local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local UserInputService = game:GetService("UserInputService")
local Player = Players.LocalPlayer
local PlayerGui = Player:WaitForChild("PlayerGui")
-- Create ScreenGui
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "TeamCreatorGui"
ScreenGui.Parent = PlayerGui
-- Create Frame
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0, 300, 0, 180)
Frame.Position = UDim2.new(0.5, -150, 0.5, -90)
Frame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
Frame.BorderSizePixel = 0
Frame.Parent = ScreenGui
-- Title (for dragging)
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 30)
Title.Position = UDim2.new(0, 0, 0, 0)
Title.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
Title.Text = "Team Creator"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.SourceSansBold
Title.TextSize = 20
Title.Parent = Frame
-- Make GUI draggable
local dragging = false
local dragInput, mousePos, framePos
Title.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
mousePos = input.Position
framePos = Frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
Title.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
local delta = input.Position - mousePos
Frame.Position = UDim2.new(framePos.X.Scale, framePos.X.Offset + delta.X, framePos.Y.Scale, framePos.Y.Offset + delta.Y)
end
end)
-- Input box to type team name
local TextBox = Instance.new("TextBox")
TextBox.Size = UDim2.new(0, 220, 0, 30)
TextBox.Position = UDim2.new(0.5, -110, 0, 50)
TextBox.PlaceholderText = "Enter team name..."
TextBox.Text = ""
TextBox.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
TextBox.TextColor3 = Color3.fromRGB(255, 255, 255)
TextBox.Font = Enum.Font.SourceSans
TextBox.TextSize = 18
TextBox.Parent = Frame
-- Button to create team
local Button = Instance.new("TextButton")
Button.Size = UDim2.new(0, 150, 0, 40)
Button.Position = UDim2.new(0.5, -75, 0, 100)
Button.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
Button.TextColor3 = Color3.fromRGB(255, 255, 255)
Button.Font = Enum.Font.SourceSansBold
Button.TextSize = 20
Button.Text = "Create Team"
Button.Parent = Frame
-- When clicked: create team and put yourself in it
Button.MouseButton1Click:Connect(function()
local teamName = TextBox.Text
if teamName == "" then return end
-- Check if team already exists
local existingTeam = Teams:FindFirstChild(teamName)
if existingTeam then
Player.Team = existingTeam
else
-- Create new team
local newTeam = Instance.new("Team")
newTeam.Name = teamName
newTeam.TeamColor = BrickColor.Random() -- random color
newTeam.Parent = Teams
Player.Team = newTeam
end
end)]])
AddFile('KoopKidd', [[-- Note by Squrri: this only works on hd admin games : ^ >\n]]..game:HttpGet('https://rawscripts.net/raw/Universal-Script-k00pgui-v8-F3X-EDITON-52670'))
AddFile('GamepassSpoofer', [[loadstring(game:HttpGet("https://gist.githubusercontent.com/infault/49cc129c99962d52b8c3980088e2de3c/raw/5778989c37e85bd576f7ec44fab9b0f53c7bafe8/gistfile1.txt"))()]])
AddFile('Dex', [[loadstring(game:HttpGet("https://raw.githubusercontent.com/infyiff/backup/main/dex.lua"))()]])
AddFile('Remote Spy', [[loadstring(game:HttpGet("https://raw.githubusercontent.com/infyiff/backup/main/SimpleSpyV3/main.lua"))()]])
AddFile('Infinite Yield', [[loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))()]])
AddFile('Anti-Kick', [[local old
old = hookmetamethod(game, '__namecall', function(self, ...)
if getnamecallmethod() == 'Kick' and self == game.Players.LocalPlayer then
return
end
return old(self, ...)
end)]])
AddFile('Anti-Shutdown', [[local old
old = hookmetamethod(game, '__namecall', function(self, ...)
if getnamecallmethod() == 'Shutdown' then
return
end
return old(self, ...)
end)]])
AddFile('Spoof WalkSpeed', [[local FakeWalkSpeedValue = 16
local old
old = hookmetamethod(game, '__index', function(self, prop)
if self == game.Players.LocalPlayer.Character.Humanoid and prop == 'WalkSpeed' then
return FakeWalkSpeedValue
end
return old(self, prop)
end)]])
AddFile('Spoof JumpPower', [[local FakeJumpPowerValue = 50
local old
old = hookmetamethod(game, '__index', function(self, prop)
if self == game.Players.LocalPlayer.Character.Humanoid and prop == 'JumpPower' then
return FakeJumpPowerValue
end
return old(self, prop)
end)]])
AddFile('FOV', [[local Value = 120
workspace.CurrentCamera.FieldOfView = Value]])
paneldivider('Server-Side')
local CoolGui = Instance.new("TextButton")
CoolGui.Parent = RightPanel
CoolGui.Size = UDim2.new(1,0,0,20)
CoolGui.Position = UDim2.new(0,0,0,0)
CoolGui.Text = "c00lgui"
CoolGui.BackgroundColor3 = Color3.fromRGB(245,245,245)
CoolGui.BorderSizePixel = 0
CoolGui.TextColor3 = Color3.fromRGB(0,0,0)
CoolGui.Font = Enum.Font.Arial
CoolGui.TextSize = 13
local InfYield = Instance.new("TextButton")
InfYield.Parent = RightPanel
InfYield.Size = UDim2.new(1,0,0,20)
InfYield.Position = UDim2.new(0,0,0,22)
InfYield.Text = "Infinite Yield"
InfYield.BackgroundColor3 = Color3.fromRGB(245,245,245)
InfYield.BorderSizePixel = 0.7
InfYield.TextColor3 = Color3.fromRGB(0,0,0)
InfYield.Font = Enum.Font.Arial
InfYield.TextSize = 11
local GonerHub = Instance.new("TextButton")
GonerHub.Parent = RightPanel
GonerHub.Size = UDim2.new(1,0,0,20)
GonerHub.Position = UDim2.new(0,0,0,44)
GonerHub.Text = "Goner Hub"
GonerHub.BackgroundColor3 = Color3.fromRGB(245,245,245)
GonerHub.BorderSizePixel = 0.7
GonerHub.TextColor3 = Color3.fromRGB(0,0,0)
GonerHub.Font = Enum.Font.Arial
GonerHub.TextSize = 11
local MessageTxt = Instance.new("TextButton")
MessageTxt.Parent = RightPanel
MessageTxt.Size = UDim2.new(1,0,0,20)
MessageTxt.Position = UDim2.new(0,0,0,66)
MessageTxt.Text = "message.txt"
MessageTxt.BackgroundColor3 = Color3.fromRGB(245,245,245)
MessageTxt.BorderSizePixel = 0.7
MessageTxt.TextColor3 = Color3.fromRGB(0,0,0)
MessageTxt.Font = Enum.Font.Arial
MessageTxt.TextSize = 11
AddFile('John Doe', 'require(8973689388).load("'..(player.Name or 'yourusername')..'")')
AddFile('Kasper Trolling', 'require(6414405864).KUTG("'..(player.Name or 'yourusername')..'")')
AddFile('Krono Hub', 'require(9275293020).load("'..(player.Name or 'yourusername')..'")')
AddFile('Sonic Hub', 'require(5352721272):Fire("'..(player.Name or 'yourusername')..'")')
AddFile('Abuse Detection', 'require(8626754476):AD()')
AddFile('Anti-Kick', 'require(4820862445).load')
AddFile('C00lKidd', 'require(12621812058).yeskido("'..(player.Name or 'yourusername')..'")')
AddFile('Noot Noot', 'require(5034863407).subtosyntax64("'..(player.Name or 'yourusername')..'")')
AddFile('Destroyer GUI', 'require(5257685661):Fire("'..(player.Name or 'yourusername')..'")')
AddFile('cXyzGUI', 'require(12861793677).cXyzskidd("'..(player.Name or 'yourusername')..'")')
AddFile('Virus Troll 😔', 'require(7192763922).load("'..('username, not u btw')..'")')
AddFile('HD Admin', 'require(6707668066).virus("'..(player.Name or 'yourusername')..'")')
local minimized = false
local closed = false
local NormalSize = Main.Size
local NormalPos = Main.Position
local function SetVisible(state)
ScriptBox.Visible = state
SidePanel.Visible = state
RightPanel.Visible = state
end
Minimize.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
SetVisible(false)
Main.Size = UDim2.new(0,540,0,18)
else
SetVisible(true)
Main.Size = NormalSize
Main.Position = NormalPos
end
end)
Close.MouseButton1Click:Connect(function()
closed = true
Main.Visible = false
end)
UIS.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode[Config.Keybind:GetValue()] then
if closed then
closed = false
Main.Visible = true
else
Main.Visible = not Main.Visible
end
end
end)
Clear.MouseButton1Click:Connect(function()
ScriptBox.Text = ""
end)
-- R6 BUTTON
--R6.MouseButton1Click:Connect(function()
-- ScriptBox.Text = "R6 Enabled"
--end)
CoolGui.MouseButton1Click:Connect(function()
ScriptBox.Text = "require(14125553864)"
end)
InfYield.MouseButton1Click:Connect(function()
ScriptBox.Text = "require(7634392335)"
end)
GonerHub.MouseButton1Click:Connect(function()
ScriptBox.Text = "require(5954678096)"
end)
MessageTxt.MouseButton1Click:Connect(function()
ScriptBox.Text = [[
local msg = Instance.new("Hint")
msg.Text = "chirafinalphase was here"
msg.Parent = workspace
task.wait(5)
msg:Destroy()
]]
end)
Exec.MouseButton1Click:Connect(function()
local source = ScriptBox.Text
local func, err = loadstring(source)
if func then
pcall(func)
else
warn(err)
end
end)
local dragging = false
local dragInput
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
Main.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
TopBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = Main.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
TopBar.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
UIS.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
local Gear = Instance.new("ImageButton")
Gear.Parent = Main
Gear.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Gear.BackgroundTransparency = 1
Gear.ImageTransparency = 0.2
Gear.BorderColor3 = Color3.fromRGB(0, 0, 0)
AddSounds(Gear)
Gear.Position = UDim2.new(
0,
0,
0,
280
)
Gear.BorderSizePixel = 0
Gear.Size = UDim2.new(0, 30, 0, 30)
Gear.Image = "rbxassetid://2484550853"
Gear.ImageColor3 = Color3.fromRGB(0, 0, 0)
AddTooltip(Gear, 'Change UI Settings')
local SETTINGS = Instance.new("Frame")
local UIStroke = Instance.new("UIStroke")
local TextLabel = Instance.new("TextLabel")
local ImageLabel = Instance.new("ImageLabel")
local TextLabel_2 = Instance.new("TextLabel")
local SettingsSlider = Instance.new("ScrollingFrame")
local SETTINGSLIST = Instance.new("UIListLayout")
SETTINGSLIST.Parent = SettingsSlider
SETTINGSLIST.Padding = UDim.new(0, 10)
local UIStroke_2 = Instance.new("UIStroke")
local UIPadding = Instance.new("UIPadding")
local UIPadding_2 = Instance.new("UIPadding")
SETTINGS.Name = "SETTINGS"
SETTINGS.Parent = ScreenGui
SETTINGS.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SETTINGS.BorderColor3 = Color3.fromRGB(158, 158, 158)
SETTINGS.ClipsDescendants = true
SETTINGS.Visible = false
SETTINGS.AnchorPoint = Vector2.new(0.5, 0.5)
SETTINGS.Position = UDim2.new(0.5, 0, 0.5, 0)
SETTINGS.Size = UDim2.new(0, 347, 0, 257)
draggable(SETTINGS)
addClose(SETTINGS)
Gear.MouseButton1Down:Connect(function()
SETTINGS.Visible = not SETTINGS.Visible
end)
UIStroke.Parent = SETTINGS
UIStroke.Color = Color3.fromRGB(186, 186, 186)
UIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
TextLabel.Parent = SETTINGS
TextLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextLabel.BackgroundTransparency = 1.000
TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.BorderSizePixel = 0
TextLabel.Position = UDim2.new(0.308357358, 0, 0, 0)
TextLabel.Size = UDim2.new(0, 133, 0, 29)
TextLabel.Font = Enum.Font.Arial
TextLabel.Text = "Ligma Settings"
TextLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.TextSize = 20.000
ImageLabel.Parent = SETTINGS
ImageLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ImageLabel.BackgroundTransparency = 1.000
ImageLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
ImageLabel.BorderSizePixel = 0
ImageLabel.Position = UDim2.new(-0.544668615, 0, -0.264591426, 0)
ImageLabel.Size = UDim2.new(0, 450, 0, 450)
ImageLabel.Image = "rbxassetid://2484550853"
ImageLabel.ImageColor3 = Color3.fromRGB(0, 0, 0)
ImageLabel.ImageTransparency = 0.950
TextLabel_2.Parent = SETTINGS
TextLabel_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextLabel_2.BackgroundTransparency = 1.000
TextLabel_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextLabel_2.BorderSizePixel = 0
TextLabel_2.Position = UDim2.new(0.0605187304, 0, 0.112840466, 0)
TextLabel_2.Size = UDim2.new(0, 305, 0, 31)
TextLabel_2.Font = Enum.Font.Arial
TextLabel_2.Text = "Change keybinds, theme, ETC."
TextLabel_2.TextColor3 = Color3.fromRGB(109, 109, 109)
TextLabel_2.TextSize = 14.000
TextLabel_2.TextWrapped = true
TextLabel_2.TextYAlignment = Enum.TextYAlignment.Top
SettingsSlider.Name = "SettingsSlider"
SettingsSlider.Parent = SETTINGS
SettingsSlider.Active = true
SettingsSlider.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SettingsSlider.BackgroundTransparency = 1.000
SettingsSlider.BorderColor3 = Color3.fromRGB(0, 0, 0)
SettingsSlider.BorderSizePixel = 0
SettingsSlider.Position = UDim2.new(0.0459483899, 0, 0.22965309, 0)
SettingsSlider.Size = UDim2.new(0, 314, 0, 180)
SettingsSlider.ScrollBarImageColor3 = Color3.fromRGB(0, 0, 0)
SettingsSlider.ScrollBarThickness = 8
UIPadding_2.Parent = SettingsSlider
UIPadding_2.PaddingBottom = UDim.new(0, 8)
UIPadding_2.PaddingLeft = UDim.new(0, 5)
UIPadding_2.PaddingRight = UDim.new(0, 5)
UIPadding_2.PaddingTop = UDim.new(0, 8)
local function createtoggle(name, default, callback)
local state = default
local frame = Instance.new("Frame")
frame.Parent = SettingsSlider
frame.Size = UDim2.new(0, 286, 0, 32)
frame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
frame.BorderColor3 = Color3.fromRGB(186, 186, 186)
local label = Instance.new("TextLabel")
label.Parent = frame
label.BackgroundTransparency = 1
label.Size = UDim2.new(1, -60, 1, 0)
label.Position = UDim2.new(0, 6, 0, 0)
label.Font = Enum.Font.Arial
label.TextSize = 14
label.TextXAlignment = Enum.TextXAlignment.Left
label.TextColor3 = Color3.fromRGB(0, 0, 0)
label.Text = name
local button = Instance.new("TextButton")
button.Parent = frame
button.Size = UDim2.new(0, 23, 0, 23)
button.Position = UDim2.new(1, -23 - 7, 0.5, -11)
button.Font = Enum.Font.Arial
button.BorderSizePixel = 2
button.Text = ''
button.TextSize = 12
button.AutoButtonColor = false
local function update()
button.BackgroundColor3 = state and Color3.fromRGB(120, 220, 120)
or Color3.fromRGB(220, 120, 120)
end
button.MouseButton1Click:Connect(function()
state = not state
update()
if callback then
callback(state)
end
end)
update()
return {
GetValue = function()
return state
end,
GetObject = function(self)
return button
end
}
end
local function toBool(v)
return v == true or v == "true"
end
local function createtextbox(name, val, onChange)
local TEXTBOX_MODULE = Instance.new("Frame")
local TEXTBOX_TextLabel = Instance.new("TextLabel")
local TEXTBOX_UIStroke = Instance.new("UIStroke")
local TEXTBOX_TextBox = Instance.new("TextBox")
local UIStroke_2 = Instance.new("UIStroke")
local UIPadding = Instance.new("UIPadding")
TEXTBOX_MODULE.Name = "TEXTBOX_MODULE"
TEXTBOX_MODULE.Parent = SettingsSlider
TEXTBOX_MODULE.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TEXTBOX_MODULE.BorderColor3 = Color3.fromRGB(0, 0, 0)
TEXTBOX_MODULE.BorderSizePixel = 0
TEXTBOX_MODULE.Size = UDim2.new(0, 286, 0, 48)
TEXTBOX_TextLabel.Name = "TEXTBOX_TextLabel"
TEXTBOX_TextLabel.Parent = TEXTBOX_MODULE
TEXTBOX_TextLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TEXTBOX_TextLabel.BackgroundTransparency = 1.000
TEXTBOX_TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
TEXTBOX_TextLabel.BorderSizePixel = 0
TEXTBOX_TextLabel.Position = UDim2.new(0, 0, -0.0214460511, 0)
TEXTBOX_TextLabel.Size = UDim2.new(0, 285, 0, 17)
TEXTBOX_TextLabel.Font = Enum.Font.Arial
TEXTBOX_TextLabel.Text = name
TEXTBOX_TextLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
TEXTBOX_TextLabel.TextSize = 14.000
TEXTBOX_UIStroke.Name = "TEXTBOX_UIStroke"
TEXTBOX_UIStroke.Parent = TEXTBOX_MODULE
TEXTBOX_UIStroke.Color = Color3.fromRGB(186, 186, 186)
TEXTBOX_UIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
TEXTBOX_TextBox.Name = "TEXTBOX_TextBox"
TEXTBOX_TextBox.Parent = TEXTBOX_MODULE
TEXTBOX_TextBox.BackgroundColor3 = Color3.fromRGB(225, 225, 225)
TEXTBOX_TextBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
TEXTBOX_TextBox.BorderSizePixel = 0
TEXTBOX_TextBox.Position = UDim2.new(0.0244755242, 0, 0.373902649, 0)
TEXTBOX_TextBox.Size = UDim2.new(0, 270, 0, 24)
TEXTBOX_TextBox.ClearTextOnFocus = false
TEXTBOX_TextBox.Font = Enum.Font.Arial
TEXTBOX_TextBox.Text = val or ''
TEXTBOX_TextBox.TextColor3 = Color3.fromRGB(0, 0, 0)
TEXTBOX_TextBox.TextScaled = true
TEXTBOX_TextBox.TextSize = 14.000
TEXTBOX_TextBox.TextWrapped = true
UIStroke_2.Parent = TEXTBOX_TextBox
UIStroke_2.Color = Color3.fromRGB(186, 186, 186)
UIStroke_2.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
UIPadding.Parent = TEXTBOX_TextBox
UIPadding.PaddingBottom = UDim.new(0, 5)
UIPadding.PaddingLeft = UDim.new(0, 6)
UIPadding.PaddingRight = UDim.new(0, 6)
UIPadding.PaddingTop = UDim.new(0, 5)
if onChange then
TEXTBOX_TextBox:GetPropertyChangedSignal('Text'):Connect(function()
onChange()
end)
end
return {
GetValue = function(self)
return TEXTBOX_TextBox.Text
end,
GetObject = function(self)
return TEXTBOX_MODULE
end
}
end
local keybind
keybind = createtextbox('Keybind', readfile('ligma/config/Keybind') or 'Z', function()
Config.Keybind:SetValue(keybind:GetValue())
end)
AddTooltip(keybind:GetObject(), 'The key to toggle the GUI')
local soundstoggle
soundstoggle = createtoggle('Enable Sounds', toBool(readfile('ligma/config/PS4Logo')), (function()
local state = soundstoggle:GetValue()
Config.SoundsToggle:SetValue(state and 'true' or 'false')
end))
AddTooltip(soundstoggle:GetObject(), 'Toggles mute on hover/click/close sounds.')
local logotoggle
logotoggle = createtoggle('Ligma Logo', toBool(readfile('ligma/config/PS4Logo')), (function()
local state = logotoggle:GetValue()
Config.PS4Logo:SetValue(state and 'true' or 'false')
shared.PS4Logo.Visible = state
end))
AddTooltip(logotoggle:GetObject(), 'Toggles the PS3 bottle cap in the bottom left')
local fpscounter
local showFPS = readfile('ligma/config/FPSCounter') == 'true' and true or false
fpscounter = createtoggle('FPS Counter', toBool(readfile('ligma/config/FPSCounter')), function()
local state = fpscounter:GetValue()
Config.FPSCounter:SetValue(state and 'true' or 'false')
showFPS = readfile('ligma/config/FPSCounter') == 'true' and true or false
end)
local ignorescriptwarning
ignorescriptwarning = createtoggle('Ignore Script Warning', toBool(readfile('ligma/config/IgnoreScriptwarning')), function()
local state = ignorescriptwarning:GetValue()
Config.IgnoreScriptwarning:SetValue(state and 'true' or 'false')
end)
AddTooltip(ignorescriptwarning:GetObject(), 'Disables the un-verified script popup')
local enabletooltips
enabletooltips = createtoggle('Enable Tooltips', toBool(readfile('ligma/config/EnableTooltips')), function()
local state = enabletooltips:GetValue()
Config.EnableTooltips:SetValue(state and 'true' or 'false')
end)
AddTooltip(enabletooltips:GetObject(), 'Enables these things (what you\'re looking at right now)')
shared.PS4Logo.Visible = toBool(readfile('ligma/config/PS4Logo'))
--https://discord.gg/uGtE5D6gmX
do
local Frame = Instance.new("Frame")
local TextLabel = Instance.new("TextLabel")
local Scroller = Instance.new("ScrollingFrame")
local TextLabel_2 = Instance.new("TextLabel")
Frame.Parent = ScreenGui
Frame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Frame.BorderColor3 = Color3.fromRGB(175, 175, 175)
Frame.AnchorPoint = Vector2.new(0.5, 0.5)
Frame.Visible = false
Frame.Position = UDim2.new(0.5, 0, 0.5, 0)
Frame.Size = UDim2.new(0, 418, 0, 290)
draggable(Frame)
addClose(Frame)
TextLabel.Parent = Frame
TextLabel.BackgroundTransparency = 1
TextLabel.Position = UDim2.new(0.210526317, 0, 0.0348837227, 0)
TextLabel.Size = UDim2.new(0, 242, 0, 23)
TextLabel.Font = Enum.Font.Arial
TextLabel.Text = "Info"
TextLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.TextScaled = true
TextLabel.TextWrapped = true
Scroller.Parent = Frame
Scroller.BackgroundTransparency = 0.95
Scroller.BackgroundColor3 = Color3.fromRGB(0,0,0)
Scroller.BorderSizePixel = 0
Scroller.Position = UDim2.new(0.057, 0, 0.147, 0)
Scroller.Size = UDim2.new(0, 380, 0, 185)
Scroller.CanvasSize = UDim2.new(0, 0, 0, 0)
Scroller.ScrollBarThickness = 7
Scroller.AutomaticCanvasSize = Enum.AutomaticSize.Y
local stroke = Instance.new('UIStroke')
stroke.Thickness = 1
stroke.Color = Color3.fromRGB(177,177,177)
stroke.Parent = Scroller
TextLabel_2.Parent = Scroller
TextLabel_2.BackgroundTransparency = 1
TextLabel_2.BorderSizePixel = 0
TextLabel_2.Position = UDim2.new(0, 0, 0, 0)
TextLabel_2.Size = UDim2.new(1, -5, 0, 0)
TextLabel_2.AutomaticSize = Enum.AutomaticSize.Y
TextLabel_2.Font = Enum.Font.Arial
TextLabel_2.RichText = true
local function bold(str)
return '' .. str .. ''
end
TextLabel_2.Text =
bold('Project Ligma')..' was a highly private Roblox executor and serverside framework that became infamous within the exploiting community for capabilities such as '..bold('FE (Filtering Enabled) bypass')..', advanced serverside execution, and later claims of '..bold('Byfron/Hyperion bypass')..'.\n\nUnlike most public executors at the time, Project Ligma was rumored to rely on '..bold('hidden backdoors')..', vulnerable remotes, and custom replication methods that allowed effects to appear server-sided in certain games.\n\n'..
'The project gained '..bold('major notoriety')..' after being '..bold('associated with several Roblox game incidents and trolling showcases')..', most notably involving '..bold('MeepCity')..'.\n\nIts reputation was amplified through videos uploaded by '..bold('popular Roblox exploit YouTubers')..' such as '..bold('Blame')..', '..bold('Citizen')..' (known for serverside content), and '..bold('TypicalModders')..', many of which showcased what power Project Ligma held.\n\n'..
'According to exploit-community discussions, the executor was never fully public and was distributed only among a small circle of users. However, around '..bold('2021-2022')..', reports began surfacing that parts of the project had been '..bold('leaked online')..', though many users claimed the leaked files were '..bold('incomplete, outdated, or missing the real core functionality')..'. Some of these files were later uploaded to '..bold('GitHub')..' by '..bold('third parties who stated they were not responsible for how the files were used')..'.\n\n'..
'Following the leaks, Project Ligma was rumored to have collaborated or merged with another '..bold('private project')..' known as '..bold('"Voxel"')..', which allegedly continued development under updated branding and newer builds. Although many stories surrounding the project were likely exaggerated, Project Ligma remains one of the '..bold('most well-known and mythologized private executors from the late FE and early Hyperion-era Roblox exploiting scene')..'.'
TextLabel_2.TextColor3 = Color3.fromRGB(118, 118, 118)
TextLabel_2.TextSize = 14
TextLabel_2.TextWrapped = true
TextLabel_2.TextXAlignment = Enum.TextXAlignment.Left
TextLabel_2.TextYAlignment = Enum.TextYAlignment.Top
local CreditLabel = Instance.new("TextLabel")
CreditLabel.Name = "CreditLabel"
CreditLabel.Parent = Frame
CreditLabel.BackgroundTransparency = 1
CreditLabel.Position = UDim2.new(0.057, 0, 0.94, 0)
CreditLabel.Size = UDim2.new(0, 369, 0, 16)
CreditLabel.Font = Enum.Font.Arial
CreditLabel.Text = "Credits: Squrri (@evohibit), chira (@chiraphase), King (@ima_lost_child) on discord"
CreditLabel.TextColor3 = Color3.fromRGB(145,145,145)
CreditLabel.TextSize = 10
CreditLabel.TextWrapped = true
CreditLabel.TextYAlignment = Enum.TextYAlignment.Top
local ReadAloud = Instance.new("TextButton")
ReadAloud.Parent = Frame
ReadAloud.BackgroundColor3 = Color3.fromRGB(244,244,244)
ReadAloud.BorderSizePixel = 1
ReadAloud.BorderColor3 = Color3.fromRGB(150,150,150)
ReadAloud.Position = UDim2.new(0.057, 0, 0.82, 0)
ReadAloud.Size = UDim2.new(0, 100, 0, 24)
ReadAloud.Font = Enum.Font.Arial
ReadAloud.Text = "Read Aloud"
ReadAloud.TextColor3 = Color3.fromRGB(10,10,10)
ReadAloud.TextSize = 14
AddTooltip(ReadAloud, 'Text to speech reader')
AddSounds(ReadAloud)
createinteractivefeature(ReadAloud)
local canClick = true
local reading = false
ReadAloud.MouseButton1Click:Connect(function()
if reading then
if shared.speech then
shared.speech:Stop()
end
canClick = true
reading = false
ReadAloud.Text = 'Read Aloud'
return
end
if not canClick then return end
canClick = false
ReadAloud.Text = 'Please Wait...'
writefile('ligma/ProjectLigmaInfo.mp3', game:HttpGet('https://github.com/Phemeti/Project-Ligma-Recreation/raw/refs/heads/main/ProjectLigmaInfo.mp3'))
local Speech = Ligma:AddSound({
Id = getcustomasset('ligma/ProjectLigmaInfo.mp3'),
Volume = 2
})
shared.speech = Speech
ReadAloud.Text = 'Stop reading'
Speech:Play()
reading = true
end)
local gridPlace = 1
local Info = Instance.new("ImageButton")
Info.Parent = Main
Info.BackgroundTransparency = 1
Info.ImageTransparency = 0.01
Info.BorderSizePixel = 0
Info.Position = UDim2.new(
0,
30 + 5 * gridPlace,
0,
282.5
)
AddTooltip(Info, 'Information about Project Ligma & credits')
-- Js's Duels on top son
-- - PMR
Info.Size = UDim2.new(0, 25, 0, 25)
Info.Image = "rbxassetid://4562954602"
Info.ImageColor3 = Color3.fromRGB(0, 0, 0)
AddSounds(Info)
Info.MouseButton1Down:Connect(function()
Frame.Visible = not Frame.Visible
end)
end
do -- Hub GUI
local Hub = Instance.new("ImageButton")
Hub.Parent = Main
Hub.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Hub.BackgroundTransparency = 1
Hub.ImageTransparency = 0.2
Hub.BorderColor3 = Color3.fromRGB(0, 0, 0)
AddSounds(Hub)
Hub.Position = UDim2.new(
0,
30 * 17,
0,
280
)
Hub.BorderSizePixel = 0
Hub.Size = UDim2.new(0, 30, 0, 30)
Hub.Image = "rbxassetid://11570895459"
Hub.ImageColor3 = Color3.fromRGB(0, 0, 0)
AddTooltip(Hub, 'Access more scripts from Scriptblox')
local Frame = Instance.new("Frame")
local TextLabel = Instance.new("TextLabel")
local Objects = Instance.new("ScrollingFrame")
local UIListLayout = Instance.new("UIListLayout")
local UIPadding = Instance.new("UIPadding")
local TextBox = Instance.new("TextBox")
local UICorner = Instance.new("UICorner")
local UIPadding_2 = Instance.new("UIPadding")
shared.HubFrame = Frame
Frame.Parent = ScreenGui
Frame.Visible = false
Frame.AnchorPoint = Vector2.new(0.5, 0.5)
Frame.BackgroundColor3 = Color3.fromRGB(26, 26, 26)
Frame.BorderColor3 = Color3.fromRGB(175, 175, 175)
Frame.Position = UDim2.new(0.5, 0, 0.5, 0)
Frame.Size = UDim2.new(0, 562, 0, 291)
addClose(Frame)
TextLabel.Parent = Frame
TextLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextLabel.BackgroundTransparency = 1.000
TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.BorderSizePixel = 0
TextLabel.Position = UDim2.new(0.349111974, 0, 0.0306642931, 0)
TextLabel.Size = UDim2.new(0, 170, 0, 21)
TextLabel.Font = Enum.Font.Arial
TextLabel.Text = "Hub"
TextLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TextLabel.TextScaled = true
TextLabel.TextSize = 14.000
TextLabel.TextWrapped = true
Objects.Name = "Objects"
Objects.Parent = Frame
Objects.Active = true
Objects.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Objects.BackgroundTransparency = 1.000
Objects.BorderColor3 = Color3.fromRGB(0, 0, 0)
Objects.BorderSizePixel = 0
Objects.Position = UDim2.new(0.0180000495, 0, 0.256387204, 0)
Objects.Size = UDim2.new(0, 544, 0, 209)
Objects.ScrollBarThickness = 10
UIListLayout.Parent = Objects
UIListLayout.FillDirection = Enum.FillDirection.Horizontal
UIListLayout.Padding = UDim.new(0, 15)
local function UpdateCanvas()
Objects.CanvasSize = UDim2.new(
0,
UIListLayout.AbsoluteContentSize.X + 20,
0,
0
)
end
UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(UpdateCanvas)
UpdateCanvas()
UIPadding.Parent = Objects
UIPadding.PaddingBottom = UDim.new(0, 1)
UIPadding.PaddingLeft = UDim.new(0, 1)
UIPadding.PaddingRight = UDim.new(0, 1)
UIPadding.PaddingTop = UDim.new(0, 1)
TextBox.Parent = Frame
TextBox.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
TextBox.BackgroundTransparency = 0.500
TextBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextBox.BorderSizePixel = 0
TextBox.Position = UDim2.new(0.0177935939, 0, 0.126884222, 0)
TextBox.Size = UDim2.new(0, 397, 0, 32)
TextBox.ClearTextOnFocus = false
TextBox.Font = Enum.Font.Arial
TextBox.PlaceholderText = "Search..."
TextBox.Text = ""
TextBox.TextColor3 = Color3.fromRGB(255, 255, 255)
TextBox.TextScaled = true
TextBox.TextSize = 14.000
TextBox.TextWrapped = true
local Fetch = Instance.new("TextButton")
Fetch.Name = "Fetch"
Fetch.Parent = Frame
Fetch.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Fetch.BorderColor3 = Color3.fromRGB(147, 147, 147)
Fetch.Position = UDim2.new(0.740213513, 0, 0.12371134, 0)
Fetch.Size = UDim2.new(0, 134, 0, 32)
Fetch.Font = Enum.Font.Arial
Fetch.Text = "Fetch"
Fetch.TextColor3 = Color3.fromRGB(0, 0, 0)
Fetch.TextSize = 20.000
UICorner.CornerRadius = UDim.new(0, 3)
UICorner.Parent = TextBox
UIPadding_2.Parent = TextBox
UIPadding_2.PaddingBottom = UDim.new(0, 7)
UIPadding_2.PaddingLeft = UDim.new(0, 7)
UIPadding_2.PaddingRight = UDim.new(0, 7)
UIPadding_2.PaddingTop = UDim.new(0, 7)
local STATUS = Instance.new("TextLabel")
local UIPadding = Instance.new("UIPadding")
STATUS.Name = "STATUS"
STATUS.Parent = Frame
STATUS.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
STATUS.BackgroundTransparency = 1.000
STATUS.BorderColor3 = Color3.fromRGB(0, 0, 0)
STATUS.BorderSizePixel = 0
STATUS.Size = UDim2.new(1, 0, 1, 0)
STATUS.ZIndex = 656
STATUS.Font = Enum.Font.Arial
STATUS.RichText = true
STATUS.Text = 'Welcome to the Script Hub.\nSearch up any script across ScriptBlox.'
STATUS.TextColor3 = Color3.fromRGB(122, 122, 122)
STATUS.TextSize = 25.000
STATUS.TextStrokeTransparency = 0.000
STATUS.TextTransparency = 0.400
STATUS.TextYAlignment = Enum.TextYAlignment.Bottom
UIPadding.Parent = STATUS
UIPadding.PaddingBottom = UDim.new(0, 30)
local function Status(str)
print(str)
STATUS.Text = str
end
local noproblemscriptblox = Instance.new("TextButton")
noproblemscriptblox.Name = "noproblemscriptblox"
noproblemscriptblox.Parent = Frame
noproblemscriptblox.AutoButtonColor = false
noproblemscriptblox.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
noproblemscriptblox.BackgroundTransparency = 1.000
noproblemscriptblox.BorderColor3 = Color3.fromRGB(0, 0, 0)
noproblemscriptblox.BorderSizePixel = 0
noproblemscriptblox.Position = UDim2.new(0.0302491095, 0, 0.0444099978, 0)
noproblemscriptblox.Size = UDim2.new(0, 190, 0, 13)
noproblemscriptblox.Font = Enum.Font.Arial
noproblemscriptblox.Text = "docs.scriptblox.com"
noproblemscriptblox.TextColor3 = Color3.fromRGB(95, 95, 95)
noproblemscriptblox.TextSize = 14.000
noproblemscriptblox.TextXAlignment = Enum.TextXAlignment.Left
AddTooltip(noproblemscriptblox, 'Click to copy the URL', true)
noproblemscriptblox.MouseButton1Down:Connect(function()
noproblemscriptblox.TextColor3 = Color3.fromRGB(
168 + 35,
114 + 35,
255 + 35
)
setclipboard('https://docs.scriptblox.com/')
end)
noproblemscriptblox.MouseEnter:Connect(function()
tweenService:Create(
noproblemscriptblox,
TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out),
{
TextColor3 = Color3.fromRGB(168, 114, 255)
}
):Play()
end)
noproblemscriptblox.MouseLeave:Connect(function()
tweenService:Create(
noproblemscriptblox,
TweenInfo.new(0.7, Enum.EasingStyle.Quint, Enum.EasingDirection.Out),
{
TextColor3 = Color3.fromRGB(95, 95, 95)
}
):Play()
end)
Hub.MouseButton1Down:Connect(function()
Frame.Visible = not Frame.Visible
end)
local function Clear()
for _, v in ipairs(Objects:GetChildren()) do
if not v:IsA("UIListLayout") and not v:IsA("UIPadding") then
v:Destroy()
end
end
end
-- Credits to Roblox Thot for showing solara vulnerabilites :^)
--[[
https://www.youtube.com/watch?v=w4JfAjhinV0
https://www.youtube.com/watch?v=hGZ0O_yjFFs
https://www.youtube.com/watch?v=pMCsj2xV4IA
]]
-- surely solara already fixed these vulnerabilites, meaning I no longer need that warning thing
-- but, contrary to what I believe, I'll still keep it. who cares lol ¯\_(ツ)_/¯
local function AddScript(data)
local Script = Instance.new("ImageLabel")
local UICorner = Instance.new("UICorner")
local UIStroke = Instance.new("UIStroke")
local Name = Instance.new("TextLabel")
local UIGradient = Instance.new("UIGradient")
local Copy = Instance.new("TextButton")
local Run = Instance.new("TextButton")
Script.Name = "Script"
Script.Parent = Objects
Script.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Script.BorderColor3 = Color3.fromRGB(0, 0, 0)
Script.BorderSizePixel = 0
Script.Size = UDim2.new(0, 166, 0, 130)
Script.Image = data.Image or "rbxassetid://6558374856"
Script.ImageTransparency = 0.400
UICorner.CornerRadius = UDim.new(0, 3)
UICorner.Parent = Script
UIStroke.Parent = Script
UIStroke.Color = Color3.fromRGB(198, 198, 198)
Name.Name = "Name"
Name.Parent = Script
Name.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Name.BackgroundTransparency = 1.000
Name.BorderColor3 = Color3.fromRGB(0, 0, 0)
Name.BorderSizePixel = 0
Name.Position = UDim2.new(0, 0, 0.0538461544, 0)
Name.Size = UDim2.new(0, 166, 0, 22)
Name.Font = Enum.Font.Arial
Name.Text = data.Name or "Script Name"
Name.TextColor3 = Color3.fromRGB(255, 255, 255)
Name.TextScaled = true
Name.TextSize = 14.000
Name.TextStrokeTransparency = 0.000
Name.TextWrapped = true
UIGradient.Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(49, 49, 49))}
UIGradient.Rotation = -90
UIGradient.Parent = Script
Copy.Name = "Copy"
Copy.Parent = Script
Copy.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Copy.BackgroundTransparency = 0.500
Copy.BorderColor3 = Color3.fromRGB(179, 179, 179)
Copy.Position = UDim2.new(0.0421686731, 0, 0.77692306, 0)
Copy.Size = UDim2.new(0, 71, 0, 23)
Copy.Font = Enum.Font.Arial
Copy.Text = "Copy Script"
Copy.TextColor3 = Color3.fromRGB(0, 0, 0)
Copy.TextSize = 12.000
createinteractivefeature(Copy)
Run.Name = "Run"
Run.Parent = Script
Run.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Run.BackgroundTransparency = 0.500
Run.BorderColor3 = Color3.fromRGB(179, 179, 179)
Run.Position = UDim2.new(0.52409637, 0, 0.77692306, 0)
Run.Size = UDim2.new(0, 71, 0, 23)
Run.Font = Enum.Font.Arial
Run.Text = "Run Script"
Run.TextColor3 = Color3.fromRGB(0, 0, 0)
Run.TextSize = 12.000
createinteractivefeature(Run)
local ranSoTrusted = false
Copy.MouseButton1Down:Connect(function()
if data.Verified then
setclipboard(tostring(data.Script))
else
setclipboard('--[[ This code is not verified by Scriptblox! Run with caution as script may contain malware by abusing exploit vulnerabilites. ]]\n'..tostring(data.Script))
end
end)
Run.MouseButton1Down:Connect(function()
if not data.Verified and not ranSoTrusted and readfile('ligma/config/IgnoreScriptwarning') == 'true' then
local MainFrame = Instance.new("Frame")
local ScriptTitle = Instance.new("TextLabel")
local lol = Instance.new("TextLabel")
local Run = Instance.new("TextButton")
local Close = Instance.new("TextButton")
MainFrame.Name = "MainFrame"
MainFrame.Parent = ScreenGui
MainFrame.AnchorPoint = Vector2.new(0.5, 0.5)
MainFrame.BackgroundColor3 = Color3.fromRGB(26, 26, 26)
MainFrame.BorderColor3 = Color3.fromRGB(175, 175, 175)
MainFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
MainFrame.Size = UDim2.new(0, 332, 0, 228)
addClose(MainFrame)
ScriptTitle.Name = "ScriptTitle"
ScriptTitle.Parent = MainFrame
ScriptTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ScriptTitle.BackgroundTransparency = 1.000
ScriptTitle.BorderColor3 = Color3.fromRGB(0, 0, 0)
ScriptTitle.BorderSizePixel = 0
ScriptTitle.Position = UDim2.new(0.036144577, 0, 0.0701754391, 0)
ScriptTitle.Size = UDim2.new(0, 307, 0, 25)
ScriptTitle.Font = Enum.Font.Arial
ScriptTitle.Text = "Run script: "..data.Name.."?"
ScriptTitle.TextColor3 = Color3.fromRGB(253, 253, 253)
ScriptTitle.TextScaled = true
ScriptTitle.TextSize = 14.000
ScriptTitle.TextWrapped = true
lol.Name = "lol"
lol.Parent = MainFrame
lol.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
lol.BackgroundTransparency = 1.000
lol.BorderColor3 = Color3.fromRGB(0, 0, 0)
lol.BorderSizePixel = 0
lol.Position = UDim2.new(0.036144577, 0, 0.210526317, 0)
lol.Size = UDim2.new(0, 307, 0, 88)
lol.Font = Enum.Font.Arial
lol.RichText = true
lol.Text = "This script may contain malware by abusing exploit vulnerabilities, or steal your account info.\n\nSource: Reddit and YouTube have shown that exploits like Solara have been prone to many vulnerabilites, letting users run windows programs. Some channels, many of which are \"Roblox Thot\" shown a screen melter using Solara."
lol.TextColor3 = Color3.fromRGB(129, 129, 129)
lol.TextSize = 17.000
lol.TextWrapped = true
lol.TextYAlignment = Enum.TextYAlignment.Top
Run.Name = "Run"
Run.Parent = MainFrame
Run.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Run.BorderColor3 = Color3.fromRGB(150, 150, 150)
Run.Position = UDim2.new(0.0451807231, 0, 0.758771837, 0)
Run.Size = UDim2.new(0, 146, 0, 34)
Run.Font = Enum.Font.Arial
Run.Text = "Run"
Run.TextColor3 = Color3.fromRGB(0, 0, 0)
Run.TextSize = 20.000
createinteractivefeature(Run)
Close.Name = "Close"
Close.Parent = MainFrame
Close.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Close.BorderColor3 = Color3.fromRGB(150, 150, 150)
Close.Position = UDim2.new(0.512048185, 0, 0.758771837, 0)
Close.Size = UDim2.new(0, 146, 0, 34)
Close.Font = Enum.Font.Arial
Close.Text = "Close"
Close.TextColor3 = Color3.fromRGB(0, 0, 0)
Close.TextSize = 20.000
createinteractivefeature(Close)
Close.MouseButton1Down:Connect(function()
MainFrame:Destroy()
end)
Run.MouseButton1Down:Connect(function()
MainFrame:Destroy()
loadstring(tostring(data.Script))()
ranSoTrusted = true
end)
draggable(MainFrame)
else
loadstring(tostring(data.Script))()
end
end)
end
--[[
{
"result": {
"totalPages": number,
"nextPage": number,
"max": number,
"scripts": [
{
"_id": "string",
"title": "string",
"game": {
"_id": "string",
"name": "string",
"imageUrl": "string"
},
"slug": "string",
"verified": boolean,
"key": boolean,
"views": number,
"scriptType": "string",
"isUniversal": boolean,
"isPatched": boolean,
"image": "string",
"createdAt": "string",
"script": "string"
},
...
]
}
}
]]
local canFetch = true
local function FetchScripts(search)
if not canFetch then
return
end
canFetch = true
Clear()
Status("Fetching Scripts... Please Wait.")
local suc, data = pcall(function()
local url
if search ~= nil and search ~= "" then
url = "https://scriptblox.com/api/script/search?q="..http:UrlEncode(search)
else
url = "https://scriptblox.com/api/script/fetch"
end
local response = game:HttpGet(url)
return http:JSONDecode(response)
end)
if not suc then
Status(tostring(data))
canFetch = true
return
end
if not data or not data.result or not data.result.scripts or #data.result.scripts <= 0 then
Status("No Available Scripts...")
canFetch = true
return
end
Status("Results for: "..tostring(search)..' (may take a while...)')
for _, script in ipairs(data.result.scripts) do
local imageUrl = tostring(script.image or "")
local cachedFile
for _, file in ipairs(listfiles('ligma/.cache')) do
local suc, contents = pcall(readfile, file)
if suc and contents == game:HttpGet("https://scriptblox.com"..imageUrl) then
cachedFile = file
break
end
end
if not cachedFile then
local fileName = tostring(math.random(1000, 1000000))..".png"
cachedFile = 'ligma/.cache'.."/"..fileName
writefile(cachedFile, game:HttpGet("https://scriptblox.com"..imageUrl))
end
AddScript({
Image = getcustomasset(cachedFile) or 'rbxassetid://16202377195',
Name = script.title or "Unknown",
Script = script.script or "-- no script",
Verified = script.verified or false
})
end
task.wait(0.05)
Status("")
canFetch = true
end
Fetch.MouseButton1Down:Connect(function()
FetchScripts(tostring(TextBox.Text))
end)
end
draggable(shared.HubFrame)
do
local ConsoleButton = Instance.new("ImageButton")
ConsoleButton.Parent = Main
ConsoleButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ConsoleButton.BackgroundTransparency = 1
ConsoleButton.ImageTransparency = 0.2
ConsoleButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
AddSounds(ConsoleButton)
ConsoleButton.Position = UDim2.new(0, 30 * 15, 0, 280)
ConsoleButton.BorderSizePixel = 0
ConsoleButton.Size = UDim2.new(0, 30, 0, 30)
ConsoleButton.Image = "rbxassetid://4728126418"
ConsoleButton.ImageColor3 = Color3.fromRGB(0, 0, 0)
AddTooltip(ConsoleButton, 'Shows you console output redirected from Roblox.')
local ConsoleWindow = Instance.new("Frame")
local UIStroke = Instance.new("UIStroke")
local OutputFrame = Instance.new("Frame")
local UICorner = Instance.new("UICorner")
local UIStroke_2 = Instance.new("UIStroke")
local UIPadding = Instance.new("UIPadding")
local OutputScrollingFrame = Instance.new("ScrollingFrame")
local UIListLayout = Instance.new("UIListLayout")
local OutputTextHere = Instance.new("TextLabel")
local EmptyIcon = Instance.new("ImageLabel")
local Title = Instance.new("TextLabel")
local Clear = Instance.new("TextButton")
local UICorner_2 = Instance.new("UICorner")
local UIStroke_3 = Instance.new("UIStroke")
local Copy = Instance.new("TextButton")
local UICorner_3 = Instance.new("UICorner")
local UIStroke_4 = Instance.new("UIStroke")
ConsoleWindow.Name = "ConsoleWindow"
ConsoleWindow.Parent = ScreenGui
ConsoleWindow.AnchorPoint = Vector2.new(0.5, 0.5)
ConsoleWindow.BackgroundColor3 = Color3.fromRGB(21, 21, 21)
ConsoleWindow.BorderColor3 = Color3.fromRGB(0, 0, 0)
ConsoleWindow.BorderSizePixel = 0
ConsoleWindow.Position = UDim2.new(0.5, 0, 0.5, 0)
ConsoleWindow.Size = UDim2.new(0, 356, 0, 268)
ConsoleWindow.Visible = false
addClose(ConsoleWindow)
draggable(ConsoleWindow)
ConsoleButton.MouseButton1Down:Connect(function()
ConsoleWindow.Visible = not ConsoleWindow.Visible
end)
UIStroke.Parent = ConsoleWindow
UIStroke.Color = Color3.fromRGB(190, 190, 190)
OutputFrame.Name = "OutputFrame"
OutputFrame.Parent = ConsoleWindow
OutputFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
OutputFrame.BackgroundTransparency = 0.5
OutputFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
OutputFrame.BorderSizePixel = 0
OutputFrame.Position = UDim2.new(0.0449438207, 0, 0.13059701, 0)
OutputFrame.Size = UDim2.new(0, 325, 0, 194)
UICorner.CornerRadius = UDim.new(0, 5)
UICorner.Parent = OutputFrame
UIStroke_2.Parent = OutputFrame
UIStroke_2.Color = Color3.fromRGB(90, 76, 65)
UIStroke_2.Thickness = 1.02
UIPadding.Parent = OutputFrame
UIPadding.PaddingBottom = UDim.new(0, 5)
UIPadding.PaddingLeft = UDim.new(0, 7)
UIPadding.PaddingRight = UDim.new(0, 7)
UIPadding.PaddingTop = UDim.new(0, 5)
OutputScrollingFrame.Name = "OutputScrollingFrame"
OutputScrollingFrame.Parent = OutputFrame
OutputScrollingFrame.Active = true
OutputScrollingFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
OutputScrollingFrame.BackgroundTransparency = 1
OutputScrollingFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
OutputScrollingFrame.BorderSizePixel = 0
OutputScrollingFrame.Size = UDim2.new(1, 0, 1, 0)
OutputScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
OutputScrollingFrame.ScrollBarThickness = 4
OutputScrollingFrame.AutomaticCanvasSize = Enum.AutomaticSize.None
UIListLayout.Parent = OutputScrollingFrame
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 2)
OutputTextHere.Name = "OutputTextHere"
OutputTextHere.Parent = nil
OutputTextHere.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
OutputTextHere.BackgroundTransparency = 1
OutputTextHere.BorderColor3 = Color3.fromRGB(0, 0, 0)
OutputTextHere.BorderSizePixel = 0
OutputTextHere.Size = UDim2.new(1, -4, 0, 20)
OutputTextHere.Font = Enum.Font.RobotoMono
OutputTextHere.Text = ""
OutputTextHere.TextColor3 = Color3.fromRGB(168, 168, 168)
OutputTextHere.TextSize = 14
OutputTextHere.TextWrapped = true
OutputTextHere.TextXAlignment = Enum.TextXAlignment.Left
OutputTextHere.TextYAlignment = Enum.TextYAlignment.Top
OutputTextHere.AutomaticSize = Enum.AutomaticSize.Y
local messageColors = {
[Enum.MessageType.MessageOutput] = {200, 200, 200},
[Enum.MessageType.MessageInfo] = {100, 100, 255},
[Enum.MessageType.MessageWarning] = {255, 255, 150},
[Enum.MessageType.MessageError] = {200, 80, 80}
}
local function updateCanvas()
OutputScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, UIListLayout.AbsoluteContentSize.Y + 5)
OutputScrollingFrame.CanvasPosition = Vector2.new(0, math.max(0, OutputScrollingFrame.CanvasSize.Y.Offset))
end
UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(updateCanvas)
local function AppendOutput(str, color)
local newText = OutputTextHere:Clone()
newText.Parent = OutputScrollingFrame
newText.Text = tostring(str)
newText.TextColor3 = Color3.fromRGB(unpack(color or {200, 200, 200}))
newText.Visible = true
task.defer(updateCanvas)
end
logservice.MessageOut:Connect(function(message, messageType)
AppendOutput(message, messageColors[messageType])
end)
EmptyIcon.Name = "EmptyIcon"
EmptyIcon.Parent = OutputFrame
EmptyIcon.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
EmptyIcon.BackgroundTransparency = 1
EmptyIcon.BorderColor3 = Color3.fromRGB(0, 0, 0)
EmptyIcon.BorderSizePixel = 0
EmptyIcon.Position = UDim2.new(0.337620586, 0, 0.152173907, 0)
EmptyIcon.Size = UDim2.new(0, 100, 0, 128)
EmptyIcon.Image = "rbxassetid://136172851866833"
EmptyIcon.ImageTransparency = 0.93
local function updateEmpty()
EmptyIcon.Visible = #OutputScrollingFrame:GetChildren() <= 1
end
OutputScrollingFrame.ChildAdded:Connect(updateEmpty)
OutputScrollingFrame.ChildRemoved:Connect(updateEmpty)
Title.Name = "Title"
Title.Parent = ConsoleWindow
Title.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Title.BackgroundTransparency = 1
Title.BorderColor3 = Color3.fromRGB(0, 0, 0)
Title.BorderSizePixel = 0
Title.Size = UDim2.new(0, 356, 0, 35)
Title.Font = Enum.Font.Arial
Title.Text = "Console"
Title.TextColor3 = Color3.fromRGB(255, 212, 169)
Title.TextSize = 23
Title.TextStrokeColor3 = Color3.fromRGB(25, 25, 25)
Clear.Name = "Clear"
Clear.Parent = ConsoleWindow
Clear.BackgroundColor3 = Color3.fromRGB(13, 13, 13)
Clear.BorderColor3 = Color3.fromRGB(0, 0, 0)
Clear.BorderSizePixel = 0
Clear.Position = UDim2.new(0.0449438207, 0, 0.876865685, 0)
Clear.Size = UDim2.new(0, 159, 0, 23)
Clear.Font = Enum.Font.Arial
Clear.Text = "Clear Output"
Clear.TextColor3 = Color3.fromRGB(221, 148, 148)
Clear.TextSize = 14
Clear.TextStrokeTransparency = 0
UICorner_2.CornerRadius = UDim.new(0, 3)
UICorner_2.Parent = Clear
UIStroke_3.Parent = Clear
UIStroke_3.Color = Color3.fromRGB(67, 45, 45)
UIStroke_3.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
Clear.MouseButton1Click:Connect(function()
for _, child in ipairs(OutputScrollingFrame:GetChildren()) do
if child:IsA("TextLabel") then
child:Destroy()
end
end
updateCanvas()
updateEmpty()
end)
Copy.Name = "Copy"
Copy.Parent = ConsoleWindow
Copy.BackgroundColor3 = Color3.fromRGB(13, 13, 13)
Copy.BorderColor3 = Color3.fromRGB(0, 0, 0)
Copy.BorderSizePixel = 0
Copy.Position = UDim2.new(0.511235952, 0, 0.876865685, 0)
Copy.Size = UDim2.new(0, 159, 0, 23)
Copy.Font = Enum.Font.Arial
Copy.Text = "Copy Output"
Copy.TextColor3 = Color3.fromRGB(159, 168, 221)
Copy.TextSize = 14
Copy.TextStrokeTransparency = 0
UICorner_3.CornerRadius = UDim.new(0, 3)
UICorner_3.Parent = Copy
UIStroke_4.Parent = Copy
UIStroke_4.Color = Color3.fromRGB(87, 92, 121)
UIStroke_4.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
Copy.MouseButton1Click:Connect(function()
local lines = {}
for _, child in ipairs(OutputScrollingFrame:GetChildren()) do
if child:IsA("TextLabel") then
table.insert(lines, child.Text)
end
end
setclipboard(table.concat(lines, "\n"))
end)
updateCanvas()
updateEmpty()
end