Description
-- RIVALS HUB | KILL EVENT NOTIFICATIONS -- Delta executor | Standalone UI demo local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local pg = player:WaitForChild("PlayerGui") local old = pg:FindFirstChild("RivalsKillNotifications") if old then old:Destroy() end local gui = Instance.new ("ScreenGui") gui.Name = "RivalsKillNotifications" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.Parent = pg local cyan = Color3.fromRGB(0, 245, 255) local purple = Color3.fromRGB(155, 90, 255) local container = Instance.new ("Frame") container.Name = "NotificationContainer" container.Size = UDim2.fromOffset(300, 300) container.Position = UDim2.new (1, -320, 0, 90) container.BackgroundTransparency = 1 container.Parent = gui local layout = Instance.new ("UIListLayout") layout.Padding = UDim.new (0, 9) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.VerticalAlignment = Enum.VerticalAlignment.Top layout.Parent = container local counter = 0 local function Notify(titleText, messageText, duration) counter += 1 local card = Instance.new ("Frame") card.Name = "KillEvent_" .. counter card.Size = UDim2.new (1, 0, 0, 68) card.BackgroundColor3 = Color3.fromRGB(14, 19, 34) card.BackgroundTransparency = 0.08 card.BorderSizePixel = 0 card.LayoutOrder = -counter card.Parent = container Instance.new ("UICorner", card).CornerRadius = UDim.new (0, 12) local border = Instance.new ("UIStroke") border.Color = cyan border.Thickness = 1.3 border.Parent = card local accent = Instance.new ("Frame") accent.Size = UDim2.new (0, 4, 1, -18) accent.Position = UDim2.fromOffset(8, 9) accent.BackgroundColor3 = cyan accent.BorderSizePixel = 0 accent.Parent = card Instance.new ("UICorner", accent).CornerRadius = UDim.new (1, 0) local title = Instance.new ("TextLabel") title.Position = UDim2.fromOffset(22, 9) title.Size = UDim2.new (1, -32, 0, 23) title.BackgroundTransparency = 1 title.Text = "✦ " .. titleText title.TextColor3 = cyan title.TextSize = 14 title.Font = Enum.Font.GothamBold title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = card local message = Instance.new ("TextLabel") message.Position = UDim2.fromOffset(22, 34) message.Size = UDim2.new (1, -32, 0, 22) message.BackgroundTransparency = 1 message.Text = messageText message.TextColor3 = Color3.fromRGB(220, 228, 242) message.TextSize = 12 message.Font = Enum.Font.GothamMedium message.TextXAlignment = Enum.TextXAlignment.Left message.Parent = card -- Slide in card.Position = UDim2.fromOffset(320, 0) TweenService:Create(card, TweenInfo.new ( 0.35, Enum.EasingStyle.Quint, Enum.EasingDirection.Out ), { Position = UDim2.fromOffset(0, 0) }):Play() task.spawn(function() local durationValue = math.max(1, tonumber(duration) or 3) task.wait(durationValue) if not card.Parent then return end local out = TweenService:Create(card, TweenInfo.new (0.25), { BackgroundTransparency = 1, Position = UDim2.fromOffset(320, 0) }) for _, obj in ipairs(card:GetDescendants()) do if obj:IsA("TextLabel") then TweenService:Create(obj, TweenInfo.new (0.25), { TextTransparency = 1 }):Play() elseif obj:IsA("UIStroke") then TweenService:Create(obj, TweenInfo.new (0.25), { Transparency = 1 }):Play() end end out:Play() out.Completed:Wait() card:Destroy() end) end -- Demo notifications so you can test the animation Notify("RIVALS HUB", "Notification system ready!", 3) -- Call this function elsewhere in this script to display your own: -- Notify("ELIMINATION", "Event detected!", 3) -- Notify("STREAK", "3 events in a row!", 3) print("RIVALS HUB: Notification UI loaded!")
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
-- RIVALS HUB | HOME MENU ONLY
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local old = playerGui:FindFirstChild("RivalsHub")
if old then old:Destroy() end
local gui = Instance.new("ScreenGui")
gui.Name = "RivalsHub"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.DisplayOrder = 999
local main = Instance.new("Frame")
main.Size = UDim2.fromOffset(560, 300)
main.Position = UDim2.new(0.5, -280, 0.5, -150)
main.BackgroundColor3 = Color3.fromRGB(15, 18, 28)
main.BorderSizePixel = 0
main.Parent = gui
Instance.new("UICorner", main).CornerRadius =
UDim.new(0, 14)
local outline = Instance.new("UIStroke")
outline.Color = Color3.fromRGB(0, 190, 255)
outline.Thickness = 1.5
outline.Parent = main
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -24, 0, 48)
title.Position = UDim2.fromOffset(16, 4)
title.BackgroundTransparency = 1
title.Text = "RIVALS HUB"
title.TextColor3 = Color3.fromRGB(0, 220, 255)
title.Font = Enum.Font.GothamBold
title.TextSize = 22
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = main
local sidebar = Instance.new("Frame")
sidebar.Position = UDim2.fromOffset(14, 60)
sidebar.Size = UDim2.new(0, 145, 1, -74)
sidebar.BackgroundColor3 = Color3.fromRGB(23, 27, 39)
sidebar.BorderSizePixel = 0
sidebar.Parent = main
Instance.new("UICorner", sidebar).CornerRadius =
UDim.new(0, 10)
local home = Instance.new("TextButton")
home.Size = UDim2.new(1, -18, 0, 42)
home.Position = UDim2.fromOffset(9, 12)
home.BackgroundColor3 = Color3.fromRGB(0, 120, 205)
home.Text = "⌂ Home"
home.TextColor3 = Color3.new(1, 1, 1)
home.Font = Enum.Font.GothamBold
home.TextSize = 15
home.Parent = sidebar
Instance.new("UICorner", home).CornerRadius =
UDim.new(0, 8)
local content = Instance.new("Frame")
content.Position = UDim2.fromOffset(170, 60)
content.Size = UDim2.new(1, -184, 1, -74)
content.BackgroundColor3 = Color3.fromRGB(23, 27, 39)
content.BorderSizePixel = 0
content.Parent = main
Instance.new("UICorner", content).CornerRadius =
UDim.new(0, 10)
local heading = Instance.new("TextLabel")
heading.Position = UDim2.fromOffset(16, 12)
heading.Size = UDim2.new(1, -32, 0, 30)
heading.BackgroundTransparency = 1
heading.Text = "HOME"
heading.TextColor3 = Color3.new(1, 1, 1)
heading.TextSize = 19
heading.Font = Enum.Font.GothamBold
heading.TextXAlignment = Enum.TextXAlignment.Left
heading.Parent = content
local description = Instance.new("TextLabel")
description.Position = UDim2.fromOffset(16, 48)
description.Size = UDim2.new(1, -32, 0, 50)
description.BackgroundTransparency = 1
description.Text = "Welcome to Rivals Hub."
description.TextColor3 = Color3.fromRGB(155, 165, 185)
description.TextSize = 14
description.Font = Enum.Font.Gotham
description.TextXAlignment = Enum.TextXAlignment.Left
description.TextYAlignment = Enum.TextYAlignment.Top
description.Parent = content
home.Activated:Connect(function()
heading.Text = "HOME"
description.Text = "Welcome to Rivals Hub."
end)
gui.Parent = playerGui
print("Rivals Hub Home loaded")
-- OPEN / CLOSE UI FEATURE
-- Add this after your main UI is created.
local toggle = Instance.new("TextButton")
toggle.Name = "ToggleUI"
toggle.Size = UDim2.fromOffset(100, 42)
toggle.Position = UDim2.new(0, 15, 0.4, 0)
toggle.BackgroundColor3 = Color3.fromRGB(0, 180, 220)
toggle.TextColor3 = Color3.new(1, 1, 1)
toggle.Text = "RIVALS"
toggle.TextSize = 15
toggle.Font = Enum.Font.GothamBold
toggle.Parent = gui
Instance.new("UICorner", toggle).CornerRadius =
UDim.new(0, 10)
local close = Instance.new("TextButton")
close.Name = "CloseUI"
close.Size = UDim2.fromOffset(32, 32)
close.Position = UDim2.new(1, -40, 0, 8)
close.BackgroundColor3 = Color3.fromRGB(180, 45, 60)
close.TextColor3 = Color3.new(1, 1, 1)
close.Text = "X"
close.TextSize = 16
close.Font = Enum.Font.GothamBold
close.Parent = main
Instance.new("UICorner", close).CornerRadius =
UDim.new(0, 8)
close.Activated:Connect(function()
main.Visible = false
toggle.Visible = true
end)
toggle.Activated:Connect(function()
main.Visible = true
toggle.Visible = false
end)
-- AIM LOCK TOGGLE | practice targets only
-- Add after your existing gui and main variables.
local aimOn = false
local aimBox = Instance.new("Frame")
aimBox.Name = "AimLockBox"
aimBox.Size = UDim2.fromOffset(290, 100)
aimBox.Position = UDim2.new(1, -310, 0, 70)
aimBox.BackgroundColor3 = Color3.fromRGB(23, 28, 43)
aimBox.BorderSizePixel = 0
aimBox.Parent = main
Instance.new("UICorner", aimBox).CornerRadius =
UDim.new(0, 10)
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -16, 0, 32)
title.Position = UDim2.fromOffset(8, 5)
title.BackgroundTransparency = 1
title.Text = "PRACTICE AIM LOCK"
title.TextColor3 = Color3.fromRGB(0, 220, 255)
title.Font = Enum.Font.GothamBold
title.TextSize = 15
title.Parent = aimBox
local toggle = Instance.new("TextButton")
toggle.Size = UDim2.new(1, -20, 0, 38)
toggle.Position = UDim2.fromOffset(10, 48)
toggle.BackgroundColor3 = Color3.fromRGB(50, 60, 78)
toggle.Text = "AIM LOCK: OFF"
toggle.TextColor3 = Color3.new(1, 1, 1)
toggle.Font = Enum.Font.GothamBold
toggle.TextSize = 14
toggle.Parent = aimBox
Instance.new("UICorner", toggle).CornerRadius =
UDim.new(0, 8)
toggle.Activated:Connect(function()
aimOn = not aimOn
if aimOn then
toggle.Text = "AIM LOCK: ON"
toggle.BackgroundColor3 = Color3.fromRGB(0, 145, 175)
else
toggle.Text = "AIM LOCK: OFF"
toggle.BackgroundColor3 = Color3.fromRGB(50, 60, 78)
end
end)
-- This button is a UI toggle only.
-- It does not aim at or target other players.
-- BOX 3: FPS & PING DISPLAY
-- Add this after your existing "gui" variable is created.
local RunService = game:GetService("RunService")
local Stats = game:GetService("Stats")
local oldStats = gui:FindFirstChild("PerformanceBox")
if oldStats then oldStats:Destroy() end
local box = Instance.new("Frame")
box.Name = "PerformanceBox"
box.Size = UDim2.fromOffset(190, 92)
box.Position = UDim2.new(1, -205, 0, 18)
box.BackgroundColor3 = Color3.fromRGB(16, 20, 32)
box.BorderSizePixel = 0
box.Active = true
box.Draggable = true
box.Parent = gui
Instance.new("UICorner", box).CornerRadius =
UDim.new(0, 12)
local outline = Instance.new("UIStroke", box)
outline.Color = Color3.fromRGB(0, 220, 255)
outline.Thickness = 1.5
local heading = Instance.new("TextLabel")
heading.Size = UDim2.new(1, -12, 0, 27)
heading.Position = UDim2.fromOffset(8, 4)
heading.BackgroundTransparency = 1
heading.Text = "PERFORMANCE"
heading.TextColor3 = Color3.fromRGB(0, 220, 255)
heading.Font = Enum.Font.GothamBold
heading.TextSize = 13
heading.TextXAlignment = Enum.TextXAlignment.Left
heading.Parent = box
local fpsText = Instance.new("TextLabel")
fpsText.Size = UDim2.new(0.5, -8, 0, 35)
fpsText.Position = UDim2.fromOffset(8, 39)
fpsText.BackgroundTransparency = 1
fpsText.Text = "FPS: --"
fpsText.TextColor3 = Color3.new(1, 1, 1)
fpsText.Font = Enum.Font.GothamBold
fpsText.TextSize = 14
fpsText.TextXAlignment = Enum.TextXAlignment.Left
fpsText.Parent = box
local pingText = Instance.new("TextLabel")
pingText.Size = UDim2.new(0.5, -8, 0, 35)
pingText.Position = UDim2.new(0.5, 0, 0, 39)
pingText.BackgroundTransparency = 1
pingText.Text = "PING: --"
pingText.TextColor3 = Color3.new(1, 1, 1)
pingText.Font = Enum.Font.GothamBold
pingText.TextSize = 14
pingText.TextXAlignment = Enum.TextXAlignment.Left
pingText.Parent = box
local frames = 0
local elapsed = 0
RunService.RenderStepped:Connect(function(dt)
frames += 1
elapsed += dt
if elapsed >= 1 then
local fps = math.floor(frames / elapsed)
fpsText.Text = "FPS: " .. fps
frames = 0
elapsed = 0
local ok, ping = pcall(function()
return Stats.Network.ServerStatsItem["Data Ping"]:GetValue()
end)
if ok and ping then
pingText.Text = "PING: " .. math.floor(ping) .. " ms"
else
pingText.Text = "PING: N/A"
end
end
end)
-- SMOOTH UI ANIMATIONS
-- Add after your existing "gui" and "main" variables.
local TweenService = game:GetService("TweenService")
local tweenInfo = TweenInfo.new(
0.25,
Enum.EasingStyle.Quint,
Enum.EasingDirection.Out
)
local busy = false
local isOpen = true
-- Add a smooth close button
local closeButton = Instance.new("TextButton")
closeButton.Name = "AnimatedClose"
closeButton.Size = UDim2.fromOffset(34, 34)
closeButton.Position = UDim2.new(1, -42, 0, 8)
closeButton.BackgroundColor3 = Color3.fromRGB(45, 52, 70)
closeButton.Text = "×"
closeButton.TextColor3 = Color3.new(1, 1, 1)
closeButton.TextSize = 24
closeButton.Font = Enum.Font.GothamBold
closeButton.Parent = main
Instance.new("UICorner", closeButton).CornerRadius =
UDim.new(0, 9)
local buttonStroke = Instance.new("UIStroke", closeButton)
buttonStroke.Color = Color3.fromRGB(0, 210, 255)
buttonStroke.Thickness = 1
-- Floating reopen button
local reopen = Instance.new("TextButton")
reopen.Name = "ReopenUI"
reopen.Size = UDim2.fromOffset(105, 42)
reopen.Position = UDim2.new(0, 18, 0.4, 0)
reopen.BackgroundColor3 = Color3.fromRGB(15, 20, 34)
reopen.Text = "RIVALS ◈"
reopen.TextColor3 = Color3.fromRGB(0, 220, 255)
reopen.TextSize = 14
reopen.Font = Enum.Font.GothamBold
reopen.Visible = false
reopen.Parent = gui
Instance.new("UICorner", reopen).CornerRadius =
UDim.new(0, 10)
local reopenStroke = Instance.new("UIStroke", reopen)
reopenStroke.Color = Color3.fromRGB(0, 210, 255)
reopenStroke.Thickness = 1.5
local function animateOpen()
if busy or isOpen then return end
busy = true
isOpen = true
reopen.Visible = false
main.Visible = true
main.Size = UDim2.fromOffset(0, 0)
local targetSize = UDim2.fromOffset(510, 290)
local tween = TweenService:Create(
main,
tweenInfo,
{Size = targetSize}
)
tween:Play()
tween.Completed:Wait()
busy = false
end
local function animateClose()
if busy or not isOpen then return end
busy = true
isOpen = false
local tween = TweenService:Create(
main,
tweenInfo,
{Size = UDim2.fromOffset(0, 0)}
)
tween:Play()
tween.Completed:Wait()
main.Visible = false
main.Size = UDim2.fromOffset(510, 290)
reopen.Visible = true
busy = false
end
closeButton.Activated:Connect(animateClose)
reopen.Activated:Connect(animateOpen)
-- Smooth hover/press color animation
local function animateButton(button, normalColor, hoverColor)
button.MouseEnter:Connect(function()
TweenService:Create(
button,
TweenInfo.new(0.15),
{BackgroundColor3 = hoverColor}
):Play()
end)
button.MouseLeave:Connect(function()
TweenService:Create(
button,
TweenInfo.new(0.15),
{BackgroundColor3 = normalColor}
):Play()
end)
end
animateButton(
closeButton,
Color3.fromRGB(45, 52, 70),
Color3.fromRGB(190, 45, 65)
)
animateButton(
reopen,
Color3.fromRGB(15, 20, 34),
Color3.fromRGB(0, 75, 100)
)
-- RIVALS HUB | CROSSHAIR CUSTOMIZER
-- Add after your existing "gui" variable.
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local old = gui:FindFirstChild("CrosshairCustomizer")
if old then old:Destroy() end
local panel = Instance.new("Frame")
panel.Name = "CrosshairCustomizer"
panel.Size = UDim2.fromOffset(250, 235)
panel.Position = UDim2.new(0, 20, 0.5, -117)
panel.BackgroundColor3 = Color3.fromRGB(16, 20, 32)
panel.BorderSizePixel = 0
panel.Parent = gui
Instance.new("UICorner", panel).CornerRadius = UDim.new(0, 12)
local stroke = Instance.new("UIStroke", panel)
stroke.Color = Color3.fromRGB(0, 220, 255)
stroke.Thickness = 1.5
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -40, 0, 35)
title.Position = UDim2.fromOffset(12, 6)
title.BackgroundTransparency = 1
title.Text = "CROSSHAIR SETTINGS"
title.TextColor3 = Color3.fromRGB(0, 220, 255)
title.Font = Enum.Font.GothamBold
title.TextSize = 14
title.Parent = panel
local close = Instance.new("TextButton")
close.Size = UDim2.fromOffset(28, 28)
close.Position = UDim2.new(1, -34, 0, 6)
close.Text = "×"
close.TextSize = 22
close.TextColor3 = Color3.new(1, 1, 1)
close.BackgroundColor3 = Color3.fromRGB(55, 35, 48)
close.Parent = panel
Instance.new("UICorner", close).CornerRadius = UDim.new(0, 7)
close.Activated:Connect(function()
panel.Visible = false
end)
local cross = Instance.new("Frame")
cross.Name = "Crosshair"
cross.Size = UDim2.fromOffset(30, 30)
cross.AnchorPoint = Vector2.new(0.5, 0.5)
cross.Position = UDim2.fromScale(0.5, 0.5)
cross.BackgroundTransparency = 1
cross.Parent = gui
local function makeLine(size, pos)
local line = Instance.new("Frame")
line.Size = size
line.Position = pos
line.BorderSizePixel = 0
line.BackgroundColor3 = Color3.fromRGB(0, 255, 170)
line.Parent = cross
return line
end
local top = makeLine(UDim2.fromOffset(2, 8),
UDim2.new(0.5, -1, 0, 0))
local bottom = makeLine(UDim2.fromOffset(2, 8),
UDim2.new(0.5, -1, 1, -8))
local left = makeLine(UDim2.fromOffset(8, 2),
UDim2.new(0, 0, 0.5, -1))
local right = makeLine(UDim2.fromOffset(8, 2),
UDim2.new(1, -8, 0.5, -1))
local sizeLabel = Instance.new("TextLabel")
sizeLabel.Size = UDim2.new(1, -24, 0, 24)
sizeLabel.Position = UDim2.fromOffset(12, 48)
sizeLabel.BackgroundTransparency = 1
sizeLabel.Text = "SIZE: 30"
sizeLabel.TextColor3 = Color3.new(1, 1, 1)
sizeLabel.Font = Enum.Font.GothamBold
sizeLabel.TextSize = 13
sizeLabel.TextXAlignment = Enum.TextXAlignment.Left
sizeLabel.Parent = panel
local sizeSlider = Instance.new("TextButton")
sizeSlider.Size = UDim2.new(1, -24, 0, 12)
sizeSlider.Position = UDim2.fromOffset(12, 78)
sizeSlider.BackgroundColor3 = Color3.fromRGB(55, 65, 82)
sizeSlider.Text = ""
sizeSlider.Parent = panel
Instance.new("UICorner", sizeSlider).CornerRadius = UDim.new(1, 0)
local sizeFill = Instance.new("Frame")
sizeFill.Size = UDim2.fromScale(0.3, 1)
sizeFill.BackgroundColor3 = Color3.fromRGB(0, 220, 255)
sizeFill.BorderSizePixel = 0
sizeFill.Parent = sizeSlider
Instance.new("UICorner", sizeFill).CornerRadius = UDim.new(1, 0)
local function setSize(n)
n = math.clamp(math.floor(n + 0.5), 10, 100)
sizeLabel.Text = "SIZE: " .. n
sizeFill.Size = UDim2.fromScale((n - 10) / 90, 1)
local gap = math.max(3, math.floor(n * 0.1))
local arm = math.max(4, math.floor(n * 0.27))
cross.Size = UDim2.fromOffset(n, n)
top.Size = UDim2.fromOffset(2, arm)
top.Position = UDim2.new(0.5, -1, 0, 0)
bottom.Size = UDim2.fromOffset(2, arm)
bottom.Position = UDim2.new(0.5, -1, 1, -arm)
left.Size = UDim2.fromOffset(arm, 2)
left.Position = UDim2.new(0, 0, 0.5, -1)
right.Size = UDim2.fromOffset(arm, 2)
right.Position = UDim2.new(1, -arm, 0.5, -1)
end
local dragging = false
local function updateSlider(input)
local x = (input.Position.X - sizeSlider.AbsolutePosition.X)
/ sizeSlider.AbsoluteSize.X
setSize(10 + math.clamp(x, 0, 1) * 90)
end
sizeSlider.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch
or input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
updateSlider(input)
end
end)
UIS.InputChanged:Connect(function(input)
if dragging and (
input.UserInputType == Enum.UserInputType.Touch
or input.UserInputType == Enum.UserInputType.MouseMovement
) then
updateSlider(input)
end
end)
UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch
or input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
local colorLabel = Instance.new("TextLabel")
colorLabel.Size = UDim2.new(1, -24, 0, 22)
colorLabel.Position = UDim2.fromOffset(12, 105)
colorLabel.BackgroundTransparency = 1
colorLabel.Text = "CROSSHAIR COLOR"
colorLabel.TextColor3 = Color3.new(1, 1, 1)
colorLabel.Font = Enum.Font.GothamBold
colorLabel.TextSize = 12
colorLabel.TextXAlignment = Enum.TextXAlignment.Left
colorLabel.Parent = panel
local colors = {
Color3.fromRGB(0, 255, 170),
Color3.fromRGB(0, 220, 255),
Color3.fromRGB(255, 70, 90),
Color3.fromRGB(255, 220, 0),
Color3.fromRGB(255, 255, 255)
}
for i, color in ipairs(colors) do
local button = Instance.new("TextButton")
button.Size = UDim2.fromOffset(34, 28)
button.Position = UDim2.fromOffset(12 + (i - 1) * 44, 132)
button.BackgroundColor3 = color
button.Text = ""
button.Parent = panel
Instance.new("UICorner", button).CornerRadius = UDim.new(0, 7)
button.Activated:Connect(function()
for _, line in ipairs(cross:GetChildren()) do
if line:IsA("Frame") then
line.BackgroundColor3 = color
end
end
end)
end
local shapeButton = Instance.new("TextButton")
shapeButton.Size = UDim2.new(1, -24, 0, 30)
shapeButton.Position = UDim2.fromOffset(12, 177)
shapeButton.BackgroundColor3 = Color3.fromRGB(35, 45, 62)
shapeButton.TextColor3 = Color3.new(1, 1, 1)
shapeButton.Text = "CROSSHAIR: LINES"
shapeButton.Font = Enum.Font.GothamBold
shapeButton.TextSize = 12
shapeButton.Parent = panel
Instance.new("UICorner", shapeButton).CornerRadius = UDim.new(0, 7)
local dotMode = false
shapeButton.Activated:Connect(function()
dotMode = not dotMode
shapeButton.Text = dotMode and "CROSSHAIR: DOT" or "CROSSHAIR: LINES"
top.Visible = not dotMode
bottom.Visible = not dotMode
left.Visible = not dotMode
right.Visible = not dotMode
if dotMode then
local dot = cross:FindFirstChild("CenterDot")
if not dot then
dot = Instance.new("Frame")
dot.Name = "CenterDot"
dot.Size = UDim2.fromOffset(4, 4)
dot.AnchorPoint = Vector2.new(0.5, 0.5)
dot.Position = UDim2.fromScale(0.5, 0.5)
dot.BorderSizePixel = 0
dot.Parent = cross
end
dot.BackgroundColor3 = top.BackgroundColor3
dot.Visible = true
else
local dot = cross:FindFirstChild("CenterDot")
if dot then dot.Visible = false end
end
end)
setSize(30)
-- RIVALS HUB | EXTRA TABS
-- Delta UI only. Add after your "gui" variable.
local old = gui:FindFirstChild("ExtraTabs")
if old then old:Destroy() end
local TweenService = game:GetService("TweenService")
local root = Instance.new("Frame")
root.Name = "ExtraTabs"
root.Size = UDim2.fromOffset(390, 280)
root.Position = UDim2.new(0.5, -195, 0.5, -140)
root.BackgroundColor3 = Color3.fromRGB(15, 18, 30)
root.BorderSizePixel = 0
root.Parent = gui
Instance.new("UICorner", root).CornerRadius = UDim.new(0, 14)
local outline = Instance.new("UIStroke", root)
outline.Color = Color3.fromRGB(0, 220, 255)
outline.Thickness = 1.5
local header = Instance.new("TextLabel")
header.Size = UDim2.new(1, -20, 0, 38)
header.Position = UDim2.fromOffset(12, 4)
header.BackgroundTransparency = 1
header.Text = "RIVALS HUB / DASHBOARD"
header.TextColor3 = Color3.fromRGB(0, 220, 255)
header.Font = Enum.Font.GothamBold
header.TextSize = 16
header.TextXAlignment = Enum.TextXAlignment.Left
header.Parent = root
local sidebar = Instance.new("Frame")
sidebar.Size = UDim2.new(0, 105, 1, -54)
sidebar.Position = UDim2.fromOffset(10, 44)
sidebar.BackgroundColor3 = Color3.fromRGB(23, 28, 43)
sidebar.BorderSizePixel = 0
sidebar.Parent = root
Instance.new("UICorner", sidebar).CornerRadius = UDim.new(0, 10)
local content = Instance.new("Frame")
content.Size = UDim2.new(1, -135, 1, -54)
content.Position = UDim2.fromOffset(125, 44)
content.BackgroundColor3 = Color3.fromRGB(23, 28, 43)
content.BorderSizePixel = 0
content.Parent = root
Instance.new("UICorner", content).CornerRadius = UDim.new(0, 10)
local function label(parent, text, pos, size, color, textSize)
local l = Instance.new("TextLabel")
l.BackgroundTransparency = 1
l.Text = text
l.Position = pos
l.Size = size
l.TextColor3 = color
l.Font = Enum.Font.GothamBold
l.TextSize = textSize
l.TextWrapped = true
l.TextXAlignment = Enum.TextXAlignment.Left
l.Parent = parent
return l
end
local pageTitle = label(content, "HOME",
UDim2.fromOffset(14, 12),
UDim2.new(1, -28, 0, 30),
Color3.fromRGB(0, 220, 255), 18)
local description = label(content, "Welcome back.\nChoose a tab to explore your hub.",
UDim2.fromOffset(14, 50),
UDim2.new(1, -28, 0, 55),
Color3.fromRGB(225, 230, 240), 13)
local pages = {
Home = {
"HOME",
"Welcome back.\nChoose a tab to explore your hub."
},
Visuals = {
"VISUALS",
"Crosshair customization\nPerformance overlay\nVisual settings"
},
Settings = {
"SETTINGS",
"UI animations\nOpen / close controls\nInterface preferences"
},
Misc = {
"MISC",
"Extra interface options\nMore features can be added here"
}
}
local selectedButton
local function makeTab(name, order)
local button = Instance.new("TextButton")
button.Name = name .. "Tab"
button.Size = UDim2.new(1, -12, 0, 38)
button.Position = UDim2.fromOffset(6, 8 + (order - 1) * 44)
button.BackgroundColor3 = Color3.fromRGB(32, 39, 56)
button.Text = name
button.TextColor3 = Color3.fromRGB(225, 230, 240)
button.Font = Enum.Font.GothamBold
button.TextSize = 12
button.Parent = sidebar
Instance.new("UICorner", button).CornerRadius = UDim.new(0, 7)
button.Activated:Connect(function()
if selectedButton then
TweenService:Create(selectedButton,
TweenInfo.new(0.15),
{BackgroundColor3 = Color3.fromRGB(32, 39, 56)}
):Play()
end
selectedButton = button
TweenService:Create(button,
TweenInfo.new(0.15),
{BackgroundColor3 = Color3.fromRGB(0, 115, 150)}
):Play()
pageTitle.Text = pages[name][1]
description.Text = pages[name][2]
end)
return button
end
makeTab("Home", 1)
makeTab("Visuals", 2)
makeTab("Settings", 3)
makeTab("Misc", 4)
local close = Instance.new("TextButton")
close.Size = UDim2.fromOffset(28, 28)
close.Position = UDim2.new(1, -34, 0, 6)
close.BackgroundColor3 = Color3.fromRGB(55, 35, 48)
close.Text = "×"
close.TextColor3 = Color3.new(1, 1, 1)
close.TextSize = 22
close.Font = Enum.Font.GothamBold
close.Parent = root
Instance.new("UICorner", close).CornerRadius = UDim.new(0, 7)
local reopen = Instance.new("TextButton")
reopen.Size = UDim2.fromOffset(105, 40)
reopen.Position = UDim2.new(0, 16, 0.4, 0)
reopen.BackgroundColor3 = Color3.fromRGB(15, 20, 34)
reopen.Text = "RIVALS ◈"
reopen.TextColor3 = Color3.fromRGB(0, 220, 255)
reopen.Font = Enum.Font.GothamBold
reopen.TextSize = 14
reopen.Visible = false
reopen.Parent = gui
Instance.new("UICorner", reopen).CornerRadius = UDim.new(0, 9)
close.Activated:Connect(function()
root.Visible = false
reopen.Visible = true
end)
reopen.Activated:Connect(function()
root.Visible = true
reopen.Visible = false
end)
makeTab -- tabs are connected above
-- DRAG & MOVE UI | DELTA
-- Add after your existing "main" variable.
-- Uses the top 42 pixels as the drag handle.
local UIS = game:GetService("UserInputService")
local dragHandle = Instance.new("TextButton")
dragHandle.Name = "DragHandle"
dragHandle.Size = UDim2.new(1, -50, 0, 42)
dragHandle.Position = UDim2.fromOffset(0, 0)
dragHandle.BackgroundTransparency = 1
dragHandle.Text = ""
dragHandle.AutoButtonColor = false
dragHandle.Active = true
dragHandle.Parent = main
local dragging = false
local dragInput
local dragStart
local startPosition
dragHandle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPosition = main.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
dragHandle.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UIS.InputChanged:Connect(function(input)
if dragging and (
input == dragInput
or input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch
) then
local delta = input.Position - dragStart
main.Position = UDim2.new(
startPosition.X.Scale,
startPosition.X.Offset + delta.X,
startPosition.Y.Scale,
startPosition.Y.Offset + delta.Y
)
end
end)
-- RIVALS HUB | THEME SWITCHER
-- Delta UI | Cyan, Purple, Red, Green
local old = gui:FindFirstChild("ThemeSwitcher")
if old then old:Destroy() end
local themes = {
Cyan = {
accent = Color3.fromRGB(0, 220, 255),
panel = Color3.fromRGB(15, 18, 30),
button = Color3.fromRGB(23, 28, 43)
},
Purple = {
accent = Color3.fromRGB(180, 90, 255),
panel = Color3.fromRGB(22, 15, 34),
button = Color3.fromRGB(39, 25, 55)
},
Red = {
accent = Color3.fromRGB(255, 65, 85),
panel = Color3.fromRGB(32, 15, 20),
button = Color3.fromRGB(52, 25, 32)
},
Green = {
accent = Color3.fromRGB(60, 255, 150),
panel = Color3.fromRGB(13, 27, 23),
button = Color3.fromRGB(23, 43, 35)
}
}
local themePanel = Instance.new("Frame")
themePanel.Name = "ThemeSwitcher"
themePanel.Size = UDim2.fromOffset(210, 185)
themePanel.Position = UDim2.new(1, -225, 0.5, -92)
themePanel.BackgroundColor3 = Color3.fromRGB(15, 18, 30)
themePanel.BorderSizePixel = 0
themePanel.Parent = gui
Instance.new("UICorner", themePanel).CornerRadius =
UDim.new(0, 12)
local border = Instance.new("UIStroke", themePanel)
border.Color = themes.Cyan.accent
border.Thickness = 1.5
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -16, 0, 34)
title.Position = UDim2.fromOffset(10, 5)
title.BackgroundTransparency = 1
title.Text = "THEME SELECTOR"
title.TextColor3 = themes.Cyan.accent
title.Font = Enum.Font.GothamBold
title.TextSize = 14
title.Parent = themePanel
local current = "Cyan"
local function applyTheme(name)
local theme = themes[name]
if not theme then return end
current = name
-- Update the main window
if main and main.Parent then
main.BackgroundColor3 = theme.panel
for _, obj in ipairs(main:GetDescendants()) do
if obj:IsA("UIStroke") then
obj.Color = theme.accent
elseif obj:IsA("TextButton") then
obj.BackgroundColor3 = theme.button
obj.TextColor3 = theme.accent
elseif obj:IsA("TextLabel") then
obj.TextColor3 = theme.accent
end
end
end
themePanel.BackgroundColor3 = theme.panel
border.Color = theme.accent
title.TextColor3 = theme.accent
end
local order = {"Cyan", "Purple", "Red", "Green"}
for i, name in ipairs(order) do
local button = Instance.new("TextButton")
button.Name = name
button.Size = UDim2.new(1, -20, 0, 30)
button.Position = UDim2.fromOffset(10, 43 + (i - 1) * 34)
button.BackgroundColor3 = themes[name].button
button.Text = name:upper()
button.TextColor3 = themes[name].accent
button.Font = Enum.Font.GothamBold
button.TextSize = 12
button.Parent = themePanel
Instance.new("UICorner", button).CornerRadius =
UDim.new(0, 7)
local buttonBorder = Instance.new("UIStroke", button)
buttonBorder.Color = themes[name].accent
buttonBorder.Thickness = 1
button.Activated:Connect(function()
applyTheme(name)
end)
end
applyTheme(current)
-- RIVALS HUB | NOTIFICATION SYSTEM
-- Delta-compatible UI component
local TweenService = game:GetService("TweenService")
local old = gui:FindFirstChild("Notifications")
if old then old:Destroy() end
local container = Instance.new("Frame")
container.Name = "Notifications"
container.Size = UDim2.fromOffset(280, 300)
container.Position = UDim2.new(1, -295, 0, 20)
container.BackgroundTransparency = 1
container.Parent = gui
local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 8)
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.VerticalAlignment = Enum.VerticalAlignment.Top
layout.Parent = container
local count = 0
local function Notify(message, duration)
duration = duration or 3
count += 1
local card = Instance.new("Frame")
card.Name = "Notification"
card.Size = UDim2.new(1, 0, 0, 64)
card.BackgroundColor3 = Color3.fromRGB(18, 23, 37)
card.BackgroundTransparency = 0.05
card.BorderSizePixel = 0
card.LayoutOrder = -count
card.Parent = container
Instance.new("UICorner", card).CornerRadius =
UDim.new(0, 10)
local stroke = Instance.new("UIStroke", card)
stroke.Color = Color3.fromRGB(0, 220, 255)
stroke.Thickness = 1.3
local bar = Instance.new("Frame")
bar.Size = UDim2.new(0, 4, 1, -16)
bar.Position = UDim2.fromOffset(7, 8)
bar.BackgroundColor3 = Color3.fromRGB(0, 220, 255)
bar.BorderSizePixel = 0
bar.Parent = card
Instance.new("UICorner", bar).CornerRadius =
UDim.new(1, 0)
local heading = Instance.new("TextLabel")
heading.Size = UDim2.new(1, -28, 0, 22)
heading.Position = UDim2.fromOffset(19, 7)
heading.BackgroundTransparency = 1
heading.Text = "RIVALS HUB"
heading.TextColor3 = Color3.fromRGB(0, 220, 255)
heading.Font = Enum.Font.GothamBold
heading.TextSize = 13
heading.TextXAlignment = Enum.TextXAlignment.Left
heading.Parent = card
local body = Instance.new("TextLabel")
body.Size = UDim2.new(1, -28, 0, 25)
body.Position = UDim2.fromOffset(19, 30)
body.BackgroundTransparency = 1
body.Text = tostring(message)
body.TextColor3 = Color3.fromRGB(225, 230, 240)
body.Font = Enum.Font.Gotham
body.TextSize = 12
body.TextWrapped = true
body.TextXAlignment = Enum.TextXAlignment.Left
body.Parent = card
card.Position = UDim2.fromOffset(300, 0)
card.BackgroundTransparency = 1
TweenService:Create(card, TweenInfo.new(
0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out
), {
Position = UDim2.fromOffset(0, 0),
BackgroundTransparency = 0.05
}):Play()
task.delay(duration, function()
if not card.Parent then return end
local out = TweenService:Create(card, TweenInfo.new(0.25), {
Position = UDim2.fromOffset(300, 0),
BackgroundTransparency = 1
})
out:Play()
out.Completed:Wait()
if card.Parent then
card:Destroy()
end
end)
end
-- Example notifications
Notify("Hub loaded successfully!", 3)
task.delay(1, function()
Notify("Notification system ready.", 3)
end)
-- Call this anywhere in your script:
-- Notify("Crosshair enabled!")
-- Notify("Theme changed to purple!")
-- RIVALS HUB | SAVE SETTINGS
-- Delta executor file support required.
local HttpService = game:GetService("HttpService")
local FILE_NAME = "RivalsHubSettings.json"
local defaults = {
Theme = "Cyan",
CrosshairSize = 30,
CrosshairColor = "Green",
CrosshairShape = "Lines"
}
local settings = table.clone(defaults)
local function saveSettings()
if type(writefile) ~= "function" then
warn("File saving is not supported by this executor.")
return false
end
local ok, result = pcall(function()
writefile(FILE_NAME, HttpService:JSONEncode(settings))
end)
if not ok then
warn("Could not save settings:", result)
return false
end
return true
end
local function loadSettings()
if type(isfile) ~= "function"
or type(readfile) ~= "function"
or not isfile(FILE_NAME) then
return
end
local ok, data = pcall(function()
return HttpService:JSONDecode(readfile(FILE_NAME))
end)
if not ok or type(data) ~= "table" then
warn("Settings file was invalid; using defaults.")
return
end
for key, defaultValue in pairs(defaults) do
if typeof(data[key]) == typeof(defaultValue) then
settings[key] = data[key]
end
end
end
loadSettings()
-- Use these functions in your existing feature callbacks.
local function setTheme(name)
settings.Theme = name
-- Call your existing applyTheme(name) here.
saveSettings()
end
local function setCrosshairSize(size)
settings.CrosshairSize = math.clamp(
math.floor(tonumber(size) or 30), 10, 100
)
-- Call your existing setSize(settings.CrosshairSize) here.
saveSettings()
end
local function setCrosshairColor(name)
settings.CrosshairColor = name
-- Update your crosshair color here.
saveSettings()
end
local function setCrosshairShape(name)
settings.CrosshairShape = name
-- Update your crosshair shape here.
saveSettings()
end
-- Example:
-- setTheme("Purple")
-- setCrosshairSize(45)
-- setCrosshairColor("Cyan")
-- setCrosshairShape("Dot")
print("Rivals Hub settings loaded:", settings.Theme)
-- RIVALS HUB | ANIMATED INTRO
-- Delta executor | Uses existing gui and main
local TweenService = game:GetService("TweenService")
main.Visible = false
local intro = Instance.new("Frame")
intro.Name = "AnimatedIntro"
intro.Size = UDim2.fromScale(1, 1)
intro.BackgroundColor3 = Color3.fromRGB(8, 10, 18)
intro.BackgroundTransparency = 1
intro.BorderSizePixel = 0
intro.ZIndex = 100
intro.Parent = gui
local scale = Instance.new("UIScale")
scale.Scale = 0.8
scale.Parent = intro
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 65)
title.Position = UDim2.new(0, 0, 0.35, 0)
title.BackgroundTransparency = 1
title.Text = "RIVALS HUB"
title.TextColor3 = Color3.fromRGB(0, 255, 255)
title.TextTransparency = 1
title.Font = Enum.Font.GothamBlack
title.TextScaled = true
title.ZIndex = 101
title.Parent = intro
local subtitle = Instance.new("TextLabel")
subtitle.Size = UDim2.new(1, 0, 0, 30)
subtitle.Position = UDim2.new(0, 0, 0.46, 0)
subtitle.BackgroundTransparency = 1
subtitle.Text = "INITIALIZING SYSTEM..."
subtitle.TextColor3 = Color3.fromRGB(180, 195, 215)
subtitle.TextTransparency = 1
subtitle.Font = Enum.Font.GothamMedium
subtitle.TextScaled = true
subtitle.ZIndex = 101
subtitle.Parent = intro
local barBack = Instance.new("Frame")
barBack.Size = UDim2.new(0.55, 0, 0, 5)
barBack.Position = UDim2.new(0.225, 0, 0.56, 0)
barBack.BackgroundColor3 = Color3.fromRGB(30, 38, 52)
barBack.BorderSizePixel = 0
barBack.ZIndex = 101
barBack.Parent = intro
Instance.new("UICorner", barBack).CornerRadius = UDim.new(1, 0)
local bar = Instance.new("Frame")
bar.Size = UDim2.new(0, 0, 1, 0)
bar.BackgroundColor3 = Color3.fromRGB(0, 255, 255)
bar.BorderSizePixel = 0
bar.ZIndex = 102
bar.Parent = barBack
Instance.new("UICorner", bar).CornerRadius = UDim.new(1, 0)
local function tween(obj, time, props)
local t = TweenService:Create(
obj,
TweenInfo.new(time, Enum.EasingStyle.Quint, Enum.EasingDirection.Out),
props
)
t:Play()
return t
end
tween(intro, 0.45, {BackgroundTransparency = 0})
tween(scale, 0.6, {Scale = 1})
tween(title, 0.7, {TextTransparency = 0})
task.wait(0.25)
tween(subtitle, 0.5, {TextTransparency = 0})
local loading = tween(bar, 1.8, {Size = UDim2.new(1, 0, 1, 0)})
loading.Completed:Wait()
subtitle.Text = "WELCOME TO RIVALS HUB"
task.wait(0.45)
tween(title, 0.3, {TextTransparency = 1})
tween(subtitle, 0.3, {TextTransparency = 1})
tween(barBack, 0.3, {BackgroundTransparency = 1})
tween(bar, 0.3, {BackgroundTransparency = 1})
tween(intro, 0.4, {BackgroundTransparency = 1})
tween(scale, 0.4, {Scale = 1.1})
task.wait(0.45)
intro:Destroy()
main.Visible = true
print("RIVALS HUB intro complete!")-- RIVALS HUB | GLASS + NEON UI UPGRADE
-- Delta executor | Uses existing gui and main
local TweenService = game:GetService("TweenService")
local cyan = Color3.fromRGB(0, 255, 245)
local purple = Color3.fromRGB(150, 75, 255)
local dark = Color3.fromRGB(12, 15, 28)
-- Main panel styling
main.BackgroundColor3 = dark
main.BackgroundTransparency = 0.08
main.BorderSizePixel = 0
main.ClipsDescendants = false
-- Rounded main panel
local corner = main:FindFirstChildOfClass("UICorner")
if not corner then
corner = Instance.new("UICorner")
corner.Parent = main
end
corner.CornerRadius = UDim.new(0, 14)
-- Neon outline
local stroke = main:FindFirstChildOfClass("UIStroke")
if not stroke then
stroke = Instance.new("UIStroke")
stroke.Parent = main
end
stroke.Color = cyan
stroke.Thickness = 1.5
stroke.Transparency = 0.12
stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
-- Gradient
local gradient = main:FindFirstChildOfClass("UIGradient")
if not gradient then
gradient = Instance.new("UIGradient")
gradient.Parent = main
end
gradient.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(18, 30, 48)),
ColorSequenceKeypoint.new(0.5, dark),
ColorSequenceKeypoint.new(1, Color3.fromRGB(30, 16, 48))
})
gradient.Rotation = 35
-- Animated neon border
task.spawn(function()
while main.Parent do
TweenService:Create(
stroke,
TweenInfo.new(1.3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut),
{Color = purple}
):Play()
task.wait(1.3)
if not main.Parent then break end
TweenService:Create(
stroke,
TweenInfo.new(1.3, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut),
{Color = cyan}
):Play()
task.wait(1.3)
end
end)
-- Smooth button hover effects
for _, obj in ipairs(main:GetDescendants()) do
if obj:IsA("TextButton") then
obj.AutoButtonColor = false
if not obj:FindFirstChildOfClass("UICorner") then
local c = Instance.new("UICorner")
c.CornerRadius = UDim.new(0, 8)
c.Parent = obj
end
local original = obj.BackgroundColor3
obj.MouseEnter:Connect(function()
TweenService:Create(obj, TweenInfo.new(0.18), {
BackgroundColor3 = cyan,
BackgroundTransparency = 0.08
}):Play()
if obj.TextColor3 then
TweenService:Create(obj, TweenInfo.new(0.18), {
TextColor3 = dark
}):Play()
end
end)
obj.MouseLeave:Connect(function()
if obj.Parent then
TweenService:Create(obj, TweenInfo.new(0.18), {
BackgroundColor3 = original,
TextColor3 = Color3.fromRGB(240, 245, 255)
}):Play()
end
end)
end
end
-- Smooth entrance
local originalSize = main.Size
main.Size = UDim2.new(
originalSize.X.Scale * 0.92,
originalSize.X.Offset * 0.92,
originalSize.Y.Scale * 0.92,
originalSize.Y.Offset * 0.92
)
main.Visible = true
TweenService:Create(
main,
TweenInfo.new(0.45, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
{Size = originalSize}
):Play()
print("RIVALS HUB: Glass + Neon effects enabled!")-- RIVALS HUB | LIVE PERFORMANCE DASHBOARD
-- Delta executor | Standalone UI panel
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Stats = game:GetService("Stats")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local pg = player:WaitForChild("PlayerGui")
-- Find existing GUI or create a new one
local dashboardGui = gui
if not dashboardGui then
dashboardGui = Instance.new("ScreenGui")
dashboardGui.Name = "RivalsPerformance"
dashboardGui.ResetOnSpawn = false
dashboardGui.Parent = pg
end
local panel = Instance.new("Frame")
panel.Name = "PerformanceDashboard"
panel.Size = UDim2.fromOffset(255, 172)
panel.Position = UDim2.new(1, -275, 0, 100)
panel.BackgroundColor3 = Color3.fromRGB(12, 16, 29)
panel.BackgroundTransparency = 0.06
panel.BorderSizePixel = 0
panel.Active = true
panel.Draggable = true
panel.Parent = dashboardGui
Instance.new("UICorner", panel).CornerRadius = UDim.new(0, 14)
local outline = Instance.new("UIStroke")
outline.Color = Color3.fromRGB(0, 240, 255)
outline.Thickness = 1.5
outline.Parent = panel
local gradient = Instance.new("UIGradient")
gradient.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(23, 39, 61)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(17, 12, 34))
})
gradient.Rotation = 35
gradient.Parent = panel
local function makeLabel(name, text, y, size)
local label = Instance.new("TextLabel")
label.Name = name
label.Position = UDim2.fromOffset(14, y)
label.Size = UDim2.new(1, -28, 0, size or 25)
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = Color3.fromRGB(230, 240, 255)
label.TextSize = 14
label.Font = Enum.Font.GothamMedium
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = panel
return label
end
local title = makeLabel("Title", "◈ PERFORMANCE", 9, 27)
title.Font = Enum.Font.GothamBold
title.TextColor3 = Color3.fromRGB(0, 245, 255)
local fpsLabel = makeLabel("FPS", "FPS --", 43)
local pingLabel = makeLabel("Ping", "PING --", 72)
local timeLabel = makeLabel("Session", "SESSION 00:00", 101)
local close = Instance.new("TextButton")
close.Size = UDim2.fromOffset(27, 25)
close.Position = UDim2.new(1, -34, 0, 8)
close.BackgroundColor3 = Color3.fromRGB(42, 48, 67)
close.Text = "×"
close.TextColor3 = Color3.new(1, 1, 1)
close.TextSize = 20
close.Font = Enum.Font.GothamBold
close.Parent = panel
Instance.new("UICorner", close).CornerRadius = UDim.new(0, 7)
local reopen = Instance.new("TextButton")
reopen.Size = UDim2.fromOffset(125, 34)
reopen.Position = UDim2.new(1, -140, 0, 100)
reopen.BackgroundColor3 = Color3.fromRGB(12, 20, 35)
reopen.Text = "◈ PERFORMANCE"
reopen.TextColor3 = Color3.fromRGB(0, 245, 255)
reopen.TextSize = 12
reopen.Font = Enum.Font.GothamBold
reopen.Visible = false
reopen.Parent = dashboardGui
Instance.new("UICorner", reopen).CornerRadius = UDim.new(0, 9)
local border2 = Instance.new("UIStroke")
border2.Color = Color3.fromRGB(0, 245, 255)
border2.Parent = reopen
close.MouseButton1Click:Connect(function()
panel.Visible = false
reopen.Visible = true
end)
reopen.MouseButton1Click:Connect(function()
panel.Visible = true
reopen.Visible = false
end)
local startTime = os.clock()
local frames = 0
local lastUpdate = os.clock()
local connection
connection = RunService.RenderStepped:Connect(function()
if not panel.Parent then
connection:Disconnect()
return
end
frames += 1
local now = os.clock()
if now - lastUpdate >= 1 then
local fps = math.floor(frames / (now - lastUpdate))
frames = 0
lastUpdate = now
fpsLabel.Text = "FPS " .. fps
fpsLabel.TextColor3 = fps >= 50
and Color3.fromRGB(90, 255, 160)
or Color3.fromRGB(255, 205, 90)
local pingText = "--"
local ok, result = pcall(function()
return Stats.Network.ServerStatsItem["Data Ping"]:GetValue()
end)
if ok and typeof(result) == "number" then
pingText = math.floor(result + 0.5) .. " ms"
end
pingLabel.Text = "PING " .. pingText
local elapsed = math.floor(now - startTime)
local mins = math.floor(elapsed / 60)
local secs = elapsed % 60
timeLabel.Text = string.format("SESSION %02d:%02d", mins, secs)
end
end)
-- Animate the border between cyan and purple
task.spawn(function()
while panel.Parent do
TweenService:Create(outline, TweenInfo.new(1.2), {
Color = Color3.fromRGB(155, 90, 255)
}):Play()
task.wait(1.2)
if not panel.Parent then break end
TweenService:Create(outline, TweenInfo.new(1.2), {
Color = Color3.fromRGB(0, 245, 255)
}):Play()
task.wait(1.2)
end
end)
print("RIVALS HUB: Performance dashboard loaded!")
-- RIVALS HUB | ADVANCED CROSSHAIR EDITOR
-- Delta executor | Standalone UI
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local pg = player:WaitForChild("PlayerGui")
local old = pg:FindFirstChild("RivalsCrosshairEditor")
if old then old:Destroy() end
local gui = Instance.new("ScreenGui")
gui.Name = "RivalsCrosshairEditor"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = pg
local cyan = Color3.fromRGB(0, 245, 255)
local purple = Color3.fromRGB(155, 90, 255)
local white = Color3.fromRGB(240, 245, 255)
local settings = {
Size = 12,
Gap = 5,
Thickness = 2,
Color = cyan,
Dot = false,
Outline = true
}
-- Crosshair display
local cross = Instance.new("Frame")
cross.Name = "Crosshair"
cross.AnchorPoint = Vector2.new(0.5, 0.5)
cross.Position = UDim2.fromScale(0.5, 0.5)
cross.Size = UDim2.fromOffset(1, 1)
cross.BackgroundTransparency = 1
cross.Parent = gui
local pieces = {}
local function createPiece()
local f = Instance.new("Frame")
f.BorderSizePixel = 0
f.BackgroundColor3 = settings.Color
f.Parent = cross
local c = Instance.new("UICorner")
c.CornerRadius = UDim.new(0, 1)
c.Parent = f
local s = Instance.new("UIStroke")
s.Name = "Outline"
s.Color = Color3.new(0, 0, 0)
s.Thickness = 1
s.Enabled = settings.Outline
s.Parent = f
table.insert(pieces, f)
return f
end
for i = 1, 4 do createPiece() end
local dot = createPiece()
local function refresh()
local size = settings.Size
local gap = settings.Gap
local thick = settings.Thickness
local positions = {
{UDim2.fromOffset(-thick/2, -gap-size), UDim2.fromOffset(thick, size)},
{UDim2.fromOffset(-thick/2, gap), UDim2.fromOffset(thick, size)},
{UDim2.fromOffset(-gap-size, -thick/2), UDim2.fromOffset(size, thick)},
{UDim2.fromOffset(gap, -thick/2), UDim2.fromOffset(size, thick)}
}
for i = 1, 4 do
pieces[i].Position = positions[i][1]
pieces[i].Size = positions[i][2]
pieces[i].BackgroundColor3 = settings.Color
pieces[i].Visible = not settings.Dot
pieces[i].Outline.Enabled = settings.Outline
end
dot.Position = UDim2.fromOffset(-thick/2, -thick/2)
dot.Size = UDim2.fromOffset(thick, thick)
dot.BackgroundColor3 = settings.Color
dot.Visible = settings.Dot
dot.Outline.Enabled = settings.Outline
end
-- Editor panel
local panel = Instance.new("Frame")
panel.Size = UDim2.fromOffset(285, 385)
panel.Position = UDim2.new(0, 25, 0.5, -192)
panel.BackgroundColor3 = Color3.fromRGB(13, 17, 30)
panel.BorderSizePixel = 0
panel.Active = true
panel.Draggable = true
panel.Parent = gui
Instance.new("UICorner", panel).CornerRadius = UDim.new(0, 14)
local stroke = Instance.new("UIStroke")
stroke.Color = cyan
stroke.Thickness = 1.5
stroke.Parent = panel
local gradient = Instance.new("UIGradient")
gradient.Color = ColorSequence.new(
Color3.fromRGB(25, 38, 60),
Color3.fromRGB(17, 13, 36)
)
gradient.Rotation = 35
gradient.Parent = panel
local function label(text, y)
local l = Instance.new("TextLabel")
l.Position = UDim2.fromOffset(14, y)
l.Size = UDim2.new(1, -28, 0, 24)
l.BackgroundTransparency = 1
l.Text = text
l.TextColor3 = white
l.TextSize = 13
l.Font = Enum.Font.GothamMedium
l.TextXAlignment = Enum.TextXAlignment.Left
l.Parent = panel
return l
end
local title = label("✦ CROSSHAIR CUSTOMIZER", 10)
title.Font = Enum.Font.GothamBold
title.TextColor3 = cyan
local function button(text, x, y, w, callback)
local b = Instance.new("TextButton")
b.Position = UDim2.fromOffset(x, y)
b.Size = UDim2.fromOffset(w, 29)
b.BackgroundColor3 = Color3.fromRGB(31, 39, 57)
b.Text = text
b.TextColor3 = white
b.TextSize = 12
b.Font = Enum.Font.GothamBold
b.AutoButtonColor = false
b.Parent = panel
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 7)
b.MouseEnter:Connect(function()
TweenService:Create(b, TweenInfo.new(0.15), {
BackgroundColor3 = Color3.fromRGB(45, 65, 90)
}):Play()
end)
b.MouseLeave:Connect(function()
TweenService:Create(b, TweenInfo.new(0.15), {
BackgroundColor3 = Color3.fromRGB(31, 39, 57)
}):Play()
end)
b.MouseButton1Click:Connect(callback)
return b
end
local sizeText = label("", 44)
local gapText = label("", 99)
local thickText = label("", 154)
local function updateLabels()
sizeText.Text = "SIZE: " .. settings.Size
gapText.Text = "GAP: " .. settings.Gap
thickText.Text = "THICKNESS: " .. settings.Thickness
end
button("−", 14, 68, 45, function()
settings.Size = math.max(4, settings.Size - 2)
refresh(); updateLabels()
end)
button("+", 68, 68, 45, function()
settings.Size = math.min(40, settings.Size + 2)
refresh(); updateLabels()
end)
button("−", 14, 123, 45, function()
settings.Gap = math.max(0, settings.Gap - 1)
refresh(); updateLabels()
end)
button("+", 68, 123, 45, function()
settings.Gap = math.min(25, settings.Gap + 1)
refresh(); updateLabels()
end)
button("−", 14, 178, 45, function()
settings.Thickness = math.max(1, settings.Thickness - 1)
refresh(); updateLabels()
end)
button("+", 68, 178, 45, function()
settings.Thickness = math.min(6, settings.Thickness + 1)
refresh(); updateLabels()
end)
label("COLOR", 214)
local colors = {
{"CYAN", cyan},
{"PURPLE", purple},
{"GREEN", Color3.fromRGB(70, 255, 120)},
{"RED", Color3.fromRGB(255, 75, 90)},
{"WHITE", white}
}
for i, item in ipairs(colors) do
button(item[1], 14 + ((i-1)%3)*85, 240 + math.floor((i-1)/3)*35, 78, function()
settings.Color = item[2]
refresh()
end)
end
button("DOT: OFF", 14, 316, 120, function()
settings.Dot = not settings.Dot
refresh()
end).MouseButton1Click:Connect(function() end)
-- Separate functional toggles
local dotButton = button("TOGGLE DOT", 14, 316, 120, function()
settings.Dot = not settings.Dot
refresh()
end)
local outlineButton = button("OUTLINE: ON", 146, 316, 125, function()
settings.Outline = not settings.Outline
refresh()
end)
-- Remove the duplicate dot button and use the named control.
for _, child in ipairs(panel:GetChildren()) do
if child:IsA("TextButton") and child.Text == "DOT: OFF" then
child:Destroy()
end
end
dotButton.MouseButton1Click:Connect(function()
dotButton.Text = settings.Dot and "DOT: ON" or "DOT: OFF"
end)
outlineButton.MouseButton1Click:Connect(function()
outlineButton.Text = settings.Outline and "OUTLINE: ON" or "OUTLINE: OFF"
end)
button("RESET", 14, 352, 257, function()
settings.Size = 12
settings.Gap = 5
settings.Thickness = 2
settings.Color = cyan
settings.Dot = false
settings.Outline = true
refresh()
updateLabels()
dotButton.Text = "DOT: OFF"
outlineButton.Text = "OUTLINE: ON"
end)
refresh()
updateLabels()
print("RIVALS HUB: Crosshair editor loaded!")
-- RIVALS HUB | PREMIUM SETTINGS
-- Delta executor | Standalone UI
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UIS = game:GetService("UserInputService")
local player = Players.LocalPlayer
local pg = player:WaitForChild("PlayerGui")
local old = pg:FindFirstChild("RivalsPremiumSettings")
if old then old:Destroy() end
local gui = Instance.new("ScreenGui")
gui.Name = "RivalsPremiumSettings"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = pg
local cyan = Color3.fromRGB(0, 245, 255)
local purple = Color3.fromRGB(155, 90, 255)
local dark = Color3.fromRGB(13, 17, 30)
local white = Color3.fromRGB(240, 245, 255)
local settings = {
Notifications = true,
Animations = true,
ShowCrosshair = true,
CompactMode = false,
Theme = "Cyan"
}
local themeColor = cyan
local panel = Instance.new("Frame")
panel.Name = "SettingsPanel"
panel.Size = UDim2.fromOffset(330, 390)
panel.Position = UDim2.new(0.5, -165, 0.5, -195)
panel.BackgroundColor3 = dark
panel.BorderSizePixel = 0
panel.Active = true
panel.Parent = gui
Instance.new("UICorner", panel).CornerRadius = UDim.new(0, 16)
local outline = Instance.new("UIStroke")
outline.Color = cyan
outline.Thickness = 1.5
outline.Parent = panel
local gradient = Instance.new("UIGradient")
gradient.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(25, 37, 59)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(17, 13, 35))
})
gradient.Rotation = 35
gradient.Parent = panel
-- Drag panel using header
local header = Instance.new("TextButton")
header.Size = UDim2.new(1, -55, 0, 50)
header.BackgroundTransparency = 1
header.Text = "✦ RIVALS SETTINGS"
header.TextColor3 = cyan
header.TextSize = 17
header.Font = Enum.Font.GothamBold
header.Parent = panel
local dragging, dragStart, startPos
header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = panel.Position
end
end)
UIS.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
panel.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
end
end)
UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
local close = Instance.new("TextButton")
close.Size = UDim2.fromOffset(30, 30)
close.Position = UDim2.new(1, -39, 0, 10)
close.BackgroundColor3 = Color3.fromRGB(45, 50, 70)
close.Text = "×"
close.TextColor3 = white
close.TextSize = 22
close.Font = Enum.Font.GothamBold
close.Parent = panel
Instance.new("UICorner", close).CornerRadius = UDim.new(0, 8)
local function makeButton(text, y, callback)
local b = Instance.new("TextButton")
b.Size = UDim2.new(1, -28, 0, 36)
b.Position = UDim2.fromOffset(14, y)
b.BackgroundColor3 = Color3.fromRGB(29, 37, 55)
b.Text = text
b.TextColor3 = white
b.TextSize = 13
b.Font = Enum.Font.GothamMedium
b.TextXAlignment = Enum.TextXAlignment.Left
b.AutoButtonColor = false
b.Parent = panel
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 9)
b.MouseEnter:Connect(function()
TweenService:Create(b, TweenInfo.new(0.15), {
BackgroundColor3 = Color3.fromRGB(42, 55, 78)
}):Play()
end)
b.MouseLeave:Connect(function()
TweenService:Create(b, TweenInfo.new(0.15), {
BackgroundColor3 = Color3.fromRGB(29, 37, 55)
}):Play()
end)
b.MouseButton1Click:Connect(callback)
return b
end
local function makeToggle(name, key, y)
local b = makeButton("", y, function()
settings[key] = not settings[key]
b.Text = name .. " " .. (settings[key] and "● ON" or "○ OFF")
b.TextColor3 = settings[key] and themeColor or white
end)
b.Text = name .. " " .. (settings[key] and "● ON" or "○ OFF")
b.TextColor3 = settings[key] and themeColor or white
end
makeToggle("Notifications", "Notifications", 65)
makeToggle("UI Animations", "Animations", 109)
makeToggle("Show Crosshair", "ShowCrosshair", 153)
makeToggle("Compact Mode", "CompactMode", 197)
local themeLabel = Instance.new("TextLabel")
themeLabel.Size = UDim2.new(1, -28, 0, 24)
themeLabel.Position = UDim2.fromOffset(14, 244)
themeLabel.BackgroundTransparency = 1
themeLabel.Text = "ACCENT COLOR"
themeLabel.TextColor3 = white
themeLabel.TextSize = 12
themeLabel.Font = Enum.Font.GothamBold
themeLabel.TextXAlignment = Enum.TextXAlignment.Left
themeLabel.Parent = panel
local function applyTheme(color, name)
themeColor = color
settings.Theme = name
outline.Color = color
header.TextColor3 = color
for _, item in ipairs(panel:GetDescendants()) do
if item:IsA("TextButton") and item ~= close then
if item.Text:find("ON") then
item.TextColor3 = color
end
end
end
end
local themeColors = {
{"CYAN", cyan},
{"PURPLE", purple},
{"GREEN", Color3.fromRGB(70, 255, 120)},
{"RED", Color3.fromRGB(255, 75, 90)}
}
for i, item in ipairs(themeColors) do
local b = Instance.new("TextButton")
b.Size = UDim2.fromOffset(70, 32)
b.Position = UDim2.fromOffset(14 + (i - 1) * 77, 272)
b.BackgroundColor3 = Color3.fromRGB(29, 37, 55)
b.Text = item[1]
b.TextColor3 = item[2]
b.TextSize = 11
b.Font = Enum.Font.GothamBold
b.Parent = panel
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 8)
b.MouseButton1Click:Connect(function()
applyTheme(item[2], item[1])
end)
end
local status = Instance.new("TextLabel")
status.Size = UDim2.new(1, -28, 0, 24)
status.Position = UDim2.fromOffset(14, 326)
status.BackgroundTransparency = 1
status.Text = "● SETTINGS READY"
status.TextColor3 = cyan
status.TextSize = 11
status.Font = Enum.Font.GothamMedium
status.TextXAlignment = Enum.TextXAlignment.Left
status.Parent = panel
local reopen = Instance.new("TextButton")
reopen.Size = UDim2.fromOffset(135, 38)
reopen.Position = UDim2.new(0, 20, 0.5, 0)
reopen.BackgroundColor3 = dark
reopen.Text = "✦ SETTINGS"
reopen.TextColor3 = cyan
reopen.TextSize = 13
reopen.Font = Enum.Font.GothamBold
reopen.Visible = false
reopen.Parent = gui
Instance.new("UICorner", reopen).CornerRadius = UDim.new(0, 10)
local reopenStroke = Instance.new("UIStroke")
reopenStroke.Color = cyan
reopenStroke.Parent = reopen
close.MouseButton1Click:Connect(function()
panel.Visible = false
reopen.Visible = true
end)
reopen.MouseButton1Click:Connect(function()
panel.Visible = true
reopen.Visible = false
end)
-- Entrance animation
panel.Position = UDim2.new(0.5, -165, 0.5, -175)
panel.BackgroundTransparency = 1
TweenService:Create(panel, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {
Position = UDim2.new(0.5, -165, 0.5, -195),
BackgroundTransparency = 0
}):Play()
-- Animated accent border
task.spawn(function()
while gui.Parent do
TweenService:Create(outline, TweenInfo.new(1.4), {
Color = purple
}):Play()
task.wait(1.4)
if not gui.Parent then break end
TweenService:Create(outline, TweenInfo.new(1.4), {
Color = themeColor
}):Play()
task.wait(1.4)
end
end)
print("RIVALS HUB: Premium settings loaded!")
-- RIVALS HUB | KILL EVENT NOTIFICATIONS
-- Delta executor | Standalone UI demo
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local pg = player:WaitForChild("PlayerGui")
local old = pg:FindFirstChild("RivalsKillNotifications")
if old then old:Destroy() end
local gui = Instance.new("ScreenGui")
gui.Name = "RivalsKillNotifications"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = pg
local cyan = Color3.fromRGB(0, 245, 255)
local purple = Color3.fromRGB(155, 90, 255)
local container = Instance.new("Frame")
container.Name = "NotificationContainer"
container.Size = UDim2.fromOffset(300, 300)
container.Position = UDim2.new(1, -320, 0, 90)
container.BackgroundTransparency = 1
container.Parent = gui
local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 9)
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.VerticalAlignment = Enum.VerticalAlignment.Top
layout.Parent = container
local counter = 0
local function Notify(titleText, messageText, duration)
counter += 1
local card = Instance.new("Frame")
card.Name = "KillEvent_" .. counter
card.Size = UDim2.new(1, 0, 0, 68)
card.BackgroundColor3 = Color3.fromRGB(14, 19, 34)
card.BackgroundTransparency = 0.08
card.BorderSizePixel = 0
card.LayoutOrder = -counter
card.Parent = container
Instance.new("UICorner", card).CornerRadius = UDim.new(0, 12)
local border = Instance.new("UIStroke")
border.Color = cyan
border.Thickness = 1.3
border.Parent = card
local accent = Instance.new("Frame")
accent.Size = UDim2.new(0, 4, 1, -18)
accent.Position = UDim2.fromOffset(8, 9)
accent.BackgroundColor3 = cyan
accent.BorderSizePixel = 0
accent.Parent = card
Instance.new("UICorner", accent).CornerRadius = UDim.new(1, 0)
local title = Instance.new("TextLabel")
title.Position = UDim2.fromOffset(22, 9)
title.Size = UDim2.new(1, -32, 0, 23)
title.BackgroundTransparency = 1
title.Text = "✦ " .. titleText
title.TextColor3 = cyan
title.TextSize = 14
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = card
local message = Instance.new("TextLabel")
message.Position = UDim2.fromOffset(22, 34)
message.Size = UDim2.new(1, -32, 0, 22)
message.BackgroundTransparency = 1
message.Text = messageText
message.TextColor3 = Color3.fromRGB(220, 228, 242)
message.TextSize = 12
message.Font = Enum.Font.GothamMedium
message.TextXAlignment = Enum.TextXAlignment.Left
message.Parent = card
-- Slide in
card.Position = UDim2.fromOffset(320, 0)
TweenService:Create(card, TweenInfo.new(
0.35, Enum.EasingStyle.Quint, Enum.EasingDirection.Out
), {
Position = UDim2.fromOffset(0, 0)
}):Play()
task.spawn(function()
local durationValue = math.max(1, tonumber(duration) or 3)
task.wait(durationValue)
if not card.Parent then return end
local out = TweenService:Create(card, TweenInfo.new(0.25), {
BackgroundTransparency = 1,
Position = UDim2.fromOffset(320, 0)
})
for _, obj in ipairs(card:GetDescendants()) do
if obj:IsA("TextLabel") then
TweenService:Create(obj, TweenInfo.new(0.25), {
TextTransparency = 1
}):Play()
elseif obj:IsA("UIStroke") then
TweenService:Create(obj, TweenInfo.new(0.25), {
Transparency = 1
}):Play()
end
end
out:Play()
out.Completed:Wait()
card:Destroy()
end)
end
-- Demo notifications so you can test the animation
Notify("RIVALS HUB", "Notification system ready!", 3)
-- Call this function elsewhere in this script to display your own:
-- Notify("ELIMINATION", "Event detected!", 3)
-- Notify("STREAK", "3 events in a row!", 3)
print("RIVALS HUB: Notification UI loaded!")
Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.


Your community, in one place