🔓 Keyless
Farming in fight in a school is fun until you realize how long it actually takes to progress manually. This script handles the heavy lifting with features like Teleport and Rejoin Server, letting you focus on the parts of the game you actually enjoy. It runs smoothly with no key needed required.
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")
local TeleportService = game:GetService("TeleportService")
local TweenService = game:GetService("TweenService")
local LocalPlayer = Players.LocalPlayer
local Camera = Workspace.CurrentCamera
-- Clean up previous instances completely
if CoreGui:FindFirstChild("SchoolFightGUI") then
CoreGui.SchoolFightGUI:Destroy()
end
if CoreGui:FindFirstChild("SchoolFightItemsGUI") then
CoreGui.SchoolFightItemsGUI:Destroy()
end
-- ScreenGui Setup
local parentTarget = CoreGui
pcall(function()
local testGui = Instance.new("ScreenGui")
testGui.Parent = CoreGui
testGui:Destroy()
end)
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SchoolFightGUI"
ScreenGui.IgnoreGuiInset = true
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = parentTarget
-- ==========================================
-- LOADING SCREEN SYSTEM
-- ==========================================
local LoadFrame = Instance.new("Frame")
LoadFrame.Size = UDim2.new(1, 0, 1, 0)
LoadFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 12)
LoadFrame.ZIndex = 2000
LoadFrame.Parent = ScreenGui
local Spinner = Instance.new("TextLabel")
Spinner.Size = UDim2.new(0, 100, 0, 100)
Spinner.Position = UDim2.new(0.5, -50, 0.4, -50)
Spinner.BackgroundTransparency = 1
Spinner.Text = "🌶️"
Spinner.TextSize = 70
Spinner.ZIndex = 2001
Spinner.Parent = LoadFrame
local LoadText = Instance.new("TextLabel")
LoadText.Size = UDim2.new(0, 300, 0, 40)
LoadText.Position = UDim2.new(0.5, -150, 0.4, 50)
LoadText.BackgroundTransparency = 1
LoadText.TextColor3 = Color3.fromRGB(255, 70, 70)
LoadText.Text = "S P I C Y H U B"
LoadText.Font = Enum.Font.GothamBold
LoadText.TextSize = 22
LoadText.ZIndex = 2001
LoadText.Parent = LoadFrame
local SubText = Instance.new("TextLabel")
SubText.Size = UDim2.new(0, 300, 0, 20)
SubText.Position = UDim2.new(0.5, -150, 0.4, 85)
SubText.BackgroundTransparency = 1
SubText.TextColor3 = Color3.fromRGB(150, 150, 150)
SubText.Text = "LOADING FIGHT IN A SCHOOL..."
SubText.Font = Enum.Font.GothamMedium
SubText.TextSize = 12
SubText.ZIndex = 2001
SubText.Parent = LoadFrame
-- Floating Pepper Toggle Button (Custom Modern Style)
local ToggleButton = Instance.new("TextButton")
ToggleButton.Size = UDim2.new(0, 56, 0, 56)
ToggleButton.Position = UDim2.new(0, 20, 0, 140)
ToggleButton.BackgroundColor3 = Color3.fromRGB(18, 18, 22)
ToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
ToggleButton.Text = "🌶️"
ToggleButton.TextSize = 28
ToggleButton.Font = Enum.Font.SourceSansBold
ToggleButton.ZIndex = 999
ToggleButton.Active = true
ToggleButton.Draggable = true
ToggleButton.Visible = false
ToggleButton.Parent = ScreenGui
local ToggleCorner = Instance.new("UICorner")
ToggleCorner.CornerRadius = UDim.new(1, 0)
ToggleCorner.Parent = ToggleButton
local ToggleStroke = Instance.new("UIStroke")
ToggleStroke.Color = Color3.fromRGB(255, 70, 70)
ToggleStroke.Thickness = 2.5
ToggleStroke.Parent = ToggleButton
-- Main Window Frame (Ultra Modern Glassmorphic UI Design)
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 440, 0, 340)
MainFrame.Position = UDim2.new(0.5, -220, 0.5, -170)
MainFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 16)
MainFrame.BackgroundTransparency = 0.05
MainFrame.Visible = false
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.ZIndex = 100
MainFrame.Parent = ScreenGui
local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 12)
MainCorner.Parent = MainFrame
local MainStroke = Instance.new("UIStroke")
MainStroke.Color = Color3.fromRGB(50, 50, 65)
MainStroke.Thickness = 1.5
MainStroke.Parent = MainFrame
-- Title Bar
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 42)
Title.BackgroundColor3 = Color3.fromRGB(18, 18, 24)
Title.TextColor3 = Color3.fromRGB(245, 245, 250)
Title.Text = " 🌶️ Spicy Hub | Fight in a School"
Title.TextSize = 14
Title.Font = Enum.Font.GothamBold
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.ZIndex = 101
Title.Parent = MainFrame
local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 12)
TitleCorner.Parent = Title
-- Close / Reopen Button (X)
local CloseButton = Instance.new("TextButton")
CloseButton.Size = UDim2.new(0, 30, 0, 30)
CloseButton.Position = UDim2.new(1, -38, 0, 6)
CloseButton.BackgroundColor3 = Color3.fromRGB(210, 45, 45)
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.Text = "✕"
CloseButton.TextSize = 12
CloseButton.Font = Enum.Font.GothamBold
CloseButton.ZIndex = 102
CloseButton.Parent = MainFrame
local CloseCorner = Instance.new("UICorner")
CloseCorner.CornerRadius = UDim.new(0, 8)
CloseCorner.Parent = CloseButton
-- Resize Handle (Bottom-Right Corner Dragging)
local ResizeButton = Instance.new("TextButton")
ResizeButton.Size = UDim2.new(0, 22, 0, 22)
ResizeButton.Position = UDim2.new(1, -22, 1, -22)
ResizeButton.BackgroundTransparency = 1
ResizeButton.Text = "◢"
ResizeButton.TextColor3 = Color3.fromRGB(130, 130, 150)
ResizeButton.TextSize = 12
ResizeButton.Font = Enum.Font.GothamBold
ResizeButton.ZIndex = 150
ResizeButton.Parent = MainFrame
local resizing = false
local dragStartPos = Vector2.new(0, 0)
local startSize = UDim2.new(0, 440, 0, 340)
ResizeButton.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
resizing = true
dragStartPos = Vector2.new(input.Position.X, input.Position.Y)
startSize = MainFrame.AbsoluteSize
end
end)
UserInputService.InputChanged:Connect(function(input)
if resizing and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local deltaX = input.Position.X - dragStartPos.X
local deltaY = input.Position.Y - dragStartPos.Y
local newWidth = math.clamp(startSize.X + deltaX, 340, 720)
local newHeight = math.clamp(startSize.Y + deltaY, 240, 580)
MainFrame.Size = UDim2.new(0, newWidth, 0, newHeight)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
resizing = false
end
end)
-- Scrolling Container for Options
local ScrollingFrame = Instance.new("ScrollingFrame")
ScrollingFrame.Size = UDim2.new(1, -12, 1, -52)
ScrollingFrame.Position = UDim2.new(0, 6, 0, 46)
ScrollingFrame.BackgroundTransparency = 1
ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 1500)
ScrollingFrame.ScrollBarThickness = 3
ScrollingFrame.ZIndex = 101
ScrollingFrame.Parent = MainFrame
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 8)
UIListLayout.Parent = ScrollingFrame
-- Helper Function to Create Toggle Buttons
local function createButton(name, text, callback)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, 0, 0, 38)
btn.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
btn.TextColor3 = Color3.fromRGB(225, 225, 235)
btn.Text = text .. ": OFF"
btn.TextSize = 13
btn.Font = Enum.Font.GothamMedium
btn.ZIndex = 102
btn.Parent = ScrollingFrame
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = btn
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(40, 40, 55)
stroke.Thickness = 1
stroke.Parent = btn
local active = false
btn.MouseButton1Click:Connect(function()
active = not active
if active then
btn.BackgroundColor3 = Color3.fromRGB(35, 145, 75)
stroke.Color = Color3.fromRGB(60, 215, 110)
btn.Text = text .. ": ON"
else
btn.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
stroke.Color = Color3.fromRGB(40, 40, 55)
btn.Text = text .. ": OFF"
end
callback(active)
end)
end
-- Helper Function to Create Action Buttons
local function createActionButton(text, callback)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, 0, 0, 38)
btn.BackgroundColor3 = Color3.fromRGB(65, 45, 140)
btn.TextColor3 = Color3.fromRGB(245, 245, 255)
btn.Text = text
btn.TextSize = 13
btn.Font = Enum.Font.GothamBold
btn.ZIndex = 102
btn.Parent = ScrollingFrame
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = btn
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(95, 70, 195)
stroke.Thickness = 1
stroke.Parent = btn
btn.MouseButton1Click:Connect(function()
callback()
end)
end
-- Helper Function to Create Text Inputs
local function createInputRow(name, defaultVal, callback)
local container = Instance.new("Frame")
container.Size = UDim2.new(1, 0, 0, 44)
container.BackgroundColor3 = Color3.fromRGB(18, 18, 24)
container.ZIndex = 102
container.Parent = ScrollingFrame
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = container
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(38, 38, 50)
stroke.Thickness = 1
stroke.Parent = container
local label = Instance.new("TextLabel")
label.Size = UDim2.new(0.5, 0, 1, 0)
label.Position = UDim2.new(0, 12, 0, 0)
label.BackgroundTransparency = 1
label.TextColor3 = Color3.fromRGB(215, 215, 225)
label.Text = name
label.TextSize = 13
label.Font = Enum.Font.Gotham
label.TextXAlignment = Enum.TextXAlignment.Left
label.ZIndex = 103
label.Parent = container
local textBox = Instance.new("TextBox")
textBox.Size = UDim2.new(0, 120, 0, 30)
textBox.Position = UDim2.new(1, -128, 0.5, -15)
textBox.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
textBox.TextColor3 = Color3.fromRGB(255, 255, 255)
textBox.Text = tostring(defaultVal)
textBox.TextSize = 13
textBox.Font = Enum.Font.GothamBold
textBox.ZIndex = 103
textBox.Parent = container
local tboxCorner = Instance.new("UICorner")
tboxCorner.CornerRadius = UDim.new(0, 6)
tboxCorner.Parent = textBox
textBox.FocusLost:Connect(function()
callback(textBox.Text)
end)
end
-- Feature States & Variables
local espActive = false
local targetLockActive = false
local flyActive = false
local invisActive = false
local godModeActive = false
local autoKillActive = false
local customSpeed = 16
local speedActive = false
local customJump = 50
local jumpActive = false
local flySpeedVal = 50
local toolNameToGive = "Bat"
local targetPlayerName = ""
-- Safe Glitch-Free Teleport Function (Flat horizontal alignment above target)
local function safeTeleportTo(targetCFrame)
local character = LocalPlayer.Character
if not character then return end
local rootPart = character:FindFirstChild("HumanoidRootPart")
local humanoid = character:FindFirstChild("Humanoid")
if not rootPart or not humanoid then return end
rootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
rootPart.CFrame = targetCFrame
rootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
task.spawn(function()
pcall(function()
for i = 1, 3 do
if rootPart then
rootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
end
task.wait(0.05)
end
end)
end)
end
-- Open/Close Handlers
local function toggleUI()
MainFrame.Visible = not MainFrame.Visible
end
ToggleButton.MouseButton1Click:Connect(toggleUI)
CloseButton.MouseButton1Click:Connect(toggleUI)
-- UI Controls Construction
createButton("ESPToggle", "Player ESP", function(state)
espActive = state
end)
createButton("TargetLockToggle", "Target Lock", function(state)
targetLockActive = state
end)
createButton("FlyToggle", "Mobile Fly Mode", function(state)
flyActive = state
end)
createInputRow("Fly Speed", "50", function(val)
local num = tonumber(val)
if num then flySpeedVal = num end
end)
createButton("InvisToggle", "Invisibility", function(state)
invisActive = state
end)
createButton("GodModeToggle", "Undying God Mode", function(state)
godModeActive = state
end)
createButton("AutoKillToggle", "Auto Kill Farm", function(state)
autoKillActive = state
end)
createInputRow("Target Player", "Username", function(val)
targetPlayerName = val
end)
createActionButton("Teleport to Player", function()
pcall(function()
for _, p in ipairs(Players:GetPlayers()) do
if p ~= LocalPlayer and (p.Name:lower():sub(1, #targetPlayerName) == targetPlayerName:lower() or p.DisplayName:lower():sub(1, #targetPlayerName) == targetPlayerName:lower()) then
if p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
-- Positioned flat right above them (feet pointing down normally, looking forward/down at them)
safeTeleportTo(CFrame.new(p.Character.HumanoidRootPart.Position + Vector3.new(0, 3.5, 0), p.Character.HumanoidRootPart.Position))
break
end
end
end
end)
end)
createActionButton("Server Hop", function()
pcall(function()
local servers = {}
local req = game:HttpGet("https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100")
local data = game:GetService("HttpService"):JSONDecode(req)
if data and data.data then
for _, s in ipairs(data.data) do
if type(s) == "table" and s.id and s.playing < s.maxPlayers then
table.insert(servers, s.id)
end
end
end
if #servers > 0 then
TeleportService:TeleportToPlaceInstance(game.PlaceId, servers[math.random(1, #servers)], LocalPlayer)
else
TeleportService:Teleport(game.PlaceId, LocalPlayer)
end
end)
end)
createActionButton("Rejoin Server", function()
pcall(function()
TeleportService:Teleport(game.PlaceId, LocalPlayer)
end)
end)
createButton("SpeedToggle", "Custom WalkSpeed", function(state)
speedActive = state
end)
createInputRow("Set Speed", "16", function(val)
local num = tonumber(val)
if num then customSpeed = num end
end)
createButton("JumpToggle", "Custom JumpPower", function(state)
jumpActive = state
end)
createInputRow("Set Jump", "50", function(val)
local num = tonumber(val)
if num then customJump = num end
end)
createInputRow("Tool Name", "Bat", function(val)
toolNameToGive = val
end)
-- Functional Tool Giver
local function giveFunctionalTool(name)
pcall(function()
local backpack = LocalPlayer:FindFirstChildOfClass("Backpack")
if not backpack then return end
local originalTool = nil
for _, obj in ipairs(game:GetDescendants()) do
if obj:IsA("Tool") and obj.Name:lower() == name:lower() then
originalTool = obj
break
end
end
if originalTool then
local clonedTool = originalTool:Clone()
for _, desc in ipairs(clonedTool:GetDescendants()) do
if desc:IsA("LocalScript") then
desc.Enabled = true
end
end
clonedTool.Parent = backpack
else
local newTool = Instance.new("Tool")
newTool.Name = name
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Size = Vector3.new(1, 1, 3)
handle.Parent = newTool
newTool.Parent = backpack
end
end)
end
createActionButton("Give Yourself Tool", function()
giveFunctionalTool(toolNameToGive)
end)
-- Item Spawner Catalog GUI
local function openItemSpawnerScreen()
pcall(function()
if parentTarget:FindFirstChild("SchoolFightItemsGUI") then
parentTarget.SchoolFightItemsGUI:Destroy()
end
local itemsGui = Instance.new("ScreenGui")
itemsGui.Name = "SchoolFightItemsGUI"
itemsGui.IgnoreGuiInset = true
itemsGui.ResetOnSpawn = false
itemsGui.Parent = parentTarget
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 360, 0, 340)
frame.Position = UDim2.new(0.5, -180, 0.5, -170)
frame.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
frame.Active = true
frame.Draggable = true
frame.ZIndex = 200
frame.Parent = itemsGui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = frame
local titleLbl = Instance.new("TextLabel")
titleLbl.Size = UDim2.new(1, 0, 0, 38)
titleLbl.BackgroundColor3 = Color3.fromRGB(22, 22, 28)
titleLbl.TextColor3 = Color3.fromRGB(245, 245, 250)
titleLbl.Text = " 🌶️ Item Spawner Catalog"
titleLbl.TextSize = 14
titleLbl.Font = Enum.Font.GothamBold
titleLbl.TextXAlignment = Enum.TextXAlignment.Left
titleLbl.ZIndex = 201
titleLbl.Parent = frame
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 10)
titleCorner.Parent = titleLbl
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 28, 0, 28)
closeBtn.Position = UDim2.new(1, -34, 0, 5)
closeBtn.BackgroundColor3 = Color3.fromRGB(210, 45, 45)
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.Text = "✕"
closeBtn.Font = Enum.Font.GothamBold
closeBtn.ZIndex = 202
closeBtn.Parent = frame
local closeBtnCorner = Instance.new("UICorner")
closeBtnCorner.CornerRadius = UDim.new(0, 6)
closeBtnCorner.Parent = closeBtn
closeBtn.MouseButton1Click:Connect(function()
itemsGui:Destroy()
end)
local scroll = Instance.new("ScrollingFrame")
scroll.Size = UDim2.new(1, -12, 1, -48)
scroll.Position = UDim2.new(0, 6, 0, 42)
scroll.BackgroundTransparency = 1
scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
scroll.ScrollBarThickness = 3
scroll.ZIndex = 201
scroll.Parent = frame
local listLayout = Instance.new("UIListLayout")
listLayout.Padding = UDim.new(0, 6)
listLayout.Parent = scroll
local discoveredTools = {}
for _, obj in ipairs(game:GetDescendants()) do
if obj:IsA("Tool") and not discoveredTools[obj.Name] then
discoveredTools[obj.Name] = true
end
end
local count = 0
for toolName, _ in pairs(discoveredTools) do
count = count + 1
local itemBtn = Instance.new("TextButton")
itemBtn.Size = UDim2.new(1, 0, 0, 36)
itemBtn.BackgroundColor3 = Color3.fromRGB(25, 25, 34)
itemBtn.TextColor3 = Color3.fromRGB(235, 235, 240)
itemBtn.Text = "Spawn: " .. toolName
itemBtn.TextSize = 13
itemBtn.Font = Enum.Font.GothamMedium
itemBtn.ZIndex = 202
itemBtn.Parent = scroll
local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(0, 6)
btnCorner.Parent = itemBtn
itemBtn.MouseButton1Click:Connect(function()
giveFunctionalTool(toolName)
end)
end
scroll.CanvasSize = UDim2.new(0, 0, 0, count * 42)
end)
end
-- Chat Command Listener Hook (;give)
LocalPlayer.Chatted:Connect(function(message)
local msg = message:lower()
if msg == ";give" then
openItemSpawnerScreen()
end
end)
-- Dedicated Mobile Flight Input Tracking
local moveForward, moveBackward, moveLeft, moveRight = false, false, false, false
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.KeyCode == Enum.KeyCode.W or input.KeyCode == Enum.KeyCode.Up then moveForward = true end
if input.KeyCode == Enum.KeyCode.S or input.KeyCode == Enum.KeyCode.Down then moveBackward = true end
if input.KeyCode == Enum.KeyCode.A or input.KeyCode == Enum.KeyCode.Left then moveLeft = true end
if input.KeyCode == Enum.KeyCode.D or input.KeyCode == Enum.KeyCode.Right then moveRight = true end
end)
UserInputService.InputEnded:Connect(function(input)
if input.KeyCode == Enum.KeyCode.W or input.KeyCode == Enum.KeyCode.Up then moveForward = false end
if input.KeyCode == Enum.KeyCode.S or input.KeyCode == Enum.KeyCode.Down then moveBackward = false end
if input.KeyCode == Enum.KeyCode.A or input.KeyCode == Enum.KeyCode.Left then moveLeft = false end
if input.KeyCode == Enum.KeyCode.D or input.KeyCode == Enum.KeyCode.Right then moveRight = false end
end)
-- Deep Health & Character Core Protection Bypass
local function applyBypassedGodMode(character)
local humanoid = character:WaitForChild("Humanoid", 5)
local rootPart = character:WaitForChild("HumanoidRootPart", 5)
if humanoid then
pcall(function()
humanoid.MaxHealth = math.huge
humanoid.Health = math.huge
end)
pcall(function()
humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
humanoid:SetStateEnabled(Enum.HumanoidStateType.PlatformStanding, false)
end)
humanoid.HealthChanged:Connect(function(health)
if godModeActive then
if health < humanoid.MaxHealth or health <= 0 then
pcall(function()
humanoid.MaxHealth = math.huge
humanoid.Health = math.huge
end)
end
end
end)
end
end
if LocalPlayer.Character then
task.spawn(function()
applyBypassedGodMode(LocalPlayer.Character)
end)
end
LocalPlayer.CharacterAdded:Connect(function(newChar)
task.spawn(function()
applyBypassedGodMode(newChar)
end)
end)
-- Loading Screen Animation & Reveal Sequence
task.spawn(function()
local rotateTween = TweenService:Create(Spinner, TweenInfo.new(2, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, -1), {Rotation = 360})
rotateTween:Play()
task.wait(2.0)
local fadeInfo = TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
TweenService:Create(LoadFrame, fadeInfo, {BackgroundTransparency = 1}):Play()
TweenService:Create(Spinner, fadeInfo, {TextTransparency = 1}):Play()
TweenService:Create(LoadText, fadeInfo, {TextTransparency = 1}):Play()
TweenService:Create(SubText, fadeInfo, {TextTransparency = 1}):Play()
task.wait(0.4)
LoadFrame:Destroy()
ToggleButton.Visible = true
MainFrame.Visible = true
end)
-- Core Game Loop
RunService.RenderStepped:Connect(function()
pcall(function()
local character = LocalPlayer.Character
if not character then return end
local humanoid = character:FindFirstChild("Humanoid")
local rootPart = character:FindFirstChild("HumanoidRootPart")
if humanoid then
if speedActive then humanoid.WalkSpeed = customSpeed end
if jumpActive then humanoid.JumpPower = customJump end
if godModeActive then
pcall(function()
if humanoid.MaxHealth ~= math.huge then
humanoid.MaxHealth = math.huge
end
if humanoid.Health < math.huge then
humanoid.Health = math.huge
end
humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
humanoid:SetStateEnabled(Enum.HumanoidStateType.PlatformStanding, false)
end)
else
pcall(function()
if humanoid.MaxHealth == math.huge then
humanoid.MaxHealth = 100
end
humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, true)
humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, true)
humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, true)
end)
end
end
-- Mobile Flight Logic with Fly Speed
if flyActive and rootPart then
local att = rootPart:FindFirstChild("SchoolFlyAttachment")
local vecForce = rootPart:FindFirstChild("SchoolFlyForce")
if not att then
att = Instance.new("Attachment")
att.Name = "SchoolFlyAttachment"
att.Parent = rootPart
vecForce = Instance.new("VectorForce")
vecForce.Name = "SchoolFlyForce"
vecForce.Attachment0 = att
vecForce.RelativeTo = Enum.ActuatorRelativeTo.World
vecForce.Parent = rootPart
end
local camVectors = Camera.CFrame
local pushDir = Vector3.new(0, 0, 0)
local thumbstickMove = humanoid and humanoid.MoveDirection or Vector3.new(0, 0, 0)
if thumbstickMove.Magnitude > 0 then
pushDir = thumbstickMove * (flySpeedVal * 2)
else
if moveForward then pushDir = pushDir + camVectors.LookVector end
if moveBackward then pushDir = pushDir - camVectors.LookVector end
if moveLeft then pushDir = pushDir - camVectors.RightVector end
if moveRight then pushDir = pushDir + camVectors.RightVector end
pushDir = pushDir.Unit * (flySpeedVal * 2)
if tostring(pushDir.X) == "nan" then pushDir = Vector3.new(0, 0, 0) end
end
local totalMass = 0
for _, p in ipairs(character:GetDescendants()) do
if p:IsA("BasePart") then totalMass = totalMass + p.AssemblyMass end
end
vecForce.Force = (pushDir * 60) + Vector3.new(0, Workspace.Gravity * totalMass, 0)
rootPart.AssemblyLinearVelocity = Vector3.new(pushDir.X, 0, pushDir.Z)
if humanoid and not godModeActive then humanoid.PlatformStand = true end
else
if rootPart then
if rootPart:FindFirstChild("SchoolFlyAttachment") then rootPart.SchoolFlyAttachment:Destroy() end
if rootPart:FindFirstChild("SchoolFlyForce") then rootPart.SchoolFlyForce:Destroy() end
end
if humanoid and not flyActive then
if not godModeActive then humanoid.PlatformStand = false end
end
end
-- Invisibility Logic
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") or part:IsA("Decal") then
if part.Name ~= "HumanoidRootPart" then
if invisActive then
part.Transparency = 1
else
part.Transparency = 0
end
end
end
end
-- Target Finding Utility (Closest Valid Enemy)
local function getClosestPlayer()
local target = nil
local shortestDist = math.huge
local mousePos = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local pChar = player.Character
local hum = pChar:FindFirstChild("Humanoid")
local rPart = pChar:FindFirstChild("HumanoidRootPart")
if hum and hum.Health > 0 and rPart then
local screenPos, onScreen = Camera:WorldToViewportPoint(rPart.Position)
if onScreen then
local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
if dist < shortestDist then
shortestDist = dist
target = rPart
end
end
end
end
end
return target
end
-- Target Lock Logic
local currentTarget = getClosestPlayer()
if currentTarget and targetLockActive and rootPart then
rootPart.CFrame = CFrame.new(rootPart.Position, Vector3.new(currentTarget.Position.X, rootPart.Position.Y, currentTarget.Position.Z))
end
-- Auto Kill Farm Logic (Flat standing upright above them, normal orientation for melee combat hits)
if autoKillActive and rootPart then
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local pChar = player.Character
local pHum = pChar:FindFirstChild("Humanoid")
local pRoot = pChar:FindFirstChild("HumanoidRootPart")
if pHum and pHum.Health > 0 and pRoot then
rootPart.CFrame = CFrame.new(pRoot.Position + Vector3.new(0, 3.5, 0), pRoot.Position)
rootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
break
end
end
end
end
-- ESP Rendering Loop
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local pChar = player.Character
local pRoot = pChar:FindFirstChild("HumanoidRootPart")
if pRoot then
local highlight = pChar:FindFirstChild("SchoolESP")
if espActive then
if not highlight then
highlight = Instance.new("Highlight")
highlight.Name = "SchoolESP"
highlight.Adornee = pChar
highlight.FillColor = Color3.fromRGB(255, 60, 60)
highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
highlight.Parent = pChar
end
else
if highlight then highlight:Destroy() end
end
end
end
end
end)
end)
print("Spicy Hub | Fight in a School Loaded Successfully!")
No comments yet. Be the first!