GC
--// Game Controller (Full GUI with Optimized Highlight ESP & 2x Powers)
local CoreGui = game:GetService("CoreGui")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local Lighting = game:GetService("Lighting")
local MarketplaceService = game:GetService("MarketplaceService")
local Camera = Workspace.CurrentCamera
local localPlayer = Players.LocalPlayer
pcall(function()
if CoreGui:FindFirstChild("FlingGUI") then
CoreGui.FlingGUI:Destroy()
end
if CoreGui:FindFirstChild("CustomCrosshair") then
CoreGui.CustomCrosshair:Destroy()
end
end)
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "FlingGUI"
screenGui.ResetOnSpawn = false
screenGui.Parent = CoreGui
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 200, 0, 362)
frame.Position = UDim2.new(0.5, -100, 0.5, -181)
frame.BackgroundColor3 = Color3.fromRGB(15, 35, 65)
frame.BackgroundTransparency = 0.2
frame.Parent = screenGui
frame.Active = true
frame.Draggable = true
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 8)
UICorner.Parent = frame
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -35, 0, 30)
title.Position = UDim2.new(0, 8, 0, 5)
title.BackgroundTransparency = 1
title.Text = "Game Controller"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Font = Enum.Font.GothamBold
title.TextSize = 15
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = frame
local toggleMinimizeBtn = Instance.new("TextButton")
toggleMinimizeBtn.Size = UDim2.new(0, 20, 0, 20)
toggleMinimizeBtn.Position = UDim2.new(1, -25, 0, 5)
toggleMinimizeBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 215)
toggleMinimizeBtn.Text = "-"
toggleMinimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleMinimizeBtn.Font = Enum.Font.GothamBold
toggleMinimizeBtn.TextSize = 12
toggleMinimizeBtn.ZIndex = 5
toggleMinimizeBtn.Parent = frame
Instance.new("UICorner", toggleMinimizeBtn).CornerRadius = UDim.new(0, 4)
local function createButton(name, posY)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0.9, 0, 0, 26)
btn.Position = UDim2.new(0.05, 0, 0, posY)
btn.BackgroundColor3 = Color3.fromRGB(0, 100, 200)
btn.Text = name .. ": OFF"
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 13
btn.Parent = frame
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
return btn
end
local espButton = createButton("ESP", 38)
local aimButton = createButton("Aim", 70)
local aimlockButton = createButton("AimLock", 102)
local powersButton = createButton("2x Powers", 134)
local brightButton = createButton("Full Bright", 166)
local waterWalkButton = createButton("Water Walk", 198)
local interactiveEspButton = createButton("Interactive ESP", 230)
local infoLabel = Instance.new("TextLabel")
infoLabel.Size = UDim2.new(0.9, 0, 0, 65)
infoLabel.Position = UDim2.new(0.05, 0, 0, 266)
infoLabel.BackgroundTransparency = 1
infoLabel.Text = "Game: Roblox Game\nFPS: -- | Ping: --"
infoLabel.TextColor3 = Color3.fromRGB(200, 230, 255)
infoLabel.Font = Enum.Font.Gotham
infoLabel.TextSize = 11
infoLabel.TextWrapped = true
infoLabel.RichText = true
infoLabel.Parent = frame
local signatureLabel = Instance.new("TextLabel")
signatureLabel.Size = UDim2.new(0.9, 0, 0, 20)
signatureLabel.Position = UDim2.new(0.05, 0, 0, 336)
signatureLabel.BackgroundTransparency = 1
signatureLabel.Text = "Created by gorenionia"
signatureLabel.TextColor3 = Color3.fromRGB(150, 180, 220)
signatureLabel.Font = Enum.Font.SourceSansItalic
signatureLabel.TextSize = 11
signatureLabel.Parent = frame
local crosshairGui = Instance.new("ScreenGui")
crosshairGui.Name = "CustomCrosshair"
crosshairGui.Parent = CoreGui
crosshairGui.Enabled = false
local crosshairDot = Instance.new("Frame")
crosshairDot.Size = UDim2.new(0, 6, 0, 6)
crosshairDot.Position = UDim2.new(0.5, -3, 0.5, -3)
crosshairDot.BackgroundColor3 = Color3.fromRGB(0, 200, 255)
crosshairDot.BorderSizePixel = 0
crosshairDot.Parent = crosshairGui
Instance.new("UICorner", crosshairDot).CornerRadius = UDim.new(1, 0)
local isMinimized = false
toggleMinimizeBtn.MouseButton1Click:Connect(function()
isMinimized = not isMinimized
local hide = {espButton, aimButton, aimlockButton, powersButton, brightButton, waterWalkButton, interactiveEspButton, infoLabel, signatureLabel}
for _, el in ipairs(hide) do el.Visible = not isMinimized end
frame.Size = isMinimized and UDim2.new(0, 90, 0, 32) or UDim2.new(0, 200, 0, 362)
title.Text = isMinimized and "GC" or "Game Controller"
toggleMinimizeBtn.Text = isMinimized and "+" or "-"
end)
local placeName = "Roblox Game"
task.spawn(function()
pcall(function()
local info = MarketplaceService:GetProductInfo(game.PlaceId)
if info and info.Name then
placeName = info.Name
end
end)
end)
local fps, lastTick = 0, tick()
RunService.RenderStepped:Connect(function()
local currentTick = tick()
fps = math.floor(1 / (currentTick - lastTick))
lastTick = currentTick
local ping = 0
pcall(function() ping = math.floor(localPlayer:GetNetworkPing() * 1000) end)
-- Логика цветов для FPS
local fpsColor = "#00ff00" -- Зелёный (> 30)
if fps <= 15 then
fpsColor = "#ff0000" -- Красный (15 и меньше)
elseif fps <= 30 then
fpsColor = "#ffff00" -- Жёлтый (30 - 16)
end
-- Логика цветов для Пинга
local pingColor = "#00ff00" -- Зелёный (< 100)
if ping >= 300 then
pingColor = "#ff0000" -- Красный (300 и выше)
elseif ping >= 100 then
pingColor = "#ffff00" -- Жёлтый (100 - 299)
end
infoLabel.Text = string.format("Game: %s\nFPS: <font color=\"%s\">%d</font> | Ping: <font color=\"%s\">%d ms</font>", placeName, fpsColor, fps, pingColor, ping)
end)
local aimEnabled = false
aimButton.MouseButton1Click:Connect(function()
aimEnabled = not aimEnabled
crosshairGui.Enabled = aimEnabled
aimButton.Text = aimEnabled and "Aim: ON" or "Aim: OFF"
aimButton.BackgroundColor3 = aimEnabled and Color3.fromRGB(0, 160, 255) or Color3.fromRGB(0, 100, 200)
end)
local aimlockEnabled = false
aimlockButton.MouseButton1Click:Connect(function()
aimlockEnabled = not aimlockEnabled
aimlockButton.Text = aimlockEnabled and "AimLock: ON" or "AimLock: OFF"
aimlockButton.BackgroundColor3 = aimlockEnabled and Color3.fromRGB(0, 160, 255) or Color3.fromRGB(0, 100, 200)
end)
RunService.RenderStepped:Connect(function()
if aimlockEnabled then
local target, shortestDistance = nil, math.huge
local char = localPlayer.Character
local rootPart = char and char:FindFirstChild("HumanoidRootPart")
if rootPart then
for _, player in ipairs(Players:GetPlayers()) do
if player ~= localPlayer and player.Character then
local humanoid = player.Character:FindFirstChild("Humanoid")
local enemyRoot = player.Character:FindFirstChild("HumanoidRootPart")
if humanoid and humanoid.Health > 0 and enemyRoot then
local distance = (enemyRoot.Position - rootPart.Position).Magnitude
if distance < shortestDistance then
shortestDistance = distance
target = enemyRoot
end
end
end
end
if target then
Camera.CFrame = CFrame.new(Camera.CFrame.Position, target.Position)
end
end
end
end)
local powersEnabled = false
local defaultWalkSpeed = 16
local defaultJump = 50
powersButton.MouseButton1Click:Connect(function()
powersEnabled = not powersEnabled
powersButton.Text = powersEnabled and "2x Powers: ON" or "2x Powers: OFF"
powersButton.BackgroundColor3 = powersEnabled and Color3.fromRGB(0, 160, 255) or Color3.fromRGB(0, 100, 200)
local char = localPlayer.Character
if char and char:FindFirstChild("Humanoid") then
local hum = char.Humanoid
if powersEnabled then
defaultWalkSpeed = hum.WalkSpeed
hum.WalkSpeed = defaultWalkSpeed * 2
defaultJump = hum.UseJumpPower and hum.JumpPower or hum.JumpHeight
if hum.UseJumpPower then
hum.JumpPower = defaultJump * 2
else
hum.JumpHeight = defaultJump * 2
end
else
hum.WalkSpeed = defaultWalkSpeed
if hum.UseJumpPower then
hum.JumpPower = defaultJump
else
hum.JumpHeight = defaultJump
end
end
end
end)
local brightEnabled = false
local brightLight = nil
brightButton.MouseButton1Click:Connect(function()
brightEnabled = not brightEnabled
brightButton.Text = brightEnabled and "Full Bright: ON" or "Full Bright: OFF"
brightButton.BackgroundColor3 = brightEnabled and Color3.fromRGB(0, 160, 255) or Color3.fromRGB(0, 100, 200)
Lighting.Brightness = brightEnabled and 2 or 1
Lighting.GlobalShadows = not brightEnabled
if brightEnabled then
local char = localPlayer.Character
if char and char:FindFirstChild("Head") then
brightLight = Instance.new("PointLight", char.Head)
brightLight.Brightness, brightLight.Range = 10, 9999
end
else
if brightLight then brightLight:Destroy(); brightLight = nil end
end
end)
local waterWalkEnabled = false
local waterPart = nil
local waterConn = nil
waterWalkButton.MouseButton1Click:Connect(function()
waterWalkEnabled = not waterWalkEnabled
waterWalkButton.Text = waterWalkEnabled and "Water Walk: ON" or "Water Walk: OFF"
waterWalkButton.BackgroundColor3 = waterWalkEnabled and Color3.fromRGB(0, 160, 255) or Color3.fromRGB(0, 100, 200)
if waterWalkEnabled then
waterPart = Instance.new("Part")
waterPart.Name = "WaterWalkPlatform"
waterPart.Size = Vector3.new(20, 0.6, 20)
waterPart.Anchored = true
waterPart.CanCollide = true
waterPart.Transparency = 0.4
waterPart.BrickColor = BrickColor.new("Cyan")
waterPart.Parent = Workspace
waterConn = RunService.RenderStepped:Connect(function()
if not waterWalkEnabled or not waterPart then return end
local char = localPlayer.Character
if char and char:FindFirstChild("HumanoidRootPart") then
local root = char.HumanoidRootPart
local ignoreList = {char, waterPart}
for _, p in ipairs(Players:GetPlayers()) do
if p.Character then
table.insert(ignoreList, p.Character)
end
end
local rayParams = RaycastParams.new()
rayParams.FilterDescendantsInstances = ignoreList
rayParams.FilterType = Enum.RaycastFilterType.Exclude
local rayResult = Workspace:Raycast(root.Position, Vector3.new(0, -30, 0), rayParams)
if rayResult then
waterPart.Position = Vector3.new(root.Position.X, rayResult.Position.Y - 1, root.Position.Z)
waterPart.CanCollide = true
waterPart.Transparency = 0.4
else
waterPart.Position = Vector3.new(root.Position.X, -500, root.Position.Z)
waterPart.CanCollide = false
waterPart.Transparency = 1
end
end
end)
else
if waterConn then waterConn:Disconnect(); waterConn = nil end
if waterPart then waterPart:Destroy(); waterPart = nil end
end
end)
local interactiveEspEnabled = false
local interactiveHighlights = {}
local interactiveScanTask = nil
local function updateInteractiveESP()
local char = localPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
for _, obj in ipairs(Workspace:GetDescendants()) do
if obj:IsA("BasePart") then
local isCharacterPart = false
for _, player in ipairs(Players:GetPlayers()) do
if player.Character and obj:IsDescendantOf(player.Character) then
isCharacterPart = true
break
end
end
if not isCharacterPart then
local hasClick = obj:FindFirstChildWhichIsA("ClickDetector") or obj:FindFirstChildWhichIsA("ProximityPrompt")
local nameLower = obj.Name:lower()
local isSpecialButton = nameLower:find("button") or nameLower:find("switch") or
nameLower:find("pad") or nameLower:find("touch") or
nameLower:find("lock") or nameLower:find("light") or
nameLower:find("door") or nameLower:find("key")
if hasClick or isSpecialButton then
local inRange = false
if root then
inRange = (obj.Position - root.Position).Magnitude <= 50
end
if interactiveEspEnabled and inRange then
local hl = interactiveHighlights[obj]
if not hl or not hl.Parent then
hl = Instance.new("Highlight")
hl.Adornee = obj
hl.Parent = obj
hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
hl.FillTransparency = 1
hl.OutlineTransparency = 0
if hasClick then
hl.OutlineColor = Color3.fromRGB(0, 255, 0)
else
hl.OutlineColor = Color3.fromRGB(255, 0, 0)
end
interactiveHighlights[obj] = hl
end
hl.Enabled = true
else
local hl = interactiveHighlights[obj]
if hl then
hl.Enabled = false
end
end
end
end
end
end
end
interactiveEspButton.MouseButton1Click:Connect(function()
interactiveEspEnabled = not interactiveEspEnabled
interactiveEspButton.Text = interactiveEspEnabled and "Interactive ESP: ON" or "Interactive ESP: OFF"
interactiveEspButton.BackgroundColor3 = interactiveEspEnabled and Color3.fromRGB(0, 160, 255) or Color3.fromRGB(0, 100, 200)
if interactiveEspEnabled then
if not interactiveScanTask then
interactiveScanTask = task.spawn(function()
while interactiveEspEnabled do
updateInteractiveESP()
task.wait(0.5)
end
interactiveScanTask = nil
end)
end
else
for _, hl in pairs(interactiveHighlights) do
if hl and hl.Parent then
hl.Enabled = false
end
end
end
end)
local espEnabledState = false
local ESPCache = {}
local function CreateESP(player)
if player == localPlayer then return end
local esp = {
Highlight = Instance.new("Highlight"),
Billboard = Instance.new("BillboardGui"),
NameLabel = Instance.new("TextLabel"),
HealthBarBg = Instance.new("Frame"),
HealthBar = Instance.new("Frame")
}
esp.Highlight.FillTransparency, esp.Highlight.OutlineTransparency = 0.5, 0
esp.Highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
esp.Highlight.FillColor, esp.Highlight.OutlineColor = Color3.new(1,1,1), Color3.new(1,1,1)
esp.Highlight.Enabled = false
esp.Billboard.Size, esp.Billboard.StudsOffset, esp.Billboard.AlwaysOnTop = UDim2.new(0, 120, 0, 40), Vector3.new(0, 3, 0), true
esp.Billboard.Enabled = false
esp.NameLabel.Size, esp.NameLabel.BackgroundTransparency = UDim2.new(1, 0, 0, 20), 1
esp.NameLabel.TextColor3, esp.NameLabel.Font, esp.NameLabel.TextSize, esp.NameLabel.Text = Color3.new(1,1,1), Enum.Font.GothamBold, 12, player.Name
esp.NameLabel.Parent = esp.Billboard
esp.HealthBarBg.Size, esp.HealthBarBg.Position, esp.HealthBarBg.BackgroundColor3, esp.HealthBarBg.BorderSizePixel = UDim2.new(0.8, 0, 0, 4), UDim2.new(0.1, 0, 0, 22), Color3.new(0,0,0), 0
esp.HealthBarBg.Parent = esp.Billboard
esp.HealthBar.Size, esp.HealthBar.BackgroundColor3, esp.HealthBar.BorderSizePixel = UDim2.new(1, 0, 1, 0), Color3.new(0,1,0), 0
esp.HealthBar.Parent = esp.HealthBarBg
ESPCache[player] = esp
player.CharacterAdded:Connect(function(char)
esp.Highlight.Parent = char
local head = char:WaitForChild("Head", 5)
if head then esp.Billboard.Adornee = head; esp.Billboard.Parent = char end
end)
if player.Character then
esp.Highlight.Parent = player.Character
local head = player.Character:FindFirstChild("Head")
if head then esp.Billboard.Adornee = head; esp.Billboard.Parent = player.Character end
end
end
Players.PlayerAdded:Connect(CreateESP)
Players.PlayerRemoving:Connect(function(p)
if ESPCache[p] then
if ESPCache[p].Highlight then ESPCache[p].Highlight:Destroy() end
if ESPCache[p].Billboard then ESPCache[p].Billboard:Destroy() end
ESPCache[p] = nil
end
end)
for _, p in ipairs(Players:GetPlayers()) do CreateESP(p) end
RunService.RenderStepped:Connect(function()
local myChar = localPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
for player, esp in pairs(ESPCache) do
local char = player.Character
if espEnabledState and char and char:FindFirstChild("Humanoid") and char:FindFirstChild("HumanoidRootPart") then
local hum = char.Humanoid
esp.Highlight.Enabled, esp.Billboard.Enabled = true, true
if hum.MaxHealth > 0 then
local hpPercent = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
esp.HealthBar.Size = UDim2.new(hpPercent, 0, 1, 0)
end
if myRoot then
local distance = math.floor((char.HumanoidRootPart.Position - myRoot.Position).Magnitude)
esp.NameLabel.Text = string.format("%s [%d studs]", player.Name, distance)
else
esp.NameLabel.Text = player.Name
end
else
esp.Highlight.Enabled, esp.Billboard.Enabled = false, false
end
end
end)
espButton.MouseButton1Click:Connect(function()
espEnabledState = not espEnabledState
espButton.Text = espEnabledState and "ESP: ON" or "ESP: OFF"
espButton.BackgroundColor3 = espEnabledState and Color3.fromRGB(0, 160, 255) or Color3.fromRGB(0, 100, 200)
end)INFO