EeletricRL *keyless* HUB remake ; V2 release
Key RequiredUniversal

EeletricRL *keyless* HUB remake ; V2 release

Universal ScriptJaydenliang0312Jaydenliang0312 571 views 40 executesUpdated Sep 10, 2026
Unrated
00
Lua Script•1041 lines (26003 chars)
--[[
    Ultra-Premium Client-Sided GUI Script
    Roblox Luau
]]

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

local LocalPlayer = Players.LocalPlayer

--==================================================
-- MAIN GUI
--==================================================

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "AeroVapor_Utility"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

if syn and syn.protect_gui then
    syn.protect_gui(ScreenGui)
elseif gethui then
    ScreenGui.Parent = gethui()
else
    ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
end

--==================================================
-- MAIN FRAME
--==================================================

local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 260, 0, 365)
MainFrame.Position = UDim2.new(0.5, -130, 0.4, -182)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 16, 22)
MainFrame.BackgroundTransparency = 0.15
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui

local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 16)
UICorner.Parent = MainFrame

local UIStroke = Instance.new("UIStroke")
UIStroke.Color = Color3.fromRGB(0, 212, 255)
UIStroke.Thickness = 2
UIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
UIStroke.Parent = MainFrame

--==================================================
-- TOP BANNER
--==================================================

local TopBanner = Instance.new("Frame")
TopBanner.Name = "TopBanner"
TopBanner.Size = UDim2.new(1, 0, 0, 45)
TopBanner.BackgroundColor3 = Color3.fromRGB(24, 25, 35)
TopBanner.BorderSizePixel = 0
TopBanner.Parent = MainFrame

local TopCorner = Instance.new("UICorner")
TopCorner.CornerRadius = UDim.new(0, 16)
TopCorner.Parent = TopBanner

local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(1, -70, 1, 0)
TitleLabel.Position = UDim2.new(0, 10, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "⚡ VAPOR SYSTEM"
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextSize = 14
TitleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Parent = TopBanner

--==================================================
-- HEADER BUTTONS
--==================================================

local ControlsContainer = Instance.new("Frame")
ControlsContainer.Size = UDim2.new(0, 60, 1, 0)
ControlsContainer.Position = UDim2.new(1, -65, 0, 0)
ControlsContainer.BackgroundTransparency = 1
ControlsContainer.Parent = TopBanner

local ControlsLayout = Instance.new("UIListLayout")
ControlsLayout.FillDirection = Enum.FillDirection.Horizontal
ControlsLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right
ControlsLayout.VerticalAlignment = Enum.VerticalAlignment.Center
ControlsLayout.Padding = UDim.new(0, 6)
ControlsLayout.Parent = ControlsContainer

local function createHeaderButton(text, color)
    local btn = Instance.new("TextButton")

    btn.Size = UDim2.new(0, 24, 0, 24)
    btn.BackgroundColor3 = color
    btn.Font = Enum.Font.GothamBold
    btn.TextSize = 12
    btn.TextColor3 = Color3.fromRGB(255, 255, 255)
    btn.Text = text
    btn.AutoButtonColor = false

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

    btn.Parent = ControlsContainer

    return btn
end

local MinimizeBtn = createHeaderButton(
    "-",
    Color3.fromRGB(45, 48, 60)
)

local CloseBtn = createHeaderButton(
    "X",
    Color3.fromRGB(235, 77, 75)
)

--==================================================
-- MAIN CONTENT
--==================================================

local Container = Instance.new("Frame")
Container.Size = UDim2.new(1, 0, 1, -45)
Container.Position = UDim2.new(0, 0, 0, 45)
Container.BackgroundTransparency = 1
Container.Parent = MainFrame

local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Padding = UDim.new(0, 10)
UIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Parent = Container

local UIPadding = Instance.new("UIPadding")
UIPadding.PaddingTop = UDim.new(0, 10)
UIPadding.Parent = Container

--==================================================
-- COLORS
--==================================================

local COLOR_OFF = Color3.fromRGB(255, 74, 74)
local COLOR_ON = Color3.fromRGB(0, 230, 118)
local COLOR_ACTION = Color3.fromRGB(33, 150, 243)

--==================================================
-- TOGGLE ROW
--==================================================

local function createToggleRow(nameText, order)

    local RowFrame = Instance.new("Frame")
    RowFrame.Size = UDim2.new(0, 230, 0, 38)
    RowFrame.BackgroundTransparency = 1
    RowFrame.LayoutOrder = order
    RowFrame.Parent = Container

    local TextLabel = Instance.new("TextLabel")
    TextLabel.Size = UDim2.new(0, 160, 1, 0)
    TextLabel.BackgroundTransparency = 1
    TextLabel.Font = Enum.Font.GothamBold
    TextLabel.TextSize = 13
    TextLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
    TextLabel.TextXAlignment = Enum.TextXAlignment.Left
    TextLabel.Text = nameText
    TextLabel.Parent = RowFrame

    local ToggleBtn = Instance.new("TextButton")
    ToggleBtn.Size = UDim2.new(0, 50, 0, 24)
    ToggleBtn.Position = UDim2.new(1, -50, 0.5, -12)
    ToggleBtn.BackgroundColor3 = COLOR_OFF
    ToggleBtn.Text = ""
    ToggleBtn.AutoButtonColor = false
    ToggleBtn.Parent = RowFrame

    local ToggleCorner = Instance.new("UICorner")
    ToggleCorner.CornerRadius = UDim.new(1, 0)
    ToggleCorner.Parent = ToggleBtn

    local Slider = Instance.new("Frame")
    Slider.Size = UDim2.new(0, 18, 0, 18)
    Slider.Position = UDim2.new(0, 3, 0.5, -9)
    Slider.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
    Slider.BorderSizePixel = 0
    Slider.Parent = ToggleBtn

    local SliderCorner = Instance.new("UICorner")
    SliderCorner.CornerRadius = UDim.new(1, 0)
    SliderCorner.Parent = Slider

    return ToggleBtn, Slider
end

--==================================================
-- ACTION BUTTON
--==================================================

local function styleActionButton(btn, text, order)

    btn.Size = UDim2.new(0, 230, 0, 38)
    btn.Font = Enum.Font.GothamBold
    btn.TextSize = 13
    btn.TextColor3 = Color3.fromRGB(255, 255, 255)
    btn.Text = text
    btn.LayoutOrder = order
    btn.BackgroundColor3 = COLOR_ACTION
    btn.AutoButtonColor = false

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

    local btnStroke = Instance.new("UIStroke")
    btnStroke.Color = Color3.fromRGB(255, 255, 255)
    btnStroke.Transparency = 0.85
    btnStroke.Thickness = 1
    btnStroke.Parent = btn

    btn.MouseEnter:Connect(function()

        if MainFrame.Size == UDim2.new(0, 260, 0, 365) then

            TweenService:Create(
                btn,
                TweenInfo.new(
                    0.2,
                    Enum.EasingStyle.Back,
                    Enum.EasingDirection.Out
                ),
                {
                    Size = UDim2.new(0, 234, 0, 40)
                }
            ):Play()

            TweenService:Create(
                btnStroke,
                TweenInfo.new(0.2),
                {
                    Transparency = 0.5
                }
            ):Play()
        end
    end)

    btn.MouseLeave:Connect(function()

        if MainFrame.Size == UDim2.new(0, 260, 0, 365) then

            TweenService:Create(
                btn,
                TweenInfo.new(
                    0.2,
                    Enum.EasingStyle.Quad,
                    Enum.EasingDirection.Out
                ),
                {
                    Size = UDim2.new(0, 230, 0, 38)
                }
            ):Play()

            TweenService:Create(
                btnStroke,
                TweenInfo.new(0.2),
                {
                    Transparency = 0.85
                }
            ):Play()
        end
    end)

    btn.Parent = Container
end

--==================================================
-- COMPONENTS
--==================================================

local SpinBotBtn, SpinSlider =
    createToggleRow("spinBOT", 1)

local TpAwayBtn =
    Instance.new("TextButton")

styleActionButton(
    TpAwayBtn,
    "tpAWAY",
    2
)

local TpBtn =
    Instance.new("TextButton")

styleActionButton(
    TpBtn,
    "tp",
    3
)

local AngryTpBtn, AngrySlider =
    createToggleRow("angryTP", 4)

local TpUpBtn =
    Instance.new("TextButton")

styleActionButton(
    TpUpBtn,
    "tpUP",
    5
)

-- NEW SPEED TOGGLE
local SpeedBtn, SpeedSlider =
    createToggleRow("speed", 6)

--==================================================
-- STATE
--==================================================

local spinbotOn = false
local angryTpOn = false
local speedOn = false

local spinConnection
local angryTpConnection

local isMinimized = false

-- Speed starts at normal Roblox default
local currentSpeed = 16

--==================================================
-- TOGGLE ANIMATION
--==================================================

local function animateToggle(btn, slider, state)

    local targetPos =
        state
        and UDim2.new(1, -21, 0.5, -9)
        or UDim2.new(0, 3, 0.5, -9)

    local targetColor =
        state
        and COLOR_ON
        or COLOR_OFF

    TweenService:Create(
        slider,
        TweenInfo.new(
            0.2,
            Enum.EasingStyle.Quad,
            Enum.EasingDirection.Out
        ),
        {
            Position = targetPos
        }
    ):Play()

    TweenService:Create(
        btn,
        TweenInfo.new(
            0.2,
            Enum.EasingStyle.Quad,
            Enum.EasingDirection.Out
        ),
        {
            BackgroundColor3 = targetColor
        }
    ):Play()
end

--==================================================
-- CHARACTER HELPERS
--==================================================

local function getCharacter()
    return LocalPlayer.Character
end

local function getHumanoid()

    local character = getCharacter()

    if character then
        return character:FindFirstChildOfClass("Humanoid")
    end

    return nil
end

local function applySpeed()

    local humanoid = getHumanoid()

    if humanoid and speedOn then
        humanoid.WalkSpeed = currentSpeed
    end
end

--==================================================
-- TP HELPERS
--==================================================

local function getBehindCFrame(targetPlayer)

    if targetPlayer
        and targetPlayer.Character
        and targetPlayer.Character:FindFirstChild("HumanoidRootPart") then

        local targetRoot =
            targetPlayer.Character.HumanoidRootPart

        return targetRoot.CFrame * CFrame.new(0, 0, 3)
    end

    return nil
end

local function getRandomPlayer()

    local allPlayers = Players:GetPlayers()
    local available = {}

    for _, p in ipairs(allPlayers) do

        if p ~= LocalPlayer
            and p.Character
            and p.Character:FindFirstChild("HumanoidRootPart") then

            table.insert(available, p)
        end
    end

    if #available > 0 then
        return available[
            math.random(
                1,
                #available
            )
        ]
    end

    return nil
end

--==================================================
-- SPEED SETTINGS WINDOW
--==================================================

local SpeedWindow = Instance.new("Frame")
SpeedWindow.Name = "SpeedSettings"
SpeedWindow.Size = UDim2.new(0, 280, 0, 175)
SpeedWindow.Position = UDim2.new(0.5, -140, 0.5, -87)
SpeedWindow.BackgroundColor3 = Color3.fromRGB(15, 16, 22)
SpeedWindow.BackgroundTransparency = 0.05
SpeedWindow.BorderSizePixel = 0
SpeedWindow.Visible = false
SpeedWindow.Active = true
SpeedWindow.ZIndex = 20
SpeedWindow.Parent = ScreenGui

local SpeedWindowCorner = Instance.new("UICorner")
SpeedWindowCorner.CornerRadius = UDim.new(0, 16)
SpeedWindowCorner.Parent = SpeedWindow

local SpeedWindowStroke = Instance.new("UIStroke")
SpeedWindowStroke.Color = Color3.fromRGB(0, 212, 255)
SpeedWindowStroke.Thickness = 2
SpeedWindowStroke.Parent = SpeedWindow

-- Speed window top bar

local SpeedTop = Instance.new("Frame")
SpeedTop.Size = UDim2.new(1, 0, 0, 42)
SpeedTop.BackgroundColor3 = Color3.fromRGB(24, 25, 35)
SpeedTop.BorderSizePixel = 0
SpeedTop.ZIndex = 21
SpeedTop.Parent = SpeedWindow

local SpeedTopCorner = Instance.new("UICorner")
SpeedTopCorner.CornerRadius = UDim.new(0, 16)
SpeedTopCorner.Parent = SpeedTop

local SpeedTitle = Instance.new("TextLabel")
SpeedTitle.Size = UDim2.new(1, -55, 1, 0)
SpeedTitle.Position = UDim2.new(0, 12, 0, 0)
SpeedTitle.BackgroundTransparency = 1
SpeedTitle.Text = "⚡ Speed Settings"
SpeedTitle.Font = Enum.Font.GothamBold
SpeedTitle.TextSize = 14
SpeedTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
SpeedTitle.TextXAlignment = Enum.TextXAlignment.Left
SpeedTitle.ZIndex = 22
SpeedTitle.Parent = SpeedTop

local SpeedClose = Instance.new("TextButton")
SpeedClose.Size = UDim2.new(0, 25, 0, 25)
SpeedClose.Position = UDim2.new(1, -35, 0.5, -12)
SpeedClose.BackgroundColor3 = Color3.fromRGB(235, 77, 75)
SpeedClose.Text = "X"
SpeedClose.Font = Enum.Font.GothamBold
SpeedClose.TextSize = 11
SpeedClose.TextColor3 = Color3.fromRGB(255, 255, 255)
SpeedClose.AutoButtonColor = false
SpeedClose.ZIndex = 22
SpeedClose.Parent = SpeedTop

local SpeedCloseCorner = Instance.new("UICorner")
SpeedCloseCorner.CornerRadius = UDim.new(1, 0)
SpeedCloseCorner.Parent = SpeedClose

--==================================================
-- SPEED TEXTBOX
--==================================================

local SpeedBox = Instance.new("TextBox")
SpeedBox.Size = UDim2.new(0, 240, 0, 38)
SpeedBox.Position = UDim2.new(0.5, -120, 0, 58)
SpeedBox.BackgroundColor3 = Color3.fromRGB(30, 32, 43)
SpeedBox.BorderSizePixel = 0
SpeedBox.Text = tostring(currentSpeed)
SpeedBox.PlaceholderText = "Enter speed..."
SpeedBox.Font = Enum.Font.GothamBold
SpeedBox.TextSize = 14
SpeedBox.TextColor3 = Color3.fromRGB(255, 255, 255)
SpeedBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 160)
SpeedBox.ClearTextOnFocus = false
SpeedBox.ZIndex = 22
SpeedBox.Parent = SpeedWindow

local SpeedBoxCorner = Instance.new("UICorner")
SpeedBoxCorner.CornerRadius = UDim.new(0, 10)
SpeedBoxCorner.Parent = SpeedBox

local SpeedBoxStroke = Instance.new("UIStroke")
SpeedBoxStroke.Color = Color3.fromRGB(0, 212, 255)
SpeedBoxStroke.Transparency = 0.65
SpeedBoxStroke.Thickness = 1
SpeedBoxStroke.Parent = SpeedBox

--==================================================
-- CURRENT SPEED LABEL
--==================================================

local CurrentSpeedLabel = Instance.new("TextLabel")
CurrentSpeedLabel.Size = UDim2.new(1, -20, 0, 30)
CurrentSpeedLabel.Position = UDim2.new(0, 10, 0, 108)
CurrentSpeedLabel.BackgroundTransparency = 1
CurrentSpeedLabel.Text = "Current speed: " .. tostring(currentSpeed)
CurrentSpeedLabel.Font = Enum.Font.GothamBold
CurrentSpeedLabel.TextSize = 13
CurrentSpeedLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
CurrentSpeedLabel.ZIndex = 22
CurrentSpeedLabel.Parent = SpeedWindow

--==================================================
-- SPEED BOX INPUT
--==================================================

SpeedBox:GetPropertyChangedSignal("Text"):Connect(function()

    local text = SpeedBox.Text

    -- Allow numbers and decimals only
    local cleaned = text:gsub("[^%d%.%-]", "")

    if cleaned ~= text then
        SpeedBox.Text = cleaned
        return
    end

    local number = tonumber(cleaned)

    if number then

        currentSpeed = number

        CurrentSpeedLabel.Text =
            "Current speed: " .. tostring(currentSpeed)

        applySpeed()
    end
end)

--==================================================
-- OPEN SPEED WINDOW
--==================================================

SpeedBtn.MouseButton1Click:Connect(function()

    speedOn = not speedOn

    animateToggle(
        SpeedBtn,
        SpeedSlider,
        speedOn
    )

    if speedOn then

        applySpeed()

        SpeedWindow.Visible = true

        SpeedWindow.Size =
            UDim2.new(0, 260, 0, 155)

        TweenService:Create(
            SpeedWindow,
            TweenInfo.new(
                0.25,
                Enum.EasingStyle.Back,
                Enum.EasingDirection.Out
            ),
            {
                Size = UDim2.new(0, 280, 0, 175)
            }
        ):Play()

    else

        local humanoid = getHumanoid()

        if humanoid then
            humanoid.WalkSpeed = 16
        end

        SpeedWindow.Visible = false
    end
end)

--==================================================
-- CLOSE SPEED WINDOW
--==================================================

SpeedClose.MouseButton1Click:Connect(function()

    SpeedWindow.Visible = false

end)

--==================================================
-- KEEP SPEED AFTER RESPAWN
--==================================================

LocalPlayer.CharacterAdded:Connect(function(character)

    local humanoid =
        character:WaitForChild("Humanoid", 5)

    if humanoid and speedOn then
        humanoid.WalkSpeed = currentSpeed
    end
end)

--==================================================
-- SPINBOT
--==================================================

SpinBotBtn.MouseButton1Click:Connect(function()

    spinbotOn = not spinbotOn

    animateToggle(
        SpinBotBtn,
        SpinSlider,
        spinbotOn
    )

    if spinbotOn then

        spinConnection =
            RunService.RenderStepped:Connect(function()

                local char = LocalPlayer.Character
                local root =
                    char and char:FindFirstChild(
                        "HumanoidRootPart"
                    )

                if root then
                    root.CFrame =
                        root.CFrame *
                        CFrame.Angles(
                            0,
                            math.rad(140),
                            0
                        )
                end
            end)

    else

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

--==================================================
-- TP AWAY
--==================================================

TpAwayBtn.MouseButton1Click:Connect(function()

    local char = LocalPlayer.Character
    local root =
        char and char:FindFirstChild(
            "HumanoidRootPart"
        )

    if root then
        root.CFrame =
            root.CFrame +
            Vector3.new(3000000, 0, 0)
    end
end)

--==================================================
-- TP
--==================================================

TpBtn.MouseButton1Click:Connect(function()

    local char = LocalPlayer.Character
    local root =
        char and char:FindFirstChild(
            "HumanoidRootPart"
        )

    if root then

        local target =
            getRandomPlayer()

        if target then

            local targetCFrame =
                getBehindCFrame(target)

            if targetCFrame then
                root.CFrame = targetCFrame
            end
        end
    end
end)

--==================================================
-- ANGRY TP
--==================================================

AngryTpBtn.MouseButton1Click:Connect(function()

    angryTpOn = not angryTpOn

    animateToggle(
        AngryTpBtn,
        AngrySlider,
        angryTpOn
    )

    if angryTpOn then

        angryTpConnection =
            RunService.Heartbeat:Connect(function()

                local char = LocalPlayer.Character
                local root =
                    char and char:FindFirstChild(
                        "HumanoidRootPart"
                    )

                if root then

                    local target =
                        getRandomPlayer()

                    if target then

                        local targetCFrame =
                            getBehindCFrame(target)

                        if targetCFrame then
                            root.CFrame = targetCFrame
                        end
                    end
                end
            end)

    else

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

--==================================================
-- TP UP
--==================================================

TpUpBtn.MouseButton1Click:Connect(function()

    local char = LocalPlayer.Character
    local root =
        char and char:FindFirstChild(
            "HumanoidRootPart"
        )

    if root then
        root.CFrame =
            root.CFrame +
            Vector3.new(0, 20000, 0)
    end
end)

--==================================================
-- MINIMIZE
--==================================================

MinimizeBtn.MouseButton1Click:Connect(function()

    isMinimized = not isMinimized

    if isMinimized then

        Container.Visible = false
        TitleLabel.Visible = false
        MinimizeBtn.Text = "+"

        TweenService:Create(
            MainFrame,
            TweenInfo.new(
                0.3,
                Enum.EasingStyle.Quad,
                Enum.EasingDirection.Out
            ),
            {
                Size = UDim2.new(0, 80, 0, 45)
            }
        ):Play()

        TweenService:Create(
            UICorner,
            TweenInfo.new(0.3),
            {
                CornerRadius = UDim.new(0, 22)
            }
        ):Play()

        TweenService:Create(
            TopCorner,
            TweenInfo.new(0.3),
            {
                CornerRadius = UDim.new(0, 22)
            }
        ):Play()

        TweenService:Create(
            TopBanner,
            TweenInfo.new(0.3),
            {
                Size = UDim2.new(1, 0, 1, 0)
            }
        ):Play()

        TweenService:Create(
            ControlsContainer,
            TweenInfo.new(0.3),
            {
                Size = UDim2.new(1, 0, 1, 0),
                Position = UDim2.new(0, 0, 0, 0)
            }
        ):Play()

        ControlsLayout.HorizontalAlignment =
            Enum.HorizontalAlignment.Center

    else

        MinimizeBtn.Text = "-"
        ControlsLayout.HorizontalAlignment =
            Enum.HorizontalAlignment.Right

        local mainTween =
            TweenService:Create(
                MainFrame,
                TweenInfo.new(
                    0.3,
                    Enum.EasingStyle.Quad,
                    Enum.EasingDirection.Out
                ),
                {
                    Size = UDim2.new(0, 260, 0, 365)
                }
            )

        TweenService:Create(
            UICorner,
            TweenInfo.new(0.3),
            {
                CornerRadius = UDim.new(0, 16)
            }
        ):Play()

        TweenService:Create(
            TopCorner,
            TweenInfo.new(0.3),
            {
                CornerRadius = UDim.new(0, 16)
            }
        ):Play()

        TweenService:Create(
            TopBanner,
            TweenInfo.new(0.3),
            {
                Size = UDim2.new(1, 0, 0, 45)
            }
        ):Play()

        TweenService:Create(
            ControlsContainer,
            TweenInfo.new(0.3),
            {
                Size = UDim2.new(0, 60, 1, 0),
                Position = UDim2.new(1, -65, 0, 0)
            }
        ):Play()

        mainTween.Completed:Connect(function()

            if not isMinimized then
                Container.Visible = true
                TitleLabel.Visible = true
            end
        end)

        mainTween:Play()
    end
end)

--==================================================
-- CLOSE MAIN GUI
--==================================================

CloseBtn.MouseButton1Click:Connect(function()

    if spinConnection then
        spinConnection:Disconnect()
    end

    if angryTpConnection then
        angryTpConnection:Disconnect()
    end

    ScreenGui:Destroy()
end)

--==================================================
-- DRAGGING
--==================================================

local dragging
local dragInput
local dragStart
local startPos

local function update(input)

    local delta =
        input.Position - dragStart

    TweenService:Create(
        MainFrame,
        TweenInfo.new(
            0.08,
            Enum.EasingStyle.Linear
        ),
        {
            Position = UDim2.new(
                startPos.X.Scale,
                startPos.X.Offset + delta.X,
                startPos.Y.Scale,
                startPos.Y.Offset + delta.Y
            )
        }
    ):Play()
end

MainFrame.InputBegan:Connect(function(input)

    if input.UserInputType ==
        Enum.UserInputType.MouseButton1
        or input.UserInputType ==
        Enum.UserInputType.Touch then

        dragging = true
        dragStart = input.Position
        startPos = MainFrame.Position

        input.Changed:Connect(function()

            if input.UserInputState ==
                Enum.UserInputState.End then

                dragging = false
            end
        end)
    end
end)

MainFrame.InputChanged:Connect(function(input)

    if input.UserInputType ==
        Enum.UserInputType.MouseMovement
        or input.UserInputType ==
        Enum.UserInputType.Touch then

        dragInput = input
    end
end)

UserInputService.InputChanged:Connect(function(input)

    if input == dragInput and dragging then
        update(input)
    end
end)

Features & Information

>< v2 <> we dont check features if had bugs just comment it i may try fix it , i use money to hire people and bug fixers
#roblox

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts