M
Description
MEGA UPDATE OF THE LOCATION. TO OPEN, PRESS RIGHT CONTROL
GAMEFling Things and People
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
--[[
Shevon UI v9 — Enhanced Animations
Открытие: RCTRL
Бинды: Q / P / TAB / F / V / RCTRL
]]
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Stats = game:GetService("Stats")
local VirtualInputManager = game:GetService("VirtualInputManager")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")
local Workspace = game:GetService("Workspace")
local LP = Players.LocalPlayer
local Camera = workspace.CurrentCamera
local function K(c) return {type = "key", value = Enum.KeyCode[c]} end
local Binds = {
Aim = K("Q"),
Lock = K("P"),
Freeze = K("Tab"),
Hide = K("RightControl"),
Pallet = K("F"),
FOVToggle = K("V"),
}
local Settings = {
MaxAngle = 90,
MaxDistance = 31,
ClickDelay = 0.08,
ManualLock = true,
VisibleCheck = true,
RadiusMin = 0,
RadiusMax = 100,
PalletName = "PalletLightBrown",
Opacity = 100,
Scale = 100,
ThemeName = "classic",
CustomCursor = true,
Particles = true,
TargetParts = { Head = true, Torso = false, Arms = false },
FOVEnabled = false,
FOVValue = 90,
FOVMin = 40,
FOVMax = 140,
FOVDefault = 70,
}
local isLocked, isGuiVisible, isFrozen = false, false, false
local lastClick = 0
local awaitingBind, justBound, justOpenedBind, isAimingSelf = nil, false, false, false
local selectedList = {}
local listMode = "ignore"
local listOpen = false
local sessionStart = tick()
local lastTimerTick = 0
local lastPlayerRefresh = 0
local currentTab = "main"
-- ============================================================
-- THEMES
-- ============================================================
local Themes = {
classic = {
Bg = Color3.fromRGB(13, 13, 18), BgPanel = Color3.fromRGB(19, 19, 25),
BgCard = Color3.fromRGB(24, 24, 32), BgCardHi = Color3.fromRGB(36, 36, 48),
BgSegment = Color3.fromRGB(19, 19, 25), Divider = Color3.fromRGB(42, 42, 54),
Accent = Color3.fromRGB(122, 92, 255), AccentHi = Color3.fromRGB(170, 140, 255),
Success = Color3.fromRGB(80, 220, 140), Danger = Color3.fromRGB(255, 90, 110),
Warn = Color3.fromRGB(255, 190, 90),
Text = Color3.fromRGB(245, 245, 250), TextDim = Color3.fromRGB(155, 155, 175),
TextMuted = Color3.fromRGB(105, 105, 125),
},
black = {
Bg = Color3.fromRGB(0, 0, 0), BgPanel = Color3.fromRGB(6, 6, 6),
BgCard = Color3.fromRGB(13, 13, 13), BgCardHi = Color3.fromRGB(24, 24, 24),
BgSegment = Color3.fromRGB(6, 6, 6), Divider = Color3.fromRGB(32, 32, 32),
Accent = Color3.fromRGB(122, 92, 255), AccentHi = Color3.fromRGB(170, 140, 255),
Success = Color3.fromRGB(80, 220, 140), Danger = Color3.fromRGB(255, 90, 110),
Warn = Color3.fromRGB(255, 190, 90),
Text = Color3.fromRGB(245, 245, 250), TextDim = Color3.fromRGB(140, 140, 150),
TextMuted = Color3.fromRGB(90, 90, 100),
},
gray = {
Bg = Color3.fromRGB(28, 28, 34), BgPanel = Color3.fromRGB(38, 38, 45),
BgCard = Color3.fromRGB(46, 46, 54), BgCardHi = Color3.fromRGB(60, 60, 70),
BgSegment = Color3.fromRGB(38, 38, 45), Divider = Color3.fromRGB(70, 70, 82),
Accent = Color3.fromRGB(122, 92, 255), AccentHi = Color3.fromRGB(170, 140, 255),
Success = Color3.fromRGB(80, 220, 140), Danger = Color3.fromRGB(255, 90, 110),
Warn = Color3.fromRGB(255, 190, 90),
Text = Color3.fromRGB(248, 248, 252), TextDim = Color3.fromRGB(190, 190, 200),
TextMuted = Color3.fromRGB(150, 150, 160),
},
["light-gray"] = {
Bg = Color3.fromRGB(58, 58, 66), BgPanel = Color3.fromRGB(74, 74, 84),
BgCard = Color3.fromRGB(88, 88, 100), BgCardHi = Color3.fromRGB(104, 104, 118),
BgSegment = Color3.fromRGB(74, 74, 84), Divider = Color3.fromRGB(116, 116, 130),
Accent = Color3.fromRGB(140, 110, 255), AccentHi = Color3.fromRGB(185, 160, 255),
Success = Color3.fromRGB(90, 230, 150), Danger = Color3.fromRGB(255, 110, 130),
Warn = Color3.fromRGB(255, 200, 110),
Text = Color3.fromRGB(252, 252, 255), TextDim = Color3.fromRGB(215, 215, 225),
TextMuted = Color3.fromRGB(175, 175, 185),
},
halloween = {
Bg = Color3.fromRGB(14, 8, 18), BgPanel = Color3.fromRGB(22, 12, 28),
BgCard = Color3.fromRGB(32, 16, 40), BgCardHi = Color3.fromRGB(48, 22, 58),
BgSegment = Color3.fromRGB(22, 12, 28), Divider = Color3.fromRGB(60, 30, 70),
Accent = Color3.fromRGB(255, 120, 30), AccentHi = Color3.fromRGB(255, 180, 80),
Success = Color3.fromRGB(140, 220, 100), Danger = Color3.fromRGB(255, 60, 60),
Warn = Color3.fromRGB(255, 180, 60),
Text = Color3.fromRGB(255, 240, 250), TextDim = Color3.fromRGB(200, 160, 220),
TextMuted = Color3.fromRGB(160, 110, 180),
},
}
local Theme = Themes.classic
local colorTargets = {}
local alphaTargets = {}
local function regColor(o, p, r) table.insert(colorTargets, {obj=o, prop=p, role=r}) end
local function regAlpha(o, p, r) table.insert(alphaTargets, {obj=o, prop=p, role=r}) end
local function applyTheme(name)
local t = Themes[name]
if not t then return end
Theme = t
for _, item in ipairs(colorTargets) do
if t[item.role] then pcall(function() item.obj[item.prop] = t[item.role] end) end
end
end
local function applyOpacity()
local alpha = 1 - (Settings.Opacity / 100)
local base = { Bg=0, BgPanel=0.05, BgCard=0.1, BgCardHi=0.15, BgSegment=0.05,
Divider=0.4, Accent=0, AccentHi=0, Success=0, Danger=0, Warn=0 }
for _, t in ipairs(alphaTargets) do
local b = base[t.role] or 0
pcall(function() t.obj[t.prop] = math.clamp(b + alpha * 0.92, 0, 1) end)
end
end
local function matchBind(input, bind)
if not bind then return false end
if bind.type == "key" then return input.KeyCode == bind.value end
if bind.type == "mouse" then return input.UserInputType == bind.value end
return false
end
local function bindName(bind)
if not bind then return "?" end
if bind.type == "key" then return bind.value.Name end
if bind.type == "mouse" then
local n = bind.value.Name
if n == "MouseButton1" then return "LMB" end
if n == "MouseButton2" then return "RMB" end
if n == "MouseButton3" then return "MMB" end
return n
end
return "?"
end
local function formatTime(sec)
sec = math.floor(sec)
local h = math.floor(sec / 3600)
local m = math.floor((sec % 3600) / 60)
local s = sec % 60
if h > 0 then return string.format("%02d:%02d:%02d", h, m, s) end
return string.format("%02d:%02d", m, s)
end
-- ============================================================
-- PALLET
-- ============================================================
local PalletEvent
do
local mt = ReplicatedStorage:FindFirstChild("MenuToys")
if mt then PalletEvent = mt:FindFirstChild("SpawnToyRemoteFunction") end
end
local targetPart = Instance.new("Part")
targetPart.Name = "NeonTargetIndicator"
targetPart.Shape = Enum.PartType.Ball
targetPart.Size = Vector3.new(1.5,1.5,1.5)
targetPart.Material = Enum.Material.Neon
targetPart.Color = Color3.fromRGB(255,0,0)
targetPart.CanCollide = false
targetPart.Anchored = true
targetPart.Transparency = 1
targetPart.Parent = Workspace
RunService.RenderStepped:Connect(function()
local c = LP.Character
if not c or not c:FindFirstChild("HumanoidRootPart") then return end
local cam = Camera.CFrame
local lv = cam.LookVector
local pitch = math.asin(lv.Y)
local a = math.clamp((-pitch) / (math.pi/2), 0, 1)
targetPart.Position = cam.Position + (lv * (-0.66 + a * (-14.9 - (-0.66))))
end)
local function spawnPallet()
if not PalletEvent or not LP.Character then return end
task.spawn(function()
RunService.Heartbeat:Wait()
local sp = targetPart.Position
local cam = Camera.CFrame
local _, yaw, _ = cam:ToOrientation()
pcall(function()
PalletEvent:InvokeServer(Settings.PalletName, cam.Rotation + sp, Vector3.new(0, math.deg(yaw), 0))
end)
end)
end
-- ============================================================
-- FOV
-- ============================================================
local fovConn
local function applyFOV()
if fovConn then fovConn:Disconnect() fovConn = nil end
if Settings.FOVEnabled then
fovConn = RunService.RenderStepped:Connect(function()
Camera.FieldOfView = Settings.FOVValue
end)
else
Camera.FieldOfView = Settings.FOVDefault
end
end
applyFOV()
-- ============================================================
-- SHADERS
-- ============================================================
local effectRegistry = {
Snow = {instance=nil}, Rain = {instance=nil}, Fire = {instance=nil}, Stars = {instance=nil},
Fog = {instance=nil}, Sunset = {instance=nil}, Night = {instance=nil},
Rainbow = {instance=nil}, Bloom = {instance=nil}, ColorCor = {instance=nil},
Chroma = {instance=nil}, DOF = {instance=nil},
}
local originalState = {
ClockTime = Lighting.ClockTime,
Brightness = Lighting.Brightness,
Ambient = Lighting.Ambient,
OutdoorAmbient = Lighting.OutdoorAmbient,
ColorShift_Top = Lighting.ColorShift_Top,
ColorShift_Bottom = Lighting.ColorShift_Bottom,
}
local function makeParticleAttachment()
local att = Instance.new("Attachment")
att.Name = "ShevonShaderAttachment"
att.Parent = Camera
return att
end
local function toggleSnow(on)
if effectRegistry.Snow.instance then effectRegistry.Snow.instance:Destroy() effectRegistry.Snow.instance = nil end
if not on then return end
local att = makeParticleAttachment()
local p = Instance.new("ParticleEmitter", att)
p.Texture = "rbxasset://textures/particles/snowflake.png"
p.Rate = 60; p.Lifetime = NumberRange.new(4,8); p.Speed = NumberRange.new(8,14)
p.SpreadAngle = Vector2.new(0,30); p.Rotation = NumberRange.new(0,360)
p.RotSpeed = NumberRange.new(-30,30)
p.Size = NumberSequence.new({NumberSequenceKeypoint.new(0,0.2),NumberSequenceKeypoint.new(1,0.4)})
p.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.2),NumberSequenceKeypoint.new(1,1)})
p.Color = ColorSequence.new(Color3.fromRGB(255,255,255))
p.EmissionDirection = Enum.NormalId.Bottom
p.Parent = att
att.Position = Vector3.new(0, 20, 0)
effectRegistry.Snow.instance = att
end
local function toggleRain(on)
if effectRegistry.Rain.instance then effectRegistry.Rain.instance:Destroy() effectRegistry.Rain.instance = nil end
if not on then return end
local att = makeParticleAttachment()
local p = Instance.new("ParticleEmitter", att)
p.Texture = "rbxasset://textures/particles/water.png"
p.Rate = 200; p.Lifetime = NumberRange.new(0.5,1); p.Speed = NumberRange.new(50,80)
p.SpreadAngle = Vector2.new(0,5); p.Squash = NumberSequence.new(-1)
p.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.4),NumberSequenceKeypoint.new(1,0.8)})
p.Color = ColorSequence.new(Color3.fromRGB(180,210,255))
p.EmissionDirection = Enum.NormalId.Bottom
p.Parent = att
att.Position = Vector3.new(0, 25, 0)
effectRegistry.Rain.instance = att
end
local function toggleFire(on)
if effectRegistry.Fire.instance then effectRegistry.Fire.instance:Destroy() effectRegistry.Fire.instance = nil end
if not on then return end
local att = makeParticleAttachment()
local p = Instance.new("ParticleEmitter", att)
p.Texture = "rbxasset://textures/particles/fire_main.dds"
p.Rate = 40; p.Lifetime = NumberRange.new(1,2); p.Speed = NumberRange.new(3,6)
p.SpreadAngle = Vector2.new(20,20)
p.Size = NumberSequence.new({NumberSequenceKeypoint.new(0,1),NumberSequenceKeypoint.new(0.5,1.5),NumberSequenceKeypoint.new(1,0)})
p.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255,200,100)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255,120,40)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(180,30,10)),
})
p.LightEmission = 1
p.EmissionDirection = Enum.NormalId.Bottom
p.Parent = att
att.Position = Vector3.new(0, -5, 0)
effectRegistry.Fire.instance = att
end
local function toggleStars(on)
if effectRegistry.Stars.instance then effectRegistry.Stars.instance:Destroy() effectRegistry.Stars.instance = nil end
if not on then return end
local att = makeParticleAttachment()
local p = Instance.new("ParticleEmitter", att)
p.Texture = "rbxasset://textures/particles/sparkles_main.dds"
p.Rate = 15; p.Lifetime = NumberRange.new(3,6); p.Speed = NumberRange.new(0.1,0.5)
p.SpreadAngle = Vector2.new(180,180)
p.Color = ColorSequence.new(Color3.fromRGB(255,255,220))
p.LightEmission = 1
p.Parent = att
att.Position = Vector3.new(0, 15, 0)
effectRegistry.Stars.instance = att
end
local function toggleFog(on)
if effectRegistry.Fog.instance then effectRegistry.Fog.instance:Destroy() effectRegistry.Fog.instance = nil end
if not on then return end
local atm = Instance.new("Atmosphere")
atm.Density = 0.5; atm.Offset = 0.25
atm.Color = Color3.fromRGB(200,200,220)
atm.Parent = Lighting
effectRegistry.Fog.instance = atm
end
local function toggleSunset(on)
if effectRegistry.Sunset.instance then effectRegistry.Sunset.instance:Destroy() effectRegistry.Sunset.instance = nil end
if not on then return end
local sky = Instance.new("Sky")
sky.SkyboxBk = "rbxasset://textures/sky/sky512_bk.tex"
sky.SkyboxDn = "rbxasset://textures/sky/sky512_dn.tex"
sky.SkyboxFt = "rbxasset://textures/sky/sky512_ft.tex"
sky.SkyboxLf = "rbxasset://textures/sky/sky512_lf.tex"
sky.SkyboxRt = "rbxasset://textures/sky/sky512_rt.tex"
sky.SkyboxUp = "rbxasset://textures/sky/sky512_up.tex"
sky.Parent = Lighting
effectRegistry.Sunset.instance = sky
Lighting.ClockTime = 17.5; Lighting.Brightness = 3
Lighting.Ambient = Color3.fromRGB(80,60,80)
Lighting.OutdoorAmbient = Color3.fromRGB(140,100,120)
end
local function toggleNight(on)
if on then
Lighting.ClockTime = 0; Lighting.Brightness = 1
Lighting.Ambient = Color3.fromRGB(10,10,30)
Lighting.OutdoorAmbient = Color3.fromRGB(20,20,50)
else
Lighting.ClockTime = originalState.ClockTime
Lighting.Brightness = originalState.Brightness
Lighting.Ambient = originalState.Ambient
Lighting.OutdoorAmbient = originalState.OutdoorAmbient
end
end
local function toggleRainbow(on)
if effectRegistry.Rainbow.instance then effectRegistry.Rainbow.instance:Destroy() effectRegistry.Rainbow.instance = nil end
if not on then return end
local cc = Instance.new("ColorCorrectionEffect")
cc.Saturation = 0.3
cc.Parent = Lighting
effectRegistry.Rainbow.instance = cc
task.spawn(function()
local hue = 0
while cc.Parent do
hue = (hue + 0.005) % 1
cc.TintColor = Color3.fromHSV(hue, 0.4, 1)
task.wait(0.03)
end
end)
end
local function toggleBloom(on)
if effectRegistry.Bloom.instance then effectRegistry.Bloom.instance:Destroy() effectRegistry.Bloom.instance = nil end
if not on then return end
local b = Instance.new("BloomEffect")
b.Intensity = 1.2; b.Size = 30; b.Threshold = 0.8
b.Parent = Lighting
effectRegistry.Bloom.instance = b
end
local function toggleColorCor(on)
if effectRegistry.ColorCor.instance then effectRegistry.ColorCor.instance:Destroy() effectRegistry.ColorCor.instance = nil end
if not on then return end
local cc = Instance.new("ColorCorrectionEffect")
cc.Brightness = 0.1; cc.Contrast = 0.15; cc.Saturation = 0.4
cc.TintColor = Color3.fromRGB(255,245,235)
cc.Parent = Lighting
effectRegistry.ColorCor.instance = cc
end
local function toggleChroma(on)
if effectRegistry.Chroma.instance then effectRegistry.Chroma.instance:Destroy() effectRegistry.Chroma.instance = nil end
if not on then return end
local cc = Instance.new("ColorCorrectionEffect")
cc.Contrast = 0.2; cc.TintColor = Color3.fromRGB(255,200,255)
cc.Parent = Lighting
effectRegistry.Chroma.instance = cc
end
local function toggleDOF(on)
if effectRegistry.DOF.instance then effectRegistry.DOF.instance:Destroy() effectRegistry.DOF.instance = nil end
if not on then return end
local d = Instance.new("DepthOfFieldEffect")
d.FarIntensity = 0.5; d.FocusDistance = 20; d.InFocusRadius = 15
d.Parent = Lighting
effectRegistry.DOF.instance = d
end
local function updateShaders()
toggleSnow(Settings.ShaderSnow); toggleRain(Settings.ShaderRain)
toggleFire(Settings.ShaderFire); toggleStars(Settings.ShaderStars)
toggleFog(Settings.ShaderFog); toggleSunset(Settings.ShaderSunset)
toggleNight(Settings.ShaderNight); toggleRainbow(Settings.ShaderRainbow)
toggleBloom(Settings.ShaderBloom); toggleColorCor(Settings.ShaderColorCor)
toggleChroma(Settings.ShaderChroma); toggleDOF(Settings.ShaderDOF)
end
-- ============================================================
-- CUSTOM CURSOR (enhanced with trail)
-- ============================================================
local cursorGui = Instance.new("ScreenGui")
cursorGui.Name = "ShevonCursor"
cursorGui.ResetOnSpawn = false
cursorGui.IgnoreGuiInset = true
cursorGui.DisplayOrder = 999
pcall(function() cursorGui.Parent = game:GetService("CoreGui") end)
if not cursorGui.Parent then cursorGui.Parent = LP:WaitForChild("PlayerGui") end
local cursorTrail = {}
for i = 1, 5 do
local dot = Instance.new("Frame", cursorGui)
dot.Size = UDim2.new(0, 4 - i*0.4, 0, 4 - i*0.4)
dot.AnchorPoint = Vector2.new(0.5, 0.5)
dot.BackgroundColor3 = Color3.fromRGB(160, 130, 255)
dot.BackgroundTransparency = 0.4 + i * 0.1
dot.BorderSizePixel = 0
dot.ZIndex = 990 + i
Instance.new("UICorner", dot).CornerRadius = UDim.new(1, 0)
cursorTrail[i] = {frame = dot, x = 0, y = 0}
end
local cursorDot = Instance.new("Frame", cursorGui)
cursorDot.Size = UDim2.new(0, 5, 0, 5)
cursorDot.AnchorPoint = Vector2.new(0.5, 0.5)
cursorDot.BackgroundColor3 = Color3.fromRGB(255,255,255)
cursorDot.BorderSizePixel = 0
cursorDot.ZIndex = 999
Instance.new("UICorner", cursorDot).CornerRadius = UDim.new(1, 0)
local cursorRing = Instance.new("Frame", cursorGui)
cursorRing.Size = UDim2.new(0, 24, 0, 24)
cursorRing.AnchorPoint = Vector2.new(0.5, 0.5)
cursorRing.BackgroundTransparency = 1
cursorRing.ZIndex = 998
Instance.new("UICorner", cursorRing).CornerRadius = UDim.new(1, 0)
local cursorRingStroke = Instance.new("UIStroke", cursorRing)
cursorRingStroke.Color = Color3.fromRGB(160, 130, 255)
cursorRingStroke.Thickness = 1.5
cursorRingStroke.Transparency = 0.3
local cursorGlow = Instance.new("Frame", cursorGui)
cursorGlow.Size = UDim2.new(0, 44, 0, 44)
cursorGlow.AnchorPoint = Vector2.new(0.5, 0.5)
cursorGlow.BackgroundColor3 = Color3.fromRGB(160, 130, 255)
cursorGlow.BackgroundTransparency = 0.92
cursorGlow.BorderSizePixel = 0
cursorGlow.ZIndex = 996
Instance.new("UICorner", cursorGlow).CornerRadius = UDim.new(1, 0)
local mouseX, mouseY = 0, 0
UserInputService.InputChanged:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseMovement then
local m = UserInputService:GetMouseLocation()
mouseX, mouseY = m.X, m.Y
cursorDot.Position = UDim2.new(0, mouseX, 0, mouseY)
cursorRing.Position = UDim2.new(0, mouseX, 0, mouseY)
cursorGlow.Position = UDim2.new(0, mouseX, 0, mouseY)
end
end)
task.spawn(function()
local growing = true
while task.wait(0.03) do
if not Settings.CustomCursor then
cursorDot.Visible = false
cursorRing.Visible = false
cursorGlow.Visible = false
for _, t in ipairs(cursorTrail) do t.frame.Visible = false end
else
cursorDot.Visible = true
cursorRing.Visible = true
cursorGlow.Visible = true
for _, t in ipairs(cursorTrail) do t.frame.Visible = true end
local sz = cursorRing.Size.X.Offset
if growing then sz = sz + 0.5; if sz >= 32 then growing = false end
else sz = sz - 0.5; if sz <= 22 then growing = true end end
cursorRing.Size = UDim2.new(0, sz, 0, sz)
cursorRingStroke.Transparency = 0.3 + (1 - math.abs(sz - 27) / 5) * 0.3
local prevX, prevY = mouseX, mouseY
for i, t in ipairs(cursorTrail) do
t.x = t.x + (prevX - t.x) * 0.35
t.y = t.y + (prevY - t.y) * 0.35
t.frame.Position = UDim2.new(0, t.x, 0, t.y)
prevX, prevY = t.x, t.y
end
end
end
end)
-- ============================================================
-- GUI ROOT
-- ============================================================
local gui = Instance.new("ScreenGui")
gui.Name = "ShevonUIv9"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
pcall(function() gui.Parent = game:GetService("CoreGui") end)
if not gui.Parent then gui.Parent = LP:WaitForChild("PlayerGui") end
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 340, 0, 640)
frame.Position = UDim2.new(0, 15, 0, 15)
frame.BackgroundColor3 = Theme.Bg
frame.BorderSizePixel = 0
frame.Active = true
frame.Visible = false
frame.ClipsDescendants = true
frame.Parent = gui
regColor(frame, "BackgroundColor3", "Bg")
regAlpha(frame, "BackgroundTransparency", "Bg")
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 16)
local frameStroke = Instance.new("UIStroke", frame)
frameStroke.Color = Theme.Divider
frameStroke.Thickness = 1
frameStroke.Transparency = 0.25
regColor(frameStroke, "Color", "Divider")
-- Пульсирующее свечение вокруг
local outerGlow = Instance.new("Frame", frame)
outerGlow.Size = UDim2.new(1, 14, 1, 14)
outerGlow.Position = UDim2.new(0, -7, 0, -7)
outerGlow.BackgroundColor3 = Theme.Accent
outerGlow.BackgroundTransparency = 0.94
outerGlow.BorderSizePixel = 0
outerGlow.ZIndex = 0
Instance.new("UICorner", outerGlow).CornerRadius = UDim.new(0, 22)
regColor(outerGlow, "BackgroundColor3", "Accent")
task.spawn(function()
local growing = true
while outerGlow.Parent do
local sz = outerGlow.Size.X.Offset
local tr = outerGlow.BackgroundTransparency
if growing then
sz = sz + 0.15; tr = tr - 0.001
if sz >= 22 then growing = false end
else
sz = sz - 0.15; tr = tr + 0.001
if sz <= 10 then growing = true end
end
outerGlow.Size = UDim2.new(1, sz, 1, sz)
outerGlow.Position = UDim2.new(0, -sz/2, 0, -sz/2)
outerGlow.BackgroundTransparency = math.clamp(tr, 0.88, 0.96)
task.wait(0.05)
end
end)
local uiScale = Instance.new("UIScale", frame)
uiScale.Scale = Settings.Scale / 100
-- Партиклы
local particleHolder = Instance.new("Frame", frame)
particleHolder.Size = UDim2.new(1, 0, 1, 0)
particleHolder.BackgroundTransparency = 1
particleHolder.ClipsDescendants = true
particleHolder.ZIndex = 1
Instance.new("UICorner", particleHolder).CornerRadius = UDim.new(0, 16)
local function spawnParticle()
if not Settings.Particles then return end
local p = Instance.new("Frame", particleHolder)
local sz = math.random(2, 6)
p.Size = UDim2.new(0, sz, 0, sz)
p.BackgroundColor3 = math.random() > 0.5 and Theme.Accent or Theme.AccentHi
p.BackgroundTransparency = math.random(50, 88) / 100
p.BorderSizePixel = 0
p.ZIndex = 1
p.Position = UDim2.new(math.random(), 0, 1.05, 0)
Instance.new("UICorner", p).CornerRadius = UDim.new(1, 0)
regColor(p, "BackgroundColor3", "Accent")
local targetY = -0.1 - math.random() * 0.4
local dur = math.random(3, 8)
local drift = math.random(-30, 30) / 1000
TweenService:Create(p, TweenInfo.new(dur, Enum.EasingStyle.Linear), {
Position = UDim2.new(p.Position.X.Scale + drift, 0, targetY, 0),
BackgroundTransparency = 1,
Size = UDim2.new(0, sz + 2, 0, sz + 2),
}):Play()
task.delay(dur, function() p:Destroy() end)
end
task.spawn(function()
while task.wait(0.35) do
if Settings.Particles and isGuiVisible then spawnParticle() end
end
end)
-- Верхний градиент с анимацией
local bgTint = Instance.new("Frame", frame)
bgTint.Size = UDim2.new(1, -2, 0, 180)
bgTint.Position = UDim2.new(0, 1, 0, 1)
bgTint.BackgroundColor3 = Theme.Accent
bgTint.BackgroundTransparency = 1
bgTint.BorderSizePixel = 0
bgTint.ZIndex = 1
Instance.new("UICorner", bgTint).CornerRadius = UDim.new(0, 16)
regColor(bgTint, "BackgroundColor3", "Accent")
local bgTintGrad = Instance.new("UIGradient", bgTint)
bgTintGrad.Rotation = 90
bgTintGrad.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.82),
NumberSequenceKeypoint.new(1, 1),
})
task.spawn(function()
local rot = 0
while bgTint.Parent do
rot = (rot + 1) % 360
bgTintGrad.Rotation = 90 + math.sin(rot * math.pi / 180) * 15
task.wait(0.05)
end
end)
-- ============================================================
-- RIPPLE
-- ============================================================
local function addRipple(btn)
btn.MouseButton1Down:Connect(function()
local m = UserInputService:GetMouseLocation()
local ap = btn.AbsolutePosition
local relX = m.X - ap.X
local relY = m.Y - ap.Y
for i = 1, 2 do
local r = Instance.new("Frame", btn)
r.BackgroundColor3 = Color3.fromRGB(255,255,255)
r.BackgroundTransparency = 0.6
r.BorderSizePixel = 0
r.Position = UDim2.new(0, relX - 5, 0, relY - 5)
r.Size = UDim2.new(0, 10, 0, 10)
r.ZIndex = 10 + i
Instance.new("UICorner", r).CornerRadius = UDim.new(1, 0)
local delay = (i - 1) * 0.08
task.delay(delay, function()
TweenService:Create(r, TweenInfo.new(0.55, Enum.EasingStyle.Quad), {
Size = UDim2.new(0, 90, 0, 90),
Position = UDim2.new(0, relX - 45, 0, relY - 45),
BackgroundTransparency = 1,
}):Play()
end)
task.delay(0.7 + delay, function() r:Destroy() end)
end
end)
end
-- ============================================================
-- HEADER
-- ============================================================
local header = Instance.new("Frame", frame)
header.Size = UDim2.new(1, 0, 0, 56)
header.BackgroundTransparency = 1
header.ZIndex = 3
local logo = Instance.new("Frame", header)
logo.Size = UDim2.new(0, 28, 0, 28)
logo.Position = UDim2.new(0, 16, 0, 14)
logo.BackgroundColor3 = Theme.Accent
logo.BorderSizePixel = 0
logo.ZIndex = 3
Instance.new("UICorner", logo).CornerRadius = UDim.new(0, 9)
regColor(logo, "BackgroundColor3", "Accent")
local logoGrad = Instance.new("UIGradient", logo)
logoGrad.Rotation = 0
logoGrad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255,255,255)),
ColorSequenceKeypoint.new(0.5, Theme.AccentHi),
ColorSequenceKeypoint.new(1, Theme.Accent),
})
task.spawn(function()
while logo.Parent do
for i = 0, 360, 4 do
logoGrad.Rotation = i
task.wait(0.025)
end
end
end)
local logoInner = Instance.new("Frame", logo)
logoInner.Size = UDim2.new(0, 12, 0, 12)
logoInner.Position = UDim2.new(0.5, -6, 0.5, -6)
logoInner.BackgroundColor3 = Color3.fromRGB(255,255,255)
logoInner.BorderSizePixel = 0
logoInner.ZIndex = 4
Instance.new("UICorner", logoInner).CornerRadius = UDim.new(1, 0)
task.spawn(function()
while logo.Parent do
local ring = Instance.new("Frame", logo)
ring.Size = UDim2.new(1, 0, 1, 0)
ring.Position = UDim2.new(0.5, 0, 0.5, 0)
ring.AnchorPoint = Vector2.new(0.5, 0.5)
ring.BackgroundTransparency = 1
ring.ZIndex = 2
Instance.new("UICorner", ring).CornerRadius = UDim.new(0, 9)
local rs = Instance.new("UIStroke", ring)
rs.Color = Color3.fromRGB(255,255,255)
rs.Thickness = 1; rs.Transparency = 0.3
TweenService:Create(ring, TweenInfo.new(1.8, Enum.EasingStyle.Quad), {
Size = UDim2.new(1, 18, 1, 18),
}):Play()
TweenService:Create(rs, TweenInfo.new(1.8, Enum.EasingStyle.Quad), {
Transparency = 1,
}):Play()
task.delay(1.8, function() ring:Destroy() end)
task.wait(1.8)
end
end)
local brand = Instance.new("TextLabel", header)
brand.Size = UDim2.new(1, -140, 0, 20)
brand.Position = UDim2.new(0, 54, 0, 14)
brand.BackgroundTransparency = 1
brand.Font = Enum.Font.GothamBold
brand.TextSize = 15
brand.TextColor3 = Theme.Text
brand.TextXAlignment = Enum.TextXAlignment.Left
brand.Text = "Shevon"
brand.ZIndex = 3
regColor(brand, "TextColor3", "Text")
local brandVer = Instance.new("TextLabel", header)
brandVer.Size = UDim2.new(0, 44, 0, 16)
brandVer.Position = UDim2.new(0, 116, 0, 17)
brandVer.BackgroundColor3 = Theme.Accent
brandVer.BackgroundTransparency = 0.85
brandVer.Font = Enum.Font.GothamBold
brandVer.TextSize = 8
brandVer.TextColor3 = Theme.AccentHi
brandVer.Text = "v9"
brandVer.ZIndex = 4
Instance.new("UICorner", brandVer).CornerRadius = UDim.new(0, 4)
regColor(brandVer, "TextColor3", "AccentHi")
regColor(brandVer, "BackgroundColor3", "Accent")
task.spawn(function()
while brandVer.Parent do
TweenService:Create(brandVer, TweenInfo.new(0.8, Enum.EasingStyle.Sine), {
BackgroundTransparency = 0.95,
}):Play()
task.wait(0.8)
TweenService:Create(brandVer, TweenInfo.new(0.8, Enum.EasingStyle.Sine), {
BackgroundTransparency = 0.75,
}):Play()
task.wait(0.8)
end
end)
local brandSub = Instance.new("TextLabel", header)
brandSub.Size = UDim2.new(1, -140, 0, 12)
brandSub.Position = UDim2.new(0, 54, 0, 34)
brandSub.BackgroundTransparency = 1
brandSub.Font = Enum.Font.Gotham
brandSub.TextSize = 9
brandSub.TextColor3 = Theme.TextMuted
brandSub.TextXAlignment = Enum.TextXAlignment.Left
brandSub.Text = "animated · v9"
brandSub.ZIndex = 3
regColor(brandSub, "TextColor3", "TextMuted")
local statusPill = Instance.new("Frame", header)
statusPill.Size = UDim2.new(0, 66, 0, 22)
statusPill.Position = UDim2.new(1, -80, 0, 17)
statusPill.BackgroundColor3 = Theme.BgCard
statusPill.BackgroundTransparency = 0.2
statusPill.BorderSizePixel = 0
statusPill.ZIndex = 3
Instance.new("UICorner", statusPill).CornerRadius = UDim.new(1, 0)
regColor(statusPill, "BackgroundColor3", "BgCard")
local statusStroke = Instance.new("UIStroke", statusPill)
statusStroke.Color = Theme.Success
statusStroke.Thickness = 1
statusStroke.Transparency = 0.3
regColor(statusStroke, "Color", "Success")
local statusDot = Instance.new("Frame", statusPill)
statusDot.Size = UDim2.new(0, 6, 0, 6)
statusDot.Position = UDim2.new(0, 10, 0.5, -3)
statusDot.BackgroundColor3 = Theme.Success
statusDot.BorderSizePixel = 0
statusDot.ZIndex = 4
Instance.new("UICorner", statusDot).CornerRadius = UDim.new(1, 0)
regColor(statusDot, "BackgroundColor3", "Success")
task.spawn(function()
while statusDot.Parent do
local ring = Instance.new("Frame", statusPill)
ring.Size = UDim2.new(0, 6, 0, 6)
ring.Position = UDim2.new(0, 10, 0.5, -3)
ring.BackgroundTransparency = 1
ring.ZIndex = 3
Instance.new("UICorner", ring).CornerRadius = UDim.new(1, 0)
local rs = Instance.new("UIStroke", ring)
rs.Color = Theme.Success
rs.Thickness = 1; rs.Transparency = 0.3
regColor(rs, "Color", "Success")
TweenService:Create(ring, TweenInfo.new(1.6, Enum.EasingStyle.Quad), {
Size = UDim2.new(0, 24, 0, 24),
Position = UDim2.new(0, 1, 0.5, -12),
}):Play()
TweenService:Create(rs, TweenInfo.new(1.6, Enum.EasingStyle.Quad), {Transparency = 1}):Play()
task.delay(1.6, function() ring:Destroy() end)
task.wait(1.6)
end
end)
local statusText = Instance.new("TextLabel", statusPill)
statusText.Size = UDim2.new(1, -18, 1, 0)
statusText.Position = UDim2.new(0, 20, 0, 0)
statusText.BackgroundTransparency = 1
statusText.Font = Enum.Font.GothamBold
statusText.TextSize = 9
statusText.TextColor3 = Theme.Success
statusText.TextXAlignment = Enum.TextXAlignment.Left
statusText.Text = "ACTIVE"
statusText.ZIndex = 4
regColor(statusText, "TextColor3", "Success")
-- ============================================================
-- TAB BAR (with shimmer)
-- ============================================================
local tabBar = Instance.new("Frame", frame)
tabBar.Size = UDim2.new(1, -28, 0, 32)
tabBar.Position = UDim2.new(0, 14, 0, 60)
tabBar.BackgroundColor3 = Theme.BgSegment
tabBar.BackgroundTransparency = 0.15
tabBar.BorderSizePixel = 0
tabBar.ZIndex = 3
tabBar.ClipsDescendants = true
Instance.new("UICorner", tabBar).CornerRadius = UDim.new(0, 9)
regColor(tabBar, "BackgroundColor3", "BgSegment")
local tabBarStroke = Instance.new("UIStroke", tabBar)
tabBarStroke.Color = Theme.Divider
tabBarStroke.Thickness = 1
tabBarStroke.Transparency = 0.6
regColor(tabBarStroke, "Color", "Divider")
local shimmer = Instance.new("Frame", tabBar)
shimmer.Size = UDim2.new(0, 40, 1, 0)
shimmer.Position = UDim2.new(-0.2, 0, 0, 0)
shimmer.BackgroundColor3 = Color3.fromRGB(255,255,255)
shimmer.BackgroundTransparency = 0.85
shimmer.BorderSizePixel = 0
shimmer.ZIndex = 3
Instance.new("UICorner", shimmer).CornerRadius = UDim.new(0, 9)
local shimmerGrad = Instance.new("UIGradient", shimmer)
shimmerGrad.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 1),
NumberSequenceKeypoint.new(0.5, 0),
NumberSequenceKeypoint.new(1, 1),
})
task.spawn(function()
while tabBar.Parent do
task.wait(math.random(3, 6))
shimmer.Position = UDim2.new(-0.2, 0, 0, 0)
TweenService:Create(shimmer, TweenInfo.new(1.2, Enum.EasingStyle.Linear), {
Position = UDim2.new(1.2, 0, 0, 0),
}):Play()
end
end)
local tabIndicator = Instance.new("Frame", tabBar)
tabIndicator.Size = UDim2.new(0.5, -4, 1, -6)
tabIndicator.Position = UDim2.new(0, 3, 0, 3)
tabIndicator.BackgroundColor3 = Theme.Accent
tabIndicator.BorderSizePixel = 0
tabIndicator.ZIndex = 4
Instance.new("UICorner", tabIndicator).CornerRadius = UDim.new(0, 7)
regColor(tabIndicator, "BackgroundColor3", "Accent")
local tabIndicatorGrad = Instance.new("UIGradient", tabIndicator)
tabIndicatorGrad.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Theme.Accent),
ColorSequenceKeypoint.new(0.5, Theme.AccentHi),
ColorSequenceKeypoint.new(1, Theme.Accent),
})
task.spawn(function()
local rot = 0
while tabIndicator.Parent do
rot = (rot + 2) % 360
tabIndicatorGrad.Rotation = rot
task.wait(0.03)
end
end)
local tabMain = Instance.new("TextButton", tabBar)
tabMain.Size = UDim2.new(0.5, 0, 1, 0)
tabMain.BackgroundTransparency = 1
tabMain.Font = Enum.Font.GothamBold
tabMain.TextSize = 11
tabMain.TextColor3 = Color3.new(1,1,1)
tabMain.Text = "MAIN"
tabMain.ZIndex = 5
local tabShaders = Instance.new("TextButton", tabBar)
tabShaders.Size = UDim2.new(0.5, 0, 1, 0)
tabShaders.Position = UDim2.new(0.5, 0, 0, 0)
tabShaders.BackgroundTransparency = 1
tabShaders.Font = Enum.Font.GothamBold
tabShaders.TextSize = 11
tabShaders.TextColor3 = Theme.TextDim
tabShaders.Text = "SHADERS"
tabShaders.ZIndex = 5
regColor(tabShaders, "TextColor3", "TextDim")
-- ============================================================
-- PAGES
-- ============================================================
local pageMain = Instance.new("Frame", frame)
pageMain.Size = UDim2.new(1, 0, 1, -108)
pageMain.Position = UDim2.new(0, 0, 0, 100)
pageMain.BackgroundTransparency = 1
pageMain.ClipsDescendants = true
pageMain.ZIndex = 2
local pageShaders = Instance.new("Frame", frame)
pageShaders.Size = UDim2.new(1, 0, 1, -108)
pageShaders.Position = UDim2.new(0, 0, 0, 100)
pageShaders.BackgroundTransparency = 1
pageShaders.ClipsDescendants = true
pageShaders.Visible = false
pageShaders.ZIndex = 2
local function switchTab(name)
if name == currentTab then return end
local indicatorX = (name == "main") and UDim2.new(0, 3, 0, 3) or UDim2.new(0.5, 1, 0, 3)
TweenService:Create(tabIndicator, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Position = indicatorX,
}):Play()
if name == "main" then
pageMain.Visible = true
pageShaders.Visible = false
tabMain.TextColor3 = Color3.new(1,1,1)
tabShaders.TextColor3 = Theme.TextDim
else
pageMain.Visible = false
pageShaders.Visible = true
tabMain.TextColor3 = Theme.TextDim
tabShaders.TextColor3 = Color3.new(1,1,1)
end
currentTab = name
end
tabMain.MouseButton1Click:Connect(function() switchTab("main") end)
tabShaders.MouseButton1Click:Connect(function() switchTab("shaders") end)
-- ============================================================
-- BUILDERS
-- ============================================================
local function section(parent, text, y)
local bullet = Instance.new("Frame", parent)
bullet.Size = UDim2.new(0, 4, 0, 4)
bullet.Position = UDim2.new(0, 22, 0, y + 4)
bullet.BackgroundColor3 = Theme.Accent
bullet.BorderSizePixel = 0
bullet.ZIndex = 3
Instance.new("UICorner", bullet).CornerRadius = UDim.new(1, 0)
regColor(bullet, "BackgroundColor3", "Accent")
local lbl = Instance.new("TextLabel", parent)
lbl.Size = UDim2.new(1, -40, 0, 12)
lbl.Position = UDim2.new(0, 32, 0, y)
lbl.BackgroundTransparency = 1
lbl.Font = Enum.Font.GothamBold
lbl.TextSize = 9
lbl.TextColor3 = Theme.TextMuted
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Text = string.upper(text)
lbl.ZIndex = 3
regColor(lbl, "TextColor3", "TextMuted")
end
local function dividerP(parent, y)
local d = Instance.new("Frame", parent)
d.Size = UDim2.new(1, -28, 0, 1)
d.Position = UDim2.new(0, 14, 0, y)
d.BackgroundColor3 = Theme.Divider
d.BackgroundTransparency = 0.5
d.BorderSizePixel = 0
d.ZIndex = 2
regColor(d, "BackgroundColor3", "Divider")
end
local rowData = {}
local function bindRow(parent, y, key, display)
local card = Instance.new("Frame", parent)
card.Size = UDim2.new(1, -28, 0, 26)
card.Position = UDim2.new(0, 14, 0, y)
card.BackgroundColor3 = Theme.BgCard
card.BackgroundTransparency = 0.1
card.BorderSizePixel = 0
card.ZIndex = 2
card.ClipsDescendants = true
Instance.new("UICorner", card).CornerRadius = UDim.new(0, 9)
regColor(card, "BackgroundColor3", "BgCard")
local cardStroke = Instance.new("UIStroke", card)
cardStroke.Color = Theme.Divider
cardStroke.Thickness = 1
cardStroke.Transparency = 0.6
regColor(cardStroke, "Color", "Divider")
local accentLine = Instance.new("Frame", card)
accentLine.Size = UDim2.new(0, 2, 1, -12)
accentLine.Position = UDim2.new(0, 0, 0, 6)
accentLine.BackgroundColor3 = Theme.Accent
accentLine.BackgroundTransparency = 0.3
accentLine.BorderSizePixel = 0
accentLine.ZIndex = 3
Instance.new("UICorner", accentLine).CornerRadius = UDim.new(1, 0)
regColor(accentLine, "BackgroundColor3", "Accent")
local name = Instance.new("TextLabel", card)
name.Size = UDim2.new(1, -90, 1, 0)
name.Position = UDim2.new(0, 16, 0, 0)
name.BackgroundTransparency = 1
name.Font = Enum.Font.GothamMedium
name.TextSize = 11
name.TextColor3 = Theme.Text
name.TextXAlignment = Enum.TextXAlignment.Left
name.Text = display
name.ZIndex = 3
regColor(name, "TextColor3", "Text")
local keyPill = Instance.new("Frame", card)
keyPill.Size = UDim2.new(0, 66, 0, 20)
keyPill.Position = UDim2.new(1, -76, 0.5, -10)
keyPill.BackgroundColor3 = Theme.BgCardHi
keyPill.BackgroundTransparency = 0.2
keyPill.BorderSizePixel = 0
keyPill.ZIndex = 3
Instance.new("UICorner", keyPill).CornerRadius = UDim.new(0, 6)
regColor(keyPill, "BackgroundColor3", "BgCardHi")
local keyLbl = Instance.new("TextLabel", keyPill)
keyLbl.Size = UDim2.new(1, 0, 1, 0)
keyLbl.BackgroundTransparency = 1
keyLbl.Font = Enum.Font.GothamBold
keyLbl.TextSize = 10
keyLbl.TextColor3 = Theme.AccentHi
keyLbl.Text = bindName(Binds[key])
keyLbl.ZIndex = 4
regColor(keyLbl, "TextColor3", "AccentHi")
local btn = Instance.new("TextButton", card)
btn.Size = UDim2.new(1, 0, 1, 0)
btn.BackgroundTransparency = 1
btn.Text = ""
btn.ZIndex = 5
btn.MouseEnter:Connect(function()
TweenService:Create(card, TweenInfo.new(0.2), {BackgroundColor3 = Theme.BgCardHi}):Play()
TweenService:Create(cardStroke, TweenInfo.new(0.2), {Transparency = 0.1}):Play()
TweenService:Create(accentLine, TweenInfo.new(0.2), {BackgroundTransparency = 0, Size = UDim2.new(0, 3, 1, -12)}):Play()
TweenService:Create(name, TweenInfo.new(0.2), {Position = UDim2.new(0, 20, 0, 0)}):Play()
end)
btn.MouseLeave:Connect(function()
TweenService:Create(card, TweenInfo.new(0.2), {BackgroundColor3 = Theme.BgCard}):Play()
TweenService:Create(cardStroke, TweenInfo.new(0.2), {Transparency = 0.6}):Play()
TweenService:Create(accentLine, TweenInfo.new(0.2), {BackgroundTransparency = 0.3, Size = UDim2.new(0, 2, 1, -12)}):Play()
TweenService:Create(name, TweenInfo.new(0.2), {Position = UDim2.new(0, 16, 0, 0)}):Play()
end)
addRipple(btn)
rowData[key] = { card = card, name = name, keyLbl = keyLbl, display = display }
return card, btn
end
local function makeSlider(parent, y, labelText, min, max, getter, setter, suffix)
local lbl = Instance.new("TextLabel", parent)
lbl.Size = UDim2.new(1, -110, 0, 12)
lbl.Position = UDim2.new(0, 18, 0, y)
lbl.BackgroundTransparency = 1
lbl.Font = Enum.Font.GothamMedium
lbl.TextSize = 10
lbl.TextColor3 = Theme.TextDim
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Text = labelText
lbl.ZIndex = 3
regColor(lbl, "TextColor3", "TextDim")
local valLbl = Instance.new("TextLabel", parent)
valLbl.Size = UDim2.new(0, 70, 0, 12)
valLbl.Position = UDim2.new(1, -86, 0, y)
valLbl.BackgroundTransparency = 1
valLbl.Font = Enum.Font.GothamBold
valLbl.TextSize = 10
valLbl.TextColor3 = Theme.AccentHi
valLbl.TextXAlignment = Enum.TextXAlignment.Right
valLbl.Text = tostring(getter()) .. (suffix or "")
valLbl.ZIndex = 3
regColor(valLbl, "TextColor3", "AccentHi")
local track = Instance.new("Frame", parent)
track.Size = UDim2.new(1, -36, 0, 6)
track.Position = UDim2.new(0, 18, 0, y + 16)
track.BackgroundColor3 = Theme.BgCardHi
track.BackgroundTransparency = 0.2
track.BorderSizePixel = 0
track.ZIndex = 3
Instance.new("UICorner", track).CornerRadius = UDim.new(1, 0)
regColor(track, "BackgroundColor3", "BgCardHi")
local rel0 = (getter() - min) / (max - min)
local fill = Instance.new("Frame", track)
fill.Size = UDim2.new(rel0, 0, 1, 0)
fill.BackgroundColor3 = Theme.Accent
fill.BorderSizePixel = 0
fill.ZIndex = 4
Instance.new("UICorner", fill).CornerRadius = UDim.new(1, 0)
regColor(fill, "BackgroundColor3", "Accent")
local knob = Instance.new("Frame", track)
knob.Size = UDim2.new(0, 14, 0, 14)
knob.AnchorPoint = Vector2.new(0.5, 0.5)
knob.Position = UDim2.new(rel0, 0, 0.5, 0)
knob.BackgroundColor3 = Color3.fromRGB(255,255,255)
knob.BorderSizePixel = 0
knob.ZIndex = 5
Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0)
local kStroke = Instance.new("UIStroke", knob)
kStroke.Color = Theme.Accent
kStroke.Thickness = 2
regColor(kStroke, "Color", "Accent")
local kGlow = Instance.new("Frame", track)
kGlow.Size = UDim2.new(0, 26, 0, 26)
kGlow.AnchorPoint = Vector2.new(0.5, 0.5)
kGlow.Position = UDim2.new(rel0, 0, 0.5, 0)
kGlow.BackgroundColor3 = Theme.Accent
kGlow.BackgroundTransparency = 0.85
kGlow.BorderSizePixel = 0
kGlow.ZIndex = 4
Instance.new("UICorner", kGlow).CornerRadius = UDim.new(1, 0)
regColor(kGlow, "BackgroundColor3", "Accent")
local hit = Instance.new("TextButton", track)
hit.Size = UDim2.new(1, 0, 0, 24)
hit.Position = UDim2.new(0, 0, 0.5, 0)
hit.AnchorPoint = Vector2.new(0, 0.5)
hit.BackgroundTransparency = 1
hit.Text = ""
hit.ZIndex = 6
local dragging = false
local function setFromX(x)
local ap = track.AbsolutePosition
local as = track.AbsoluteSize
local rel = math.clamp((x - ap.X) / as.X, 0, 1)
local v = math.floor(min + rel * (max - min) + 0.5)
setter(v)
valLbl.Text = tostring(v) .. (suffix or "")
fill.Size = UDim2.new(rel, 0, 1, 0)
knob.Position = UDim2.new(rel, 0, 0.5, 0)
kGlow.Position = UDim2.new(rel, 0, 0.5, 0)
end
hit.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
dragging = true
setFromX(i.Position.X)
end
end)
UserInputService.InputChanged:Connect(function(i)
if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then
setFromX(i.Position.X)
end
end)
UserInputService.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
end
local shaderData = {}
local function makeShaderToggle(parent, y, key, display, onChanged)
local card = Instance.new("Frame", parent)
card.Size = UDim2.new(1, -28, 0, 26)
card.Position = UDim2.new(0, 14, 0, y)
card.BackgroundColor3 = Theme.BgCard
card.BackgroundTransparency = 0.1
card.BorderSizePixel = 0
card.ZIndex = 2
card.ClipsDescendants = true
Instance.new("UICorner", card).CornerRadius = UDim.new(0, 9)
regColor(card, "BackgroundColor3", "BgCard")
local cardStroke = Instance.new("UIStroke", card)
cardStroke.Color = Theme.Divider
cardStroke.Thickness = 1
cardStroke.Transparency = 0.6
regColor(cardStroke, "Color", "Divider")
local name = Instance.new("TextLabel", card)
name.Size = UDim2.new(1, -70, 1, 0)
name.Position = UDim2.new(0, 16, 0, 0)
name.BackgroundTransparency = 1
name.Font = Enum.Font.GothamMedium
name.TextSize = 11
name.TextColor3 = Theme.Text
name.TextXAlignment = Enum.TextXAlignment.Left
name.Text = display
name.ZIndex = 3
regColor(name, "TextColor3", "Text")
local swBg = Instance.new("Frame", card)
swBg.Size = UDim2.new(0, 36, 0, 18)
swBg.Position = UDim2.new(1, -50, 0.5, -9)
swBg.BackgroundColor3 = Settings[key] and Theme.Success or Theme.BgCardHi
swBg.BorderSizePixel = 0
swBg.ZIndex = 3
Instance.new("UICorner", swBg).CornerRadius = UDim.new(1, 0)
regColor(swBg, "BackgroundColor3", "Success")
local swKnob = Instance.new("Frame", swBg)
swKnob.Size = UDim2.new(0, 14, 0, 14)
swKnob.Position = Settings[key] and UDim2.new(1, -16, 0.5, -7) or UDim2.new(0, 2, 0.5, -7)
swKnob.BackgroundColor3 = Color3.fromRGB(255,255,255)
swKnob.BorderSizePixel = 0
swKnob.ZIndex = 4
Instance.new("UICorner", swKnob).CornerRadius = UDim.new(1, 0)
local btn = Instance.new("TextButton", card)
btn.Size = UDim2.new(1, 0, 1, 0)
btn.BackgroundTransparency = 1
btn.Text = ""
btn.ZIndex = 5
addRipple(btn)
btn.MouseEnter:Connect(function()
TweenService:Create(card, TweenInfo.new(0.2), {BackgroundColor3 = Theme.BgCardHi}):Play()
end)
btn.MouseLeave:Connect(function()
TweenService:Create(card, TweenInfo.new(0.2), {BackgroundColor3 = Theme.BgCard}):Play()
end)
btn.MouseButton1Click:Connect(function()
Settings[key] = not Settings[key]
local on = Settings[key]
TweenService:Create(swBg, TweenInfo.new(0.25, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
BackgroundColor3 = on and Theme.Success or Theme.BgCardHi,
}):Play()
TweenService:Create(swKnob, TweenInfo.new(0.25, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Position = on and UDim2.new(1, -16, 0.5, -7) or UDim2.new(0, 2, 0.5, -7),
}):Play()
if onChanged then onChanged(on) end
end)
shaderData[key] = { card = card, swBg = swBg, swKnob = swKnob }
return card, btn
end
-- ============================================================
-- MAIN PAGE
-- ============================================================
section(pageMain, "binds", 10)
bindRow(pageMain, 26, "Aim", "Aim Assist")
bindRow(pageMain, 56, "Lock", "Target Lock")
bindRow(pageMain, 86, "Freeze", "Freeze Self")
bindRow(pageMain, 116, "Pallet", "Spawn Pallet")
bindRow(pageMain, 146, "FOVToggle", "FOV Toggle")
bindRow(pageMain, 176, "Hide", "Hide Menu")
dividerP(pageMain, 212)
section(pageMain, "target parts", 222)
local partRow = Instance.new("Frame", pageMain)
partRow.Size = UDim2.new(1, -28, 0, 26)
partRow.Position = UDim2.new(0, 14, 0, 238)
partRow.BackgroundColor3 = Theme.BgSegment
partRow.BackgroundTransparency = 0.15
partRow.BorderSizePixel = 0
partRow.ZIndex = 2
Instance.new("UICorner", partRow).CornerRadius = UDim.new(0, 9)
regColor(partRow, "BackgroundColor3", "BgSegment")
local partRowStroke = Instance.new("UIStroke", partRow)
partRowStroke.Color = Theme.Divider
partRowStroke.Thickness = 1
partRowStroke.Transparency = 0.6
regColor(partRowStroke, "Color", "Divider")
local partNames = { "Head", "Torso", "Arms" }
local partButtons = {}
local pw = (340 - 28 - 12) / 3
for i, pn in ipairs(partNames) do
local b = Instance.new("TextButton", partRow)
b.Size = UDim2.new(0, pw, 0, 20)
b.Position = UDim2.new(0, 6 + (i-1)*(pw+2), 0.5, -10)
b.BackgroundColor3 = Settings.TargetParts[pn] and Theme.Accent or Theme.BgCard
b.BorderSizePixel = 0
b.Font = Enum.Font.GothamBold
b.TextSize = 10
b.TextColor3 = Settings.TargetParts[pn] and Color3.new(1,1,1) or Theme.TextDim
b.Text = pn
b.AutoButtonColor = false
b.ZIndex = 4
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)
addRipple(b)
local cap = pn
b.MouseButton1Click:Connect(function()
local count = 0
for _, v in pairs(Settings.TargetParts) do if v then count = count + 1 end end
if Settings.TargetParts[cap] and count <= 1 then return end
Settings.TargetParts[cap] = not Settings.TargetParts[cap]
for nm, bb in pairs(partButtons) do
TweenService:Create(bb, TweenInfo.new(0.2, Enum.EasingStyle.Back), {
BackgroundColor3 = Settings.TargetParts[nm] and Theme.Accent or Theme.BgCard,
}):Play()
bb.TextColor3 = Settings.TargetParts[nm] and Color3.new(1,1,1) or Theme.TextDim
end
end)
partButtons[pn] = b
end
dividerP(pageMain, 274)
section(pageMain, "options", 284)
local visCard = Instance.new("Frame", pageMain)
visCard.Size = UDim2.new(1, -28, 0, 26)
visCard.Position = UDim2.new(0, 14, 0, 300)
visCard.BackgroundColor3 = Theme.BgCard
visCard.BackgroundTransparency = 0.1
visCard.BorderSizePixel = 0
visCard.ZIndex = 2
Instance.new("UICorner", visCard).CornerRadius = UDim.new(0, 9)
regColor(visCard, "BackgroundColor3", "BgCard")
local visStroke = Instance.new("UIStroke", visCard)
visStroke.Color = Theme.Divider
visStroke.Thickness = 1
visStroke.Transparency = 0.6
regColor(visStroke, "Color", "Divider")
local visLbl = Instance.new("TextLabel", visCard)
visLbl.Size = UDim2.new(1, -70, 1, 0)
visLbl.Position = UDim2.new(0, 16, 0, 0)
visLbl.BackgroundTransparency = 1
visLbl.Font = Enum.Font.GothamMedium
visLbl.TextSize = 11
visLbl.TextColor3 = Theme.Text
visLbl.TextXAlignment = Enum.TextXAlignment.Left
visLbl.Text = "Visible Check"
visLbl.ZIndex = 3
regColor(visLbl, "TextColor3", "Text")
local visSwBg = Instance.new("Frame", visCard)
visSwBg.Size = UDim2.new(0, 36, 0, 18)
visSwBg.Position = UDim2.new(1, -50, 0.5, -9)
visSwBg.BackgroundColor3 = Theme.Success
visSwBg.BorderSizePixel = 0
visSwBg.ZIndex = 3
Instance.new("UICorner", visSwBg).CornerRadius = UDim.new(1, 0)
regColor(visSwBg, "BackgroundColor3", "Success")
local visSwKnob = Instance.new("Frame", visSwBg)
visSwKnob.Size = UDim2.new(0, 14, 0, 14)
visSwKnob.Position = UDim2.new(1, -16, 0.5, -7)
visSwKnob.BackgroundColor3 = Color3.fromRGB(255,255,255)
visSwKnob.BorderSizePixel = 0
visSwKnob.ZIndex = 4
Instance.new("UICorner", visSwKnob).CornerRadius = UDim.new(1, 0)
local visBtn = Instance.new("TextButton", visCard)
visBtn.Size = UDim2.new(1, 0, 1, 0)
visBtn.BackgroundTransparency = 1
visBtn.Text = ""
visBtn.ZIndex = 5
addRipple(visBtn)
visBtn.MouseButton1Click:Connect(function()
Settings.VisibleCheck = not Settings.VisibleCheck
local on = Settings.VisibleCheck
TweenService:Create(visSwBg, TweenInfo.new(0.25, Enum.EasingStyle.Back), {
BackgroundColor3 = on and Theme.Success or Theme.BgCardHi,
}):Play()
TweenService:Create(visSwKnob, TweenInfo.new(0.25, Enum.EasingStyle.Back), {
Position = on and UDim2.new(1, -16, 0.5, -7) or UDim2.new(0, 2, 0.5, -7),
}):Play()
end)
section(pageMain, "aim", 336)
makeSlider(pageMain, 352, "Aim Radius", 0, 100,
function() return Settings.MaxDistance end,
function(v) Settings.MaxDistance = v end)
section(pageMain, "camera", 396)
local fovToggle = Instance.new("TextButton", pageMain)
fovToggle.Size = UDim2.new(0, 58, 0, 22)
fovToggle.Position = UDim2.new(1, -72, 0, 394)
fovToggle.BackgroundColor3 = Theme.BgCard
fovToggle.BackgroundTransparency = 0.1
fovToggle.BorderSizePixel = 0
fovToggle.Font = Enum.Font.GothamBold
fovToggle.TextSize = 10
fovToggle.TextColor3 = Theme.Text
fovToggle.Text = "OFF"
fovToggle.AutoButtonColor = false
fovToggle.ZIndex = 3
Instance.new("UICorner", fovToggle).CornerRadius = UDim.new(0, 6)
regColor(fovToggle, "BackgroundColor3", "BgCard")
addRipple(fovToggle)
local fovToggleStroke = Instance.new("UIStroke", fovToggle)
fovToggleStroke.Color = Theme.Danger
fovToggleStroke.Thickness = 1
fovToggleStroke.Transparency = 0.3
regColor(fovToggleStroke, "Color", "Danger")
makeSlider(pageMain, 416, "Camera FOV", 40, 140,
function() return Settings.FOVValue end,
function(v)
Settings.FOVValue = v
if Settings.FOVEnabled then Camera.FieldOfView = v end
end)
local function refreshFovToggle()
if Settings.FOVEnabled then
fovToggle.Text = "ON"
fovToggleStroke.Color = Theme.Success
fovToggle.TextColor3 = Theme.Success
else
fovToggle.Text = "OFF"
fovToggleStroke.Color = Theme.Danger
fovToggle.TextColor3 = Theme.Text
end
end
fovToggle.MouseButton1Click:Connect(function()
Settings.FOVEnabled = not Settings.FOVEnabled
applyFOV()
refreshFovToggle()
end)
refreshFovToggle()
section(pageMain, "appearance", 460)
local themeRow = Instance.new("Frame", pageMain)
themeRow.Size = UDim2.new(1, -28, 0, 26)
themeRow.Position = UDim2.new(0, 14, 0, 476)
themeRow.BackgroundColor3 = Theme.BgSegment
themeRow.BackgroundTransparency = 0.15
themeRow.BorderSizePixel = 0
themeRow.ZIndex = 2
Instance.new("UICorner", themeRow).CornerRadius = UDim.new(0, 9)
regColor(themeRow, "BackgroundColor3", "BgSegment")
local themeRowStroke = Instance.new("UIStroke", themeRow)
themeRowStroke.Color = Theme.Divider
themeRowStroke.Thickness = 1
themeRowStroke.Transparency = 0.6
regColor(themeRowStroke, "Color", "Divider")
local themeNames = { "classic", "black", "gray", "light-gray", "halloween" }
local themeLabels = { "Classic", "Black", "Gray", "Light", "🎃" }
local themeButtons = {}
local tw = (340 - 28 - 12) / 5
for i, tn in ipairs(themeNames) do
local b = Instance.new("TextButton", themeRow)
b.Size = UDim2.new(0, tw, 0, 20)
b.Position = UDim2.new(0, 6 + (i-1)*(tw+1), 0.5, -10)
b.BackgroundColor3 = Settings.ThemeName == tn and Theme.Accent or Theme.BgCard
b.BorderSizePixel = 0
b.Font = Enum.Font.GothamBold
b.TextSize = 9
b.TextColor3 = Settings.ThemeName == tn and Color3.new(1,1,1) or Theme.TextDim
b.Text = themeLabels[i]
b.AutoButtonColor = false
b.ZIndex = 4
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6)
addRipple(b)
local cap = tn
b.MouseButton1Click:Connect(function()
Settings.ThemeName = cap
applyTheme(cap)
for nm, bb in pairs(themeButtons) do
TweenService:Create(bb, TweenInfo.new(0.2, Enum.EasingStyle.Back), {
BackgroundColor3 = (Settings.ThemeName == nm) and Theme.Accent or Theme.BgCard,
}):Play()
bb.TextColor3 = (Settings.ThemeName == nm) and Color3.new(1,1,1) or Theme.TextDim
end
end)
themeButtons[tn] = b
end
makeSlider(pageMain, 512, "Opacity", 0, 100,
function() return Settings.Opacity end,
function(v) Settings.Opacity = v; applyOpacity() end, "%")
makeSlider(pageMain, 548, "Scale", 70, 130,
function() return Settings.Scale end,
function(v)
Settings.Scale = v
TweenService:Create(uiScale, TweenInfo.new(0.15), {Scale = v / 100}):Play()
end, "%")
-- ============================================================
-- SHADERS PAGE
-- ============================================================
section(pageShaders, "weather", 10)
makeShaderToggle(pageShaders, 26, "ShaderSnow", "❄ Snow", function(o) toggleSnow(o) end)
makeShaderToggle(pageShaders, 56, "ShaderRain", "🌧 Rain", function(o) toggleRain(o) end)
makeShaderToggle(pageShaders, 86, "ShaderFire", "🔥 Fire", function(o) toggleFire(o) end)
makeShaderToggle(pageShaders, 116, "ShaderStars","✨ Stars", function(o) toggleStars(o) end)
local function dividerS(y)
local d = Instance.new("Frame", pageShaders)
d.Size = UDim2.new(1, -28, 0, 1)
d.Position = UDim2.new(0, 14, 0, y)
d.BackgroundColor3 = Theme.Divider
d.BackgroundTransparency = 0.5
d.BorderSizePixel = 0
d.ZIndex = 2
regColor(d, "BackgroundColor3", "Divider")
end
dividerS(152)
section(pageShaders, "atmosphere", 162)
makeShaderToggle(pageShaders, 178, "ShaderFog", "🌫 Fog", function(o) toggleFog(o) end)
makeShaderToggle(pageShaders, 208, "ShaderSunset","🌅 Sunset Sky", function(o) toggleSunset(o) end)
makeShaderToggle(pageShaders, 238, "ShaderNight", "🌙 Night Time", function(o) toggleNight(o) end)
dividerS(274)
section(pageShaders, "post processing", 284)
makeShaderToggle(pageShaders, 300, "ShaderBloom", "💎 Bloom", function(o) toggleBloom(o) end)
makeShaderToggle(pageShaders, 330, "ShaderColorCor","🎨 Color Correction", function(o) toggleColorCor(o) end)
makeShaderToggle(pageShaders, 360, "ShaderRainbow", "🌈 Rainbow Cycle", function(o) toggleRainbow(o) end)
makeShaderToggle(pageShaders, 390, "ShaderChroma", "🔴 Chromatic", function(o) toggleChroma(o) end)
makeShaderToggle(pageShaders, 420, "ShaderDOF", "🔍 Depth of Field", function(o) toggleDOF(o) end)
-- ============================================================
-- FOOTER
-- ============================================================
local footer = Instance.new("Frame", frame)
footer.Size = UDim2.new(1, 0, 0, 40)
footer.Position = UDim2.new(0, 0, 1, -40)
footer.BackgroundColor3 = Theme.BgPanel
footer.BackgroundTransparency = 0.1
footer.BorderSizePixel = 0
footer.ZIndex = 4
regColor(footer, "BackgroundColor3", "BgPanel")
regAlpha(footer, "BackgroundTransparency", "BgPanel")
local footerTopLine = Instance.new("Frame", footer)
footerTopLine.Size = UDim2.new(1, 0, 0, 1)
footerTopLine.Position = UDim2.new(0, 0, 0, 0)
footerTopLine.BackgroundColor3 = Theme.Divider
footerTopLine.BackgroundTransparency = 0.5
footerTopLine.BorderSizePixel = 0
footerTopLine.ZIndex = 5
regColor(footerTopLine, "BackgroundColor3", "Divider")
local sessionLbl = Instance.new("TextLabel", footer)
sessionLbl.Size = UDim2.new(0, 120, 0, 12)
sessionLbl.Position = UDim2.new(0, 18, 0, 14)
sessionLbl.BackgroundTransparency = 1
sessionLbl.Font = Enum.Font.Gotham
sessionLbl.TextSize = 9
sessionLbl.TextColor3 = Theme.TextMuted
sessionLbl.TextXAlignment = Enum.TextXAlignment.Left
sessionLbl.Text = "SESSION 00:00"
sessionLbl.ZIndex = 3
regColor(sessionLbl, "TextColor3", "TextMuted")
local statsLbl = Instance.new("TextLabel", footer)
statsLbl.Size = UDim2.new(0, 180, 0, 12)
statsLbl.Position = UDim2.new(1, -198, 0, 14)
statsLbl.BackgroundTransparency = 1
statsLbl.Font = Enum.Font.Gotham
statsLbl.TextSize = 9
statsLbl.TextColor3 = Theme.TextMuted
statsLbl.TextXAlignment = Enum.TextXAlignment.Right
statsLbl.Text = "FPS — PING —"
statsLbl.ZIndex = 3
regColor(statsLbl, "TextColor3", "TextMuted")
-- ============================================================
-- RESIZE
-- ============================================================
local resizeHandle = Instance.new("TextButton", frame)
resizeHandle.Size = UDim2.new(0, 20, 0, 20)
resizeHandle.Position = UDim2.new(1, -22, 1, -22)
resizeHandle.BackgroundTransparency = 1
resizeHandle.Text = ""
resizeHandle.ZIndex = 10
for i = 0, 2 do
local dot = Instance.new("Frame", resizeHandle)
dot.Size = UDim2.new(0, 3, 0, 3)
dot.Position = UDim2.new(1, -5 - i*4, 1, -5 - i*4)
dot.BackgroundColor3 = Theme.TextMuted
dot.BackgroundTransparency = 0.4
dot.BorderSizePixel = 0
dot.ZIndex = 11
Instance.new("UICorner", dot).CornerRadius = UDim.new(1, 0)
regColor(dot, "BackgroundColor3", "TextMuted")
end
local resizing, rStart, rSize = false, nil, nil
resizeHandle.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then
resizing = true; rStart = i.Position; rSize = frame.Size
end
end)
UserInputService.InputChanged:Connect(function(i)
if resizing and i.UserInputType == Enum.UserInputType.MouseMovement then
local d = i.Position - rStart
frame.Size = UDim2.new(0,
math.clamp(rSize.X.Offset + d.X, 300, 600),
0, math.clamp(rSize.Y.Offset + d.Y, 500, 1000))
end
end)
UserInputService.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then resizing = false end
end)
-- ============================================================
-- BIND CHANGE
-- ============================================================
local function refreshRow(key)
local d = rowData[key]
if not d then return end
if awaitingBind == key then
d.keyLbl.Text = "..."
d.keyLbl.TextColor3 = Theme.Warn
else
d.keyLbl.Text = bindName(Binds[key])
d.keyLbl.TextColor3 = Theme.AccentHi
end
end
local function refreshAllRows() for k in pairs(rowData) do refreshRow(k) end end
local function bindClick(key)
return function(input)
if input.UserInputType == Enum.UserInputType.MouseButton3 then
awaitingBind = key
justOpenedBind = true
refreshAllRows()
task.spawn(function() task.wait(0.05); justOpenedBind = false end)
end
end
end
for k, d in pairs(rowData) do
local b = d.card:FindFirstChildOfClass("TextButton")
if b then b.InputBegan:Connect(bindClick(k)) end
end
refreshAllRows()
applyTheme("classic")
applyOpacity()
-- ============================================================
-- DRAG
-- ============================================================
local dragging, dragStart, startPos
header.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true; dragStart = i.Position; startPos = frame.Position
i.Changed:Connect(function()
if i.UserInputState == Enum.UserInputState.End then dragging = false end
end)
end
end)
UserInputService.InputChanged:Connect(function(i)
if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then
local d = i.Position - dragStart
frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y)
end
end)
UserInputService.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end
end)
-- ============================================================
-- FREEZE / AIM
-- ============================================================
local savedWalk, savedJump
local function freezeCharacter()
local c = LP.Character; if not c then return end
local h = c:FindFirstChildOfClass("Humanoid")
local r = c:FindFirstChild("HumanoidRootPart")
if not h or not r then return end
isFrozen = true
savedWalk, savedJump = h.WalkSpeed, h.JumpPower
h.WalkSpeed, h.JumpPower = 0, 0
pcall(function() h.JumpHeight = 0 end)
r.Anchored = true
end
local function unfreezeCharacter()
local c = LP.Character; if not c then return end
local h = c:FindFirstChildOfClass("Humanoid")
local r = c:FindFirstChild("HumanoidRootPart")
if h then h.WalkSpeed, h.JumpPower = savedWalk or 16, savedJump or 50 end
if r then r.Anchored = false end
isFrozen = false
end
local function isVisible(tp)
if not Settings.VisibleCheck then return true end
local o = Camera.CFrame.Position
local d = tp.Position - o
local dist = d.Magnitude
if dist < 0.01 then return true end
local p = RaycastParams.new()
p.FilterType = Enum.RaycastFilterType.Exclude
p.FilterDescendantsInstances = {LP.Character, tp.Parent}
p.IgnoreWater = true
return workspace:Raycast(o, d.Unit * dist, p) == nil
end
local function isInFront(tp)
local cp = Camera.CFrame.Position
local lv = Camera.CFrame.LookVector
local t = tp.Position - cp
if t.Magnitude < 0.001 then return true end
return math.deg(math.acos(math.clamp(lv:Dot(t.Unit), -1, 1))) <= Settings.MaxAngle
end
local function isAllowed(name)
if listMode == "ignore" then return not selectedList[name] else return selectedList[name] == true end
end
local function getParts(char)
local out = {}
if Settings.TargetParts.Head then
local h = char:FindFirstChild("Head") or char:FindFirstChild("HumanoidRootPart")
if h then table.insert(out, h) end
end
if Settings.TargetParts.Torso then
local t = char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("HumanoidRootPart")
if t then table.insert(out, t) end
end
if Settings.TargetParts.Arms then
local l = char:FindFirstChild("Left Arm") or char:FindFirstChild("LeftUpperArm")
local r = char:FindFirstChild("Right Arm") or char:FindFirstChild("RightUpperArm")
if l then table.insert(out, l) end
if r then table.insert(out, r) end
end
if #out == 0 then
local hrp = char:FindFirstChild("HumanoidRootPart")
if hrp then table.insert(out, hrp) end
end
return out
end
local function getTarget()
if not LP.Character or not LP.Character:FindFirstChild("HumanoidRootPart") then return nil, nil end
local best, bd, bp = nil, math.huge, nil
local myPos = LP.Character.HumanoidRootPart.Position
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LP and isAllowed(plr.Name) and plr.Character then
local hum = plr.Character:FindFirstChildOfClass("Humanoid")
if hum and hum.Health > 0 then
for _, tp in ipairs(getParts(plr.Character)) do
local dist = (tp.Position - myPos).Magnitude
if dist <= Settings.MaxDistance and isInFront(tp) and isVisible(tp) and dist < bd then
best, bd, bp = plr, dist, tp
end
end
end
end
end
return best, bp
end
local function leftClick()
pcall(function()
VirtualInputManager:SendMouseButtonEvent(0,0,0,true,game,1)
VirtualInputManager:SendMouseButtonEvent(0,0,0,false,game,1)
end)
pcall(function() mouse1click() end)
end
local function aimAt(target, part)
if not target or not part then return end
Camera.CFrame = CFrame.new(Camera.CFrame.Position, part.Position)
pcall(function() if mouse then mouse.Hit = CFrame.new(Camera.CFrame.Position, part.Position) end end)
local now = tick()
if now - lastClick >= Settings.ClickDelay then
lastClick = now
isAimingSelf = true
task.spawn(function()
RunService.RenderStepped:Wait()
leftClick()
task.wait(0.05)
isAimingSelf = false
end)
end
end
local fps, fc, lfu = 0, 0, tick()
local function getPing()
local ok, r = pcall(function() return LP:GetNetworkPing() end)
if ok and type(r) == "number" and r > 0 then return math.floor(r * 1000) end
return nil
end
-- ============================================================
-- INPUT
-- ============================================================
UserInputService.InputBegan:Connect(function(input, gp)
if awaitingBind then
if justOpenedBind then return end
if input.KeyCode == Enum.KeyCode.Escape then
local p = awaitingBind; awaitingBind = nil; refreshRow(p); return
end
if input.KeyCode ~= Enum.KeyCode.Unknown then
Binds[awaitingBind] = {type="key", value=input.KeyCode}
elseif input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.MouseButton2
or input.UserInputType == Enum.UserInputType.MouseButton3 then
Binds[awaitingBind] = {type="mouse", value=input.UserInputType}
else return end
local p = awaitingBind; awaitingBind = nil; justBound = true
refreshRow(p)
task.delay(0.25, function() justBound = false end)
return
end
if isAimingSelf or justBound then return end
if matchBind(input, Binds.Hide) then
isGuiVisible = not isGuiVisible
if isGuiVisible then
frame.Visible = true
frame.Size = UDim2.new(0, 300, 0, 570)
frame.BackgroundTransparency = 1
uiScale.Scale = 0.85
TweenService:Create(frame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Size = UDim2.new(0, 340, 0, 640),
BackgroundTransparency = 0,
}):Play()
TweenService:Create(uiScale, TweenInfo.new(0.35, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Scale = Settings.Scale / 100,
}):Play()
task.spawn(function()
local items = {}
for _, child in ipairs(pageMain:GetDescendants()) do
if child:IsA("Frame") or child:IsA("TextLabel") or child:IsA("TextButton") then
table.insert(items, child)
end
end
for i, item in ipairs(items) do
local targetPos = item.Position
item.Position = UDim2.new(targetPos.X.Scale, targetPos.X.Offset, targetPos.Y.Scale, targetPos.Y.Offset + 10)
task.spawn(function()
task.wait(i * 0.012)
TweenService:Create(item, TweenInfo.new(0.28, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Position = targetPos,
}):Play()
end)
end
end)
else
TweenService:Create(frame, TweenInfo.new(0.18, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {
Size = UDim2.new(0, 300, 0, 570),
BackgroundTransparency = 1,
}):Play()
TweenService:Create(uiScale, TweenInfo.new(0.18, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {
Scale = 0.85,
}):Play()
task.wait(0.2)
frame.Visible = false
end
return
end
if matchBind(input, Binds.Lock) then
if Settings.ManualLock then isLocked = not isLocked end
return
end
if matchBind(input, Binds.Freeze) then freezeCharacter(); return end
if matchBind(input, Binds.Aim) then
if isLocked then return end
local t, p = getTarget()
if t and p then aimAt(t, p) end
return
end
if matchBind(input, Binds.Pallet) then spawnPallet(); return end
if matchBind(input, Binds.FOVToggle) then
Settings.FOVEnabled = not Settings.FOVEnabled
applyFOV(); refreshFovToggle()
return
end
end)
UserInputService.InputEnded:Connect(function(input)
if isAimingSelf then return end
if matchBind(input, Binds.Freeze) and isFrozen then unfreezeCharacter() end
end)
-- ============================================================
-- MAIN LOOP
-- ============================================================
RunService.RenderStepped:Connect(function()
fc = fc + 1
local now = tick()
if now - lfu >= 0.5 then
fps = math.floor(fc / (now - lfu) + 0.5)
fc = 0; lfu = now
if isGuiVisible then
local p = getPing()
statsLbl.Text = string.format("FPS %d · PING %s", fps, p and (p.." ms") or "—")
end
end
if now - lastTimerTick >= 1 then
lastTimerTick = now
if isGuiVisible then
sessionLbl.Text = "SESSION · " .. formatTime(now - sessionStart)
end
end
end)
print("[Shevon UI v9] Загружено. Нажми RCTRL чтобы открыть.")Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place