Remote event legend event(update)
Key RequiredUniversal

Remote event legend event(update)

Universal ScriptKrScriptKrScript 2.8K views 279 executesUpdated Nov 8, 2025
2.5/ 5(4 votes)
2250% Positive
Lua Script•795 lines (28075 chars)
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "LegendEvent"
screenGui.Parent = playerGui
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

local currentTheme = "light"
local themeColors = {
    light = {
        mainBg = Color3.fromRGB(245, 245, 255),
        mainGradientStart = Color3.fromRGB(255, 255, 255),
        mainGradientEnd = Color3.fromRGB(230, 230, 245),
        textPrimary = Color3.fromRGB(40, 40, 60),
        textSecondary = Color3.fromRGB(80, 80, 100),
        buttonBg = Color3.fromRGB(255, 255, 255),
        buttonGradientStart = Color3.fromRGB(255, 255, 255),
        buttonGradientEnd = Color3.fromRGB(240, 240, 250),
        stroke = Color3.fromRGB(220, 220, 240),
        success = Color3.fromRGB(60, 180, 60),
        error = Color3.fromRGB(220, 60, 60),
        hoverLight = Color3.fromRGB(240, 240, 255),
        placeholder = Color3.fromRGB(150, 150, 150),
        scrollbar = Color3.fromRGB(180, 180, 200)
    },
    dark = {
        mainBg = Color3.fromRGB(35, 35, 45),
        mainGradientStart = Color3.fromRGB(50, 50, 60),
        mainGradientEnd = Color3.fromRGB(25, 25, 35),
        textPrimary = Color3.fromRGB(240, 240, 255),
        textSecondary = Color3.fromRGB(180, 180, 200),
        buttonBg = Color3.fromRGB(50, 50, 60),
        buttonGradientStart = Color3.fromRGB(60, 60, 70),
        buttonGradientEnd = Color3.fromRGB(40, 40, 50),
        stroke = Color3.fromRGB(70, 70, 80),
        success = Color3.fromRGB(100, 200, 100),
        error = Color3.fromRGB(255, 100, 100),
        hoverLight = Color3.fromRGB(70, 70, 80),
        placeholder = Color3.fromRGB(120, 120, 140),
        scrollbar = Color3.fromRGB(80, 80, 100)
    }
}

local floatIcon = Instance.new("TextButton")
floatIcon.Name = "FloatIcon"
floatIcon.Size = UDim2.new(0, 60, 0, 60)
floatIcon.Position = UDim2.new(0, 20, 0, 200)
floatIcon.BackgroundColor3 = themeColors.light.buttonBg
floatIcon.Text = "📱"
floatIcon.TextColor3 = Color3.fromRGB(255, 255, 255)
floatIcon.TextScaled = true
floatIcon.Font = Enum.Font.GothamBold
floatIcon.AutoButtonColor = false
floatIcon.Parent = screenGui

local iconCorner = Instance.new("UICorner")
iconCorner.CornerRadius = UDim.new(1, 0)
iconCorner.Parent = floatIcon

local iconStroke = Instance.new("UIStroke")
iconStroke.Color = themeColors.light.stroke
iconStroke.Thickness = 2
iconStroke.Parent = floatIcon

local iconGradient = Instance.new("UIGradient")
local darkerLightBg = Color3.new(
    themeColors.light.buttonBg.R * 0.8,
    themeColors.light.buttonBg.G * 0.8,
    themeColors.light.buttonBg.B * 0.8
)
iconGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, themeColors.light.buttonBg),
    ColorSequenceKeypoint.new(1, darkerLightBg)
}
iconGradient.Rotation = 45
iconGradient.Parent = floatIcon

local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 480, 0, 560)
mainFrame.Position = UDim2.new(0.5, -240, 0.5, -280)
mainFrame.BackgroundColor3 = themeColors.light.mainBg
mainFrame.BorderSizePixel = 0
mainFrame.Visible = false
mainFrame.Parent = screenGui

local mainCorner = Instance.new("UICorner")
mainCorner.CornerRadius = UDim.new(0, 15)
mainCorner.Parent = mainFrame

local mainStroke = Instance.new("UIStroke")
mainStroke.Color = themeColors.light.stroke
mainStroke.Thickness = 2
mainStroke.Parent = mainFrame

local mainGradient = Instance.new("UIGradient")
mainGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, themeColors.light.mainGradientStart),
    ColorSequenceKeypoint.new(1, themeColors.light.mainGradientEnd)
}
mainGradient.Rotation = 90
mainGradient.Parent = mainFrame

local titleBar = Instance.new("Frame")
titleBar.Name = "TitleBar"
titleBar.Size = UDim2.new(1, -20, 0, 50)
titleBar.Position = UDim2.new(0, 10, 0, 10)
titleBar.BackgroundTransparency = 1
titleBar.Parent = mainFrame

local titleLabel = Instance.new("TextLabel")
titleLabel.Name = "Title"
titleLabel.Size = UDim2.new(1, -160, 1, 0)
titleLabel.Position = UDim2.new(0, 0, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "🔥 Legend Event"
titleLabel.TextColor3 = themeColors.light.textPrimary
titleLabel.TextScaled = true
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = titleBar

local closeButton = Instance.new("TextButton")
closeButton.Name = "CloseButton"
closeButton.Size = UDim2.new(0, 40, 0, 40)
closeButton.Position = UDim2.new(1, -40, 0.5, -20)
closeButton.BackgroundColor3 = themeColors.light.error
closeButton.Text = "✕"
closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
closeButton.TextScaled = true
closeButton.Font = Enum.Font.GothamBold
closeButton.AutoButtonColor = false
closeButton.Parent = titleBar

local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 8)
closeCorner.Parent = closeButton

local closeGradient = Instance.new("UIGradient")
local initialBrighterError = Color3.new(
    math.min(1, themeColors.light.error.R * 1.2),
    math.min(1, themeColors.light.error.G * 1.2),
    math.min(1, themeColors.light.error.B * 1.2)
)
closeGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, initialBrighterError),
    ColorSequenceKeypoint.new(1, themeColors.light.error)
}
closeGradient.Rotation = 45
closeGradient.Parent = closeButton

local topControls = Instance.new("Frame")
topControls.Name = "TopControls"
topControls.Size = UDim2.new(1, -20, 0, 50)
topControls.Position = UDim2.new(0, 10, 0, 70)
topControls.BackgroundTransparency = 1
topControls.Parent = mainFrame

local refreshButton = Instance.new("TextButton")
refreshButton.Name = "RefreshButton"
refreshButton.Size = UDim2.new(0, 60, 0, 45)
refreshButton.Position = UDim2.new(0, 0, 0, 5)
refreshButton.BackgroundColor3 = themeColors.light.success
refreshButton.Text = "🔄"
refreshButton.TextColor3 = Color3.fromRGB(255, 255, 255)
refreshButton.TextScaled = true
refreshButton.Font = Enum.Font.GothamBold
refreshButton.AutoButtonColor = false
refreshButton.Parent = topControls

local refreshCorner = Instance.new("UICorner")
refreshCorner.CornerRadius = UDim.new(0, 10)
refreshCorner.Parent = refreshButton

local refreshGradient = Instance.new("UIGradient")
local initialBrighterSuccess = Color3.new(
    math.min(1, themeColors.light.success.R * 1.2),
    math.min(1, themeColors.light.success.G * 1.2),
    math.min(1, themeColors.light.success.B * 1.2)
)
refreshGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, initialBrighterSuccess),
    ColorSequenceKeypoint.new(1, themeColors.light.success)
}
refreshGradient.Rotation = 45
refreshGradient.Parent = refreshButton

local themeButton = Instance.new("TextButton")
themeButton.Name = "ThemeButton"
themeButton.Size = UDim2.new(0, 60, 0, 45)
themeButton.Position = UDim2.new(0, 70, 0, 5)
themeButton.BackgroundColor3 = Color3.fromRGB(150, 150, 200)
themeButton.Text = "🌙"
themeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
themeButton.TextScaled = true
themeButton.Font = Enum.Font.GothamBold
themeButton.AutoButtonColor = false
themeButton.Parent = topControls

local themeCorner = Instance.new("UICorner")
themeCorner.CornerRadius = UDim.new(0, 10)
themeCorner.Parent = themeButton

local themeGradient = Instance.new("UIGradient")
themeGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(170, 170, 220)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(130, 130, 180))
}
themeGradient.Rotation = 45
themeGradient.Parent = themeButton

local spamToggle = Instance.new("TextButton")
spamToggle.Name = "SpamToggle"
spamToggle.Size = UDim2.new(0, 90, 0, 45)
spamToggle.Position = UDim2.new(0, 140, 0, 5)
spamToggle.BackgroundColor3 = Color3.fromRGB(220, 180, 80)
spamToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
spamToggle.TextScaled = true
spamToggle.Font = Enum.Font.GothamBold
spamToggle.Text = "Spam: OFF"
spamToggle.AutoButtonColor = false
spamToggle.Parent = topControls

local spamCorner = Instance.new("UICorner")
spamCorner.CornerRadius = UDim.new(0, 10)
spamCorner.Parent = spamToggle

local spamGradient = Instance.new("UIGradient")
spamGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(240, 210, 100)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(200, 160, 60))
}
spamGradient.Rotation = 45
spamGradient.Parent = spamToggle

local keybindButton = Instance.new("TextButton")
keybindButton.Name = "KeybindButton"
keybindButton.Size = UDim2.new(0, 90, 0, 45)
keybindButton.Position = UDim2.new(1, -90, 0, 5)
keybindButton.BackgroundColor3 = Color3.fromRGB(120, 120, 180)
keybindButton.TextColor3 = Color3.fromRGB(255, 255, 255)
keybindButton.TextScaled = true
keybindButton.Font = Enum.Font.GothamBold
keybindButton.Text = "Key: K"
keybindButton.AutoButtonColor = false
keybindButton.Parent = topControls

local keyCorner = Instance.new("UICorner")
keyCorner.CornerRadius = UDim.new(0, 10)
keyCorner.Parent = keybindButton

local keyGradient = Instance.new("UIGradient")
keyGradient.Color = ColorSequence.new{
    ColorSequenceKeypoint.new(0, Color3.fromRGB(150, 150, 210)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(100, 100, 150))
}
keyGradient.Rotation = 45
keyGradient.Parent = keybindButton

local searchFrame = Instance.new("Frame")
searchFrame.Name = "SearchFrame"
searchFrame.Size = UDim2.new(1, -20, 0, 45)
searchFrame.Position = UDim2.new(0, 10, 0, 130)
searchFrame.BackgroundColor3 = themeColors.light.buttonBg
searchFrame.Parent = mainFrame

local searchCorner = Instance.new("UICorner")
searchCorner.CornerRadius = UDim.new(0, 10)
searchCorner.Parent = searchFrame

local searchLabel = Instance.new("TextLabel")
searchLabel.Size = UDim2.new(0, 100, 1, 0)
searchLabel.BackgroundTransparency = 1
searchLabel.Text = "🔍 Search:"
searchLabel.TextColor3 = themeColors.light.textSecondary
searchLabel.TextScaled = true
searchLabel.Font = Enum.Font.Gotham
searchLabel.TextXAlignment = Enum.TextXAlignment.Left
searchLabel.Parent = searchFrame

local searchBox = Instance.new("TextBox")
searchBox.Name = "SearchBox"
searchBox.Size = UDim2.new(1, -110, 1, 0)
searchBox.Position = UDim2.new(0, 100, 0, 0)
searchBox.BackgroundTransparency = 1
searchBox.Text = ""
searchBox.PlaceholderText = "Enter RemoteEvent name..."
searchBox.TextColor3 = themeColors.light.textPrimary
searchBox.PlaceholderColor3 = themeColors.light.placeholder
searchBox.TextScaled = true
searchBox.Font = Enum.Font.Gotham
searchBox.TextXAlignment = Enum.TextXAlignment.Left
searchBox.ClearTextOnFocus = false
searchBox.Parent = searchFrame

local repeatFrame = Instance.new("Frame")
repeatFrame.Name = "RepeatFrame"
repeatFrame.Size = UDim2.new(0, 160, 0, 45)
repeatFrame.Position = UDim2.new(0, 10, 0, 185)
repeatFrame.BackgroundColor3 = themeColors.light.buttonBg
repeatFrame.Parent = mainFrame

local repeatCorner = Instance.new("UICorner")
repeatCorner.CornerRadius = UDim.new(0, 10)
repeatCorner.Parent = repeatFrame

local repeatLabel = Instance.new("TextLabel")
repeatLabel.Size = UDim2.new(0, 60, 1, 0)
repeatLabel.BackgroundTransparency = 1
repeatLabel.Text = "🔁 x:"
repeatLabel.TextColor3 = themeColors.light.textSecondary
repeatLabel.TextScaled = true
repeatLabel.Font = Enum.Font.Gotham
repeatLabel.TextXAlignment = Enum.TextXAlignment.Left
repeatLabel.Parent = repeatFrame

local repeatBox = Instance.new("TextBox")
repeatBox.Name = "RepeatBox"
repeatBox.Size = UDim2.new(1, -60, 1, 0)
repeatBox.Position = UDim2.new(0, 60, 0, 0)
repeatBox.BackgroundTransparency = 1
repeatBox.Text = "1"
repeatBox.PlaceholderText = "Times..."
repeatBox.TextColor3 = themeColors.light.textPrimary
repeatBox.PlaceholderColor3 = themeColors.light.placeholder
repeatBox.TextScaled = true
repeatBox.Font = Enum.Font.Gotham
repeatBox.TextXAlignment = Enum.TextXAlignment.Left
repeatBox.ClearTextOnFocus = false
repeatBox.Parent = repeatFrame

local delayFrame = Instance.new("Frame")
delayFrame.Name = "DelayFrame"
delayFrame.Size = UDim2.new(0, 160, 0, 45)
delayFrame.Position = UDim2.new(0, 180, 0, 185)
delayFrame.BackgroundColor3 = themeColors.light.buttonBg
delayFrame.Parent = mainFrame

local delayCorner = Instance.new("UICorner")
delayCorner.CornerRadius = UDim.new(0, 10)
delayCorner.Parent = delayFrame

local delayLabel = Instance.new("TextLabel")
delayLabel.Size = UDim2.new(0, 80, 1, 0)
delayLabel.BackgroundTransparency = 1
delayLabel.Text = "⏱ delay:"
delayLabel.TextColor3 = themeColors.light.textSecondary
delayLabel.TextScaled = true
delayLabel.Font = Enum.Font.Gotham
delayLabel.TextXAlignment = Enum.TextXAlignment.Left
delayLabel.Parent = delayFrame

local delayBox = Instance.new("TextBox")
delayBox.Name = "DelayBox"
delayBox.Size = UDim2.new(1, -80, 1, 0)
delayBox.Position = UDim2.new(0, 80, 0, 0)
delayBox.BackgroundTransparency = 1
delayBox.Text = "0.01"
delayBox.PlaceholderText = "sec"
delayBox.TextColor3 = themeColors.light.textPrimary
delayBox.PlaceholderColor3 = themeColors.light.placeholder
delayBox.TextScaled = true
delayBox.Font = Enum.Font.Gotham
delayBox.TextXAlignment = Enum.TextXAlignment.Left
delayBox.ClearTextOnFocus = false
delayBox.Parent = delayFrame

local scrollFrame = Instance.new("ScrollingFrame")
scrollFrame.Name = "ScrollFrame"
scrollFrame.Size = UDim2.new(1, -20, 1, -270)
scrollFrame.Position = UDim2.new(0, 10, 0, 240)
scrollFrame.BackgroundTransparency = 1
scrollFrame.BorderSizePixel = 0
scrollFrame.ScrollBarThickness = 8
scrollFrame.ScrollBarImageColor3 = themeColors.light.scrollbar
scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
scrollFrame.Parent = mainFrame

local listLayout = Instance.new("UIListLayout")
listLayout.SortOrder = Enum.SortOrder.LayoutOrder
listLayout.Padding = UDim.new(0, 8)
listLayout.Parent = scrollFrame

local statusLabel = Instance.new("TextLabel")
statusLabel.Name = "StatusLabel"
statusLabel.Size = UDim2.new(1, -20, 0, 30)
statusLabel.Position = UDim2.new(0, 10, 1, -35)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "Ready to use"
statusLabel.TextColor3 = themeColors.light.success
statusLabel.TextScaled = true
statusLabel.Font = Enum.Font.Gotham
statusLabel.Parent = mainFrame

local dragging = false
local dragStart
local startPos

local function updateInput(input)
    local delta = input.Position - dragStart
    local position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    mainFrame.Position = position
end

local function makeDraggable(frame)
    frame.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)

    UserInputService.InputChanged:Connect(function(input)
        if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
            updateInput(input)
        end
    end)
end

makeDraggable(titleBar)

local function addHover(button, hoverColor, originalColor)
    button.MouseEnter:Connect(function()
        TweenService:Create(button, TweenInfo.new(0.1), {BackgroundColor3 = hoverColor}):Play()
    end)
    button.MouseLeave:Connect(function()
        TweenService:Create(button, TweenInfo.new(0.1), {BackgroundColor3 = originalColor}):Play()
    end)
end

addHover(refreshButton, Color3.fromRGB(120, 220, 120), themeColors.light.success)
addHover(closeButton, Color3.fromRGB(255, 120, 120), themeColors.light.error)
addHover(floatIcon, themeColors.light.hoverLight, themeColors.light.buttonBg)
addHover(themeButton, Color3.fromRGB(170, 170, 220), Color3.fromRGB(150, 150, 200))
addHover(spamToggle, Color3.fromRGB(240, 210, 100), Color3.fromRGB(220, 180, 80))
addHover(keybindButton, Color3.fromRGB(150, 150, 210), Color3.fromRGB(120, 120, 180))

local function applyTheme()
    local colors = themeColors[currentTheme]

    mainFrame.BackgroundColor3 = colors.mainBg
    mainGradient.Color = ColorSequence.new{
        ColorSequenceKeypoint.new(0, colors.mainGradientStart),
        ColorSequenceKeypoint.new(1, colors.mainGradientEnd)
    }
    mainStroke.Color = colors.stroke

    titleLabel.TextColor3 = colors.textPrimary
    searchLabel.TextColor3 = colors.textSecondary
    searchBox.TextColor3 = colors.textPrimary
    searchBox.PlaceholderColor3 = colors.placeholder

    repeatLabel.TextColor3 = colors.textSecondary
    repeatBox.TextColor3 = colors.textPrimary
    repeatBox.PlaceholderColor3 = colors.placeholder

    delayLabel.TextColor3 = colors.textSecondary
    delayBox.TextColor3 = colors.textPrimary
    delayBox.PlaceholderColor3 = colors.placeholder

    scrollFrame.ScrollBarImageColor3 = colors.scrollbar
    statusLabel.TextColor3 = colors.success

    refreshButton.BackgroundColor3 = colors.success
    local brighterSuccess = Color3.new(
        math.min(1, colors.success.R * 1.2),
        math.min(1, colors.success.G * 1.2),
        math.min(1, colors.success.B * 1.2)
    )
    refreshGradient.Color = ColorSequence.new{
        ColorSequenceKeypoint.new(0, brighterSuccess),
        ColorSequenceKeypoint.new(1, colors.success)
    }

    closeButton.BackgroundColor3 = colors.error
    local brighterError = Color3.new(
        math.min(1, colors.error.R * 1.2),
        math.min(1, colors.error.G * 1.2),
        math.min(1, colors.error.B * 1.2)
    )
    closeGradient.Color = ColorSequence.new{
        ColorSequenceKeypoint.new(0, brighterError),
        ColorSequenceKeypoint.new(1, colors.error)
    }

    floatIcon.BackgroundColor3 = colors.buttonBg
    local darkerButton = Color3.new(
        colors.buttonBg.R * 0.8,
        colors.buttonBg.G * 0.8,
        colors.buttonBg.B * 0.8
    )
    iconGradient.Color = ColorSequence.new{
        ColorSequenceKeypoint.new(0, colors.buttonBg),
        ColorSequenceKeypoint.new(1, darkerButton)
    }
    iconStroke.Color = colors.stroke

    searchFrame.BackgroundColor3 = colors.buttonBg
    repeatFrame.BackgroundColor3 = colors.buttonBg
    delayFrame.BackgroundColor3 = colors.buttonBg

    addHover(floatIcon, colors.hoverLight, colors.buttonBg)
end

local isOpen = false
local toggleKey = Enum.KeyCode.K
local spamMode = false
local spamConnection

local function setGuiVisible(state)
    isOpen = state
    if isOpen then
        mainFrame.Visible = true
        TweenService:Create(mainFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0.5, -240, 0.5, -280)}):Play()
        TweenService:Create(floatIcon, TweenInfo.new(0.2), {Size = UDim2.new(0, 50, 0, 50)}):Play()
        floatIcon.Text = "⚡"
    else
        TweenService:Create(mainFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Position = UDim2.new(0.5, -240, -1, 0)}):Play()
        task.wait(0.25)
        mainFrame.Visible = false
        TweenService:Create(floatIcon, TweenInfo.new(0.2), {Size = UDim2.new(0, 60, 0, 60)}):Play()
        floatIcon.Text = "📱"
    end
end

floatIcon.MouseButton1Click:Connect(function()
    setGuiVisible(not isOpen)
end)

closeButton.MouseButton1Click:Connect(function()
    setGuiVisible(false)
end)

UserInputService.InputBegan:Connect(function(input, gpe)
    if gpe then return end
    if input.KeyCode == toggleKey then
        setGuiVisible(not isOpen)
    end
end)

keybindButton.MouseButton1Click:Connect(function()
    keybindButton.Text = "Press key"
    local conn
    conn = UserInputService.InputBegan:Connect(function(input, gpe)
        if gpe then return end
        if input.KeyCode ~= Enum.KeyCode.Unknown then
            toggleKey = input.KeyCode
            keybindButton.Text = "Key: " .. string.upper(string.sub(tostring(toggleKey.Name), 1, 1))
            conn:Disconnect()
        end
    end)
end)

spamToggle.MouseButton1Click:Connect(function()
    spamMode = not spamMode
    if spamMode then
        spamToggle.Text = "Spam: ON"
        spamToggle.BackgroundColor3 = Color3.fromRGB(120, 200, 100)
    else
        spamToggle.Text = "Spam: OFF"
        spamToggle.BackgroundColor3 = Color3.fromRGB(220, 180, 80)
    end
end)

local function scanRemotes(searchTerm)
    local remotes = {}
    local lowerSearch = string.lower(searchTerm or "")
    local servicesToScan = {
        ReplicatedStorage,
        game:GetService("Workspace"),
        game:GetService("StarterGui"),
        game:GetService("Lighting"),
        playerGui,
        game:GetService("ServerStorage"),
        game:GetService("ReplicatedFirst")
    }

    for _, service in pairs(servicesToScan) do
        pcall(function()
            for _, obj in pairs(service:GetDescendants()) do
                if obj:IsA("RemoteEvent") then
                    if lowerSearch == "" or string.find(string.lower(obj.Name), lowerSearch) then
                        if not table.find(remotes, obj) then
                            table.insert(remotes, obj)
                        end
                    end
                end
            end
        end)
    end

    pcall(function()
        for _, obj in pairs(game:GetDescendants()) do
            if obj:IsA("RemoteEvent") and not table.find(remotes, obj) then
                if lowerSearch == "" or string.find(string.lower(obj.Name), lowerSearch) then
                    table.insert(remotes, obj)
                end
            end
        end
    end)

    table.sort(remotes, function(a, b)
        return a.Name < b.Name
    end)
    return remotes
end

local lastFireRemote

local function safeNumber(str, default)
    local n = tonumber(str)
    if not n or n ~= n or n <= 0 then
        return default
    end
    return n
end

local function createButton(remoteEvent)
    local colors = themeColors[currentTheme]
    local button = Instance.new("TextButton")
    button.Name = remoteEvent.Name
    button.Size = UDim2.new(1, -10, 0, 50)
    button.BackgroundColor3 = colors.buttonBg
    button.Text = "🚀 " .. remoteEvent.Name .. "  |  " .. tostring(remoteEvent.Parent)
    button.TextColor3 = colors.textPrimary
    button.TextScaled = true
    button.Font = Enum.Font.Gotham
    button.AutoButtonColor = false
    button.Parent = scrollFrame

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

    local btnStroke = Instance.new("UIStroke")
    btnStroke.Color = colors.stroke
    btnStroke.Thickness = 1
    btnStroke.Parent = button

    local btnGradient = Instance.new("UIGradient")
    btnGradient.Color = ColorSequence.new{
        ColorSequenceKeypoint.new(0, colors.buttonGradientStart),
        ColorSequenceKeypoint.new(1, colors.buttonGradientEnd)
    }
    btnGradient.Rotation = 45
    btnGradient.Parent = button

    button.MouseButton1Click:Connect(function()
        lastFireRemote = remoteEvent
        local repeatCount = math.floor(safeNumber(repeatBox.Text, 1))
        local delayTime = safeNumber(delayBox.Text, 0.01)
        delayTime = math.max(0, math.min(delayTime, 2))
        repeatCount = math.max(1, math.min(repeatCount, 10000))

        local colorsNow = themeColors[currentTheme]
        local successCount = 0
        local errorOccurred = false
        local lastErr

        for i = 1, repeatCount do
            local ok, err = pcall(function()
                remoteEvent:FireServer()
            end)
            if ok then
                successCount = successCount + 1
            else
                errorOccurred = true
                lastErr = err
                break
            end
            if i < repeatCount and delayTime > 0 then
                task.wait(delayTime)
            end
            if not spamMode and repeatCount > 200 and i % 200 == 0 then
                task.wait(0.05)
            end
        end

        if not errorOccurred then
            statusLabel.Text = "Fired " .. successCount .. "x: " .. remoteEvent.Name
            statusLabel.TextColor3 = colorsNow.success
            local successTween = TweenService:Create(button, TweenInfo.new(0.25, Enum.EasingStyle.Quad), {
                BackgroundColor3 = Color3.new(colorsNow.success.R * 0.8, colorsNow.success.G * 0.8, colorsNow.success.B * 0.8),
                Size = UDim2.new(1, -5, 0, 55)
            })
            successTween:Play()
            successTween.Completed:Connect(function()
                TweenService:Create(button, TweenInfo.new(0.2), {
                    BackgroundColor3 = colorsNow.buttonBg,
                    Size = UDim2.new(1, -10, 0, 50)
                }):Play()
            end)
        else
            statusLabel.Text = "Error: " .. tostring(lastErr)
            statusLabel.TextColor3 = colorsNow.error
            local errorTween = TweenService:Create(button, TweenInfo.new(0.25, Enum.EasingStyle.Quad), {
                BackgroundColor3 = Color3.new(colorsNow.error.R * 0.8, colorsNow.error.G * 0.8, colorsNow.error.B * 0.8),
                Size = UDim2.new(1, -5, 0, 55)
            })
            errorTween:Play()
            errorTween.Completed:Connect(function()
                TweenService:Create(button, TweenInfo.new(0.2), {
                    BackgroundColor3 = colorsNow.buttonBg,
                    Size = UDim2.new(1, -10, 0, 50)
                }):Play()
            end)
        end
    end)

    addHover(button, colors.hoverLight, colors.buttonBg)
    return button
end

local contentSizeConnection
local function connectCanvasSize()
    if contentSizeConnection then
        contentSizeConnection:Disconnect()
        contentSizeConnection = nil
    end
    contentSizeConnection = listLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
        scrollFrame.CanvasSize = UDim2.new(0, 0, 0, listLayout.AbsoluteContentSize.Y + 10)
    end)
    scrollFrame.CanvasSize = UDim2.new(0, 0, 0, listLayout.AbsoluteContentSize.Y + 10)
end

local function updateList()
    for _, child in pairs(scrollFrame:GetChildren()) do
        if child:IsA("TextButton") then
            child:Destroy()
        end
    end

    local searchTerm = searchBox.Text or ""
    local remotes = scanRemotes(searchTerm)

    for i, remote in ipairs(remotes) do
        local button = createButton(remote)
        button.LayoutOrder = i
    end

    connectCanvasSize()
end

searchBox:GetPropertyChangedSignal("Text"):Connect(function()
    statusLabel.Text = "Searching..."
    statusLabel.TextColor3 = themeColors[currentTheme].textSecondary
    updateList()
    statusLabel.Text = "Ready to use"
    statusLabel.TextColor3 = themeColors[currentTheme].success
end)

refreshButton.MouseButton1Click:Connect(function()
    local colors = themeColors[currentTheme]
    statusLabel.Text = "Scanning remotes..."
    statusLabel.TextColor3 = colors.textSecondary
    updateList()
    statusLabel.Text = "Scan complete. Ready!"
    statusLabel.TextColor3 = colors.success
end)

themeButton.MouseButton1Click:Connect(function()
    currentTheme = currentTheme == "light" and "dark" or "light"
    themeButton.Text = currentTheme == "light" and "🌙" or "☀️"
    applyTheme()
    updateList()
end)

UserInputService.InputBegan:Connect(function(input, gpe)
    if gpe then return end
    if input.KeyCode == Enum.KeyCode.F and lastFireRemote then
        local colorsNow = themeColors[currentTheme]
        statusLabel.Text = "Quick firing: " .. lastFireRemote.Name
        statusLabel.TextColor3 = colorsNow.textSecondary
        pcall(function()
            lastFireRemote:FireServer()
        end)
    end
end)

applyTheme()
connectCanvasSize()
updateList()

Features & Information

This script was made by me almost by me, so this is the first version of the script. If you noticed a bug or want an addition to the script, write in the comments. The script will be updated. Future updates What was added Improved search And a repeat of the fire event —————————————————- New interface New features Fixed bugs
#Free#No key#Keyless#Universal script#Universal

Community Comments (14)

Kerimasik3452Kerimasik3452Nov 8, 2025

what does this do?

Replying to @Kerimasik3452
KrScriptKrScriptNov 8, 2025

@Kerimasik3452 Look, let's say in the game Remote Event there is money, to activate them you need to use this menu to call the Event, that is, it can call weapons and money if you decide the Event is not protected by something. I will improve the script.

Replying to @KrScript
AvezAvezNov 8, 2025

@KrScript can you help with game script hosting?

Replying to @Avez
KrScriptKrScriptNov 8, 2025

@Avez Depends on which ones

Replying to @Kerimasik3452
AvezAvezNov 8, 2025

@Kerimasik3452 RemoteEvent scanner and GUI tool

Mh13uMh13uNov 22, 2025

How to use😓

ehhhhhhehhhhhhDec 10, 2025

just use dex explorer

gerryl1gerryl1Dec 13, 2025

how can i remove -inf coins???

gerryl1gerryl1Dec 13, 2025

how can i remove -inf coins???

gerryl1gerryl1Dec 13, 2025

how can i remove -inf coins???

gerryl1gerryl1Dec 13, 2025

how can i remove -inf coins???

gerryl1gerryl1Dec 13, 2025

how can i remove -inf coins???

Replying to @gerryl1
KrScriptKrScriptDec 14, 2025

@gerryl1 I won't say you're spamming

GuyWhoScriptsGuyWhoScriptsApr 13, 2026

This is really good.

More Scripts for Universal Scripts