Version / Update: v1.0.0
- Download / Script Link
- local drag = nil
local start = nil
local pos = nil
local a = Instance.new("ScreenGui")
local Frame = Instance.new("Frame")
local remotes = Instance.new("ScrollingFrame")
local UIListLayout = Instance.new("UIListLayout")
local misc = Instance.new("Folder")
local Examples = Instance.new("Frame")
local examplefunction = Instance.new("TextButton")
local text = Instance.new("TextLabel")
local img = Instance.new("ImageLabel")
local exampleevent = Instance.new("TextButton")
local img_2 = Instance.new("ImageLabel")
local text_2 = Instance.new("TextLabel")
local stuff = Instance.new("Frame")
local output = Instance.new("TextBox")
local stuff_2 = Instance.new("ScrollingFrame")
local clearlogs = Instance.new("TextButton")
local copy = Instance.new("TextButton")
local run = Instance.new("TextButton")
local clearexcludions = Instance.new("TextButton")
local exclude = Instance.new("TextButton")
local scrpt = Instance.new("TextButton")
local minimize = Instance.new("TextButton")
local close = Instance.new("TextButton")
local TextLabel = Instance.new("TextLabel")
local UIPadding = Instance.new("UIPadding")
a.Name = "AlqvirqqRemoteSpy"
a.Parent = gethui()
a.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
Frame.Parent = a
Frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
Frame.BorderColor3 = Color3.fromRGB(60, 60, 60)
Frame.BorderSizePixel = 1
Frame.Position = UDim2.new(0.1, 0, 0.1, 0)
Frame.Size = UDim2.new(0, 900, 0, 550)
Frame.ClipsDescendants = true
-- Title Bar
local titleBar = Instance.new("Frame")
titleBar.Name = "TitleBar"
titleBar.Parent = Frame
titleBar.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
titleBar.BorderSizePixel = 0
titleBar.Size = UDim2.new(1, 0, 0, 30)
TextLabel.Parent = titleBar
TextLabel.BackgroundTransparency = 1
TextLabel.Position = UDim2.new(0, 10, 0, 0)
TextLabel.Size = UDim2.new(0, 300, 1, 0)
TextLabel.Font = Enum.Font.GothamBold
TextLabel.Text = "Quantum Q - Studio RemoteSpy v1"
TextLabel.TextColor3 = Color3.fromRGB(220, 220, 220)
TextLabel.TextSize = 14
TextLabel.TextXAlignment = Enum.TextXAlignment.Left
minimize.Parent = titleBar
minimize.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
minimize.BorderSizePixel = 0
minimize.Position = UDim2.new(1, -70, 0, 2)
minimize.Size = UDim2.new(0, 30, 0, 26)
minimize.Font = Enum.Font.GothamBold
minimize.Text = "−"
minimize.TextColor3 = Color3.fromRGB(220, 220, 220)
minimize.TextSize = 18
close.Parent = titleBar
close.BackgroundColor3 = Color3.fromRGB(200, 60, 60)
close.BorderSizePixel = 0
close.Position = UDim2.new(1, -35, 0, 2)
close.Size = UDim2.new(0, 30, 0, 26)
close.Font = Enum.Font.GothamBold
close.Text = "X"
close.TextColor3 = Color3.fromRGB(255, 255, 255)
close.TextSize = 14
-- Main Content Area
local mainContent = Instance.new("Frame")
mainContent.Name = "MainContent"
mainContent.Parent = Frame
mainContent.BackgroundTransparency = 1
mainContent.Position = UDim2.new(0, 0, 0, 30)
mainContent.Size = UDim2.new(1, 0, 1, -30)
-- Left Panel - Remotes List
local leftPanel = Instance.new("Frame")
leftPanel.Name = "LeftPanel"
leftPanel.Parent = mainContent
leftPanel.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
leftPanel.BorderSizePixel = 0
leftPanel.Size = UDim2.new(0.3, 0, 1, 0)
local remotesHeader = Instance.new("TextLabel")
remotesHeader.Name = "RemotesHeader"
remotesHeader.Parent = leftPanel
remotesHeader.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
remotesHeader.BorderSizePixel = 0
remotesHeader.Size = UDim2.new(1, 0, 0, 30)
remotesHeader.Font = Enum.Font.GothamBold
remotesHeader.Text = "CAPTURED REMOTES"
remotesHeader.TextColor3 = Color3.fromRGB(220, 220, 220)
remotesHeader.TextSize = 12
remotes.Parent = leftPanel
remotes.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
remotes.BorderSizePixel = 0
remotes.Position = UDim2.new(0, 0, 0, 30)
remotes.Size = UDim2.new(1, 0, 1, -30)
remotes.ScrollBarThickness = 6
remotes.ScrollBarImageColor3 = Color3.fromRGB(80, 80, 80)
remotes.CanvasSize = UDim2.new(0, 0, 0, 0)
UIListLayout.Parent = remotes
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 3)
UIPadding.Parent = remotes
UIPadding.PaddingLeft = UDim.new(0, 5)
UIPadding.PaddingRight = UDim.new(0, 5)
UIPadding.PaddingTop = UDim.new(0, 5)
UIPadding.PaddingBottom = UDim.new(0, 5)
-- Right Panel - Output
local rightPanel = Instance.new("Frame")
rightPanel.Name = "RightPanel"
rightPanel.Parent = mainContent
rightPanel.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
rightPanel.BorderSizePixel = 0
rightPanel.Position = UDim2.new(0.3, 5, 0, 0)
rightPanel.Size = UDim2.new(0.7, -5, 1, 0)
local outputHeader = Instance.new("TextLabel")
outputHeader.Name = "OutputHeader"
outputHeader.Parent = rightPanel
outputHeader.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
outputHeader.BorderSizePixel = 0
outputHeader.Size = UDim2.new(1, 0, 0, 30)
outputHeader.Font = Enum.Font.GothamBold
outputHeader.Text = "OUTPUT"
outputHeader.TextColor3 = Color3.fromRGB(220, 220, 220)
outputHeader.TextSize = 12
output.Parent = rightPanel
output.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
output.BorderColor3 = Color3.fromRGB(60, 60, 60)
output.BorderSizePixel = 1
output.Position = UDim2.new(0, 0, 0, 30)
output.Size = UDim2.new(1, 0, 0.7, -5)
output.Font = Enum.Font.RobotoMono
output.Text = ""
output.ClearTextOnFocus = false
output.TextColor3 = Color3.fromRGB(220, 220, 220)
output.TextSize = 12
output.TextXAlignment = Enum.TextXAlignment.Left
output.TextYAlignment = Enum.TextYAlignment.Top
output.TextWrapped = true
-- Controls Panel
local controlsPanel = Instance.new("Frame")
controlsPanel.Name = "ControlsPanel"
controlsPanel.Parent = rightPanel
controlsPanel.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
controlsPanel.BorderSizePixel = 0
controlsPanel.Position = UDim2.new(0, 0, 0.7, 5)
controlsPanel.Size = UDim2.new(1, 0, 0.3, -5)
-- Control Buttons Grid
local buttonGrid = Instance.new("UIGridLayout")
buttonGrid.Parent = controlsPanel
buttonGrid.CellPadding = UDim2.new(0, 5, 0, 5)
buttonGrid.CellSize = UDim2.new(0.5, -5, 0, 35)
buttonGrid.StartCorner = Enum.StartCorner.TopLeft
buttonGrid.SortOrder = Enum.SortOrder.LayoutOrder
local padding = Instance.new("UIPadding")
padding.Parent = controlsPanel
padding.PaddingLeft = UDim.new(0, 5)
padding.PaddingRight = UDim.new(0, 5)
padding.PaddingTop = UDim.new(0, 5)
padding.PaddingBottom = UDim.new(0, 5)
-- Control Buttons
clearlogs.Parent = controlsPanel
clearlogs.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
clearlogs.BorderSizePixel = 0
clearlogs.Font = Enum.Font.Gotham
clearlogs.Text = "Clear Logs"
clearlogs.TextColor3 = Color3.fromRGB(255, 255, 255)
clearlogs.TextSize = 12
copy.Parent = controlsPanel
copy.BackgroundColor3 = Color3.fromRGB(70, 70, 150)
copy.BorderSizePixel = 0
copy.Font = Enum.Font.Gotham
copy.Text = "Copy Output"
copy.TextColor3 = Color3.fromRGB(255, 255, 255)
copy.TextSize = 12
run.Parent = controlsPanel
run.BackgroundColor3 = Color3.fromRGB(60, 150, 60)
run.BorderSizePixel = 0
run.Font = Enum.Font.Gotham
run.Text = "Run Output"
run.TextColor3 = Color3.fromRGB(255, 255, 255)
run.TextSize = 12
clearexcludions.Parent = controlsPanel
clearexcludions.BackgroundColor3 = Color3.fromRGB(150, 70, 70)
clearexcludions.BorderSizePixel = 0
clearexcludions.Font = Enum.Font.Gotham
clearexcludions.Text = "Clear Exclusions"
clearexcludions.TextColor3 = Color3.fromRGB(255, 255, 255)
clearexcludions.TextSize = 12
exclude.Parent = controlsPanel
exclude.BackgroundColor3 = Color3.fromRGB(150, 100, 60)
exclude.BorderSizePixel = 0
exclude.Font = Enum.Font.Gotham
exclude.Text = "Exclude Remote"
exclude.TextColor3 = Color3.fromRGB(255, 255, 255)
exclude.TextSize = 12
scrpt.Parent = controlsPanel
scrpt.BackgroundColor3 = Color3.fromRGB(80, 80, 180)
scrpt.BorderSizePixel = 0
scrpt.Font = Enum.Font.Gotham
scrpt.Text = "Make Script"
scrpt.TextColor3 = Color3.fromRGB(255, 255, 255)
scrpt.TextSize = 12
-- Example templates (hidden)
misc.Name = "misc"
misc.Parent = Frame
Examples.Name = "Examples"
Examples.Parent = misc
Examples.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Examples.BorderColor3 = Color3.fromRGB(0, 0, 0)
Examples.BorderSizePixel = 0
Examples.Position = UDim2.new(1.04831457, 0, 0.212806031, 0)
Examples.Size = UDim2.new(0, 100, 0, 100)
Examples.Visible = false
examplefunction.Name = "examplefunction"
examplefunction.Parent = Examples
examplefunction.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
examplefunction.BorderColor3 = Color3.fromRGB(70, 70, 70)
examplefunction.BorderSizePixel = 1
examplefunction.Size = UDim2.new(1, 0, 0, 30)
examplefunction.Font = Enum.Font.SourceSans
examplefunction.Text = ""
examplefunction.TextColor3 = Color3.fromRGB(0, 0, 0)
examplefunction.TextSize = 14.000
examplefunction.AutoButtonColor = false
text.Name = "text"
text.Parent = examplefunction
text.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
text.BackgroundTransparency = 1.000
text.BorderColor3 = Color3.fromRGB(0, 0, 0)
text.BorderSizePixel = 0
text.Position = UDim2.new(0.1, 0, 0, 0)
text.Size = UDim2.new(0.9, 0, 1, 0)
text.Font = Enum.Font.Gotham
text.Text = "RemoteFunction"
text.TextColor3 = Color3.fromRGB(220, 220, 220)
text.TextSize = 12
text.TextXAlignment = Enum.TextXAlignment.Left
img.Name = "img"
img.Parent = examplefunction
img.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
img.BackgroundTransparency = 1.000
img.BorderColor3 = Color3.fromRGB(0, 0, 0)
img.BorderSizePixel = 0
img.Position = UDim2.new(0, 5, 0, 5)
img.Size = UDim2.new(0, 20, 0, 20)
img.Image = "rbxassetid://13936070051"
exampleevent.Name = "exampleevent"
exampleevent.Parent = Examples
exampleevent.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
exampleevent.BorderColor3 = Color3.fromRGB(70, 70, 70)
exampleevent.BorderSizePixel = 1
exampleevent.Size = UDim2.new(1, 0, 0, 30)
exampleevent.Font = Enum.Font.SourceSans
exampleevent.Text = ""
exampleevent.TextColor3 = Color3.fromRGB(0, 0, 0)
exampleevent.TextSize = 14.000
exampleevent.AutoButtonColor = false
img_2.Name = "img"
img_2.Parent = exampleevent
img_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
img_2.BackgroundTransparency = 1.000
img_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
img_2.BorderSizePixel = 0
img_2.Position = UDim2.new(0, 5, 0, 5)
img_2.Size = UDim2.new(0, 20, 0, 20)
img_2.Image = "rbxassetid://13936075598"
text_2.Name = "text"
text_2.Parent = exampleevent
text_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
text_2.BackgroundTransparency = 1.000
text_2.BorderColor3 = Color3.fromRGB(0, 0, 0)
text_2.BorderSizePixel = 0
text_2.Position = UDim2.new(0.1, 0, 0, 0)
text_2.Size = UDim2.new(0.9, 0, 1, 0)
text_2.Font = Enum.Font.Gotham
text_2.Text = "RemoteEvent"
text_2.TextColor3 = Color3.fromRGB(220, 220, 220)
text_2.TextSize = 12
text_2.TextXAlignment = Enum.TextXAlignment.Left
-- Drag functionality
local function update(input)
local delta = input.Position - start
local position = UDim2.new(pos.X.Scale, pos.X.Offset + delta.X,
pos.Y.Scale, pos.Y.Offset + delta.Y)
game:GetService("TweenService"):Create(Frame, TweenInfo.new(0.15), {Position = position}):Play()
end
titleBar.InputBegan:Connect(function(input)
if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then
drag = true
start = input.Position
pos = Frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
drag = false
end
end)
end
end)
game:GetService("UserInputService").InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
if drag then
update(input)
end
end
end)
-- Remote Spy Logic
local logs = {}
local excluded = {}
local selectedRemote = nil
local function fixargs(...)
local args = {...}
local strings = {}
local function serialize(arg)
if typeof(arg) == "string" then
return string.format("\"%s\"", arg)
elseif typeof(arg) == "Instance" then
return string.format("game:GetService(\"%s\")", arg.ClassName) .. (arg == game and "" or string.format(":WaitForChild(\"%s\")", arg.Name))
elseif typeof(arg) == "table" then
local serialized = {}
for k, v in pairs(arg) do
if typeof(k) == "string" then
table.insert(serialized, string.format("[\"%s\"] = %s", k, serialize(v)))
else
table.insert(serialized, string.format("[%s] = %s", k, serialize(v)))
end
end
return "{" .. table.concat(serialized, ", ") .. "}"
else
return tostring(arg)
end
end
for _, v in ipairs(args) do
table.insert(strings, serialize(v))
end
return "local args = {\n " .. table.concat(strings, ",\n ") .. "\n}"
end
local function log(remote, method, ...)
if excluded[remote] then
return
end
local args = fixargs(...)
local fullPath = "game."..remote:GetFullName()
local txt = string.format("%s\n%s:%s(unpack(args))", args, fullPath, method)
if not logs[remote] then
local button = (method == "FireClient" and exampleevent or examplefunction):Clone()
button.text.Text = remote.Name
button.Visible = true
button.Parent = remotes
-- Update canvas size
remotes.CanvasSize = UDim2.new(0, 0, 0, UIListLayout.AbsoluteContentSize.Y)
button.MouseButton1Click:Connect(function()
-- Deselect previous
if selectedRemote then
selectedRemote.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
end
-- Select new
selectedRemote = button
button.BackgroundColor3 = Color3.fromRGB(70, 100, 150)
output.Text = txt
end)
logs[remote] = button
end
end
-- Initialize remote listeners
for _, remote in ipairs(game:GetDescendants()) do
if remote:IsA("RemoteEvent") then
remote.OnClientEvent:Connect(function(...)
log(remote, "FireClient", ...)
end)
elseif remote:IsA("RemoteFunction") then
remote.OnClientInvoke = function(...)
log(remote, "InvokeClient", ...)
end
end
end
game.DescendantAdded:Connect(function(descendant)
if descendant:IsA("RemoteEvent") then
descendant.OnClientEvent:Connect(function(...)
log(descendant, "FireClient", ...)
end)
elseif descendant:IsA("RemoteFunction") then
descendant.OnClientInvoke = function(...)
log(descendant, "InvokeClient", ...)
end
end
end)
-- Button functionality
local function generate()
local final = string.format("local args = {...}\n%s", output.Text:gsub("local args = {[^}]+}", ""))
output.Text = final
end
exclude.MouseButton1Click:Connect(function()
if selectedRemote then
for remote, button in pairs(logs) do
if button == selectedRemote then
excluded[remote] = true
selectedRemote:Destroy()
selectedRemote = nil
output.Text = ""
break
end
end
end
end)
copy.MouseButton1Click:Connect(function()
if output.Text ~= "" then
setclipboard(output.Text)
end
end)
run.MouseButton1Click:Connect(function()
if output.Text ~= "" then
local success, err = pcall(function()
loadstring(output.Text)()
end)
if not success then
output.Text = output.Text .. "\n\n-- Error: " .. err
end
end
end)
scrpt.MouseButton1Click:Connect(function()
if output.Text ~= "" then
generate()
end
end)
clearlogs.MouseButton1Click:Connect(function()
output.Text = ""
for _, child in ipairs(remotes:GetChildren()) do
if child:IsA("TextButton") then
child:Destroy()
end
end
logs = {}
excluded = {}
selectedRemote = nil
remotes.CanvasSize = UDim2.new(0, 0, 0, 0)
end)
clearexcludions.MouseButton1Click:Connect(function()
excluded = {}
end)
close.MouseButton1Click:Connect(function()
a:Destroy()
end)
minimize.MouseButton1Click:Connect(function()
mainContent.Visible = not mainContent.Visible
Frame.Size = mainContent.Visible and UDim2.new(0, 900, 0, 550) or UDim2.new(0, 900, 0, 30)
end)[ View More ]
Quantum Q - Studio RemoteSpy v1DESCRIPTIONA professional remote monitoring tool for Roblox Studio that captures and displays RemoteEvents and RemoteFunctions in real-time.FEATURES- Real-time Monitoring: Automatically detects and logs all RemoteEvents and RemoteFunctions- Clean Interface: Modern dark-themed UI with intuitive layout- Remote Management: - View captured remotes in organized list - Select remotes to view detailed invocation data - Exclude specific remotes from logging- Code Generation: - Automatically generates executable Lua code from captured calls - Copy output to clipboard - Run code directly from the interface- Organization: - Clear logs individually or all at once - Manage exclusion list - Minimize interface when not in useINTERFACE LAYOUTLeft Panel - Remote List- Displays all captured RemoteEvents and RemoteFunctions- Color-coded icons differentiate between event types- Click any remote to view its invocation detailsRight Panel - Output & Controls- Output Display: Shows generated Lua code for selected remote calls- Control Buttons: - Clear Logs: Remove all captured remotes and clear output - Copy Output: Copy generated code to clipboard - Run Output: Execute the generated code directly - Clear Exclusions: Remove all remote exclusions - Exclude Remote: Stop logging selected remote - Make Script: Format output as executable scriptUSAGE INSTRUCTIONS1. Installation: The script automatically creates the UI when executed2. Monitoring: All RemoteEvents and RemoteFunctions are automatically captured3. Analysis: Click any remote in the list to view its call data and generated code4. Execution: Use the control buttons to copy, run, or export the captured callsTECHNICAL DETAILS- Auto-detection: Monitors game descendants and new instances in real-time- Serialization: Properly serializes various data types including strings, instances, and tables- Performance: Efficient logging system that avoids duplication- Safety: Protected execution environment for running generated codeBENEFITS- Essential for developers analyzing remote communication in their games- Useful for debugging network issues- Helpful for studying game mechanics that rely on client-server communication- Provides insight into game's client-server architectureCOMPATIBILITY- Designed for Roblox Studio environment- Compatible with most Roblox games- Requires appropriate execution permissionsVERSION: 1.0DEVELOPER: Quantum Q Studio