0% found this document useful (0 votes)
5 views19 pages

Global Configuration and Initialization

The document outlines a script for a game that includes global configurations and initialization for features like Fullbright, ESP (Extra Sensory Perception), and Aimbot for NPCs. It defines various state variables, settings for visual indicators, and functions to manage lighting, target monitoring, and visual updates. The script also includes logic for detecting visibility and distance to targets, as well as enabling and disabling features based on user input.

Uploaded by

tiosmoke223
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views19 pages

Global Configuration and Initialization

The document outlines a script for a game that includes global configurations and initialization for features like Fullbright, ESP (Extra Sensory Perception), and Aimbot for NPCs. It defines various state variables, settings for visual indicators, and functions to manage lighting, target monitoring, and visual updates. The script also includes logic for detecting visibility and distance to targets, as well as enabling and disabling features based on user input.

Uploaded by

tiosmoke223
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

-- =========================================================

-- ⚙️ CONFIGURAÇÃO GLOBAL E INICIALIZAÇÃO


-- =========================================================
local UserInputService = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local LocalPlayer = [Link]
local Camera = [Link]

-- Variáveis de Estado
local isFullbrightEnabled = false
local FullbrightConnection = nil
local isESPEnabled = false
local ESPVisualConnection = nil
local ESPWallCheckThread = nil
local ESPPlayerConnections = {}
local monitoredNPCs = {}

local isIndicatorEnabled = false


local IndicatorConnection = nil
local statusGui = nil
local indicator = nil

local isAimbotNPCEnabled = false -- ⬅️ NOVO: Estado do Aimbot NPC


local AimbotConnection = nil -- ⬅️ NOVO: Conexão do Aimbot

local utilityMenuGui = nil -- Armazenará a ScreenGui principal do menu


local KEYBIND_TOGGLE_MENU = [Link].P -- ⬅️ TECLA DE ABRIR/FECHAR AGORA É 'P'

-- Configurações Globais (do seu script original + Aimbot)


_G.FriendColor = [Link](0, 0, 255)
_G.EnemyColor = [Link](255, 0, 0)
_G.NPCColor = [Link](255, 255, 0)
_G.VisibleColor = [Link](0, 255, 0)
_G.WallColor = [Link](255, 165, 0)
_G.OutlineColor = [Link](255, 255, 255)
_G.UseTeamColor = true
_G.TargetFPS = 30
_G.CheckNPCs = true

_G.AimbotRange = 300 -- ⬅️ NOVO: Alcance máximo do Aimbot (studs)


_G.AimbotFOV = 150 -- ⬅️ NOVO: Campo de Visão (Field of View - raio em pixels na
tela)

-- Pasta para armazenar os Highlights/Tags


local Holder = [Link]("Folder", [Link])
[Link] = "ESP_Highlights_Tags_Holder"

-- =========================================================
-- 🎨 TEMPLATES ESP (inalterado)
-- =========================================================
local HighlightTemplate = [Link]("Highlight")
[Link] = "nilHighlight"
[Link] = 0.5
[Link] = 0
[Link] = [Link]
[Link] = _G.OutlineColor
[Link] = [Link](1, 1, 1)
[Link] = false

local NameTagTemplate = [Link]("BillboardGui")


[Link] = "nilNameTag"
[Link] = false
[Link] = [Link](0, 200, 0, 60)
[Link] = true
[Link] = [Link](0, 1.8, 0)

local Tag = [Link]("TextLabel")


[Link] = "Tag"
[Link] = 1
[Link] = [Link](0, -50, 0, 0)
[Link] = [Link](0, 300, 0, 30)
[Link] = 15
Tag.TextColor3 = [Link](1, 1, 1)
Tag.TextStrokeColor3 = [Link](0, 0, 0)
[Link] = 0.4
[Link] = "nil"
[Link] = [Link]
[Link] = false
[Link] = NameTagTemplate

-- =========================================================
-- 💡 FUNÇÕES FULLBRIGHT (inalterado)
-- =========================================================
local function applyFullbright()
-- Força a iluminação ambiente para branco total
[Link] = 2
[Link] = [Link](1, 1, 1)
[Link] = [Link](1, 1, 1)
[Link] = false
end

local function enableFullbright()


if isFullbrightEnabled then return end

applyFullbright()
FullbrightConnection = [Link]:Connect(applyFullbright)
isFullbrightEnabled = true
end

local function disableFullbright()


if not isFullbrightEnabled then return end

if FullbrightConnection then
FullbrightConnection:Disconnect()
FullbrightConnection = nil
end

-- Restaura as configurações padrão ou neutras


[Link] = 1 -- Padrão
[Link] = [Link](0, 0, 0)
[Link] = [Link](0, 0, 0)
[Link] = true

isFullbrightEnabled = false
end
-- =========================================================
-- FUNÇÕES ESP (inalterado)
-- =========================================================
local function isBehindWall(targetCharacter)
local head = targetCharacter:FindFirstChild("Head")
if not head or not [Link] or not
[Link]:FindFirstChild("Head") then
return false, 0
end

local origin = [Link]


local targetPosition = [Link]
local distanceToTarget = (targetPosition - origin).Magnitude
local direction = (targetPosition - origin).unit * distanceToTarget

if distanceToTarget > 500 then


return true, distanceToTarget
end

local rayParams = [Link]()


[Link] = [Link]
[Link] = {[Link], targetCharacter}
[Link] = true

local raycastResult = Workspace:Raycast(origin, direction, rayParams)

if raycastResult then
local distanceToHit = ([Link] - origin).Magnitude
return distanceToHit < distanceToTarget - 0.5, distanceToTarget
end

return false, distanceToTarget


end

-- Gerenciamento de Assets (Highlight/NameTag)


local function getBaseColor(target)
local player = Players:GetPlayerFromCharacter(target)
if player then
if _G.UseTeamColor and [Link] then
return [Link]
end
return [Link] and [Link] == [Link] and
_G.FriendColor or _G.EnemyColor
else
return _G.NPCColor
end
end

local function UnloadTarget(target)


local vHolder = Holder:FindFirstChild([Link])
if vHolder then
vHolder:ClearAllChildren()
vHolder:Destroy()
end
end

local function UnloadAllTargets()


for _, vHolder in pairs(Holder:GetChildren()) do
vHolder:ClearAllChildren()
vHolder:Destroy()
end
monitoredNPCs = {}
end

local function LoadTarget(target)


local isPlayer = Players:GetPlayerFromCharacter(target) ~= nil
local char = target
local vHolder = Holder:FindFirstChild([Link])

if not vHolder then


vHolder = [Link]("Folder", Holder)
[Link] = [Link]
end

vHolder:ClearAllChildren()

local highlight = HighlightTemplate:Clone()


[Link] = [Link] .. "Highlight"
[Link] = char
[Link] = vHolder
[Link] = true

local NameTag = NameTagTemplate:Clone()


[Link] = [Link] .. "NameTag"
[Link] = true
[Link] = vHolder

local head = char:WaitForChild("Head", 5)


if not head then
return UnloadTarget(target)
end
[Link] = head

local tagText = NameTag:FindFirstChild("Tag")


if tagText then
[Link] = [Link]
end

if isPlayer and char:FindFirstChildOfClass("Humanoid") then


char:FindFirstChildOfClass("Humanoid").DisplayDistanceType =
[Link]
end
end

-- NPC Monitoring
local function MonitorNPC(char)
if isESPEnabled and char:IsA("Model") and
char:FindFirstChildOfClass("Humanoid") and not Players:GetPlayerFromCharacter(char)
and _G.CheckNPCs then
if not monitoredNPCs[char] then
monitoredNPCs[char] = true
LoadTarget(char)
local conn
conn = [Link]:Connect(function()
if not [Link] then
UnloadTarget(char)
monitoredNPCs[char] = nil
if conn then conn:Disconnect() end
end
end)
end
end
end

local function FindAndMonitorNPCs()


for _, child in pairs(Workspace:GetChildren()) do
MonitorNPC(child)
end
end

-- LOOP PRINCIPAL DE ATUALIZAÇÃO (VISUAL - Roda a cada frame)


local function UpdateESPVisuals(target)
if not isESPEnabled then return end

local targetCharacter = [Link] or target

local humanoid = targetCharacter:FindFirstChildOfClass("Humanoid")


if not targetCharacter or not humanoid or [Link] <= 0 then
if not Players:GetPlayerFromCharacter(targetCharacter) then
UnloadTarget(targetCharacter)
monitoredNPCs[targetCharacter] = nil
end
return
end

local targetFolder = Holder:FindFirstChild([Link])


if not targetFolder then return end

local highlight = targetFolder:FindFirstChild([Link] ..


"Highlight")
local NameTag = targetFolder:FindFirstChild([Link] .. "NameTag")

if highlight and NameTag then


local baseColor = getBaseColor(targetCharacter)
local isBehindWallAttr = highlight:GetAttribute("IsBehindWall") or false
local distance = highlight:GetAttribute("Distance") or 0

-- Aplica a cor de preenchimento do Highlight e DepthMode


if isBehindWallAttr then
[Link] = _G.WallColor
[Link] = [Link]
else
-- Cor para visível é verde, ou a cor base do time
[Link] = _G.VisibleColor
[Link] = [Link]
end

-- Atualiza o texto da etiqueta de nome


local tagText = NameTag:FindFirstChild("Tag")
if tagText then
tagText.TextColor3 = [Link]

local h = [Link]([Link])
local maxh = [Link]([Link])

[Link] = [Link]("%s\nHP: %d/%d\nDist: %.1fm",


[Link], h, maxh, distance)
end
else
pcall(LoadTarget, targetCharacter)
end
end

-- LOOP DE VERIFICAÇÃO DE PAREDE (Lento - Roda a uma taxa fixa)


local function WallCheckLoop()
local waitTime = 1 / _G.TargetFPS
while [Link](waitTime) do
if not isESPEnabled then break end -- Sai do loop se desabilitado

if not [Link] or not


[Link]:FindFirstChild("Head") then
continue
end

local allTargets = {}
-- Adiciona jogadores
for _, player in Players:GetPlayers() do
if [Link] and player ~= LocalPlayer then
[Link](allTargets, [Link])
end
end
-- Adiciona NPCs
if _G.CheckNPCs then
for target in pairs(monitoredNPCs) do
if target and target:IsDescendantOf(Workspace) and
target:FindFirstChildOfClass("Humanoid") and target:FindFirstChild("Head") then
[Link](allTargets, target)
else
UnloadTarget(target)
monitoredNPCs[target] = nil
end
end
end

for _, targetCharacter in ipairs(allTargets) do


local targetFolder = Holder:FindFirstChild([Link])
local highlight = targetFolder and
targetFolder:FindFirstChild([Link] .. "Highlight")

if highlight then
local behindWall, distance = isBehindWall(targetCharacter)
highlight:SetAttribute("IsBehindWall", behindWall)
highlight:SetAttribute("Distance", distance)
end
end
end
end

-- Funções de Habilitar/Desabilitar ESP


local function enableESP()
if isESPEnabled then return end

isESPEnabled = true

-- Inicia o Loop de Verificação de Parede (Raycasting)


ESPWALLCheckThread = [Link](WallCheckLoop)

-- Inicia o loop de visualização (Stepped)


ESPVisualConnection = [Link]:Connect(function()
if not [Link] then return end

-- Atualiza Jogadores
for _, player in Players:GetPlayers() do
if player ~= LocalPlayer and [Link] then
UpdateESPVisuals(player)
end
end
-- Atualiza NPCs
if _G.CheckNPCs then
for npc in pairs(monitoredNPCs) do
if npc then
UpdateESPVisuals(npc)
end
end
end
end)

-- Carrega jogadores existentes


local function loadPlayerOnJoin(v)
local conn
local function setupConnections(char)
pcall(LoadTarget, char)
local removeConn = [Link]:Connect(function(char)
pcall(UnloadTarget, char) end)
[Link](ESPPlayerConnections, removeConn)
end

conn = [Link]:Connect(setupConnections)
[Link](ESPPlayerConnections, conn)

if [Link] then setupConnections([Link]) end


end

for _, v in Players:GetPlayers() do
if v ~= LocalPlayer then
loadPlayerOnJoin(v)
end
end

local playerAddedConn = [Link]:Connect(function(v)


if v ~= LocalPlayer then loadPlayerOnJoin(v) end
end)
[Link](ESPPlayerConnections, playerAddedConn)

-- Carrega NPCs existentes e monitora novos


if _G.CheckNPCs then
FindAndMonitorNPCs()
local childAddedConn = [Link]:Connect(MonitorNPC)
[Link](ESPPlayerConnections, childAddedConn)
end
end

local function disableESP()


if not isESPEnabled then return end
isESPEnabled = false

-- Desconecta todas as conexões do ESP


for _, conn in ipairs(ESPPlayerConnections) do
if pcall([Link], conn) then
-- Sucesso
end
end
ESPPlayerConnections = {}

if ESPVisualConnection then
ESPVisualConnection:Disconnect()
ESPVisualConnection = nil
end

-- O WallCheckLoop é interrompido pelo break dentro dele.

UnloadAllTargets()
end

-- =========================================================
-- 🎯 FUNÇÕES AIMBOT NPC (NOVO)
-- =========================================================

-- Encontra o NPC mais próximo dentro do FOV e alcance


local function findTargetNPC()
local bestTarget = nil
local closestDistance = _G.AimbotRange + 1 -- Inicializa com mais do que o
máximo
local smallestFOV = _G.AimbotFOV + 1

if not [Link] or not


[Link]:FindFirstChild("Head") then
return nil
end
local localHead = [Link]
local center = [Link]([Link].X / 2, [Link].Y /
2)

for target in pairs(monitoredNPCs) do


local targetHead = target:FindFirstChild("Head")
local humanoid = target:FindFirstChildOfClass("Humanoid")

-- Verifica se é um NPC válido e vivo


if targetHead and humanoid and [Link] > 0 then
local distance = ([Link] - [Link]).Magnitude

-- Verifica o alcance
if distance <= _G.AimbotRange then
local vector, onScreen =
Camera:WorldToScreenPoint([Link])

if onScreen then
local targetScreenPos = [Link](vector.X, vector.Y)
local fovDistance = (targetScreenPos - center).Magnitude

-- Verifica o FOV (Field of View)


if fovDistance <= _G.AimbotFOV then
-- Encontra o NPC mais próximo do centro da tela
if fovDistance < smallestFOV then
smallestFOV = fovDistance
bestTarget = targetHead
closestDistance = distance
end
end
end
end
end
end

return bestTarget
end

-- Calcula a posição do mouse na tela para onde mirar


local function calculateMousePosition(targetHead)
local vector, onScreen = Camera:WorldToScreenPoint([Link])
if onScreen then
return [Link](vector.X, vector.Y)
end
return nil
end

-- Ação principal do Aimbot (move a câmera)


local function aimAtTarget()
local target = findTargetNPC()

if target and [Link] and


[Link]:FindFirstChild("HumanoidRootPart") then
-- Calcula o vetor de direção do localHead para o target
local direction = ([Link] -
[Link]).unit

-- Cria um CFrame de lookAt


local newCFrame = [Link]([Link],
[Link])

-- Define o CFrame da Câmera


[Link] = newCFrame
end
end

local function enableAimbotNPC()


if isAimbotNPCEnabled then return end

-- Deve estar ligado para que os NPCs sejam monitorados


if not isESPEnabled then
enableESP()
end

-- Conecta o loop do Aimbot ao RenderStepped


AimbotConnection = [Link]:Connect(aimAtTarget)
isAimbotNPCEnabled = true
end

local function disableAimbotNPC()


if not isAimbotNPCEnabled then return end
if AimbotConnection then
AimbotConnection:Disconnect()
AimbotConnection = nil
end
isAimbotNPCEnabled = false
end

-- =========================================================
-- FUNÇÕES INDICADOR DE STATUS (inalterado)
-- =========================================================
local function createStatusIndicator()
-- Cria o ScreenGui no CoreGui, se ainda não existir
if not statusGui then
statusGui = [Link]("ScreenGui")
[Link] = "TimeStatusGui"
[Link] = [Link]
[Link] = [Link]

indicator = [Link]("TextLabel")
[Link] = "TimeStatusIndicator"
[Link] = [Link](0, 300, 0, 25)
[Link] = [Link](0, 5, 0, 35) -- Abaixo da GUI do menu
[Link] = 0.8
indicator.BackgroundColor3 = [Link](0, 0, 0)
[Link] = 15
[Link] = [Link]
[Link] = 0
[Link] = [Link]
[Link] = true
[Link] = statusGui
end
[Link] = true
end

local function updateIndicator()


if not indicator then return end

local clockTime = [Link]


local isDay = clockTime >= 6 and clockTime < 18

local statusText = isDay and "DIA" or "NOITE"


local hours = [Link](clockTime)
local minutes = [Link]((clockTime % 1) * 60)
local timeDisplay = [Link]("%02d:%02d", hours, minutes)

local fbStatus = isFullbrightEnabled and "ATIVO" or "INATIVO"


local espStatus = isESPEnabled and "ATIVO" or "INATIVO"
local aimbotStatus = isAimbotNPCEnabled and "ATIVO" or "INATIVO" -- ⬅️ NOVO

-- Texto final: Exemplo: "FULLBRIGHT [ATIVO] | ESP [ATIVO] | AIMBOT [INATIVO]"


[Link] = [Link]("FB: [%s] | ESP: [%s] | AIMBOT: [%s] | Servidor:
%s (%s)", fbStatus, espStatus, aimbotStatus, statusText, timeDisplay)

-- Altera a cor do texto para indicar visualmente se é Dia ou Noite no servidor


if isDay then
indicator.TextColor3 = [Link](255, 255, 0) -- Amarelo para Dia
else
indicator.TextColor3 = [Link](135, 206, 250) -- Azul Claro para
Noite
end
end

local function enableIndicator()


if isIndicatorEnabled then return end

createStatusIndicator()
updateIndicator()
IndicatorConnection = [Link]:Connect(updateIndicator)
isIndicatorEnabled = true
end

local function disableIndicator()


if not isIndicatorEnabled then return end

if IndicatorConnection then
IndicatorConnection:Disconnect()
IndicatorConnection = nil
end
if statusGui then
[Link] = false
end
isIndicatorEnabled = false
end

-- =========================================================
-- FUNÇÕES E CONSTRUÇÃO DO MENU GUI (Adição do Aimbot)
-- =========================================================

local GuiConnections = {}

-- Função para validar e normalizar a entrada de texto para um número de 0-255


local function normalizeColorInput(textBox)
local num = [Link](tonumber([Link]) or 0, 0, 255)
[Link] = tostring([Link](num))
return num
end

-- ➡️ FUNÇÃO DE ALTERNÂNCIA DE VISIBILIDADE DO MENU


local function toggleMenuVisibility()
if not utilityMenuGui then return end
[Link] = not [Link]
-- Opcional: Garante que o indicador se esconde quando o menu principal se
esconde
if statusGui then [Link] = [Link] and
isIndicatorEnabled end
end
-- ⬅️ FIM DA FUNÇÃO DE ALTERNÂNCIA DE VISIBILIDADE DO MENU

local function createMenuGui()


local screenGui = [Link]("ScreenGui")
[Link] = "UtilityMenuGUI"
[Link] = [Link]
utilityMenuGui = screenGui -- ⬅️ Armazena a referência global

local mainFrame = [Link]("Frame")


[Link] = [Link](0, 200, 0, 500) -- <-- ALTURA AUMENTADA para sliders
[Link] = [Link](1, -210, 0, 10) -- Canto superior direito
mainFrame.BackgroundColor3 = [Link](30, 30, 30)
[Link] = 0
[Link] = screenGui

local UICorner = [Link]("UICorner")


[Link] = [Link](0, 8)
[Link] = mainFrame

local titleLabel = [Link]("TextLabel")


[Link] = "MENU DE UTILIDADES"
[Link] = [Link](1, 0, 0, 25)
[Link] = [Link](0, 0, 0, 0)
titleLabel.BackgroundColor3 = [Link](50, 50, 50)
titleLabel.TextColor3 = [Link](255, 255, 255)
[Link] = [Link]
[Link] = 16
[Link] = 0
[Link] = mainFrame

local UILayout = [Link]("UIListLayout")


[Link] = [Link](0, 5)
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
[Link] = mainFrame

-- Adiciona um padding extra para os botões ficarem abaixo do título


local padding = [Link]("Frame")
[Link] = [Link](1, 0, 0, 30)
[Link] = 1
[Link] = 1 -- Ordem de layout
[Link] = mainFrame

local function createToggleButton(text, defaultState, enableFunc, disableFunc,


order)
local btn = [Link]("TextButton")
[Link] = text:gsub(" ", "") .. "Button"
[Link] = text
[Link] = order
[Link] = [Link](0.9, 0, 0, 30)
btn.BackgroundColor3 = [Link](80, 80, 80)
[Link] = [Link]
[Link] = 14
[Link] = 0
[Link] = mainFrame

local corner = [Link]("UICorner")


[Link] = [Link](0, 6)
[Link] = btn

local state = defaultState


local GREEN = [Link](30, 180, 30)
local RED = [Link](180, 30, 30)

local function updateButtonDisplay()


if state then
[Link] = text .. " (LIGADO)"
btn.BackgroundColor3 = GREEN
else
[Link] = text .. " (DESLIGADO)"
btn.BackgroundColor3 = RED
end
end

local function toggle()


state = not state
updateButtonDisplay()
if state then
enableFunc()
else
disableFunc()
end
end

updateButtonDisplay() -- Configura o display inicial

local conn = btn.MouseButton1Click:Connect(toggle)


[Link](GuiConnections, conn)

return btn, toggle


end

-- Botão Fullbright
createToggleButton("FULLBRIGHT AVANÇADO", isFullbrightEnabled,
enableFullbright, disableFullbright, 2)

-- Botão ESP Highlight


createToggleButton("ESP HIGHLIGHT/WALL CHECK", isESPEnabled, enableESP,
disableESP, 3)

-- Botão Aimbot NPC ⬅️ NOVO


createToggleButton("AIMBOT NPC", isAimbotNPCEnabled, enableAimbotNPC,
disableAimbotNPC, 4)

-- Botão Indicador de Status


createToggleButton("INDICADOR DE STATUS", isIndicatorEnabled, enableIndicator,
disableIndicator, 5)

-- =========================================================
-- 🎨 INÍCIO DAS FUNÇÕES DE COR (COM SLIDERS)
-- =========================================================

-- Separador e Título de Cores


local colorTitle = [Link]("TextLabel")
[Link] = "--- CORES DO ESP ---"
[Link] = 6 -- Ajustado
[Link] = [Link](0.9, 0, 0, 20)
[Link] = 1
colorTitle.TextColor3 = [Link](255, 255, 255)
[Link] = [Link]
[Link] = 14
[Link] = mainFrame

-- Função helper para criar caixas RGB + Sliders + Preview (inalterado)


local function createColorInput(labelText, initialColor, layoutOrder)
local rVal, gVal, bVal = initialColor.R * 255, initialColor.G * 255,
initialColor.B * 255

local label = [Link]("TextLabel")


[Link] = labelText
[Link] = layoutOrder
[Link] = [Link](0.9, 0, 0, 15)
[Link] = 1
label.TextColor3 = [Link](200, 200, 200)
[Link] = [Link]
[Link] = 12
[Link] = [Link]
[Link] = mainFrame

-- Frame para Caixas de Texto e Preview


local boxFrame = [Link]("Frame")
[Link] = layoutOrder + 1
[Link] = [Link](0.9, 0, 0, 25)
[Link] = 1
[Link] = mainFrame

local boxLayout = [Link]("UIListLayout")


[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
[Link] = [Link](0, 5)
[Link] = boxFrame

local function createTextBox(placeholder, initialValue)


local tb = [Link]("TextBox")
[Link] = [Link](0, 40, 1, 0) -- Tamanho menor
tb.BackgroundColor3 = [Link](50, 50, 50)
tb.TextColor3 = [Link](255, 255, 255)
[Link] = [Link]
[Link] = 14
[Link] = placeholder
[Link] = tostring([Link](initialValue))
[Link] = false
[Link] = false
[Link] = boxFrame

local corner = [Link]("UICorner")


[Link] = [Link](0, 4)
[Link] = tb

return tb
end

local rBox = createTextBox("R", rVal)


local gBox = createTextBox("G", gVal)
local bBox = createTextBox("B", bVal)

-- Caixa de Preview
local previewBox = [Link]("Frame")
[Link] = [Link](0, 30, 1, 0)
previewBox.BackgroundColor3 = initialColor
[Link] = 1
previewBox.BorderColor3 = [Link](150, 150, 150)
[Link] = boxFrame

local previewCorner = [Link]("UICorner")


[Link] = [Link](0, 4)
[Link] = previewBox
-- Sliders
local function createSlider(initialValue, layoutOrder, color)
local slider = [Link]("Slider")
[Link] = layoutOrder
[Link] = [Link](0.9, 0, 0, 15)
[Link] = 0
[Link] = 255
[Link] = initialValue
[Link] = mainFrame
-- Adiciona cor ao slider
slider.ThumbColor3 = color
slider.BackgroundColor3 = [Link](0.3, 0.3, 0.3)
return slider
end

local rSlider = createSlider(rVal, layoutOrder + 2, [Link](255, 50,


50))
local gSlider = createSlider(gVal, layoutOrder + 3, [Link](50, 255,
50))
local bSlider = createSlider(bVal, layoutOrder + 4, [Link](50, 50,
255))

-- Sincronização
local function updatePreview()
local r = normalizeColorInput(rBox)
local g = normalizeColorInput(gBox)
local b = normalizeColorInput(bBox)
previewBox.BackgroundColor3 = [Link](r, g, b)
end

-- Sliders atualizam Caixas de Texto


[Link]:Connect(function()
[Link] = tostring([Link]([Link]))
updatePreview()
end)
[Link]:Connect(function()
[Link] = tostring([Link]([Link]))
updatePreview()
end)
[Link]:Connect(function()
[Link] = tostring([Link]([Link]))
updatePreview()
end)

-- Caixas de Texto (ao perder foco) atualizam Sliders


[Link]:Connect(function()
[Link] = normalizeColorInput(rBox)
updatePreview()
end)
[Link]:Connect(function()
[Link] = normalizeColorInput(gBox)
updatePreview()
end)
[Link]:Connect(function()
[Link] = normalizeColorInput(bBox)
updatePreview()
end)
return rBox, gBox, bBox
end

-- Criar Inputs de Cor (LayoutOrder +5 por cada um)


local vR, vG, vB = createColorInput("Visível (R,G,B):", _G.VisibleColor, 7) --
Ajustado LayoutOrder
local wR, wG, wB = createColorInput("Parede (R,G,B):", _G.WallColor, 13) --
Ajustado LayoutOrder

-- Botão Salvar
local saveButton = [Link]("TextButton")
[Link] = "SaveColorButton"
[Link] = "SALVAR CORES"
[Link] = 19 -- Ajustado para depois dos sliders
[Link] = [Link](0.9, 0, 0, 30)
saveButton.BackgroundColor3 = [Link](50, 50, 150) -- Azul
[Link] = [Link]
[Link] = 14
[Link] = 0
[Link] = mainFrame

local saveCorner = [Link]("UICorner")


[Link] = [Link](0, 6)
[Link] = saveButton

-- Função para validar e converter o texto para cor (usada no botão Salvar)
local function parseColor(r, g, b)
local rNum = normalizeColorInput(r)
local gNum = normalizeColorInput(g)
local bNum = normalizeColorInput(b)
return [Link](rNum, gNum, bNum)
end

local saveConn = saveButton.MouseButton1Click:Connect(function()


_G.VisibleColor = parseColor(vR, vG, vB)
_G.WallColor = parseColor(wR, wG, wB)

-- Feedback visual
[Link] = "CORES SALVAS!"
saveButton.BackgroundColor3 = [Link](30, 180, 30) -- Verde
[Link](1.5)
[Link] = "SALVAR CORES"
saveButton.BackgroundColor3 = [Link](50, 50, 150) -- Azul
end)
[Link](GuiConnections, saveConn)

-- =========================================================
-- 🎨 FIM DAS FUNÇÕES DE COR
-- =========================================================

-- =========================================================
-- 🎯 INÍCIO DAS FUNÇÕES DE AIMBOT (NOVO)
-- =========================================================
local aimbotTitle = [Link]("TextLabel")
[Link] = "--- AIMBOT NPC ---"
[Link] = 20 -- NOVO
[Link] = [Link](0.9, 0, 0, 20)
[Link] = 1
aimbotTitle.TextColor3 = [Link](255, 255, 255)
[Link] = [Link]
[Link] = 14
[Link] = mainFrame

-- Alcance do Aimbot (Slider)


local rangeLabel = [Link]("TextLabel")
[Link] = [Link]("Alcance (Studs): %.0f", _G.AimbotRange)
[Link] = 21 -- NOVO
[Link] = [Link](0.9, 0, 0, 15)
[Link] = 1
rangeLabel.TextColor3 = [Link](200, 200, 200)
[Link] = [Link]
[Link] = 12
[Link] = [Link]
[Link] = mainFrame

local rangeSlider = [Link]("Slider")


[Link] = 22 -- NOVO
[Link] = [Link](0.9, 0, 0, 15)
[Link] = 50
[Link] = 1000
[Link] = _G.AimbotRange
[Link] = mainFrame
rangeSlider.ThumbColor3 = [Link](200, 150, 255) -- Roxo
rangeSlider.BackgroundColor3 = [Link](0.3, 0.3, 0.3)

local rangeConn = [Link]:Connect(function(value)


_G.AimbotRange = [Link](value)
[Link] = [Link]("Alcance (Studs): %.0f", _G.AimbotRange)
end)
[Link](GuiConnections, rangeConn)

-- FOV do Aimbot (Slider)


local fovLabel = [Link]("TextLabel")
[Link] = [Link]("FOV (Pixels): %.0f", _G.AimbotFOV)
[Link] = 23 -- NOVO
[Link] = [Link](0.9, 0, 0, 15)
[Link] = 1
fovLabel.TextColor3 = [Link](200, 200, 200)
[Link] = [Link]
[Link] = 12
[Link] = [Link]
[Link] = mainFrame

local fovSlider = [Link]("Slider")


[Link] = 24 -- NOVO
[Link] = [Link](0.9, 0, 0, 15)
[Link] = 10
[Link] = 500
[Link] = _G.AimbotFOV
[Link] = mainFrame
fovSlider.ThumbColor3 = [Link](255, 100, 150) -- Rosa
fovSlider.BackgroundColor3 = [Link](0.3, 0.3, 0.3)

local fovConn = [Link]:Connect(function(value)


_G.AimbotFOV = [Link](value)
[Link] = [Link]("FOV (Pixels): %.0f", _G.AimbotFOV)
end)
[Link](GuiConnections, fovConn)
-- =========================================================
-- 🎯 FIM DAS FUNÇÕES DE AIMBOT
-- =========================================================

-- Botão Extra para fechar/abrir o menu (via clique)


local hideButton = [Link]("TextButton")
[Link] = "Ocultar/Mostrar (Clique ou tecla 'P')" -- Texto atualizado
[Link] = [Link](0.9, 0, 0, 20)
[Link] = 99
hideButton.BackgroundColor3 = [Link](50, 50, 50)
hideButton.TextColor3 = [Link](200, 200, 200)
[Link] = [Link]
[Link] = 12
[Link] = 0
[Link] = mainFrame

local conn = hideButton.MouseButton1Click:Connect(toggleMenuVisibility)


[Link](GuiConnections, conn)

-- Configuração inicial do indicador (escondido)


if statusGui then [Link] = false end

-- Cleanup
[Link]:Connect(function()
if not [Link] then
disableFullbright()
disableESP()
disableIndicator()
disableAimbotNPC() -- ⬅️ NOVO: Limpeza do Aimbot
for _, conn in ipairs(GuiConnections) do
if [Link] then conn:Disconnect() end
end
if Holder then Holder:Destroy() end
end
end)
end

-- =========================================================
-- 🚀 INICIALIZAÇÃO E KEYBIND
-- =========================================================

-- Função para lidar com a entrada do usuário (tecla)


local function handleInput(input, gameProcessed)
-- Ignora se o jogo já processou o input (ex: chatbox aberto)
if gameProcessed then return end

if [Link] == KEYBIND_TOGGLE_MENU and [Link] ==


[Link] then
toggleMenuVisibility()
end
end

-- Conecta a função de input ao UserInputService


local inputConn = [Link]:Connect(handleInput)

-- Inicia a construção da GUI após a garantia de que o LocalPlayer existe


if LocalPlayer then
createMenuGui()
-- Garante que o indicador é criado, mas inicialmente desabilitado
createStatusIndicator()
[Link] = false -- Começa escondido
else
-- Em caso de falha, tenta novamente quando o jogador for adicionado
[Link]:Wait()
createMenuGui()
createStatusIndicator()
[Link] = false -- Começa escondido
end

print("GUI de Utilidades e Scripts Carregados. Tecla de atalho: 'P'")

You might also like