You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OpenShell Instructions for Red Hatters to use Anthropic models via Vertex AI
# install
$ sudo dnf copr enable maxamillion/nvidia-openshell
$ sudo dnf install openshell-gateway openshell
# start the rootless user systemd service unit
$ systemctl --user start openshell-gateway.service
# add the local openshell gateway to your client config
$ openshell gateway add https://localhost:17670 --local
# Follow the Vertex AI Claude Code instructions to setup your gcloud creds# https://docs.google.com/document/d/1eNARy9CI28o09E7Foq01e5WD5MvEj3LSBnXqFcprxjo/edit?tab=t.0#heading=h.8ldy5by9bpo8# MAKE SURE TO GET YOUR PROJECT NAME, YOU'LL NEED IT IN THE FOLLOWING EXPORT
Option A (RECOMMENDED): GCP Provider using OpenShell's GCE Metadata emulation
# Create the provider credential in OpenShell
$ openshell provider create --name redhat-gcp --type google-cloud --from-gcloud-adc --config project_id="$(gcloud config get-value project)" --config region=global
# Create a sandbox using this provider credential
$ openshell sandbox create --name my-sandbox --provider redhat-gcp
# Next we need to update the network policy (this should be temporary, we'll get this added to the default policy once the provider merges
$ openshell policy update my-sandbox --add-endpoint aiplatform.googleapis.com:443:read-write:rest:enforce --binary /usr/local/bin/claude --binary /usr/bin/opencode --wait
# Once inside the sandbox, either run Claude Code just as outlined in the Google Doc:# Claude Code
$ CLAUDE_CODE_USE_VERTEX=1 CLOUD_ML_REGION="global" ANTHROPIC_VERTEX_PROJECT_ID="YOUR_ORG_GCLOLUD_PROJECT" claude
# Or alternatively you can use OpenCode# OpenCode
$ VERTEX_LOCATION="global" GOOGLE_CLOUD_PROJECT="YOUR_ORG_GCLOUD_PROJECT" opencode
Option B: Vertex AI Provider using OpenShell inference.local custom endpoint
$ export vertex_project="YOUR_ORG_GCLOUD_PROJECT"# Enable the providers v2 feature flag# (this is necessary for now, but will go away when we migrate from v1 to v2 upstream)
$ openshell settings set --global --key providers_v2_enabled --value true --yes
# Create the provider credential in OpenShell
$ openshell provider create --name vertex-local --type google-vertex-ai --from-gcloud-adc --config VERTEX_AI_PROJECT_ID="${vertex_project}" --config VERTEX_AI_REGION=global
# Set the inference provider# NOTE: the model is ignored by claude code, but openshell requires the setting
$ openshell inference set --provider vertex-local --model claude-sonnet-4-6
# Create a sandbox using this provider credential
$ openshell sandbox create --name my-sandbox --provider vertex-local
# Once inside the sandbox, either run Claude Code or OpenCode as follows:# Claude Code
$ ANTHROPIC_BASE_URL="https://inference.local" ANTHROPIC_API_KEY=unused claude --bare
# OpenCode
$ ANTHROPIC_BASE_URL="https://inference.local/v1" ANTHROPIC_API_KEY=unused opencode
--[[
WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
-- ============================================
-- ROMALHO RAGE MENU v8.0 - UNIVERSAL
-- Funciona em TODOS os jogos de tiro do Roblox
-- Arraste para mover | Botão [-] para minimizar
-- Pressione V = esconder/mostrar painel
-- ============================================
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")
local Workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local camera = workspace.CurrentCamera
-- ========== VARIAVEIS ==========
local espActive = false
local espLineActive = false
local espNameActive = false
local espHealthActive = false
local espDistanceActive = false
local espBoxActive = false
local panelVisible = true
local panelMinimized = false
local espObjects = {}
local dragging = false
local dragInput = nil
local dragStart = nil
local startPos = nil
-- Cores do ESP (configurável)
local espColor = Color3.fromRGB(255, 200, 50)
-- ========== CORES ==========
local darkBg = Color3.fromRGB(15, 15, 25)
local grayBg = Color3.fromRGB(30, 30, 40)
local redColor = Color3.fromRGB(255, 70, 50)
local yellowColor = Color3.fromRGB(255, 200, 50)
local greenColor = Color3.fromRGB(50, 200, 50)
local whiteColor = Color3.fromRGB(255, 255, 255)
local colors = {
{name = "🟡", color = Color3.fromRGB(255, 200, 50)},
{name = "🔴", color = Color3.fromRGB(255, 50, 50)},
{name = "🟢", color = Color3.fromRGB(50, 255, 50)},
{name = "🔵", color = Color3.fromRGB(50, 150, 255)},
{name = "🟣", color = Color3.fromRGB(200, 50, 255)},
}
for i, c in ipairs(colors) do
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0.08, 0, 0.7, 0)
btn.Position = UDim2.new(0.4 + (i-1) * 0.11, 0, 0.15, 0)
btn.BackgroundColor3 = c.color
btn.Text = ""
btn.BorderSizePixel = 0
btn.Parent = colorSection
local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(0, 8)
btnCorner.Parent = btn
if c.color == espColor then
btn.BorderSizePixel = 2
btn.BorderColor3 = Color3.fromRGB(255, 255, 255)
end
btn.MouseButton1Click:Connect(function()
espColor = c.color
for _, espData in pairs(espObjects) do
if espData and espData.esp then
for _, child in ipairs(espData.esp:GetChildren()) do
if child:IsA("TextLabel") then
child.TextColor3 = espColor
end
end
end
end
for _, b in ipairs(colorSection:GetChildren()) do
if b:IsA("TextButton") then
b.BorderSizePixel = 0
if b.BackgroundColor3 == c.color then
b.BorderSizePixel = 2
b.BorderColor3 = Color3.fromRGB(255, 255, 255)
end
end
end
end)
if tabName == "ESP" then
espContent.Visible = true
elseif tabName == "CONFIG" then
configContent.Visible = true
elseif tabName == "INFO" then
infoContent.Visible = true
end
for name, btn in pairs(tabButtons) do
if name == tabName then
btn.BackgroundColor3 = grayBg
btn.TextColor3 = whiteColor
else
btn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
btn.TextColor3 = Color3.fromRGB(150, 150, 150)
end
end
end
function toggleMinimize()
panelMinimized = not panelMinimized
if panelMinimized then
contentFrame.Visible = false
mainFrame.Size = UDim2.new(0, 350, 0, 55)
minimizeBtn.Text = "+"
minimizeBtn.BackgroundColor3 = Color3.fromRGB(50, 200, 50)
else
contentFrame.Visible = true
mainFrame.Size = UDim2.new(0, 350, 0, 520)
minimizeBtn.Text = "−"
minimizeBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
end
end
-- ESP Functions
function createESP(targetPlayer)
local character = targetPlayer.Character
if not character or not character:FindFirstChild("HumanoidRootPart") then return end
function updateESP()
local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
for _, otherPlayer in ipairs(Players:GetPlayers()) do
if otherPlayer ~= player then
if espActive and otherPlayer.Character and otherPlayer.Character:FindFirstChild("HumanoidRootPart") then
if not espObjects[otherPlayer] then
createESP(otherPlayer)
else
local espData = espObjects[otherPlayer]
if espData and hrp and otherPlayer.Character:FindFirstChild("HumanoidRootPart") then
local distance = (hrp.Position - otherPlayer.Character.HumanoidRootPart.Position).Magnitude
if espDistanceActive and espData.distance then
espData.distance.Text = string.format("📏 %.1fm", distance)
else
espData.distance.Text = ""
end
if espData.name then
espData.name.Text = espNameActive and otherPlayer.Name or ""
end
if espData.healthBar then
espData.healthBar.Visible = espHealthActive
local humanoid = otherPlayer.Character:FindFirstChild("Humanoid")
if humanoid and espHealthActive then
local healthPercent = humanoid.Health / humanoid.MaxHealth
espData.healthBar.Size = UDim2.new(0.8 * healthPercent, 0, 0.08, 0)
if healthPercent > 0.5 then
espData.healthBar.BackgroundColor3 = greenColor
elseif healthPercent > 0.25 then
espData.healthBar.BackgroundColor3 = yellowColor
else
espData.healthBar.BackgroundColor3 = redColor
end
end
end
if espData.box then
espData.box.Visible = espBoxActive
espData.box.BackgroundColor3 = espColor
espData.box.BorderColor3 = espColor
end
end
end
else
if espObjects[otherPlayer] then
pcall(function() espObjects[otherPlayer].esp:Destroy() end)
espObjects[otherPlayer] = nil
end
end
end
end
end
function clearAllESP()
for _, espData in pairs(espObjects) do
pcall(function() espData.esp:Destroy() end)
end
espObjects = {}
end
function toggleESP()
espActive = not espActive
if espActive then
updateESP()
else
clearAllESP()
end
end
-- Eventos ESP
for name, btn in pairs(espButtons) do
btn.MouseButton1Click:Connect(function()
local value = not espButtonValues[name]
espButtonValues[name] = value
btn.BackgroundColor3 = value and greenColor or Color3.fromRGB(200, 50, 40)
btn.Text = value and "ON" or "OFF"
if name == "ESP Line" then
espLineActive = value
elseif name == "ESP None" then
-- Não faz nada
elseif name == "ESP Name" then
espNameActive = value
elseif name == "ESP Health" then
espHealthActive = value
elseif name == "ESP Distance" then
espDistanceActive = value
elseif name == "ESP Box" then
espBoxActive = value
end
if espLineActive or espNameActive or espHealthActive or espDistanceActive or espBoxActive then
if not espActive then toggleESP() end
else
if espActive then toggleESP() end
end
if espActive then updateESP() end
end)
end
-- Eventos Config
configButtons.wallhack.MouseButton1Click:Connect(function()
configValues.wallhack = not configValues.wallhack
local btn = configButtons.wallhack
btn.BackgroundColor3 = configValues.wallhack and greenColor or Color3.fromRGB(200, 50, 40)
btn.Text = configValues.wallhack and "ON" or "OFF"
if configValues.wallhack then
for _, otherPlayer in ipairs(Players:GetPlayers()) do
if otherPlayer ~= player and otherPlayer.Character then
for _, part in ipairs(otherPlayer.Character:GetChildren()) do
if part:IsA("BasePart") then
part.Transparency = 0.7
end
end
end
end
else
for _, otherPlayer in ipairs(Players:GetPlayers()) do
if otherPlayer ~= player and otherPlayer.Character then
for _, part in ipairs(otherPlayer.Character:GetChildren()) do
if part:IsA("BasePart") then
part.Transparency = 0
end
end
end
end
end
end)
local aimbotActive = false
configButtons.aimbot.MouseButton1Click:Connect(function()
configValues.aimbot = not configValues.aimbot
local btn = configButtons.aimbot
btn.BackgroundColor3 = configValues.aimbot and greenColor or Color3.fromRGB(200, 50, 40)
btn.Text = configValues.aimbot and "ON" or "OFF"
aimbotActive = configValues.aimbot
end)
configButtons.fps.MouseButton1Click:Connect(function()
configValues.fps = not configValues.fps
local btn = configButtons.fps
btn.BackgroundColor3 = configValues.fps and greenColor or Color3.fromRGB(200, 50, 40)
btn.Text = configValues.fps and "ON" or "OFF"
if configValues.fps then
pcall(function()
Lighting.GlobalShadows = false
Lighting.ShadowSoftness = 0
if Workspace.Terrain then
Workspace.Terrain.WaterWaveSize = 0
end
Lighting.Technology = Enum.Technology.Compatibility
Lighting.Fog = false
end)
else
pcall(function()
Lighting.GlobalShadows = true
Lighting.ShadowSoftness = 2
Lighting.Technology = Enum.Technology.ShadowMap
end)
end
end)
-- Aimbot
function getClosestTarget()
local closest = nil
local closestDistance = math.huge
local center = Vector2.new(mouse.X, mouse.Y)
for _, otherPlayer in ipairs(Players:GetPlayers()) do
if otherPlayer ~= player and otherPlayer.Character and otherPlayer.Character:FindFirstChild("Head") then
local head = otherPlayer.Character.Head
local success, headPos = pcall(function() return camera:WorldToScreenPoint(head.Position) end)
if success and headPos and headPos.Z > 0 then
local screenPos = Vector2.new(headPos.X, headPos.Y)
local distance = (screenPos - center).Magnitude
if distance < 90 and distance < closestDistance then
closestDistance = distance
closest = otherPlayer.Character
end
end
end
end
return closest
end
function aimAtHead(target)
if target and target:FindFirstChild("Head") then
local headPos = target.Head.Position
local shake = Vector3.new(
math.random(-3, 3) * 0.3,
math.random(-2, 5) * 0.3,
math.random(-3, 3) * 0.3
)
local finalPos = headPos + shake
local newCFrame = CFrame.new(camera.CFrame.Position, finalPos)
camera.CFrame = camera.CFrame:Lerp(newCFrame, 0.25)
end
end
function togglePanel()
panelVisible = not panelVisible
mainFrame.Visible = panelVisible
hiddenText.Visible = not panelVisible
if not panelVisible then
task.wait(2)
hiddenText.Visible = false
end
end
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.V then
togglePanel()
end
end)
-- Sistema de arrastar
local dragging = false
local dragStart = nil
local startPos = nil
mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 and input.Position.Y < 50 then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
mainFrame.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
-- Loop principal
RunService.RenderStepped:Connect(function()
if aimbotActive then
local target = getClosestTarget()
if target then
aimAtHead(target)
end
end
if espActive then
updateESP()
end
end)
-- Efeito inicial
mainFrame.BackgroundTransparency = 1
for i = 0, 1, 0.05 do
task.wait(0.01)
mainFrame.BackgroundTransparency = 0.1 - (0.1 * i)
end
print("🔥 ROMALHO RAGE MENU v8.0 CARREGADO!")
print("📌 Arraste o painel pelo cabeçalho")
print("📌 Botão [-] para minimizar")
print("📌 Tecla V para esconder")
print("✅ Compatível com TODOS os jogos de tiro!")
--[[
WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
-- ============================================
-- ROMALHO RAGE MENU v8.0 - UNIVERSAL
-- Funciona em TODOS os jogos de tiro do Roblox
-- Arraste para mover | Botão [-] para minimizar
-- Pressione V = esconder/mostrar painel
-- ============================================
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")
local Workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local camera = workspace.CurrentCamera
-- ========== VARIAVEIS ==========
local espActive = false
local espLineActive = false
local espNameActive = false
local espHealthActive = false
local espDistanceActive = false
local espBoxActive = false
local panelVisible = true
local panelMinimized = false
local espObjects = {}
local dragging = false
local dragInput = nil
local dragStart = nil
local startPos = nil
-- Cores do ESP (configurável)
local espColor = Color3.fromRGB(255, 200, 50)
-- ========== CORES ==========
local darkBg = Color3.fromRGB(15, 15, 25)
local grayBg = Color3.fromRGB(30, 30, 40)
local redColor = Color3.fromRGB(255, 70, 50)
local yellowColor = Color3.fromRGB(255, 200, 50)
local greenColor = Color3.fromRGB(50, 200, 50)
local whiteColor = Color3.fromRGB(255, 255, 255)
-- ========== CRIANDO UI ==========
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "RomalhoRageMenu"
screenGui.Parent = player:WaitForChild("PlayerGui")
screenGui.ResetOnSpawn = false
-- ========== PAINEL PRINCIPAL ==========
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 350, 0, 520)
mainFrame.Position = UDim2.new(0.5, -175, 0.65, 0)
mainFrame.BackgroundColor3 = darkBg
mainFrame.BackgroundTransparency = 0.1
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui
mainFrame.Draggable = true
local mainCorner = Instance.new("UICorner")
mainCorner.CornerRadius = UDim.new(0, 12)
mainCorner.Parent = mainFrame
-- Borda vermelha
local border = Instance.new("Frame")
border.Size = UDim2.new(1, 0, 0, 3)
border.Position = UDim2.new(0, 0, 0, 0)
border.BackgroundColor3 = redColor
border.BorderSizePixel = 0
border.Parent = mainFrame
-- ========== CABEÇALHO ==========
local headerFrame = Instance.new("Frame")
headerFrame.Size = UDim2.new(1, 0, 0, 50)
headerFrame.Position = UDim2.new(0, 0, 0, 0)
headerFrame.BackgroundTransparency = 1
headerFrame.Parent = mainFrame
local title = Instance.new("TextLabel")
title.Size = UDim2.new(0.7, 0, 1, 0)
title.Position = UDim2.new(0.05, 0, 0, 0)
title.BackgroundTransparency = 1
title.Text = "🔥 RAGE MENU 🔥"
title.TextColor3 = redColor
title.Font = Enum.Font.GothamBold
title.TextSize = 18
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = headerFrame
local subtitle = Instance.new("TextLabel")
subtitle.Size = UDim2.new(0.7, 0, 0.4, 0)
subtitle.Position = UDim2.new(0.05, 0, 0.55, 0)
subtitle.BackgroundTransparency = 1
subtitle.Text = "ROMALHO SYSTEM | Arraste para mover"
subtitle.TextColor3 = Color3.fromRGB(150, 150, 150)
subtitle.Font = Enum.Font.Gotham
subtitle.TextSize = 9
subtitle.TextXAlignment = Enum.TextXAlignment.Left
subtitle.Parent = headerFrame
-- Botão minimizar
local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Size = UDim2.new(0, 30, 0, 30)
minimizeBtn.Position = UDim2.new(0.88, 0, 0.1, 0)
minimizeBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
minimizeBtn.Text = "−"
minimizeBtn.TextColor3 = whiteColor
minimizeBtn.Font = Enum.Font.GothamBold
minimizeBtn.TextSize = 20
minimizeBtn.BorderSizePixel = 0
minimizeBtn.Parent = headerFrame
local minCorner = Instance.new("UICorner")
minCorner.CornerRadius = UDim.new(0, 6)
minCorner.Parent = minimizeBtn
-- Botão fechar
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 30, 0, 30)
closeBtn.Position = UDim2.new(0.95, 0, 0.1, 0)
closeBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
closeBtn.Text = "✕"
closeBtn.TextColor3 = whiteColor
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 16
closeBtn.BorderSizePixel = 0
closeBtn.Parent = headerFrame
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeBtn
-- ========== CONTEÚDO PRINCIPAL ==========
local contentFrame = Instance.new("Frame")
contentFrame.Size = UDim2.new(1, 0, 1, -50)
contentFrame.Position = UDim2.new(0, 0, 0, 50)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = mainFrame
-- ========== MENU PRINCIPAL (TABS) ==========
local tabs = {"ESP", "CONFIG", "INFO"}
local currentTab = "ESP"
local tabFrame = Instance.new("Frame")
tabFrame.Size = UDim2.new(0.95, 0, 0, 35)
tabFrame.Position = UDim2.new(0.025, 0, 0, 0)
tabFrame.BackgroundTransparency = 1
tabFrame.Parent = contentFrame
local tabButtons = {}
for i, tabName in ipairs(tabs) do
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0.3, 0, 1, 0)
btn.Position = UDim2.new((i-1) * 0.34, 0, 0, 0)
btn.BackgroundColor3 = (i == 1) and grayBg or Color3.fromRGB(20, 20, 30)
btn.Text = tabName
btn.TextColor3 = (i == 1) and whiteColor or Color3.fromRGB(150, 150, 150)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 13
btn.BorderSizePixel = 0
btn.Parent = tabFrame
end
-- ========== CONTEÚDO DA TAB ESP ==========
local espContent = Instance.new("Frame")
espContent.Size = UDim2.new(0.95, 0, 0.80, 0)
espContent.Position = UDim2.new(0.025, 0, 0.08, 0)
espContent.BackgroundTransparency = 1
espContent.Parent = contentFrame
-- Botões ESP
local espOptions = {
{name = "ESP Line", desc = "Linha até o inimigo"},
{name = "ESP None", desc = "Sem ESP"},
{name = "ESP Name", desc = "Mostra o nome"},
{name = "ESP Health", desc = "Barra de vida"},
{name = "ESP Distance", desc = "Distância"},
{name = "ESP Box", desc = "Caixa ao redor"},
}
local espButtons = {}
local espButtonValues = {}
for i, opt in ipairs(espOptions) do
local row = Instance.new("Frame")
row.Size = UDim2.new(1, 0, 0, 38)
row.Position = UDim2.new(0, 0, (i-1) * 0.15, 0)
row.BackgroundColor3 = (i % 2 == 0) and Color3.fromRGB(20, 20, 30) or Color3.fromRGB(25, 25, 35)
row.BackgroundTransparency = 0.5
row.BorderSizePixel = 0
row.Parent = espContent
end
-- Seção de cores
local colorSection = Instance.new("Frame")
colorSection.Size = UDim2.new(1, 0, 0, 45)
colorSection.Position = UDim2.new(0, 0, 0.92, 0)
colorSection.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
colorSection.BackgroundTransparency = 0.5
colorSection.BorderSizePixel = 0
colorSection.Parent = espContent
local colorCorner = Instance.new("UICorner")
colorCorner.CornerRadius = UDim.new(0, 6)
colorCorner.Parent = colorSection
local colorLabel = Instance.new("TextLabel")
colorLabel.Size = UDim2.new(0.35, 0, 1, 0)
colorLabel.Position = UDim2.new(0.05, 0, 0, 0)
colorLabel.BackgroundTransparency = 1
colorLabel.Text = "COR DAS ESP"
colorLabel.TextColor3 = whiteColor
colorLabel.Font = Enum.Font.GothamBold
colorLabel.TextSize = 12
colorLabel.TextXAlignment = Enum.TextXAlignment.Left
colorLabel.Parent = colorSection
local colors = {
{name = "🟡", color = Color3.fromRGB(255, 200, 50)},
{name = "🔴", color = Color3.fromRGB(255, 50, 50)},
{name = "🟢", color = Color3.fromRGB(50, 255, 50)},
{name = "🔵", color = Color3.fromRGB(50, 150, 255)},
{name = "🟣", color = Color3.fromRGB(200, 50, 255)},
}
for i, c in ipairs(colors) do
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0.08, 0, 0.7, 0)
btn.Position = UDim2.new(0.4 + (i-1) * 0.11, 0, 0.15, 0)
btn.BackgroundColor3 = c.color
btn.Text = ""
btn.BorderSizePixel = 0
btn.Parent = colorSection
end
-- ========== CONTEÚDO DA TAB CONFIG ==========
local configContent = Instance.new("Frame")
configContent.Size = UDim2.new(0.95, 0, 0.80, 0)
configContent.Position = UDim2.new(0.025, 0, 0.08, 0)
configContent.BackgroundTransparency = 1
configContent.Visible = false
configContent.Parent = contentFrame
local configButtons = {}
local configValues = {
wallhack = false,
aimbot = false,
fps = false
}
function createConfigRow(title, desc, id, yPos)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, 0, 0, 40)
row.Position = UDim2.new(0, 0, yPos, 0)
row.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
row.BackgroundTransparency = 0.5
row.BorderSizePixel = 0
row.Parent = configContent
end
createConfigRow("👁️ Wallhack", "Ver através das paredes", "wallhack", 0.02)
createConfigRow("🎯 Aimbot 50%", "Mira suave e humana", "aimbot", 0.18)
createConfigRow("⚡ Boost FPS", "Aumenta desempenho", "fps", 0.34)
-- ========== CONTEÚDO DA TAB INFO ==========
local infoContent = Instance.new("Frame")
infoContent.Size = UDim2.new(0.95, 0, 0.80, 0)
infoContent.Position = UDim2.new(0.025, 0, 0.08, 0)
infoContent.BackgroundTransparency = 1
infoContent.Visible = false
infoContent.Parent = contentFrame
local infoText = Instance.new("TextLabel")
infoText.Size = UDim2.new(1, 0, 1, 0)
infoText.BackgroundTransparency = 1
infoText.Text = "🔥 ROMALHO RAGE MENU v8.0\n\n👑 Criado por ROMALHO\n\n🛡️ Sistema Anti-Ban Ativo\n\n📌 Arraste para mover o painel\n\n📌 Botão [-] para minimizar\n\n📌 Tecla V = Esconder/Mostrar\n\n⚡ Compatível com TODOS os jogos!"
infoText.TextColor3 = whiteColor
infoText.Font = Enum.Font.Gotham
infoText.TextSize = 13
infoText.TextXAlignment = Enum.TextXAlignment.Center
infoText.TextYAlignment = Enum.TextYAlignment.Center
infoText.Parent = infoContent
-- ========== FUNÇÕES ==========
function switchTab(tabName)
currentTab = tabName
espContent.Visible = false
configContent.Visible = false
infoContent.Visible = false
end
function toggleMinimize()
panelMinimized = not panelMinimized
if panelMinimized then
contentFrame.Visible = false
mainFrame.Size = UDim2.new(0, 350, 0, 55)
minimizeBtn.Text = "+"
minimizeBtn.BackgroundColor3 = Color3.fromRGB(50, 200, 50)
else
contentFrame.Visible = true
mainFrame.Size = UDim2.new(0, 350, 0, 520)
minimizeBtn.Text = "−"
minimizeBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
end
end
-- ESP Functions
function createESP(targetPlayer)
local character = targetPlayer.Character
if not character or not character:FindFirstChild("HumanoidRootPart") then return end
end
function updateESP()
local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
end
function clearAllESP()
for _, espData in pairs(espObjects) do
pcall(function() espData.esp:Destroy() end)
end
espObjects = {}
end
function toggleESP()
espActive = not espActive
if espActive then
updateESP()
else
clearAllESP()
end
end
-- Eventos ESP
for name, btn in pairs(espButtons) do
btn.MouseButton1Click:Connect(function()
local value = not espButtonValues[name]
espButtonValues[name] = value
btn.BackgroundColor3 = value and greenColor or Color3.fromRGB(200, 50, 40)
btn.Text = value and "ON" or "OFF"
end
-- Eventos Config
configButtons.wallhack.MouseButton1Click:Connect(function()
configValues.wallhack = not configValues.wallhack
local btn = configButtons.wallhack
btn.BackgroundColor3 = configValues.wallhack and greenColor or Color3.fromRGB(200, 50, 40)
btn.Text = configValues.wallhack and "ON" or "OFF"
end)
local aimbotActive = false
configButtons.aimbot.MouseButton1Click:Connect(function()
configValues.aimbot = not configValues.aimbot
local btn = configButtons.aimbot
btn.BackgroundColor3 = configValues.aimbot and greenColor or Color3.fromRGB(200, 50, 40)
btn.Text = configValues.aimbot and "ON" or "OFF"
aimbotActive = configValues.aimbot
end)
configButtons.fps.MouseButton1Click:Connect(function()
configValues.fps = not configValues.fps
local btn = configButtons.fps
btn.BackgroundColor3 = configValues.fps and greenColor or Color3.fromRGB(200, 50, 40)
btn.Text = configValues.fps and "ON" or "OFF"
end)
-- Aimbot
function getClosestTarget()
local closest = nil
local closestDistance = math.huge
local center = Vector2.new(mouse.X, mouse.Y)
end
function aimAtHead(target)
if target and target:FindFirstChild("Head") then
local headPos = target.Head.Position
local shake = Vector3.new(
math.random(-3, 3) * 0.3,
math.random(-2, 5) * 0.3,
math.random(-3, 3) * 0.3
)
local finalPos = headPos + shake
local newCFrame = CFrame.new(camera.CFrame.Position, finalPos)
camera.CFrame = camera.CFrame:Lerp(newCFrame, 0.25)
end
end
-- Painel oculto
local hiddenText = Instance.new("TextLabel")
hiddenText.Size = UDim2.new(0, 320, 0, 50)
hiddenText.Position = UDim2.new(0.5, -160, 0.92, 0)
hiddenText.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
hiddenText.BackgroundTransparency = 0.3
hiddenText.Text = "🔒 PAINEL OCULTO [Pressione V] 🔒\n👑 ROMALHO RAGE MENU v8.0 👑"
hiddenText.TextColor3 = yellowColor
hiddenText.Font = Enum.Font.GothamBold
hiddenText.TextSize = 11
hiddenText.Visible = false
hiddenText.Parent = screenGui
local hiddenCorner = Instance.new("UICorner")
hiddenCorner.CornerRadius = UDim.new(0, 15)
hiddenCorner.Parent = hiddenText
-- Eventos
minimizeBtn.MouseButton1Click:Connect(toggleMinimize)
closeBtn.MouseButton1Click:Connect(function()
mainFrame.Visible = false
hiddenText.Visible = true
task.wait(2)
hiddenText.Visible = false
end)
function togglePanel()
panelVisible = not panelVisible
mainFrame.Visible = panelVisible
hiddenText.Visible = not panelVisible
if not panelVisible then
task.wait(2)
hiddenText.Visible = false
end
end
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.V then
togglePanel()
end
end)
-- Sistema de arrastar
local dragging = false
local dragStart = nil
local startPos = nil
mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 and input.Position.Y < 50 then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
end)
mainFrame.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
-- Loop principal
RunService.RenderStepped:Connect(function()
if aimbotActive then
local target = getClosestTarget()
if target then
aimAtHead(target)
end
end
end)
-- Efeito inicial
mainFrame.BackgroundTransparency = 1
for i = 0, 1, 0.05 do
task.wait(0.01)
mainFrame.BackgroundTransparency = 0.1 - (0.1 * i)
end
print("🔥 ROMALHO RAGE MENU v8.0 CARREGADO!")
print("📌 Arraste o painel pelo cabeçalho")
print("📌 Botão [-] para minimizar")
print("📌 Tecla V para esconder")
print("✅ Compatível com TODOS os jogos de tiro!")