M
Description
solar open source script troll \ visual
GAME[THE HUNT!] Car Dealership Tycoon
UPDATEDOct 19, 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 ]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local Debris = game:GetService("Debris")
local Lighting = game:GetService("Lighting")
local InsertService = game:GetService("InsertService")
local Stats = game:GetService("Stats")
local LP = Players.LocalPlayer
local PlayerGui = LP:WaitForChild("PlayerGui")
local env = (getgenv and getgenv()) or _G
if env.SolarCleanup then pcall(env.SolarCleanup) end
for _, name in ipairs({ "SolarCdtGui", "SolarSplash", "SolarCdtUltimateGui" }) do
local old = PlayerGui:FindFirstChild(name)
if old then old:Destroy() end
end
local Connections = {}
local function connect(signal, fn)
local c = signal:Connect(fn)
Connections[#Connections + 1] = c
return c
end
local function make(class, props, parent)
local inst = Instance.new(class)
for k, v in pairs(props) do inst[k] = v end
if parent then inst.Parent = parent end
return inst
end
local function round(parent, radius)
return make("UICorner", { CornerRadius = UDim.new(0, radius) }, parent)
end
local function stroke(parent, color, transparency, thickness)
return make("UIStroke", {
Color = color or Color3.fromRGB(88, 70, 132),
Transparency = transparency or 0.5,
Thickness = thickness or 1,
}, parent)
end
local function gradient(parent, from, to, rotation)
return make("UIGradient", {
Color = ColorSequence.new(from, to),
Rotation = rotation or 0,
}, parent)
end
--==============================================================
-- THEME
--==============================================================
local C = {
bg1 = Color3.fromRGB(24, 15, 44),
bg2 = Color3.fromRGB(6, 4, 12),
panel = Color3.fromRGB(13, 10, 22),
card = Color3.fromRGB(23, 17, 39),
cardHi = Color3.fromRGB(33, 25, 56),
track = Color3.fromRGB(44, 34, 68),
line = Color3.fromRGB(70, 54, 112),
purple = Color3.fromRGB(146, 92, 255),
purple2 = Color3.fromRGB(92, 40, 210),
pink = Color3.fromRGB(224, 74, 246),
cyan = Color3.fromRGB(56, 214, 240),
green = Color3.fromRGB(52, 211, 153),
red = Color3.fromRGB(248, 113, 113),
text = Color3.fromRGB(244, 240, 255),
sub = Color3.fromRGB(152, 142, 188),
dim = Color3.fromRGB(98, 88, 132),
}
--==============================================================
-- STATE
--==============================================================
local S = {
walkSpeed = 16,
jumpPower = 50,
fly = false,
flySpeed = 65,
noclip = false,
infJump = false,
accel = 1,
maxSpeed = 9999,
drift = false,
antiDrift = false,
tracks = false,
carFly = false,
carJump = false,
carJumpPower = 72,
carFlySpeed = 55,
driftAngle = 35,
driftGrip = 0.4,
fullbright = false,
noFog = false,
fov = 70,
uiScale = 1,
showPlates = true,
autoFarm = false,
farmMiles = 0,
farmMoney = 0,
farmSpeed = 320,
writeStats = true,
}
local Toggles = {}
local setMenuVisible, closeMenu, cleanup
local getVehicle, restoreGrip, restoreNoclip, applyFullbright, applyNoFog
local startFarm, stopFarm, refreshFarmLabels
local closing = false
local menuVisible = true
--==============================================================
-- SPLASH
--==============================================================
-- Solar Eclipse (asset 106711499550773): thumbnail renders more reliably than the decal
local SPLASH_IMAGE = "rbxthumb://type=Asset&id=106711499550773&w=420&h=420"
local function playSplash(onDone)
local sg = make("ScreenGui", {
Name = "SolarSplash",
DisplayOrder = 6000,
IgnoreGuiInset = true,
ResetOnSpawn = false,
ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
}, PlayerGui)
local back = make("Frame", {
Size = UDim2.fromScale(1, 1),
BackgroundColor3 = Color3.fromRGB(3, 2, 7),
BorderSizePixel = 0,
BackgroundTransparency = 1,
}, sg)
local center = make("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(760, 420),
BackgroundTransparency = 1,
}, back)
local typed = make("TextLabel", {
Position = UDim2.fromOffset(0, 0),
Size = UDim2.new(1, 0, 0, 34),
BackgroundTransparency = 1,
Text = "",
TextColor3 = C.text,
TextSize = 24,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Center,
}, center)
gradient(typed, Color3.fromRGB(255, 255, 255), C.pink, 0)
local showcase = make("Frame", {
AnchorPoint = Vector2.new(0.5, 0),
Position = UDim2.new(0.5, 0, 0, 46),
Size = UDim2.fromOffset(0, 0),
BackgroundColor3 = C.panel,
BorderSizePixel = 0,
ClipsDescendants = true,
}, center)
round(showcase, 18)
local showcaseStroke = stroke(showcase, C.purple, 1, 2)
gradient(showcase, C.bg1, C.bg2, 120)
local shot = make("ImageLabel", {
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
Image = SPLASH_IMAGE,
ImageTransparency = 1,
ScaleType = Enum.ScaleType.Crop,
}, showcase)
local shotShade = make("Frame", {
Size = UDim2.fromScale(1, 1),
BackgroundColor3 = Color3.fromRGB(8, 5, 16),
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, showcase)
gradient(shotShade, Color3.fromRGB(8, 5, 16), Color3.fromRGB(8, 5, 16), 90)
local barWrap = make("Frame", {
AnchorPoint = Vector2.new(0.5, 0),
Position = UDim2.new(0.5, 0, 0, 274),
Size = UDim2.fromOffset(420, 40),
BackgroundTransparency = 1,
}, center)
local barLabel = make("TextLabel", {
Size = UDim2.new(1, 0, 0, 18),
BackgroundTransparency = 1,
Text = "",
TextColor3 = C.sub,
TextSize = 11,
Font = Enum.Font.GothamMedium,
TextTransparency = 1,
}, barWrap)
local barBg = make("Frame", {
Position = UDim2.fromOffset(0, 24),
Size = UDim2.new(1, 0, 0, 4),
BackgroundColor3 = Color3.fromRGB(38, 30, 60),
BorderSizePixel = 0,
BackgroundTransparency = 1,
}, barWrap)
round(barBg, 2)
local barFill = make("Frame", {
Size = UDim2.new(0, 0, 1, 0),
BackgroundColor3 = C.purple,
BorderSizePixel = 0,
BackgroundTransparency = 1,
}, barBg)
round(barFill, 2)
gradient(barFill, C.purple, C.pink)
task.spawn(function()
TweenService:Create(back, TweenInfo.new(0.35), { BackgroundTransparency = 0 }):Play()
task.wait(0.35)
local text = "SOLAR SCRIPT PRESENTS"
for i = 1, #text do
typed.Text = string.sub(text, 1, i)
task.wait(0.028)
end
task.wait(0.2)
TweenService:Create(showcase, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
Size = UDim2.fromOffset(520, 200),
}):Play()
TweenService:Create(showcaseStroke, TweenInfo.new(0.6), { Transparency = 0.35 }):Play()
TweenService:Create(shot, TweenInfo.new(0.8), { ImageTransparency = 0.15 }):Play()
TweenService:Create(shotShade, TweenInfo.new(0.8), { BackgroundTransparency = 0.55 }):Play()
task.wait(0.75)
TweenService:Create(center, TweenInfo.new(0.6, Enum.EasingStyle.Quart, Enum.EasingDirection.InOut), {
Position = UDim2.fromScale(0.5, 0.56),
}):Play()
task.wait(0.3)
TweenService:Create(barLabel, TweenInfo.new(0.3), { TextTransparency = 0 }):Play()
TweenService:Create(barBg, TweenInfo.new(0.3), { BackgroundTransparency = 0 }):Play()
TweenService:Create(barFill, TweenInfo.new(0.3), { BackgroundTransparency = 0 }):Play()
local label = "solar script present"
for i = 1, #label do
barLabel.Text = string.sub(label, 1, i)
task.wait(0.026)
end
TweenService:Create(barFill, TweenInfo.new(1.0, Enum.EasingStyle.Quad), {
Size = UDim2.new(1, 0, 1, 0),
}):Play()
task.wait(1.1)
local out = TweenInfo.new(0.45, Enum.EasingStyle.Quad, Enum.EasingDirection.In)
TweenService:Create(back, out, { BackgroundTransparency = 1 }):Play()
TweenService:Create(typed, out, { TextTransparency = 1 }):Play()
TweenService:Create(shot, out, { ImageTransparency = 1 }):Play()
TweenService:Create(barLabel, out, { TextTransparency = 1 }):Play()
TweenService:Create(barBg, out, { BackgroundTransparency = 1 }):Play()
TweenService:Create(barFill, out, { BackgroundTransparency = 1 }):Play()
TweenService:Create(showcase, out, { BackgroundTransparency = 1 }):Play()
TweenService:Create(showcaseStroke, out, { Transparency = 1 }):Play()
task.wait(0.5)
if sg then sg:Destroy() end
if onDone then onDone() end
end)
end
--==============================================================
-- GUI SHELL
--==============================================================
local W, H = 700, 470
local SIDE_W, GAP = 132, 8
local PANEL_X = SIDE_W + GAP
local MENU_W = W + PANEL_X * 2
local TOP = 54
local RAIL_X, RAIL_Y, RAIL_W = 10, 64, 54
local CONTENT_X, CONTENT_Y = 74, 64
local CONTENT_W, CONTENT_H = W - CONTENT_X - 12, H - CONTENT_Y - 12
local HAS_CANVAS = pcall(function()
local probe = Instance.new("CanvasGroup")
probe.GroupTransparency = 0.5
probe:Destroy()
end)
local function newGroup(props, parent)
if HAS_CANVAS then
return make("CanvasGroup", props, parent)
end
props.GroupTransparency = nil
return make("Frame", props, parent)
end
local function fadeGroup(inst, alpha, info)
if not inst:IsA("CanvasGroup") then return end
if info then
TweenService:Create(inst, info, { GroupTransparency = alpha }):Play()
else
inst.GroupTransparency = alpha
end
end
local gui = make("ScreenGui", {
Name = "SolarCdtGui",
ResetOnSpawn = false,
DisplayOrder = 999,
IgnoreGuiInset = true,
ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
}, PlayerGui)
local menu = newGroup({
Name = "Menu",
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(MENU_W, H),
BackgroundTransparency = 1,
GroupTransparency = 1,
Visible = false,
}, gui)
local guiScale = make("UIScale", { Scale = 1 }, menu)
local baseScale = 1
local plateScale
local function refreshScale()
local cam = workspace.CurrentCamera
local vp = cam and cam.ViewportSize or Vector2.new(1280, 720)
local fit = math.min((vp.X - 24) / MENU_W, (vp.Y - 24) / H)
fit = math.clamp(fit, 0.35, 1.05)
baseScale = fit * S.uiScale
guiScale.Scale = baseScale
if plateScale then
plateScale.Scale = math.clamp(fit, 0.6, 1)
end
end
--==============================================================
-- PANEL
--==============================================================
local panel = make("Frame", {
Name = "Panel",
Position = UDim2.fromOffset(PANEL_X, 0),
Size = UDim2.fromOffset(W, H),
BackgroundColor3 = C.panel,
BorderSizePixel = 0,
Active = true,
ZIndex = 2,
}, menu)
round(panel, 18)
local panelStroke = stroke(panel, C.purple, 0.45, 1.4)
local panelGrad = gradient(panel, C.bg1, C.bg2, 125)
task.spawn(function()
while panelGrad and panelGrad.Parent do
TweenService:Create(panelGrad, TweenInfo.new(5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
Rotation = 165,
}):Play()
task.wait(5.1)
if not panelGrad.Parent then break end
TweenService:Create(panelGrad, TweenInfo.new(5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
Rotation = 125,
}):Play()
task.wait(5.1)
end
end)
--==============================================================
-- FLOATING PLATES (speed + system stats)
--==============================================================
local plateHolder = make("Frame", {
Name = "Plates",
AnchorPoint = Vector2.new(1, 0),
Position = UDim2.new(1, -18, 0, 96),
Size = UDim2.fromOffset(196, 360),
BackgroundTransparency = 1,
Visible = false,
ZIndex = 20,
}, gui)
plateScale = make("UIScale", { Scale = 1 }, plateHolder)
-- speed plate
local speedPlate = make("Frame", {
Size = UDim2.fromOffset(150, 150),
Position = UDim2.fromOffset(46, 0),
BackgroundColor3 = C.panel,
BackgroundTransparency = 0.05,
BorderSizePixel = 0,
ZIndex = 21,
}, plateHolder)
round(speedPlate, 16)
local speedPlateStroke = stroke(speedPlate, C.purple, 0.35, 1.5)
gradient(speedPlate, C.bg1, C.bg2, 120)
make("TextLabel", {
Position = UDim2.fromOffset(0, 18),
Size = UDim2.new(1, 0, 0, 20),
BackgroundTransparency = 1,
Text = "⚡",
TextColor3 = C.purple,
TextSize = 17,
Font = Enum.Font.GothamBold,
ZIndex = 22,
}, speedPlate)
local plateSpeedValue = make("TextLabel", {
Position = UDim2.fromOffset(0, 44),
Size = UDim2.new(1, 0, 0, 40),
BackgroundTransparency = 1,
Text = "0",
TextColor3 = C.text,
TextSize = 34,
Font = Enum.Font.GothamBold,
ZIndex = 22,
}, speedPlate)
gradient(plateSpeedValue, Color3.new(1, 1, 1), C.pink, 90)
make("TextLabel", {
Position = UDim2.fromOffset(0, 88),
Size = UDim2.new(1, 0, 0, 16),
BackgroundTransparency = 1,
Text = "STUDS / S",
TextColor3 = C.sub,
TextSize = 9,
Font = Enum.Font.GothamBold,
ZIndex = 22,
}, speedPlate)
local plateBarBg = make("Frame", {
Position = UDim2.fromOffset(22, 118),
Size = UDim2.new(1, -44, 0, 4),
BackgroundColor3 = C.track,
BorderSizePixel = 0,
ZIndex = 22,
}, speedPlate)
round(plateBarBg, 2)
local plateBarFill = make("Frame", {
Size = UDim2.new(0, 0, 1, 0),
BackgroundColor3 = C.purple,
BorderSizePixel = 0,
ZIndex = 23,
}, plateBarBg)
round(plateBarFill, 2)
gradient(plateBarFill, C.purple, C.pink)
-- system stats plate
local statsPlate = make("Frame", {
Size = UDim2.fromOffset(196, 202),
Position = UDim2.fromOffset(0, 162),
BackgroundColor3 = C.panel,
BackgroundTransparency = 0.05,
BorderSizePixel = 0,
ZIndex = 21,
}, plateHolder)
round(statsPlate, 14)
stroke(statsPlate, C.line, 0.4, 1.2)
gradient(statsPlate, C.bg1, C.bg2, 100)
local STAT_ROWS = {
{ id = "ping", icon = "rbxassetid://77498244056417", glyph = "≋" },
{ id = "fps", icon = "rbxassetid://12684119292", glyph = "▤" },
{ id = "server", icon = "rbxassetid://9692125179", glyph = "◈" },
{ id = "user", icon = "rbxassetid://53890741", glyph = "★" },
}
local statValues = {}
for index, row in ipairs(STAT_ROWS) do
local y = 10 + (index - 1) * 38
local rowFrame = make("Frame", {
Position = UDim2.fromOffset(10, y),
Size = UDim2.new(1, -20, 0, 32),
BackgroundColor3 = C.card,
BackgroundTransparency = 0.55,
BorderSizePixel = 0,
ZIndex = 22,
}, statsPlate)
round(rowFrame, 8)
make("TextLabel", {
Position = UDim2.fromOffset(4, 6),
Size = UDim2.fromOffset(20, 20),
BackgroundTransparency = 1,
Text = row.glyph,
TextColor3 = C.purple,
TextSize = 12,
Font = Enum.Font.GothamBold,
ZIndex = 23,
}, rowFrame)
local icon = make("ImageLabel", {
Position = UDim2.fromOffset(4, 6),
Size = UDim2.fromOffset(20, 20),
BackgroundTransparency = 1,
Image = row.icon,
ImageTransparency = 0.15,
ZIndex = 24,
}, rowFrame)
local value = make("TextLabel", {
Position = UDim2.fromOffset(30, 0),
Size = UDim2.new(1, -36, 1, 0),
BackgroundTransparency = 1,
Text = "—",
TextColor3 = C.text,
TextSize = 10,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
TextTruncate = Enum.TextTruncate.AtEnd,
ZIndex = 23,
}, rowFrame)
if row.id == "user" then
local rainbow = make("UIGradient", {
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, C.purple),
ColorSequenceKeypoint.new(0.25, C.pink),
ColorSequenceKeypoint.new(0.5, C.cyan),
ColorSequenceKeypoint.new(0.75, C.green),
ColorSequenceKeypoint.new(1, C.purple),
}),
Rotation = 0,
}, value)
task.spawn(function()
while rainbow and rainbow.Parent do
TweenService:Create(rainbow, TweenInfo.new(3, Enum.EasingStyle.Linear), {
Rotation = 360,
}):Play()
task.wait(3)
if rainbow.Parent then rainbow.Rotation = 0 end
end
end)
value.Text = LP.DisplayName .. " @" .. LP.Name
value.TextSize = 10
end
if row.id == "ping" then
local bars = {}
for b = 1, 3 do
local bar = make("Frame", {
AnchorPoint = Vector2.new(0, 1),
Position = UDim2.new(1, -38 + (b - 1) * 6, 0.5, 6),
Size = UDim2.fromOffset(4, 4 + b * 3),
BackgroundColor3 = C.track,
BorderSizePixel = 0,
ZIndex = 23,
}, rowFrame)
round(bar, 2)
bars[b] = bar
end
statValues.pingBars = bars
value.Size = UDim2.new(1, -84, 1, 0)
end
statValues[row.id] = value
end
--==============================================================
-- HEADER
--==============================================================
local header = make("Frame", {
Size = UDim2.new(1, 0, 0, TOP),
BackgroundTransparency = 1,
ZIndex = 3,
}, panel)
local mark = make("Frame", {
Position = UDim2.fromOffset(14, 11),
Size = UDim2.fromOffset(32, 32),
BackgroundColor3 = Color3.new(1, 1, 1),
BorderSizePixel = 0,
}, header)
round(mark, 9)
gradient(mark, C.purple, C.pink, 45)
make("TextLabel", {
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
Text = "★",
TextColor3 = Color3.new(1, 1, 1),
TextSize = 17,
Font = Enum.Font.GothamBold,
}, mark)
local brand = make("TextLabel", {
Position = UDim2.fromOffset(56, 8),
Size = UDim2.fromOffset(160, 22),
BackgroundTransparency = 1,
Text = "SOLAR",
TextColor3 = C.text,
TextSize = 17,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
}, header)
gradient(brand, Color3.fromRGB(255, 255, 255), C.pink, 0)
make("TextLabel", {
Position = UDim2.fromOffset(57, 28),
Size = UDim2.fromOffset(240, 14),
BackgroundTransparency = 1,
Text = "ULTIMATE CONTROL",
TextColor3 = C.dim,
TextSize = 8,
Font = Enum.Font.GothamMedium,
TextXAlignment = Enum.TextXAlignment.Left,
}, header)
local statusPill = make("Frame", {
Position = UDim2.new(1, -226, 0, 13),
Size = UDim2.fromOffset(126, 28),
BackgroundColor3 = C.card,
BackgroundTransparency = 0.4,
BorderSizePixel = 0,
}, header)
round(statusPill, 14)
stroke(statusPill, C.line, 0.6, 1)
local statusDot = make("Frame", {
Position = UDim2.fromOffset(11, 10),
Size = UDim2.fromOffset(8, 8),
BackgroundColor3 = C.green,
BorderSizePixel = 0,
}, statusPill)
round(statusDot, 4)
local statusGlow = stroke(statusDot, C.green, 0.5, 1)
local statusText = make("TextLabel", {
Position = UDim2.fromOffset(25, 0),
Size = UDim2.new(1, -30, 1, 0),
BackgroundTransparency = 1,
Text = "Ready",
TextColor3 = C.text,
TextSize = 9,
Font = Enum.Font.GothamMedium,
TextXAlignment = Enum.TextXAlignment.Left,
}, statusPill)
local function topButton(text, x, onClick)
local b = make("TextButton", {
Position = UDim2.new(1, x, 0, 13),
Size = UDim2.fromOffset(28, 28),
BackgroundColor3 = C.card,
BackgroundTransparency = 0.25,
Text = text,
TextColor3 = C.text,
TextSize = 15,
Font = Enum.Font.GothamBold,
AutoButtonColor = false,
}, header)
round(b, 8)
stroke(b, C.line, 0.55, 1)
connect(b.MouseEnter, function()
TweenService:Create(b, TweenInfo.new(0.12), { BackgroundTransparency = 0 }):Play()
end)
connect(b.MouseLeave, function()
TweenService:Create(b, TweenInfo.new(0.12), { BackgroundTransparency = 0.25 }):Play()
end)
connect(b.MouseButton1Click, onClick)
return b
end
--==============================================================
-- DRAG
--==============================================================
local dragZone = make("Frame", {
Size = UDim2.new(1, -300, 0, TOP),
BackgroundTransparency = 1,
ZIndex = 2,
}, header)
local dragging, dragStart, panelStart = false, nil, nil
connect(dragZone.InputBegan, function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
panelStart = menu.Position
end
end)
connect(UIS.InputChanged, function(input)
if not dragging then return end
if input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch then
local d = input.Position - dragStart
menu.Position = UDim2.new(
panelStart.X.Scale, panelStart.X.Offset + d.X,
panelStart.Y.Scale, panelStart.Y.Offset + d.Y
)
end
end)
connect(UIS.InputEnded, function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
--==============================================================
-- RAIL (tabs)
--==============================================================
local rail = make("Frame", {
Position = UDim2.fromOffset(RAIL_X, RAIL_Y),
Size = UDim2.fromOffset(RAIL_W, H - RAIL_Y - 10),
BackgroundColor3 = C.card,
BackgroundTransparency = 0.45,
BorderSizePixel = 0,
ZIndex = 3,
}, panel)
round(rail, 14)
stroke(rail, C.line, 0.7, 1)
local TABS = {
{ id = "main", label = "Main", icon = "✦" },
{ id = "player", label = "Player", icon = "◉" },
{ id = "vehicle", label = "Vehicle", icon = "◆" },
{ id = "visuals", label = "Visuals", icon = "✧" },
{ id = "teleports", label = "Teleports", icon = "◈" },
{ id = "farms", label = "Farm", icon = "▤" },
{ id = "misc", label = "Misc", icon = "▣" },
{ id = "settings", label = "Settings", icon = "⚙" },
}
local tabButtons = {}
local activeTab = nil
-- rail tooltip
local tipHolder = make("Frame", {
Position = UDim2.fromOffset(RAIL_X + RAIL_W + 8, RAIL_Y),
Size = UDim2.fromOffset(118, 26),
BackgroundTransparency = 1,
ZIndex = 30,
}, panel)
local tipBack = make("Frame", {
Size = UDim2.fromScale(1, 1),
BackgroundColor3 = C.cardHi,
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, tipHolder)
round(tipBack, 8)
stroke(tipBack, C.line, 0.4, 1)
local tipText = make("TextLabel", {
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
Text = "",
TextColor3 = C.text,
TextSize = 10,
Font = Enum.Font.GothamMedium,
TextTransparency = 1,
}, tipBack)
local function showTip(label, y)
tipText.Text = label
tipHolder.Position = UDim2.fromOffset(RAIL_X + RAIL_W + 8, RAIL_Y + y + 6)
TweenService:Create(tipText, TweenInfo.new(0.12), { TextTransparency = 0 }):Play()
TweenService:Create(tipBack, TweenInfo.new(0.12), { BackgroundTransparency = 0.05 }):Play()
end
local function hideTip()
TweenService:Create(tipText, TweenInfo.new(0.12), { TextTransparency = 1 }):Play()
TweenService:Create(tipBack, TweenInfo.new(0.12), { BackgroundTransparency = 1 }):Play()
end
local function renderTab(entry, active, animate)
local info = TweenInfo.new(0.18, Enum.EasingStyle.Quart, Enum.EasingDirection.Out)
local bg = active and 0.1 or 1
local line = active and 0.2 or 1
local color = active and C.text or C.sub
if animate then
TweenService:Create(entry.btn, info, { BackgroundTransparency = bg }):Play()
TweenService:Create(entry.fill, info, { BackgroundTransparency = active and 0.15 or 1 }):Play()
TweenService:Create(entry.btnStroke, info, { Transparency = line }):Play()
TweenService:Create(entry.icon, info, { TextColor3 = color }):Play()
else
entry.btn.BackgroundTransparency = bg
entry.fill.BackgroundTransparency = active and 0.15 or 1
entry.btnStroke.Transparency = line
entry.icon.TextColor3 = color
end
end
for index, tab in ipairs(TABS) do
local y = 8 + (index - 1) * 46
local btn = make("TextButton", {
Position = UDim2.fromOffset(8, y),
Size = UDim2.fromOffset(38, 38),
BackgroundColor3 = C.cardHi,
BackgroundTransparency = 1,
Text = "",
AutoButtonColor = false,
ZIndex = 4,
}, rail)
round(btn, 10)
local btnStroke = stroke(btn, C.purple, 1, 1)
local fill = make("Frame", {
Size = UDim2.fromScale(1, 1),
BackgroundColor3 = C.purple2,
BackgroundTransparency = 1,
BorderSizePixel = 0,
}, btn)
round(fill, 10)
gradient(fill, C.purple2, C.purple, 20)
local icon = make("TextLabel", {
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
Text = tab.icon,
TextColor3 = C.sub,
TextSize = 15,
Font = Enum.Font.GothamBold,
ZIndex = 5,
}, btn)
local entry = { btn = btn, fill = fill, icon = icon, btnStroke = btnStroke }
tabButtons[tab.id] = entry
connect(btn.MouseEnter, function()
if activeTab ~= tab.id then
TweenService:Create(btn, TweenInfo.new(0.12), { BackgroundTransparency = 0.55 }):Play()
end
showTip(tab.label, y)
end)
connect(btn.MouseLeave, function()
if activeTab ~= tab.id then
TweenService:Create(btn, TweenInfo.new(0.12), { BackgroundTransparency = 1 }):Play()
end
hideTip()
end)
end
--==============================================================
-- CONTENT
--==============================================================
local content = make("Frame", {
Position = UDim2.fromOffset(CONTENT_X, CONTENT_Y),
Size = UDim2.fromOffset(CONTENT_W, CONTENT_H),
BackgroundTransparency = 1,
ClipsDescendants = true,
ZIndex = 3,
}, panel)
local pages = {}
local function makePage()
local page = newGroup({
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
GroupTransparency = 1,
Visible = false,
}, content)
local scroll = make("ScrollingFrame", {
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
BorderSizePixel = 0,
ScrollBarThickness = 3,
ScrollBarImageColor3 = C.purple,
CanvasSize = UDim2.new(0, 0, 0, 1200),
ScrollingDirection = Enum.ScrollingDirection.Y,
}, page)
pcall(function() scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y end)
pcall(function() scroll.ElasticBehavior = Enum.ElasticBehavior.WhenScrollable end)
make("UIPadding", {
PaddingLeft = UDim.new(0, 2),
PaddingRight = UDim.new(0, 8),
PaddingTop = UDim.new(0, 2),
PaddingBottom = UDim.new(0, 12),
}, scroll)
make("UIListLayout", {
Padding = UDim.new(0, 8),
SortOrder = Enum.SortOrder.LayoutOrder,
}, scroll)
return page, scroll
end
local function makeSection(scroll, order, text)
local row = make("Frame", {
Size = UDim2.new(1, -12, 0, 16),
BackgroundTransparency = 1,
LayoutOrder = order,
}, scroll)
local bar = make("Frame", {
Position = UDim2.fromOffset(0, 2),
Size = UDim2.fromOffset(3, 12),
BackgroundColor3 = C.purple,
BorderSizePixel = 0,
}, row)
round(bar, 2)
make("TextLabel", {
Position = UDim2.fromOffset(11, 0),
Size = UDim2.new(1, -11, 1, 0),
BackgroundTransparency = 1,
Text = text,
TextColor3 = C.sub,
TextSize = 9,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
}, row)
end
local function makeCard(scroll, order)
local card = make("Frame", {
Size = UDim2.new(1, -12, 0, 0),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundColor3 = C.card,
BackgroundTransparency = 0.12,
BorderSizePixel = 0,
LayoutOrder = order,
}, scroll)
round(card, 13)
stroke(card, C.line, 0.72, 1)
make("UIPadding", {
PaddingLeft = UDim.new(0, 10),
PaddingRight = UDim.new(0, 10),
PaddingTop = UDim.new(0, 10),
PaddingBottom = UDim.new(0, 10),
}, card)
make("UIListLayout", {
Padding = UDim.new(0, 7),
SortOrder = Enum.SortOrder.LayoutOrder,
}, card)
return card
end
--==============================================================
-- COMPONENTS
--==============================================================
local function makeSlider(parent, order, titleText, minV, maxV, defV, fmt, cb)
local row = make("Frame", {
Size = UDim2.new(1, 0, 0, 48),
BackgroundTransparency = 1,
LayoutOrder = order,
}, parent)
make("TextLabel", {
Size = UDim2.new(1, -70, 0, 16),
BackgroundTransparency = 1,
Text = titleText,
TextColor3 = C.text,
TextSize = 10,
Font = Enum.Font.GothamMedium,
TextXAlignment = Enum.TextXAlignment.Left,
}, row)
local badge = make("Frame", {
Position = UDim2.new(1, -62, 0, 0),
Size = UDim2.fromOffset(62, 18),
BackgroundColor3 = C.panel,
BackgroundTransparency = 0.15,
BorderSizePixel = 0,
}, row)
round(badge, 5)
stroke(badge, C.purple, 0.6, 1)
local valueText = make("TextLabel", {
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
TextColor3 = C.text,
TextSize = 9,
Font = Enum.Font.GothamBold,
}, badge)
local track = make("Frame", {
Position = UDim2.fromOffset(0, 30),
Size = UDim2.new(1, 0, 0, 5),
BackgroundColor3 = C.track,
BorderSizePixel = 0,
}, row)
round(track, 3)
local fill = make("Frame", {
Size = UDim2.new(0, 0, 1, 0),
BackgroundColor3 = C.purple,
BorderSizePixel = 0,
}, track)
round(fill, 3)
gradient(fill, C.purple, C.pink)
local knob = make("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.new(0, 0, 0.5, 0),
Size = UDim2.fromOffset(13, 13),
BackgroundColor3 = Color3.fromRGB(250, 248, 255),
BorderSizePixel = 0,
ZIndex = 4,
}, track)
round(knob, 7)
stroke(knob, C.purple, 0.05, 2)
local hit = make("TextButton", {
Position = UDim2.fromOffset(-6, 20),
Size = UDim2.new(1, 12, 0, 26),
BackgroundTransparency = 1,
Text = "",
AutoButtonColor = false,
ZIndex = 5,
}, row)
local function apply(value, fire)
value = math.clamp(math.floor(value + 0.5), minV, maxV)
local p = (value - minV) / (maxV - minV)
knob.Position = UDim2.new(p, 0, 0.5, 0)
fill.Size = UDim2.new(p, 0, 1, 0)
valueText.Text = fmt and fmt(value) or tostring(value)
if fire and cb then cb(value) end
end
local sliding = false
local function fromInput(input)
local rel = (input.Position.X - track.AbsolutePosition.X) / math.max(track.AbsoluteSize.X, 1)
apply(minV + (maxV - minV) * math.clamp(rel, 0, 1), true)
end
local scrollParent = parent
while scrollParent and not scrollParent:IsA("ScrollingFrame") do
scrollParent = scrollParent.Parent
end
connect(hit.InputBegan, function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
sliding = true
if scrollParent then scrollParent.ScrollingEnabled = false end
fromInput(input)
end
end)
connect(UIS.InputChanged, function(input)
if sliding and (input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch) then
fromInput(input)
end
end)
connect(UIS.InputEnded, function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
sliding = false
if scrollParent then scrollParent.ScrollingEnabled = true end
end
end)
apply(defV, true)
return { set = function(v) apply(v, false) end }
end
local function makeToggle(parent, order, iconText, titleText, initial, cb)
local row = make("TextButton", {
Size = UDim2.new(1, 0, 0, 38),
BackgroundColor3 = C.cardHi,
BackgroundTransparency = 0.5,
AutoButtonColor = false,
Text = "",
LayoutOrder = order,
}, parent)
round(row, 9)
local rowStroke = stroke(row, C.line, 0.75, 1)
local iconBox = make("Frame", {
Position = UDim2.fromOffset(8, 8),
Size = UDim2.fromOffset(22, 22),
BackgroundColor3 = C.purple2,
BackgroundTransparency = 0.55,
BorderSizePixel = 0,
}, row)
round(iconBox, 7)
make("TextLabel", {
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
Text = iconText,
TextColor3 = C.text,
TextSize = 11,
Font = Enum.Font.GothamBold,
}, iconBox)
make("TextLabel", {
Position = UDim2.fromOffset(38, 0),
Size = UDim2.new(1, -92, 1, 0),
BackgroundTransparency = 1,
Text = titleText,
TextColor3 = C.text,
TextSize = 10,
Font = Enum.Font.GothamMedium,
TextXAlignment = Enum.TextXAlignment.Left,
TextTruncate = Enum.TextTruncate.AtEnd,
}, row)
local pill = make("Frame", {
Position = UDim2.new(1, -46, 0.5, -9),
Size = UDim2.fromOffset(36, 18),
BackgroundColor3 = C.track,
BorderSizePixel = 0,
}, row)
round(pill, 9)
local pillStroke = stroke(pill, C.line, 0.5, 1)
local knob = make("Frame", {
Position = UDim2.fromOffset(2, 2),
Size = UDim2.fromOffset(14, 14),
BackgroundColor3 = Color3.fromRGB(236, 232, 248),
BorderSizePixel = 0,
}, pill)
round(knob, 7)
local state = initial
local info = TweenInfo.new(0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.Out)
local function render(animate)
local pillColor = state and C.purple or C.track
local knobPos = state and UDim2.new(1, -16, 0, 2) or UDim2.fromOffset(2, 2)
if animate then
TweenService:Create(pill, info, { BackgroundColor3 = pillColor }):Play()
TweenService:Create(knob, info, { Position = knobPos }):Play()
TweenService:Create(pillStroke, info, { Color = state and C.pink or C.line, Transparency = state and 0.2 or 0.5 }):Play()
TweenService:Create(rowStroke, info, { Color = state and C.purple or C.line }):Play()
TweenService:Create(iconBox, info, { BackgroundTransparency = state and 0.2 or 0.55 }):Play()
else
pill.BackgroundColor3 = pillColor
knob.Position = knobPos
pillStroke.Color = state and C.pink or C.line
rowStroke.Color = state and C.purple or C.line
iconBox.BackgroundTransparency = state and 0.2 or 0.55
end
end
local api = {}
function api.get() return state end
function api.set(value)
if state == value then return end
state = value
render(true)
if cb then cb(state) end
end
function api.toggle() api.set(not state) end
render(false)
connect(row.MouseButton1Click, function() api.toggle() end)
connect(row.MouseEnter, function()
TweenService:Create(row, TweenInfo.new(0.12), { BackgroundTransparency = 0.25 }):Play()
end)
connect(row.MouseLeave, function()
TweenService:Create(row, TweenInfo.new(0.12), { BackgroundTransparency = 0.5 }):Play()
end)
return api
end
local function makeAction(parent, order, iconText, titleText, cb)
local row = make("TextButton", {
Size = UDim2.new(1, 0, 0, 36),
BackgroundColor3 = C.cardHi,
BackgroundTransparency = 0.5,
AutoButtonColor = false,
Text = "",
LayoutOrder = order,
}, parent)
round(row, 9)
stroke(row, C.line, 0.75, 1)
local iconBox = make("Frame", {
Position = UDim2.fromOffset(8, 7),
Size = UDim2.fromOffset(22, 22),
BackgroundColor3 = C.purple2,
BackgroundTransparency = 0.55,
BorderSizePixel = 0,
}, row)
round(iconBox, 7)
make("TextLabel", {
Size = UDim2.fromScale(1, 1),
BackgroundTransparency = 1,
Text = iconText,
TextColor3 = C.text,
TextSize = 11,
Font = Enum.Font.GothamBold,
}, iconBox)
make("TextLabel", {
Position = UDim2.fromOffset(38, 0),
Size = UDim2.new(1, -66, 1, 0),
BackgroundTransparency = 1,
Text = titleText,
TextColor3 = C.text,
TextSize = 10,
Font = Enum.Font.GothamMedium,
TextXAlignment = Enum.TextXAlignment.Left,
}, row)
make("TextLabel", {
Position = UDim2.new(1, -26, 0, 0),
Size = UDim2.fromOffset(18, 36),
BackgroundTransparency = 1,
Text = "›",
TextColor3 = C.purple,
TextSize = 16,
Font = Enum.Font.GothamBold,
}, row)
connect(row.MouseButton1Click, cb)
connect(row.MouseEnter, function()
TweenService:Create(row, TweenInfo.new(0.12), { BackgroundTransparency = 0.25 }):Play()
end)
connect(row.MouseLeave, function()
TweenService:Create(row, TweenInfo.new(0.12), { BackgroundTransparency = 0.5 }):Play()
end)
end
local function makeInput(parent, order, placeholder, buttonText, onSubmit)
local row = make("Frame", {
Size = UDim2.new(1, 0, 0, 34),
BackgroundTransparency = 1,
LayoutOrder = order,
}, parent)
local box = make("Frame", {
Size = UDim2.new(1, -78, 1, 0),
BackgroundColor3 = C.panel,
BackgroundTransparency = 0.2,
BorderSizePixel = 0,
}, row)
round(box, 8)
stroke(box, C.line, 0.6, 1)
local input = make("TextBox", {
Position = UDim2.fromOffset(9, 0),
Size = UDim2.new(1, -18, 1, 0),
BackgroundTransparency = 1,
Text = "",
PlaceholderText = placeholder,
PlaceholderColor3 = C.dim,
TextColor3 = C.text,
TextSize = 10,
Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left,
ClearTextOnFocus = false,
}, box)
local btn = make("TextButton", {
Position = UDim2.new(1, -70, 0, 0),
Size = UDim2.fromOffset(70, 34),
BackgroundColor3 = C.purple2,
BackgroundTransparency = 0.15,
Text = buttonText,
TextColor3 = C.text,
TextSize = 9,
Font = Enum.Font.GothamBold,
AutoButtonColor = false,
}, row)
round(btn, 8)
stroke(btn, C.purple, 0.4, 1)
gradient(btn, C.purple2, C.purple, 20)
connect(btn.MouseEnter, function()
TweenService:Create(btn, TweenInfo.new(0.12), { BackgroundTransparency = 0 }):Play()
end)
connect(btn.MouseLeave, function()
TweenService:Create(btn, TweenInfo.new(0.12), { BackgroundTransparency = 0.15 }):Play()
end)
connect(btn.MouseButton1Click, function()
onSubmit(input.Text)
end)
connect(input.FocusLost, function(enterPressed)
if enterPressed then onSubmit(input.Text) end
end)
return input
end
local function makeNote(parent, order, text)
local label = make("TextLabel", {
Size = UDim2.new(1, 0, 0, 0),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundTransparency = 1,
Text = text,
TextColor3 = C.dim,
TextSize = 9,
Font = Enum.Font.Gotham,
TextWrapped = true,
TextXAlignment = Enum.TextXAlignment.Left,
LayoutOrder = order,
}, parent)
return label
end
--==============================================================
-- PAGE: MAIN
--==============================================================
local mainPage, mainScroll = makePage()
pages.main = mainPage
makeSection(mainScroll, 1, "SPEED")
local speedCard = makeCard(mainScroll, 2)
makeSlider(speedCard, 1, "Acceleration multiplier", 1, 50, 1, function(v)
return v .. "x"
end, function(v)
S.accel = v
end)
makeSlider(speedCard, 2, "Max speed", 100, 9999, 9999, nil, function(v)
S.maxSpeed = v
end)
makeSection(mainScroll, 3, "MODES")
local driveCard = makeCard(mainScroll, 4)
Toggles.drift = makeToggle(driveCard, 1, "◆", "Drift on all cars", false, function(v)
S.drift = v
if v and Toggles.antiDrift then Toggles.antiDrift.set(false) end
end)
Toggles.antiDrift = makeToggle(driveCard, 2, "◈", "Anti-drift (sharp steering)", false, function(v)
S.antiDrift = v
if v and Toggles.drift then Toggles.drift.set(false) end
end)
Toggles.tracks = makeToggle(driveCard, 3, "✧", "Tire tracks", false, function(v)
S.tracks = v
end)
Toggles.carJump = makeToggle(driveCard, 4, "↥", "Car jump (Space)", false, function(v)
S.carJump = v
end)
Toggles.carFly = makeToggle(driveCard, 5, "▲", "Car fly (Space / Ctrl)", false, function(v)
S.carFly = v
end)
makeSection(mainScroll, 5, "TIP")
local hintCard = makeCard(mainScroll, 6)
makeNote(hintCard, 1, "W — throttle, A / D — steering, Space — car jump.\nRightShift — hide or show the menu.\nHover the menu to reveal the side panels.")
--==============================================================
-- PAGE: PLAYER
--==============================================================
local playerPage, playerScroll = makePage()
pages.player = playerPage
makeSection(playerScroll, 1, "MOVEMENT")
local moveCard = makeCard(playerScroll, 2)
makeSlider(moveCard, 1, "Walk speed", 16, 500, 16, nil, function(v)
S.walkSpeed = v
local hum = LP.Character and LP.Character:FindFirstChildOfClass("Humanoid")
if hum then hum.WalkSpeed = v end
end)
makeSlider(moveCard, 2, "Jump power", 50, 500, 50, nil, function(v)
S.jumpPower = v
local hum = LP.Character and LP.Character:FindFirstChildOfClass("Humanoid")
if hum then
hum.UseJumpPower = true
hum.JumpPower = v
end
end)
makeSection(playerScroll, 3, "ABILITIES")
local abilityCard = makeCard(playerScroll, 4)
Toggles.fly = makeToggle(abilityCard, 1, "▲", "Player fly", false, function(v)
S.fly = v
if not v then
local hum = LP.Character and LP.Character:FindFirstChildOfClass("Humanoid")
if hum then hum.PlatformStand = false end
end
end)
makeSlider(abilityCard, 2, "Fly speed", 20, 250, 65, nil, function(v)
S.flySpeed = v
end)
Toggles.noclip = makeToggle(abilityCard, 3, "◇", "Noclip", false, function(v)
S.noclip = v
if not v and restoreNoclip then restoreNoclip() end
end)
Toggles.infJump = makeToggle(abilityCard, 4, "↥", "Infinite jump", false, function(v)
S.infJump = v
end)
--==============================================================
-- PAGE: VEHICLE
--==============================================================
local vehiclePage, vehicleScroll = makePage()
pages.vehicle = vehiclePage
makeSection(vehicleScroll, 1, "TUNING")
local tuneCard = makeCard(vehicleScroll, 2)
makeSlider(tuneCard, 1, "Car jump power", 30, 220, 72, nil, function(v)
S.carJumpPower = v
end)
makeSlider(tuneCard, 2, "Car fly speed", 20, 160, 55, nil, function(v)
S.carFlySpeed = v
end)
makeSection(vehicleScroll, 3, "DRIFT")
local driftCard = makeCard(vehicleScroll, 4)
makeSlider(driftCard, 1, "Drift angle", 10, 60, 35, function(v)
return v .. "°"
end, function(v)
S.driftAngle = v
end)
makeSlider(driftCard, 2, "Drift grip", 10, 100, 40, function(v)
return v .. "%"
end, function(v)
S.driftGrip = v / 100
end)
makeSection(vehicleScroll, 5, "SWAP CAR WITH MESH")
local meshCard = makeCard(vehicleScroll, 6)
local meshStatus = makeNote(meshCard, 2, "Paste a MeshPart link or its ID.")
local meshInput
local meshHidden = {}
local function parseAssetId(text)
text = tostring(text or "")
local id = text:match("rbxassetid://(%d+)")
or text:match("/asset/(%d+)")
or text:match("^%s*(%d+)%s*$")
return id and tonumber(id) or nil
end
local function applyMeshSwap(assetId)
local car = getVehicle and getVehicle()
if not car then
meshStatus.Text = "Get in a car first."
meshStatus.TextColor3 = C.red
return
end
meshStatus.Text = "Loading mesh..."
meshStatus.TextColor3 = C.sub
task.spawn(function()
local ok, model = pcall(function()
return InsertService:LoadAsset(assetId)
end)
if not ok or not model then
local ok2, objects = pcall(function()
return game:GetObjects("rbxassetid://" .. tostring(assetId))
end)
if ok2 and objects and objects[1] then
model = objects[1]
ok = true
end
end
if not ok or not model then
meshStatus.Text = "Failed to load asset " .. tostring(assetId)
meshStatus.TextColor3 = C.red
return
end
local mesh = model:FindFirstChildWhichIsA("MeshPart", true)
or model:FindFirstChildWhichIsA("BasePart", true)
if not mesh then
meshStatus.Text = "No MeshPart in this asset."
meshStatus.TextColor3 = C.red
model:Destroy()
return
end
local root = car.PrimaryPart or car:FindFirstChildWhichIsA("BasePart")
if not root then
meshStatus.Text = "Car root part not found."
meshStatus.TextColor3 = C.red
model:Destroy()
return
end
local clone = mesh:Clone()
clone.Name = "SolarMesh_" .. assetId
clone.CFrame = root.CFrame
clone.Anchored = false
clone.CanCollide = false
clone.Massless = true
clone.Parent = car
local weld = Instance.new("WeldConstraint")
weld.Part0 = root
weld.Part1 = clone
weld.Parent = clone
for _, part in ipairs(car:GetDescendants()) do
if part:IsA("BasePart") and part ~= root and part ~= clone
and not part:IsDescendantOf(clone) then
meshHidden[part] = part.Transparency
part.Transparency = 1
end
end
model:Destroy()
meshStatus.Text = "Done: mesh applied (" .. assetId .. ")"
meshStatus.TextColor3 = C.green
end)
end
meshInput = makeInput(meshCard, 1, "rbxassetid://1234567890", "APPLY", function(text)
local id = parseAssetId(text)
if not id then
meshStatus.Text = "Invalid link or ID."
meshStatus.TextColor3 = C.red
return
end
applyMeshSwap(id)
end)
makeAction(meshCard, 3, "↺", "Restore original look", function()
local car = getVehicle and getVehicle()
if not car then
meshStatus.Text = "Get in a car first."
meshStatus.TextColor3 = C.red
return
end
for part, transparency in pairs(meshHidden) do
if part.Parent then part.Transparency = transparency end
end
meshHidden = {}
for _, part in ipairs(car:GetDescendants()) do
if part.Name:find("SolarMesh_") then part:Destroy() end
end
meshStatus.Text = "Original look restored."
meshStatus.TextColor3 = C.green
end)
--==============================================================
-- PAGE: VISUALS
--==============================================================
local visualsPage, visualsScroll = makePage()
pages.visuals = visualsPage
local bannerCard = makeCard(visualsScroll, 1)
local banner = make("ImageLabel", {
Size = UDim2.new(1, 0, 0, 132),
BackgroundColor3 = C.cardHi,
BackgroundTransparency = 0.15,
BorderSizePixel = 0,
Image = "rbxassetid://103289157776464",
ImageTransparency = 0.05,
ScaleType = Enum.ScaleType.Crop,
LayoutOrder = 1,
}, bannerCard)
round(banner, 10)
stroke(banner, C.purple, 0.6, 1)
local bannerShade = make("Frame", {
Size = UDim2.fromScale(1, 1),
BackgroundColor3 = Color3.fromRGB(8, 5, 16),
BackgroundTransparency = 0.72,
BorderSizePixel = 0,
}, banner)
round(bannerShade, 10)
make("TextLabel", {
Position = UDim2.fromOffset(12, 0),
Size = UDim2.new(1, -24, 1, 0),
BackgroundTransparency = 1,
Text = "SOLAR VISUALS",
TextColor3 = C.text,
TextSize = 15,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left,
}, banner)
makeSection(visualsScroll, 2, "GRAPHICS")
local visCard = makeCard(visualsScroll, 3)
Toggles.fullbright = makeToggle(visCard, 1, "☀", "Fullbright", false, function(v)
S.fullbright = v
if applyFullbright then applyFullbright(v) end
end)
Toggles.noFog = makeToggle(visCard, 2, "≋", "Remove fog", false, function(v)
S.noFog = v
if applyNoFog then applyNoFog(v) end
end)
local fovCard = makeCard(visualsScroll, 4)
makeSlider(fovCard, 1, "Field of view (FOV)", 50, 120, 70, nil, function(v)
S.fov = v
local cam = workspace.CurrentCamera
if cam then cam.FieldOfView = v end
end)
--==============================================================
-- PAGES: PLACEHOLDERS
--==============================================================
local function makePlaceholder(id, titleText, noteText)
local page, scroll = makePage()
pages[id] = page
makeSection(scroll, 1, titleText)
local card = makeCard(scroll, 2)
makeNote(card, 1, "Work in progress.\nFeatures arrive in the next update.")
makeSection(scroll, 3, "COMING SOON")
local list = makeCard(scroll, 4)
makeNote(list, 1, noteText)
end
makePlaceholder("teleports", "TELEPORTS",
"· Teleport to dealer\n· Teleport to home\n· Teleport to garage\n· Player list and teleport")
--==============================================================
-- PAGE: AUTO FARM
--==============================================================
local farmPage, farmScroll = makePage()
pages.farms = farmPage
makeSection(farmScroll, 1, "AUTO FARM")
local farmCard = makeCard(farmScroll, 2)
local farmStatus = makeNote(farmCard, 2, "Get in a car, then enable auto farm.")
Toggles.autoFarm = makeToggle(farmCard, 1, "▤", "Auto farm (loop track)", false, function(v)
S.autoFarm = v
if v then
if startFarm then startFarm() end
else
if stopFarm then stopFarm() end
end
end)
makeSlider(farmCard, 3, "Farm speed", 60, 700, 320, nil, function(v)
S.farmSpeed = v
end)
makeSection(farmScroll, 3, "SESSION")
local sessionCard = makeCard(farmScroll, 4)
local farmMilesLabel = makeNote(sessionCard, 1, "Miles: 0")
local farmMoneyLabel = makeNote(sessionCard, 2, "Money: $0")
makeNote(sessionCard, 3, "Counters grow while the car loops on the platform. If the game has Miles / Cash leaderstats, they are increased too.")
Toggles.writeStats = makeToggle(sessionCard, 4, "✎", "Write to leaderstats", true, function(v)
S.writeStats = v
end)
refreshFarmLabels = function()
farmMilesLabel.Text = "Miles: " .. string.format("%.1f", S.farmMiles)
farmMoneyLabel.Text = "Money: $" .. string.format("%d", math.floor(S.farmMoney))
end
refreshFarmLabels()
--==============================================================
-- PAGE: MISC
--==============================================================
local miscPage, miscScroll = makePage()
pages.misc = miscPage
makeSection(miscScroll, 1, "ACTIONS")
local miscCard = makeCard(miscScroll, 2)
makeAction(miscCard, 1, "↺", "Respawn character", function()
local hum = LP.Character and LP.Character:FindFirstChildOfClass("Humanoid")
if hum then hum.Health = 0 end
end)
makeAction(miscCard, 2, "◐", "Hide menu", function()
if setMenuVisible then setMenuVisible(false) end
end)
makeSection(miscScroll, 3, "INFO")
local infoCard = makeCard(miscScroll, 4)
makeNote(infoCard, 1, "Game: " .. tostring(game.PlaceId) ..
"\nServer: " .. tostring(game.JobId ~= "" and string.sub(game.JobId, 1, 8) or "private") ..
"\nUser: " .. LP.Name)
--==============================================================
-- PAGE: SETTINGS
--==============================================================
local settingsPage, settingsScroll = makePage()
pages.settings = settingsPage
makeSection(settingsScroll, 1, "INTERFACE")
local uiCard = makeCard(settingsScroll, 2)
makeSlider(uiCard, 1, "Menu scale", 60, 130, 100, function(v)
return v .. "%"
end, function(v)
S.uiScale = v / 100
refreshScale()
end)
Toggles.showPlates = makeToggle(uiCard, 2, "▦", "Show side plates", true, function(v)
S.showPlates = v
if plateHolder then
plateHolder.Visible = v and menuVisible and menu.Visible and not closing
end
end)
makeSection(settingsScroll, 3, "ABOUT")
local aboutCard = makeCard(settingsScroll, 4)
makeNote(aboutCard, 1, "SOLAR · ULTIMATE CONTROL\nVersion 8.0.0\nDrift: grip blend + yaw slip\nMesh car swap + auto farm")
local closeCard = makeCard(settingsScroll, 5)
makeAction(closeCard, 1, "✕", "Close menu", function()
if closeMenu then closeMenu() end
end)
--==============================================================
-- HOVER SIDE PANELS
--==============================================================
local function makeSidePanel(side)
local x = side == "left" and -SIDE_W or (PANEL_X + W + GAP)
local holder = newGroup({
Position = UDim2.fromOffset(x, 0),
Size = UDim2.fromOffset(SIDE_W, H),
BackgroundTransparency = 1,
GroupTransparency = 1,
Visible = false,
ZIndex = 1,
}, menu)
local box = make("Frame", {
Size = UDim2.fromScale(1, 1),
BackgroundColor3 = C.panel,
BackgroundTransparency = 0.05,
BorderSizePixel = 0,
}, holder)
round(box, 16)
stroke(box, C.purple, 0.5, 1.2)
gradient(box, C.bg1, C.bg2, side == "left" and 100 or 260)
return holder, box
end
local leftHolder, leftBox = makeSidePanel("left")
local rightHolder, rightBox = makeSidePanel("right")
-- left panel: HP + speed
make("TextLabel", {
Position = UDim2.fromOffset(0, 16),
Size = UDim2.new(1, 0, 0, 14),
BackgroundTransparency = 1,
Text = "STATUS",
TextColor3 = C.dim,
TextSize = 8,
Font = Enum.Font.GothamBold,
}, leftBox)
local hpIcon = make("TextLabel", {
Position = UDim2.fromOffset(0, 36),
Size = UDim2.new(1, 0, 0, 16),
BackgroundTransparency = 1,
Text = "♥",
TextColor3 = C.red,
TextSize = 12,
Font = Enum.Font.GothamBold,
}, leftBox)
local hpValue = make("TextLabel", {
Position = UDim2.fromOffset(0, 52),
Size = UDim2.new(1, 0, 0, 20),
BackgroundTransparency = 1,
Text = "100",
TextColor3 = C.text,
TextSize = 16,
Font = Enum.Font.GothamBold,
}, leftBox)
local hpBarBg = make("Frame", {
Position = UDim2.fromOffset(14, 78),
Size = UDim2.new(1, -28, 0, 4),
BackgroundColor3 = C.track,
BorderSizePixel = 0,
}, leftBox)
round(hpBarBg, 2)
local hpBarFill = make("Frame", {
Size = UDim2.new(1, 0, 1, 0),
BackgroundColor3 = C.red,
BorderSizePixel = 0,
}, hpBarBg)
round(hpBarFill, 2)
local spdIcon = make("TextLabel", {
Position = UDim2.fromOffset(0, 104),
Size = UDim2.new(1, 0, 0, 16),
BackgroundTransparency = 1,
Text = "⚡",
TextColor3 = C.cyan,
TextSize = 13,
Font = Enum.Font.GothamBold,
}, leftBox)
local spdValue = make("TextLabel", {
Position = UDim2.fromOffset(0, 120),
Size = UDim2.new(1, 0, 0, 22),
BackgroundTransparency = 1,
Text = "0",
TextColor3 = C.text,
TextSize = 18,
Font = Enum.Font.GothamBold,
}, leftBox)
make("TextLabel", {
Position = UDim2.fromOffset(0, 143),
Size = UDim2.new(1, 0, 0, 12),
BackgroundTransparency = 1,
Text = "STUDS / S",
TextColor3 = C.dim,
TextSize = 7,
Font = Enum.Font.GothamBold,
}, leftBox)
local quickLeft = make("Frame", {
Position = UDim2.fromOffset(12, 172),
Size = UDim2.new(1, -24, 0, 0),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundTransparency = 1,
}, leftBox)
make("UIListLayout", {
Padding = UDim.new(0, 6),
SortOrder = Enum.SortOrder.LayoutOrder,
}, quickLeft)
local quickRight = make("Frame", {
Position = UDim2.fromOffset(12, 16),
Size = UDim2.new(1, -24, 0, 0),
AutomaticSize = Enum.AutomaticSize.Y,
BackgroundTransparency = 1,
}, rightBox)
make("UIListLayout", {
Padding = UDim.new(0, 6),
SortOrder = Enum.SortOrder.LayoutOrder,
}, quickRight)
make("TextLabel", {
Position = UDim2.fromOffset(0, 0),
Size = UDim2.new(1, 0, 0, 14),
BackgroundTransparency = 1,
Text = "QUICK",
TextColor3 = C.dim,
TextSize = 8,
Font = Enum.Font.GothamBold,
}, rightBox)
quickRight.Position = UDim2.fromOffset(12, 32)
local sideStateLabels = {}
local function makeSideSquare(parent, order, id, iconText)
local b = make("TextButton", {
Size = UDim2.new(1, 0, 0, 44),
BackgroundColor3 = C.card,
BackgroundTransparency = 0.2,
AutoButtonColor = false,
Text = "",
LayoutOrder = order,
}, parent)
round(b, 10)
local bStroke = stroke(b, C.line, 0.7, 1)
local icon = make("TextLabel", {
Position = UDim2.fromOffset(0, 5),
Size = UDim2.new(1, 0, 0, 18),
BackgroundTransparency = 1,
Text = iconText,
TextColor3 = C.purple,
TextSize = 13,
Font = Enum.Font.GothamBold,
}, b)
local state = make("TextLabel", {
Position = UDim2.fromOffset(0, 24),
Size = UDim2.new(1, 0, 0, 14),
BackgroundTransparency = 1,
Text = "OFF",
TextColor3 = C.dim,
TextSize = 7,
Font = Enum.Font.GothamBold,
}, b)
connect(b.MouseButton1Click, function()
if Toggles[id] then Toggles[id].toggle() end
end)
connect(b.MouseEnter, function()
TweenService:Create(b, TweenInfo.new(0.12), { BackgroundTransparency = 0.02 }):Play()
TweenService:Create(bStroke, TweenInfo.new(0.12), { Color = C.purple, Transparency = 0.35 }):Play()
end)
connect(b.MouseLeave, function()
TweenService:Create(b, TweenInfo.new(0.12), { BackgroundTransparency = 0.2 }):Play()
TweenService:Create(bStroke, TweenInfo.new(0.12), { Color = C.line, Transparency = 0.7 }):Play()
end)
sideStateLabels[#sideStateLabels + 1] = function()
local api = Toggles[id]
local on = api and api.get()
state.Text = on and "ON" or "OFF"
state.TextColor3 = on and C.green or C.dim
icon.TextColor3 = on and C.pink or C.purple
end
end
makeSideSquare(quickLeft, 1, "drift", "◆")
makeSideSquare(quickLeft, 2, "carJump", "↥")
makeSideSquare(quickLeft, 3, "carFly", "▲")
makeSideSquare(quickLeft, 4, "tracks", "✧")
makeSideSquare(quickRight, 1, "fly", "▲")
makeSideSquare(quickRight, 2, "noclip", "◇")
makeSideSquare(quickRight, 3, "infJump", "↥")
makeSideSquare(quickRight, 4, "antiDrift", "◈")
-- sparks flying out on hover
local sparks = {}
for i = 1, 6 do
local spark = make("TextLabel", {
Position = UDim2.fromOffset(math.random(0, W), math.random(20, H - 40)),
Size = UDim2.fromOffset(24, 24),
BackgroundTransparency = 1,
Text = "⚡",
TextColor3 = C.purple,
TextSize = 14,
Font = Enum.Font.GothamBold,
TextTransparency = 1,
Rotation = math.random(-25, 25),
ZIndex = 1,
}, panel)
sparks[i] = spark
end
local hovered = false
local function setHovered(value)
if hovered == value then return end
hovered = value
local info = TweenInfo.new(0.32, Enum.EasingStyle.Quint, Enum.EasingDirection.Out)
if value then
leftHolder.Visible = true
rightHolder.Visible = true
fadeGroup(leftHolder, 1)
fadeGroup(rightHolder, 1)
leftHolder.Position = UDim2.fromOffset(SIDE_W * 0.35, 0)
rightHolder.Position = UDim2.fromOffset(PANEL_X + W + GAP - SIDE_W * 0.35, 0)
TweenService:Create(leftHolder, info, { Position = UDim2.fromOffset(0, 0) }):Play()
TweenService:Create(rightHolder, info, {
Position = UDim2.fromOffset(PANEL_X + W + GAP, 0),
}):Play()
fadeGroup(leftHolder, 0, info)
fadeGroup(rightHolder, 0, info)
TweenService:Create(panelStroke, TweenInfo.new(0.3), { Color = C.pink, Transparency = 0.25 }):Play()
for index, spark in ipairs(sparks) do
local target = UDim2.fromOffset(math.random(10, W - 30), math.random(16, H - 40))
spark.TextTransparency = 1
spark.Position = target
TweenService:Create(spark, TweenInfo.new(0.5 + index * 0.05, Enum.EasingStyle.Quad), {
TextTransparency = 0.35,
}):Play()
task.delay(0.5 + index * 0.05, function()
if spark then
TweenService:Create(spark, TweenInfo.new(0.7, Enum.EasingStyle.Quad), {
TextTransparency = 1,
}):Play()
end
end)
end
else
fadeGroup(leftHolder, 1, TweenInfo.new(0.22, Enum.EasingStyle.Quad, Enum.EasingDirection.In))
fadeGroup(rightHolder, 1, TweenInfo.new(0.22, Enum.EasingStyle.Quad, Enum.EasingDirection.In))
TweenService:Create(leftHolder, TweenInfo.new(0.24), {
Position = UDim2.fromOffset(SIDE_W * 0.35, 0),
}):Play()
TweenService:Create(rightHolder, TweenInfo.new(0.24), {
Position = UDim2.fromOffset(PANEL_X + W + GAP - SIDE_W * 0.35, 0),
}):Play()
TweenService:Create(panelStroke, TweenInfo.new(0.3), { Color = C.purple, Transparency = 0.45 }):Play()
task.delay(0.26, function()
if not hovered then
leftHolder.Visible = false
rightHolder.Visible = false
end
end)
end
end
-- hover zone is computed from cursor position, not MouseEnter,
-- so the panels do not flicker when crossing the gap
local hoverClock = 0
connect(RunService.Heartbeat, function(dt)
hoverClock = hoverClock + dt
if hoverClock < 0.05 then return end
hoverClock = 0
if not menuVisible or closing or not menu.Visible then
setHovered(false)
return
end
local mouse = UIS:GetMouseLocation()
local ap = panel.AbsolutePosition
local as = panel.AbsoluteSize
local unit = as.X / W
local sideSpan = (SIDE_W + GAP) * unit
local inside = mouse.X >= ap.X - sideSpan - 4
and mouse.X <= ap.X + as.X + sideSpan + 4
and mouse.Y >= ap.Y - 6
and mouse.Y <= ap.Y + as.Y + 6
setHovered(inside)
end)
--==============================================================
-- TAB SWITCHING
--==============================================================
local function selectTab(id)
if activeTab == id then return end
local prev = activeTab
activeTab = id
for tabId, entry in pairs(tabButtons) do
renderTab(entry, tabId == id, true)
end
if prev and pages[prev] then
local oldPage = pages[prev]
fadeGroup(oldPage, 1, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.In))
task.delay(0.12, function()
if activeTab ~= prev then oldPage.Visible = false end
end)
end
local page = pages[id]
if page then
page.Visible = true
fadeGroup(page, 1)
page.Position = UDim2.fromOffset(12, 0)
TweenService:Create(page, TweenInfo.new(0.26, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
Position = UDim2.fromOffset(0, 0),
}):Play()
fadeGroup(page, 0, TweenInfo.new(0.26, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
end
end
for _, tab in ipairs(TABS) do
connect(tabButtons[tab.id].btn.MouseButton1Click, function()
selectTab(tab.id)
end)
end
activeTab = "main"
pages.main.Visible = true
fadeGroup(pages.main, 0)
for tabId, entry in pairs(tabButtons) do
renderTab(entry, tabId == "main", false)
end
topButton("–", -68, function()
if setMenuVisible then setMenuVisible(false) end
end)
topButton("×", -38, function()
if closeMenu then closeMenu() end
end)
--==============================================================
-- STATUS POLL
--==============================================================
local fpsValue = 60
local fpsFrames = 0
local fpsClock = 0
connect(RunService.RenderStepped, function(dt)
fpsFrames = fpsFrames + 1
fpsClock = fpsClock + dt
if fpsClock >= 1 then
fpsValue = math.floor(fpsFrames / fpsClock + 0.5)
fpsFrames = 0
fpsClock = 0
end
end)
local pollTimer = 0
connect(RunService.Heartbeat, function(dt)
pollTimer = pollTimer + dt
if pollTimer < 0.12 then return end
pollTimer = 0
local hum = LP.Character and LP.Character:FindFirstChildOfClass("Humanoid")
if hum then
local hp = math.clamp(hum.Health / math.max(hum.MaxHealth, 1), 0, 1)
hpValue.Text = tostring(math.floor(hum.Health))
hpBarFill.Size = UDim2.new(hp, 0, 1, 0)
hpBarFill.BackgroundColor3 = hp > 0.5 and C.green or (hp > 0.25 and Color3.fromRGB(250, 204, 21) or C.red)
else
hpValue.Text = "0"
hpBarFill.Size = UDim2.new(0, 0, 1, 0)
end
local car = getVehicle and getVehicle()
local root = car and (car.PrimaryPart or car:FindFirstChildWhichIsA("BasePart"))
if root then
local v = root.AssemblyLinearVelocity
spdValue.Text = tostring(math.floor(Vector3.new(v.X, 0, v.Z).Magnitude))
else
local hrp = LP.Character and LP.Character:FindFirstChild("HumanoidRootPart")
local v = hrp and hrp.AssemblyLinearVelocity or Vector3.zero
spdValue.Text = tostring(math.floor(Vector3.new(v.X, 0, v.Z).Magnitude))
end
for _, update in ipairs(sideStateLabels) do update() end
-- floating plates
if plateHolder.Visible then
local speedNow = 0
if root then
local v = root.AssemblyLinearVelocity
speedNow = math.floor(Vector3.new(v.X, 0, v.Z).Magnitude)
else
local hrp = LP.Character and LP.Character:FindFirstChild("HumanoidRootPart")
local v = hrp and hrp.AssemblyLinearVelocity or Vector3.zero
speedNow = math.floor(Vector3.new(v.X, 0, v.Z).Magnitude)
end
plateSpeedValue.Text = tostring(speedNow)
plateBarFill.Size = UDim2.new(math.clamp(speedNow / 400, 0, 1), 0, 1, 0)
local ping = nil
pcall(function()
local item = Stats.Network.ServerStatsItem["Data Ping"]
if item then ping = math.floor(item:GetValue()) end
end)
local level = 0
if ping then
statValues.ping.Text = tostring(ping) .. " ms"
statValues.ping.TextColor3 = ping < 80 and C.green
or (ping < 160 and Color3.fromRGB(250, 204, 21) or C.red)
level = ping < 80 and 3 or (ping < 160 and 2 or 1)
else
statValues.ping.Text = "— ms"
statValues.ping.TextColor3 = C.dim
end
if statValues.pingBars then
local colors = {
C.red,
Color3.fromRGB(250, 204, 21),
C.green,
}
for b, bar in ipairs(statValues.pingBars) do
bar.BackgroundColor3 = (b == level) and colors[b] or C.track
end
end
statValues.fps.Text = tostring(fpsValue) .. " FPS"
statValues.fps.TextColor3 = fpsValue >= 45 and C.green
or (fpsValue >= 25 and Color3.fromRGB(250, 204, 21) or C.red)
local job = game.JobId
statValues.server.Text = job ~= "" and string.sub(job, 1, 8) or "private"
end
refreshFarmLabels()
end)
-- status pulse
task.spawn(function()
while statusDot and statusDot.Parent do
TweenService:Create(statusGlow, TweenInfo.new(0.9, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
Transparency = 0.85,
}):Play()
task.wait(0.9)
if not statusDot.Parent then break end
TweenService:Create(statusGlow, TweenInfo.new(0.9, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {
Transparency = 0.3,
}):Play()
task.wait(0.9)
end
end)
--==============================================================
-- LOGIC: PLAYER
--==============================================================
local function getHumanoid()
local ch = LP.Character
return ch and ch:FindFirstChildOfClass("Humanoid")
end
local function getHRP()
local ch = LP.Character
return ch and ch:FindFirstChild("HumanoidRootPart")
end
local noclipParts = {}
restoreNoclip = function()
for part in pairs(noclipParts) do
if part.Parent then
pcall(function() part.CanCollide = true end)
end
end
noclipParts = {}
end
local noclipTimer = 0
connect(RunService.Heartbeat, function(dt)
if not S.noclip then return end
noclipTimer = noclipTimer + dt
if noclipTimer < 0.15 then return end
noclipTimer = 0
local ch = LP.Character
if not ch then return end
for _, part in ipairs(ch:GetDescendants()) do
if part:IsA("BasePart") and part.CanCollide then
part.CanCollide = false
noclipParts[part] = true
end
end
end)
local flying = false
connect(RunService.RenderStepped, function(dt)
local hum = getHumanoid()
local hrp = getHRP()
if not hum or not hrp or hum.Health <= 0 then
if flying then
flying = false
if hum then hum.PlatformStand = false end
end
return
end
if S.fly and not hum.SeatPart then
if not flying then
flying = true
hum.PlatformStand = true
end
local dir = Vector3.zero
local cam = workspace.CurrentCamera
if cam then
local cf = cam.CFrame
if UIS:IsKeyDown(Enum.KeyCode.W) then dir = dir + cf.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.S) then dir = dir - cf.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.D) then dir = dir + cf.RightVector end
if UIS:IsKeyDown(Enum.KeyCode.A) then dir = dir - cf.RightVector end
end
if UIS:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.yAxis end
if UIS:IsKeyDown(Enum.KeyCode.LeftControl) then dir = dir - Vector3.yAxis end
if dir.Magnitude > 0 then dir = dir.Unit end
hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity:Lerp(
dir * S.flySpeed, math.clamp(dt * 9, 0, 1)
)
elseif flying then
flying = false
hum.PlatformStand = false
end
end)
connect(LP.CharacterAdded, function(ch)
task.wait(0.35)
local hum = ch:FindFirstChildOfClass("Humanoid")
if hum then
hum.WalkSpeed = S.walkSpeed
hum.UseJumpPower = true
hum.JumpPower = S.jumpPower
end
end)
--==============================================================
-- LOGIC: LIGHTING
--==============================================================
local lightSaved = nil
applyFullbright = function(on)
if on then
if not lightSaved then
lightSaved = {
brightness = Lighting.Brightness,
ambient = Lighting.Ambient,
outdoor = Lighting.OutdoorAmbient,
shadows = Lighting.GlobalShadows,
}
end
Lighting.Brightness = 3
Lighting.Ambient = Color3.fromRGB(185, 185, 195)
Lighting.OutdoorAmbient = Color3.fromRGB(195, 195, 205)
Lighting.GlobalShadows = false
elseif lightSaved then
Lighting.Brightness = lightSaved.brightness
Lighting.Ambient = lightSaved.ambient
Lighting.OutdoorAmbient = lightSaved.outdoor
Lighting.GlobalShadows = lightSaved.shadows
lightSaved = nil
end
end
local fogSaved = nil
applyNoFog = function(on)
if on then
if not fogSaved then
fogSaved = { fogEnd = Lighting.FogEnd, fogStart = Lighting.FogStart }
end
Lighting.FogEnd = 1e6
Lighting.FogStart = 0
elseif fogSaved then
Lighting.FogEnd = fogSaved.fogEnd
Lighting.FogStart = fogSaved.fogStart
fogSaved = nil
end
end
--==============================================================
-- LOGIC: VEHICLE
--==============================================================
getVehicle = function()
local hum = getHumanoid()
local seat = hum and hum.SeatPart
if seat and seat:IsA("VehicleSeat") then
return seat.Parent, seat
end
end
local function isWheelPart(part)
local n = part.Name:lower()
if n:find("wheel") or n:find("tire") or n:find("tyre")
or n:find("koles") then
return true
end
for _, child in ipairs(part:GetChildren()) do
if child:IsA("HingeConstraint") or child:IsA("CylindricalConstraint") then
return true
end
end
return false
end
local gripSaved = {}
local gripCar = nil
local gripApplied = 1
local function getGripParts(car)
local list = {}
for _, part in ipairs(car:GetDescendants()) do
if part:IsA("BasePart") and isWheelPart(part) then
list[#list + 1] = part
end
end
if #list == 0 then
for _, part in ipairs(car:GetDescendants()) do
if part:IsA("BasePart") and part.CanCollide then
list[#list + 1] = part
end
end
end
return list
end
local function captureGrip(car)
gripSaved = {}
for _, part in ipairs(getGripParts(car)) do
local p = part.CustomPhysicalProperties
gripSaved[part] = {
had = p ~= nil,
density = p and p.Density or 0.7,
friction = p and p.Friction or 0.5,
elasticity = p and p.Elasticity or 0.2,
fw = p and p.FrictionWeight or 1,
ew = p and p.ElasticityWeight or 1,
}
end
end
local function applyGrip(factor)
if math.abs(factor - gripApplied) < 0.02 then return end
gripApplied = factor
for part, saved in pairs(gripSaved) do
if part.Parent then
pcall(function()
part.CustomPhysicalProperties = PhysicalProperties.new(
saved.density,
math.clamp(saved.friction * factor, 0.02, 2),
saved.elasticity,
saved.fw,
saved.ew
)
end)
end
end
end
restoreGrip = function()
for part, saved in pairs(gripSaved) do
if part.Parent then
pcall(function()
if saved.had then
part.CustomPhysicalProperties = PhysicalProperties.new(
saved.density, saved.friction, saved.elasticity, saved.fw, saved.ew
)
else
part.CustomPhysicalProperties = nil
end
end)
end
end
gripSaved = {}
gripApplied = 1
gripCar = nil
end
local rayParams = RaycastParams.new()
do
local ok, kind = pcall(function()
return Enum.RaycastFilterType.Exclude
end)
rayParams.FilterType = ok and kind or Enum.RaycastFilterType.Blacklist
end
rayParams.IgnoreWater = true
local wheelCacheCar, wheelCacheAt, wheelCacheList = nil, 0, {}
local function getWheels(car)
local now = os.clock()
if wheelCacheCar ~= car or now - wheelCacheAt > 2 then
wheelCacheList = {}
for _, part in ipairs(car:GetDescendants()) do
if part:IsA("BasePart") and isWheelPart(part) then
wheelCacheList[#wheelCacheList + 1] = part
end
end
wheelCacheCar = car
wheelCacheAt = now
end
return wheelCacheList
end
local trackTimes = {}
local function placeTrack(wheel, forward)
local result = workspace:Raycast(wheel.Position, Vector3.new(0, -10, 0), rayParams)
if not result then return end
local up = result.Normal
local flat = forward - up * forward:Dot(up)
if flat.Magnitude < 0.01 then return end
flat = flat.Unit
local right = flat:Cross(up)
local mark = Instance.new("Part")
mark.Size = Vector3.new(0.55, 0.04, 1.25)
mark.CFrame = CFrame.fromMatrix(result.Position + up * 0.02, right, up, -flat)
mark.Anchored = true
mark.CanCollide = false
mark.CanQuery = false
mark.CanTouch = false
mark.CastShadow = false
mark.Material = Enum.Material.SmoothPlastic
mark.Color = Color3.fromRGB(18, 18, 22)
mark.Transparency = 0.25
mark.Parent = workspace
TweenService:Create(
mark,
TweenInfo.new(4, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, 0, false, 0.7),
{ Transparency = 1 }
):Play()
Debris:AddItem(mark, 5)
end
local driftBlend = 0
local lastJump = 0
local vehicleWarned = false
connect(RunService.Stepped, function(_, dt)
dt = math.clamp(dt or 0, 0, 0.1)
local car, seat = getVehicle()
if not car or not seat then
if gripCar then restoreGrip() end
driftBlend = 0
return
end
local ok, err = pcall(function()
local root = seat.AssemblyRootPart
or car.PrimaryPart
or car:FindFirstChildWhichIsA("BasePart")
if not root then return end
local look = seat.CFrame.LookVector
local fwd = Vector3.new(look.X, 0, look.Z)
if fwd.Magnitude < 0.05 then
look = root.CFrame.LookVector
fwd = Vector3.new(look.X, 0, look.Z)
end
if fwd.Magnitude < 0.05 then return end
fwd = fwd.Unit
local vel = root.AssemblyLinearVelocity
local flatVel = Vector3.new(vel.X, 0, vel.Z)
local speed = flatVel.Magnitude
local steer = (UIS:IsKeyDown(Enum.KeyCode.D) and 1 or 0)
- (UIS:IsKeyDown(Enum.KeyCode.A) and 1 or 0)
if UIS:IsKeyDown(Enum.KeyCode.W) and speed < S.maxSpeed then
local add = math.min(70 * S.accel * dt, S.maxSpeed - speed)
vel = vel + fwd * add
root.AssemblyLinearVelocity = vel
flatVel = Vector3.new(vel.X, 0, vel.Z)
speed = flatVel.Magnitude
end
if speed > S.maxSpeed then
local capped = flatVel.Unit * S.maxSpeed
vel = Vector3.new(capped.X, vel.Y, capped.Z)
root.AssemblyLinearVelocity = vel
flatVel = capped
speed = S.maxSpeed
end
local right = Vector3.new(-fwd.Z, 0, fwd.X)
local fSpeed = flatVel:Dot(fwd)
local lSpeed = flatVel:Dot(right)
local drifting = S.drift and speed > 18 and fSpeed > 6 and steer ~= 0
local targetBlend = drifting and 1 or 0
driftBlend = driftBlend + (targetBlend - driftBlend)
* math.min(1, (drifting and 7 or 6) * dt)
if S.drift then
if gripCar ~= car then
if gripCar then restoreGrip() end
gripCar = car
captureGrip(car)
gripApplied = 1
end
applyGrip(1 - (1 - S.driftGrip) * driftBlend)
elseif gripCar then
restoreGrip()
end
if driftBlend > 0.01 and speed > 2 then
local slipAngle = math.rad(S.driftAngle) * driftBlend
local desiredLateral = -steer * fSpeed * math.tan(slipAngle)
local cap = speed * 0.8
desiredLateral = math.clamp(desiredLateral, -cap, cap)
local blend = math.min(1, 5 * dt)
lSpeed = lSpeed + (desiredLateral - lSpeed) * blend
fSpeed = fSpeed * (1 - math.min(1, 0.2 * dt * driftBlend))
root.AssemblyLinearVelocity = fwd * fSpeed + right * lSpeed
+ Vector3.new(0, vel.Y, 0)
local turn = -steer * math.clamp(speed * 0.02, 0.5, 1.5) * driftBlend
local av = root.AssemblyAngularVelocity
root.AssemblyAngularVelocity = Vector3.new(
av.X,
av.Y + (turn - av.Y) * math.min(1, 10 * dt),
av.Z
)
elseif S.antiDrift and speed > 2 then
lSpeed = lSpeed * math.clamp(1 - 14 * dt, 0, 1)
root.AssemblyLinearVelocity = fwd * fSpeed + right * lSpeed
+ Vector3.new(0, vel.Y, 0)
local av = root.AssemblyAngularVelocity
root.AssemblyAngularVelocity = Vector3.new(
av.X,
av.Y * math.clamp(1 - 10 * dt, 0, 1),
av.Z
)
end
if S.carFly then
local y = 0
if UIS:IsKeyDown(Enum.KeyCode.Space) then
y = S.carFlySpeed
elseif UIS:IsKeyDown(Enum.KeyCode.LeftControl) then
y = -S.carFlySpeed
end
local cur = root.AssemblyLinearVelocity
root.AssemblyLinearVelocity = Vector3.new(cur.X, y, cur.Z)
end
local current = root.AssemblyLinearVelocity
local currentSpeed = Vector3.new(current.X, 0, current.Z).Magnitude
if S.tracks and currentSpeed > 25 then
local now = os.clock()
local filter = { car }
if LP.Character then filter[#filter + 1] = LP.Character end
rayParams.FilterDescendantsInstances = filter
for _, part in ipairs(getWheels(car)) do
if part:IsDescendantOf(workspace)
and now - (trackTimes[part] or 0) > 0.07 then
trackTimes[part] = now
placeTrack(part, fwd)
end
end
end
end)
if not ok and not vehicleWarned then
vehicleWarned = true
warn("[Solar] vehicle error: " .. tostring(err))
end
end)
--==============================================================
-- AUTO FARM
--==============================================================
local farmData = nil
local farmStatAccum = 0
local farmStatTimer = 0
local function clearFarmPlatform()
if farmData and farmData.parts then
for _, part in ipairs(farmData.parts) do
if part and part.Parent then part:Destroy() end
end
end
farmData = nil
end
stopFarm = function()
if farmData and farmData.root and farmData.root.Parent and farmData.origCF then
pcall(function()
farmData.root.CFrame = farmData.origCF
farmData.root.AssemblyLinearVelocity = Vector3.zero
farmData.root.AssemblyAngularVelocity = Vector3.zero
end)
end
clearFarmPlatform()
if farmStatus then
farmStatus.Text = "Auto farm stopped."
farmStatus.TextColor3 = C.sub
end
end
startFarm = function()
local car, seat = getVehicle()
if not car or not seat then
if farmStatus then
farmStatus.Text = "Get in a car first."
farmStatus.TextColor3 = C.red
end
if Toggles.autoFarm then Toggles.autoFarm.set(false) end
return
end
local root = seat.AssemblyRootPart
or car.PrimaryPart
or car:FindFirstChildWhichIsA("BasePart")
if not root then
if farmStatus then
farmStatus.Text = "Car root part not found."
farmStatus.TextColor3 = C.red
end
if Toggles.autoFarm then Toggles.autoFarm.set(false) end
return
end
clearFarmPlatform()
local base = root.CFrame
local fwd = Vector3.new(base.LookVector.X, 0, base.LookVector.Z)
if fwd.Magnitude < 0.1 then fwd = Vector3.new(0, 0, -1) end
fwd = fwd.Unit
local origin = Vector3.new(root.Position.X, root.Position.Y + 260, root.Position.Z)
local cf = CFrame.lookAt(origin, origin + fwd)
local platform = Instance.new("Part")
platform.Name = "SolarFarmPlatform"
platform.Size = Vector3.new(4200, 4, 220)
platform.CFrame = cf
platform.Anchored = true
platform.CanCollide = true
platform.Material = Enum.Material.SmoothPlastic
platform.Color = Color3.fromRGB(22, 15, 40)
platform.TopSurface = Enum.SurfaceType.Smooth
platform.BottomSurface = Enum.SurfaceType.Smooth
platform.Parent = workspace
local glow = Instance.new("Part")
glow.Name = "SolarFarmGlow"
glow.Size = Vector3.new(4200, 0.6, 224)
glow.CFrame = cf * CFrame.new(0, 2.2, 0)
glow.Anchored = true
glow.CanCollide = false
glow.CanQuery = false
glow.Material = Enum.Material.Neon
glow.Color = Color3.fromRGB(146, 92, 255)
glow.Transparency = 0.55
glow.Parent = workspace
local startCF = cf * CFrame.new(-1950, 8, 0)
local origCF = root.CFrame
root.CFrame = startCF
root.AssemblyLinearVelocity = Vector3.zero
root.AssemblyAngularVelocity = Vector3.zero
farmData = {
car = car,
root = root,
origCF = origCF,
startCF = startCF,
startPos = startCF.Position,
dir = fwd,
baseY = origin.Y,
length = 3800,
lastPos = startCF.Position,
parts = { platform, glow },
}
if farmStatus then
farmStatus.Text = "Farming: looping at " .. S.farmSpeed .. " studs/s."
farmStatus.TextColor3 = C.green
end
end
local function bumpLeaderstats(milesDelta, moneyDelta)
local folder = LP:FindFirstChild("leaderstats")
if not folder then return end
for _, value in ipairs(folder:GetChildren()) do
local n = value.Name:lower()
local isMiles = n:find("mile") or n:find("dist") or n:find("km")
local isMoney = n:find("money") or n:find("cash") or n:find("coin")
or n:find("dollar") or n:find("balance")
if (value:IsA("IntValue") or value:IsA("NumberValue")) and (isMiles or isMoney) then
pcall(function()
value.Value = value.Value + (isMiles and milesDelta or moneyDelta)
end)
end
end
end
local function bumpPlayerAttribute(milesDelta, moneyDelta)
for _, name in ipairs({ "Miles", "Money", "Cash", "Distance" }) do
local ok = pcall(function()
local current = LP:GetAttribute(name)
if typeof(current) == "number" then
local add = (name == "Miles" or name == "Distance") and milesDelta or moneyDelta
LP:SetAttribute(name, current + add)
end
end)
if not ok then return end
end
end
connect(RunService.Stepped, function(_, dt)
if not S.autoFarm or not farmData then return end
local car = getVehicle()
if not car or car ~= farmData.car then
stopFarm()
if Toggles.autoFarm then Toggles.autoFarm.set(false) end
return
end
local root = farmData.root
if not root or not root.Parent then
stopFarm()
if Toggles.autoFarm then Toggles.autoFarm.set(false) end
return
end
local pos = root.Position
local moved = (pos - farmData.lastPos).Magnitude
farmData.lastPos = pos
S.farmMiles = S.farmMiles + moved / 1000
S.farmMoney = S.farmMoney + moved * 0.4
farmStatAccum = farmStatAccum + moved
farmStatTimer = farmStatTimer + dt
if farmStatTimer > 0.5 then
if S.writeStats and farmStatAccum > 0 then
bumpLeaderstats(farmStatAccum / 1000, farmStatAccum * 0.4)
bumpPlayerAttribute(farmStatAccum / 1000, farmStatAccum * 0.4)
end
farmStatAccum = 0
farmStatTimer = 0
end
local traveled = (pos - farmData.startPos):Dot(farmData.dir)
if traveled > farmData.length or pos.Y < farmData.baseY - 80 then
root.CFrame = farmData.startCF
root.AssemblyLinearVelocity = Vector3.zero
root.AssemblyAngularVelocity = Vector3.zero
farmData.lastPos = farmData.startCF.Position
else
root.AssemblyAngularVelocity = Vector3.zero
root.AssemblyLinearVelocity = farmData.dir * S.farmSpeed
+ Vector3.new(0, -18, 0)
root.CFrame = CFrame.lookAt(pos, pos + farmData.dir)
end
end)
--==============================================================
-- JUMP
--==============================================================
connect(UIS.InputBegan, function(input)
if input.KeyCode ~= Enum.KeyCode.Space then return end
local car, seat = getVehicle()
if car and seat and S.carJump and not S.carFly then
local now = os.clock()
if now - lastJump > 0.5 then
lastJump = now
local root = seat.AssemblyRootPart or car.PrimaryPart
if root then
local v = root.AssemblyLinearVelocity
root.AssemblyLinearVelocity = Vector3.new(v.X, S.carJumpPower, v.Z)
end
end
return
end
if S.infJump and not car then
local hum = getHumanoid()
local hrp = getHRP()
if hum and hrp and hum.Health > 0 then
local v = hrp.AssemblyLinearVelocity
hrp.AssemblyLinearVelocity = Vector3.new(v.X, S.jumpPower, v.Z)
end
end
end)
--==============================================================
-- OPEN / CLOSE
--==============================================================
setMenuVisible = function(visible)
if closing then return end
menuVisible = visible
if visible then
menu.Visible = true
fadeGroup(menu, 1)
guiScale.Scale = baseScale * 0.95
fadeGroup(menu, 0, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
TweenService:Create(guiScale, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Scale = baseScale,
}):Play()
plateHolder.Visible = S.showPlates
else
fadeGroup(menu, 1, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.In))
TweenService:Create(guiScale, TweenInfo.new(0.2), { Scale = baseScale * 0.95 }):Play()
plateHolder.Visible = false
task.delay(0.22, function()
if not menuVisible and not closing then menu.Visible = false end
end)
end
end
closeMenu = function()
if closing then return end
closing = true
fadeGroup(menu, 1, TweenInfo.new(0.26, Enum.EasingStyle.Quad, Enum.EasingDirection.In))
TweenService:Create(guiScale, TweenInfo.new(0.26), { Scale = baseScale * 0.94 }):Play()
task.delay(0.3, function()
if cleanup then cleanup() end
end)
end
cleanup = function()
for _, c in ipairs(Connections) do
pcall(function() c:Disconnect() end)
end
Connections = {}
if stopFarm then stopFarm() end
if restoreGrip then restoreGrip() end
if restoreNoclip then restoreNoclip() end
if lightSaved and applyFullbright then applyFullbright(false) end
if fogSaved and applyNoFog then applyNoFog(false) end
local hum = getHumanoid()
if hum then hum.PlatformStand = false end
if gui then gui:Destroy() end
env.SolarCleanup = nil
end
env.SolarCleanup = cleanup
connect(UIS.InputBegan, function(input, processed)
if processed then return end
if input.KeyCode == Enum.KeyCode.RightShift then
setMenuVisible(not menuVisible)
end
end)
refreshScale()
local cam = workspace.CurrentCamera
if cam then
connect(cam:GetPropertyChangedSignal("ViewportSize"), refreshScale)
end
connect(workspace:GetPropertyChangedSignal("CurrentCamera"), function()
local c = workspace.CurrentCamera
if c then
c:GetPropertyChangedSignal("ViewportSize"):Connect(refreshScale)
end
refreshScale()
end)
playSplash(function()
menu.Visible = true
fadeGroup(menu, 1)
guiScale.Scale = baseScale * 0.9
fadeGroup(menu, 0, TweenInfo.new(0.45, Enum.EasingStyle.Quint, Enum.EasingDirection.Out))
TweenService:Create(guiScale, TweenInfo.new(0.55, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Scale = baseScale,
}):Play()
plateHolder.Visible = S.showPlates
plateHolder.Position = UDim2.new(1, -18, 0, 78)
TweenService:Create(plateHolder, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
Position = UDim2.new(1, -18, 0, 96),
}):Play()
end)
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