Rael hub
Key Required

Rael hub

The Classic SoccerShadowhuntersShadowhunters 1.6K views 27.9K executesUpdated Aug 30, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•160 lines (4093 chars)
--[[ 
WARNING: script de terceiros / use por sua conta.
]]

local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

local player = Players.LocalPlayer
local camera = workspace.CurrentCamera

-- CONFIG
local BALL_NAME = "Ball"

local TOGGLE_UI_KEY = Enum.KeyCode.RightShift -- abre/fecha a janelinha
local LOCK_CAMERA_KEY = Enum.KeyCode.F       -- seguir bola ON/OFF

-- IMAGEM DO BOTÃO (coloque o seu ImageId aqui)
local OPEN_ICON = "rbxassetid://SEU_ID_AQUI"

-- estado
local uiOpen = true
local followBall = false
local followConn = nil

-- pega a bola (espera aparecer)
local function getBall()
	local ball = workspace:FindFirstChild(BALL_NAME)
	if ball then return ball end
	return workspace:WaitForChild(BALL_NAME)
end

-- UI
local gui = Instance.new("ScreenGui")
gui.Name = "AssistGui"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

-- BOTÃO DE IMAGEM (fica sempre aparecendo)
local openBtn = Instance.new("ImageButton")
openBtn.Name = "OpenCloseButton"
openBtn.Size = UDim2.new(0, 80, 0, 80)
openBtn.Position = UDim2.new(0, 20, 0, 20)
openBtn.BackgroundTransparency = 1
openBtn.Image = OPEN_ICON
openBtn.Parent = gui

local openCorner = Instance.new("UICorner")
openCorner.CornerRadius = UDim.new(1, 0)
openCorner.Parent = openBtn

-- JANELA (frame) que abre/fecha
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 260, 0, 120)
frame.Position = UDim2.new(0, 20, 0, 120)
frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
frame.BorderSizePixel = 0
frame.Visible = uiOpen
frame.Parent = gui

local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 10)
frameCorner.Parent = frame

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -20, 0, 30)
title.Position = UDim2.new(0, 10, 0, 0)
title.BackgroundTransparency = 1
title.Text = "Assistência (Treino)"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.TextScaled = true
title.Parent = frame

local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -20, 0, 40)
btn.Position = UDim2.new(0, 10, 0, 45)
btn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
btn.BorderSizePixel = 0
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.TextScaled = true
btn.Parent = frame

local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(0, 8)
btnCorner.Parent = btn

local hint = Instance.new("TextLabel")
hint.Size = UDim2.new(1, -20, 0, 25)
hint.Position = UDim2.new(0, 10, 1, -28)
hint.BackgroundTransparency = 1
hint.Text = "RightShift: UI | F: seguir bola"
hint.TextColor3 = Color3.fromRGB(200, 200, 200)
hint.TextScaled = true
hint.Parent = frame

local function setButtonText()
	btn.Text = followBall and "Seguir bola: ON" or "Seguir bola: OFF"
	btn.BackgroundColor3 = followBall and Color3.fromRGB(46, 120, 66) or Color3.fromRGB(60, 60, 60)
end

local function stopFollowing()
	followBall = false
	if followConn then
		followConn:Disconnect()
		followConn = nil
	end
	camera.CameraType = Enum.CameraType.Custom
	setButtonText()
end

local function startFollowing()
	local ball = getBall()
	followBall = true

	camera.CameraType = Enum.CameraType.Scriptable

	if followConn then followConn:Disconnect() end
	followConn = RunService.RenderStepped:Connect(function()
		if not ball or not ball.Parent then
			ball = workspace:FindFirstChild(BALL_NAME)
			if not ball then return end
		end

		local pos = ball.Position
		local camPos = pos + Vector3.new(0, 12, 18)
		camera.CFrame = CFrame.new(camPos, pos)
	end)

	setButtonText()
end

local function toggleFollow()
	if followBall then
		stopFollowing()
	else
		startFollowing()
	end
end

local function toggleUI()
	uiOpen = not uiOpen
	frame.Visible = uiOpen
end

-- clicks
btn.MouseButton1Click:Connect(toggleFollow)
openBtn.MouseButton1Click:Connect(toggleUI)

setButtonText()

-- teclas
UIS.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then return end

	if input.KeyCode == TOGGLE_UI_KEY then
		toggleUI()
	elseif input.KeyCode == LOCK_CAMERA_KEY then
		toggleFollow()
	end
end)

Features & Information

Script de tcs

Community Comments (0)

No comments yet for this script.

More Scripts for The Classic Soccer