Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- wait(25)
- --toggle classes by switching true/false
- spawn(function()
- SpyOn = {
- RemoteEvent = true;
- RemoteFunction = true;
- BindableEvent = false;
- BindableFunction = false;
- }
- --if true will spy 'hidden' events
- spyNilInstances = false
- --list of names it will ignore e.g. {"a","b"}
- Ignore = {}
- --maximum number of sections at once
- numMaxSections = 25
- --size of padding inside sections
- yindent = 20
- --/////////////////////////////////////////////////////////////////////////////////////
- --by sirelKilla (v3rm) \\ fixed by stellar
- if Synapse==nil then
- warn("This spy is best used with Synapse.")
- end
- local MT = getrawmetatable(game)
- if setreadonly then setreadonly(MT,false) end
- if make_writeable then make_writeable(MT) end
- local oldNamecall = MT.__namecall
- local Player = game:GetService("Players").LocalPlayer
- --basically makes a background
- MakeShadow = function(GUI, Deepness)
- for i=1, Deepness do
- local G = GUI:Clone()
- G.ZIndex = GUI.ZIndex - 1
- G.Size=UDim2.new(1,12,1,12)
- G.Position=UDim2.new(0,-6,0,-6)
- G.Active=false
- G.Draggable=false
- G:ClearAllChildren()
- G.Name = GUI.Name.." Shadow"
- G.Parent = GUI
- end
- end
- --create basic frames
- local CanScroll = true
- local GUI = Instance.new("ScreenGui",game.CoreGui)
- GUI.Name = "SpyScroller"
- GUI.ResetOnSpawn = false
- GUI.DisplayOrder = 10000
- GUI.Enabled = false
- local Main = Instance.new("Frame", GUI)
- Main.Active = true
- Main.ZIndex = 10000
- Main.Size = UDim2.new(0.27, 0, 0.32, 0)
- Main.Draggable = true
- Main.Style = "DropShadow"
- Main.Position = UDim2.new(0.05, 0, 0.05, 0)
- MakeShadow(Main, 4)
- local Bar = Instance.new("Frame", Main)
- Bar.BackgroundColor3=Color3.fromRGB(40,40,40)
- Bar.Size = UDim2.new(1, 20, 0.13, 0)
- Bar.Position = UDim2.new(0, -10, -0.03)
- Bar.ZIndex = Main.ZIndex+1
- local Title = Instance.new("TextLabel", Bar)
- Title.BackgroundTransparency = 1
- Title.Position=UDim2.new(0,10)
- Title.TextColor3 = Color3.new(1, 1, 1)
- Title.Font = "ArialBold"
- Title.Text = "Magic's Remote Spy"
- Title.TextSize = 15
- Title.ZIndex = Main.ZIndex+3
- Title.TextXAlignment = "Left"
- Title.Size = UDim2.new(1, 0, 1, 0)
- local Exit = Instance.new("TextButton", Bar)
- Exit.BackgroundTransparency = 1
- Exit.Text = "x"
- Exit.TextColor3 = Color3.new(1, 1, 1)
- Exit.Size = UDim2.new(0.08, 0, 1.5, 0)
- Exit.TextSize = 20
- Exit.TextWrapped = false
- Exit.Position = UDim2.new(0.95, -10, -0.28, 0)
- Exit.Font = "ArialBold"
- Exit.ZIndex = Main.ZIndex+1
- Exit.MouseButton1Up:connect(function()
- GUI:Destroy()
- MT.__namecall = oldNamecall
- end)
- Exit.MouseEnter:connect(function()
- Exit.TextColor3 = Color3.new(1, 0, 0)
- end)
- Exit.MouseLeave:connect(function()
- Exit.TextColor3 = Color3.new(1, 1, 1)
- end)
- local Scroll = Instance.new("ScrollingFrame", Main)
- Scroll.BackgroundTransparency = 1
- Scroll.Name = "Scroll"
- Scroll.Size = UDim2.new(1, 0, 0.9, 0)
- Scroll.ZIndex = Main.ZIndex+1
- Scroll.Position = UDim2.new(0, 0, 0.1, 0)
- Scroll.BorderSizePixel = 0
- Scroll.CanvasSize = UDim2.new()
- --clipboard gui
- local Popup = Instance.new("TextButton",GUI)
- Instance.new("StringValue",Popup).Name = "ToCopy"
- Popup.Name="ClipboardBtn"
- Popup.Text="Copy"
- Popup.Size=UDim2.new(0,40,0,20)
- Popup.ZIndex=Main.ZIndex+4
- Popup.Visible=false
- Popup.MouseButton1Down:Connect(function()
- if Synapse then
- Synapse:CopyString(Popup.ToCopy.Value)
- elseif setclipboard then
- setclipboard(Popup.ToCopy.Value)
- elseif Clipboard then
- Clipboard.set(Popup.ToCopy.Value)
- end
- Popup.Visible=false
- end)
- --bottom-right resizer
- --////
- local resize = Instance.new("ImageButton")
- resize.Name = "resize"
- resize.BackgroundTransparency = 1
- resize.Image = "rbxassetid://55927414"
- resize.ZIndex = Main.ZIndex+1
- resize.Size = UDim2.new(0,13,0,13)
- resize.Position = UDim2.new(1,-9,1,-9)
- resize.Active=true
- resize.Draggable=true
- local resizing=false
- local mouseConn
- resize.DragBegin:Connect(function()
- --basically moves sizer to only absolutes..
- local rAP = resize.AbsolutePosition
- resize.Parent = GUI
- resize.Position = UDim2.new(0,rAP.X,0,rAP.Y)
- --then offsets main size based on those values
- local mS = Main.Size
- local mAS = Main.AbsoluteSize
- local addX,addY=0,0
- mouseConn = Player:GetMouse().Move:Connect(function()
- --most of this is to keep stuff from going negative
- addX,addY = math.max(-mAS.X+240,resize.AbsolutePosition.X - rAP.X),math.max(-mAS.Y+100,resize.AbsolutePosition.Y - rAP.Y)
- Main.Size=mS + UDim2.new(0,addX,0,addY)
- --hide if negative
- if addX>-mAS.X+240 and addY>-mAS.Y+100 then
- resize.ImageTransparency = 0
- else
- resize.ImageTransparency = 1
- end
- end)
- end)
- resize.DragStopped:Connect(function()
- --turn to normal
- resize.Parent = Main
- resize.Position = UDim2.new(1,-9,1,-9)
- resize.ImageTransparency = 0
- mouseConn:Disconnect()
- end)
- resize.Parent = Main
- --////
- local function isMouseDown()
- local array = game:GetService("UserInputService"):GetMouseButtonsPressed()
- for i=1,#array do
- if array[i].UserInputType==Enum.UserInputType.MouseButton1 then
- return true
- end
- end
- return false
- end
- local db=false
- Scroll:GetPropertyChangedSignal("CanvasPosition"):Connect(function()
- if db==false and CanScroll==false and isMouseDown() then
- db=true
- Main.Active=false
- repeat wait(0.5) until not isMouseDown()
- Main.Active=true
- db=false
- end
- end)
- Instance.new("UIListLayout",Scroll).SortOrder = Enum.SortOrder.LayoutOrder
- local sectionIndex = 0
- local Console = {}
- Console.White = Color3.new(1, 1, 1)
- Console.LightGray = Color3.fromRGB(155, 155, 155)
- local CurrentColour = Console.White
- local CurrentSection
- local NumLabels = 0
- local sections = {}
- function Console:WriteLine(Text)
- pcall(function()
- if CurrentSection and tostring(Text) then
- NumLabels=NumLabels+1
- local TL = Instance.new("TextLabel")
- TL.Parent = CurrentSection
- TL.Text = tostring(Text)
- TL.TextColor3 = CurrentColour
- TL.BackgroundTransparency = 1
- TL.Font = "ArialBold"
- TL.TextSize = 14
- TL.ZIndex = Main.ZIndex+3
- TL.TextXAlignment = "Left"
- TL.TextWrapped = false
- TL.Size = UDim2.new(1, 0, 0, 20)
- local Y = #CurrentSection:GetChildren()*20
- TL.Position = UDim2.new(0, 0, 0, Y-20 + yindent/2)
- CurrentSection.Size = UDim2.new(1, 0, 0, Y + yindent)
- if CanScroll then
- Scroll.CanvasSize = UDim2.new(0, 0, 0, NumLabels*20)
- Scroll.CanvasPosition = Vector2.new(0, Scroll.CanvasSize.Y.Offset)
- end
- end
- end)
- end
- function Console:SetColor(Color)
- CurrentColour = Color
- end
- function Console:PushSection(ClipboardText)
- if #sections < numMaxSections then --if going to add a section
- NumLabels=NumLabels+(yindent/20) --just increases scroller size
- end
- sectionIndex=sectionIndex+1
- local f = Instance.new("Frame")
- f.BackgroundTransparency = 1 - (0.07 * (sectionIndex % 2)) --alternate colors
- f.BorderSizePixel=2
- f.BorderColor3=Color3.new(1,1,1)
- f.ZIndex = Main.ZIndex+2
- f.Size = UDim2.new()
- if ClipboardText~=nil then
- --on right click show copy option label, which copies text when clicked
- f.InputEnded:Connect(function(input)
- if input.UserInputType==Enum.UserInputType.MouseButton2 then
- Popup.ToCopy.Value = ClipboardText
- Popup.Position = UDim2.new(0,Player:GetMouse().X+1,0,Player:GetMouse().Y+1)
- Popup.Visible=true
- game:GetService("UserInputService").InputBegan:Wait()
- wait()
- Popup.Visible=false
- end
- end)
- end
- f.LayoutOrder = sectionIndex --for UIListLayout
- if #sections >= numMaxSections and CanScroll then
- --removes any extra sections. limited by CanScroll or else the rotations will still look like scrolling
- for i=0,#sections-numMaxSections do
- NumLabels = NumLabels - #sections[1]:GetChildren()
- sections[1]:Destroy()
- table.remove(sections,1)
- end
- end
- sections[#sections+1]=f
- f.Parent = Scroll
- CurrentSection = f
- end
- Console:SetColor(Console.White)
- Main.MouseEnter:connect(function()
- CanScroll = false
- end)
- Main.MouseLeave:connect(function()
- CanScroll = true
- --"unpause"
- for i=1,#sections-numMaxSections do
- NumLabels = NumLabels - #sections[1]:GetChildren()
- sections[1]:Destroy()
- table.remove(sections,1)
- end
- Scroll.CanvasSize = UDim2.new(0, 0, 0, NumLabels*20)
- end)
- --//// utilities ////
- local function isInArray(t,v)
- for i=1,#t do
- if t[i]==v then
- return true
- end
- end
- return false
- end
- local function instFormat(name)
- if name=='' or name:match("[^_%w]") or name:match("^%d") then
- return '["'..name..'"]'
- end
- return "."..name
- end
- local function GetPath(inst)
- if inst==game then return "game" end
- if inst.Parent==nil then return inst.Name end
- local current,str=inst,''
- while current.Parent~=game do
- str=instFormat(current.Name) ..str
- current = current.Parent
- end
- if current==workspace then
- return "workspace"..str
- elseif pcall(game.GetService,game,current.ClassName) then
- return 'game:GetService("'.. current.ClassName ..'")'..str
- end
- return "game"..instFormat(current.Name)..str
- end
- local FullPathsMode = false --internally toggled for using GetPath
- local function _tostring(x)
- local typ = typeof(x)
- if typ == "table" then
- return tableToString(x)
- elseif typ == "string" then
- return '"'..x..'"'
- elseif typ == "Vector3" then
- return string.format("Vector3.new(%g,%g,%g)",x.X,x.Y,x.Z)
- elseif typ == "Color3" then
- return string.format("Color3.new(%g,%g,%g)",x.r,x.g,x.b)
- elseif typ == "Vector2" then
- return string.format("Vector2.new(%g,%g)",x.X,x.Y)
- elseif typ == "CFrame" then
- return string.format("CFrame.new(%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g)",x:components())
- elseif typ == "UDim2" then
- return string.format("UDim2.new(%g,%g,%g,%g)",x.X.Scale,x.X.Offset,x.Y.Scale,x.Y.Offset)
- elseif typ == "Instance" then
- return ((FullPathsMode==true) and GetPath(x)) or x:GetFullName()
- end
- return tostring(x)
- end
- function tableToString(tab)
- local str = "{ "
- local len = #tab
- local c = 1
- for k,v in pairs(tab) do
- if (k==c and k<=len) then
- --array part
- str = str .. _tostring(v) .. ", "
- c = c + 1
- else
- --dict part
- str = str .. "[" .. _tostring(k) .. "]= " .. _tostring(v) .. ", "
- end
- end
- str = str:sub(1,math.max(1,#str-2)) .. " }"
- return str
- end
- function tupleString(tab,fullPaths)
- FullPathsMode=fullPaths
- return tableToString(tab):sub(3,-3)
- end
- --//// end utilities ////
- toConsole = function(method, event, Args, Returned)
- local nilParent = game:IsAncestorOf(event)==false
- if (spyNilInstances==false and nilParent==true) or (event.Name=="CharacterSoundEvent" and event.Parent and event.Parent.ClassName=="Sound") or isInArray(Ignore,event.Name) then
- --ignored an event
- return
- end
- pcall(function()
- Console:PushSection(string.format("%s:%s(%s)",GetPath(event),method,tupleString(Args,true)))
- Console:WriteLine(string.format("%s.%s called!",event.ClassName,method))
- Console:WriteLine("Path: "..event:GetFullName())
- Console:WriteLine("Args: "..tupleString(Args))
- if Returned and #Returned>0 then
- Console:WriteLine("Returned: ".. tupleString(Returned))
- end
- end)
- end
- local logsList = {}
- MT.__namecall = newcclosure(function(inst,...)
- local args = {...}
- local m = getnamecallmethod()
- args[#args]=nil
- if (m=="FireServer" or m=="Fire" or m=="InvokeServer" or m=="Invoke") and SpyOn[inst.ClassName] then
- local returned = {oldNamecall(inst,...)}
- logsList[#logsList+1]={m, inst, args, returned}
- return unpack(returned)
- end
- return oldNamecall(inst,...)
- end)
- Console:PushSection()
- Console:WriteLine("Welcome to Magic's RemoteSpy!")
- while wait() and GUI.Parent do
- if #logsList>0 then
- toConsole(unpack(table.remove(logsList,1)))
- end
- end
- end)
- game:GetObjects('rbxassetid://4632363446')[1].Parent = game.CoreGui
- gui = game.CoreGui:WaitForChild('MagicConsole')
- GUI = game.CoreGui:WaitForChild("SpyScroller")
- local header = gui:WaitForChild("Header")
- local cmds = header:WaitForChild("Body").Commands
- local selected_target = nil
- local player = game.Players.LocalPlayer
- header.Visible = false
- gui.Console.Visible = false
- header.Body.Visible = false
- header.Draggable = true
- header.Selectable = true
- header.Active = true
- success, Error = pcall(function()
- local char = game.Players.LocalPlayer.Character or game.Players.LocalPlayer.CharacterAdded:wait()
- local Mouse = game:GetService("Players").LocalPlayer:GetMouse()
- Mouse.Button1Down:connect(function()
- if not game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.LeftControl) then
- return
- end
- if not Mouse.Target then
- return
- end
- if Mouse.Target.Parent:FindFirstChild("Humanoid") then
- if game.Players:FindFirstChild(Mouse.Target.Parent.Name) then
- selected_target = Mouse.Target.Parent.Name
- header.Body.Selected.Text = Mouse.Target.Parent.Name
- end
- end
- end)
- cmds.Attach.Text = "Rape"
- function updateList()
- for i,v in pairs(header.Body.List:GetChildren()) do
- if v:IsA("TextButton") then
- v:Destroy()
- end
- end
- for i,v in pairs(game.Players:GetChildren()) do
- local template = header.Body.Template:Clone()
- template.Parent = header.Body.List
- template.Name = v.Name
- template.Text = v.Name
- template.Visible = true
- end
- for i,v in pairs(header.Body.List:GetChildren()) do
- if v:IsA("TextButton") then
- v.MouseButton1Click:connect(function()
- selected_target = v.Name
- header.Body.Selected.Text = v.Name
- end)
- end
- end
- end
- function Notify(txt)
- if gui:WaitForChild("Console").Visible == false then
- gui:WaitForChild("Console").Visible = true
- spawn(function()
- for i = 1, #txt do
- gui:WaitForChild("Console").Message.Text = string.sub(txt, 1, i)
- wait(0.04)
- end
- wait(4)
- gui:WaitForChild("Console").Message.Text = ""
- gui:WaitForChild("Console").Visible = false
- end)
- end
- end
- game.Players.PlayerAdded:Connect(function(ply)
- if ply:IsFriendsWith(player.UserId) then
- Notify("Your friend " .. ply.Name .. " has joined!")
- end
- end)
- header.Toggle.MouseButton1Click:connect(function()
- if header.Body.Visible == true then
- header.Body.Visible = false
- else
- header.Body.Visible = true
- end
- end)
- local phrases = {
- "Welcome Master! I missed you!",
- "Hii where have you been?",
- "I've updated stuff while you were gone!",
- "B-baka.. Welcome back!",
- "I didn't miss you or anything..",
- }
- local value = math.random(1,#phrases)
- local picked_value = phrases[value]
- cmds.Kill.MouseButton1Click:connect(function()
- if selected_target ~= nil then
- if workspace:FindFirstChild(selected_target) then
- local torsoname = "Torso"
- if player.Character:FindFirstChild("Humanoid").RigType == Enum.HumanoidRigType.R15 then
- torsoname = "UpperTorso"
- end
- local savepos = player.Character:FindFirstChild("HumanoidRootPart").CFrame
- player.Character:FindFirstChild(torsoname).Anchored = true
- local tool = Instance.new("Tool", player.Backpack)
- local hat = player.Character:FindFirstChildOfClass("Accessory")
- local hathandle = hat.Handle
- hathandle.Parent = tool
- hathandle.Massless = true
- tool.GripPos = Vector3.new(0,9e99, 0)
- tool.Parent = player.Character
- repeat wait() until player.Character:FindFirstChildOfClass("Tool") ~= nil
- tool.Grip = CFrame.new(Vector3.new(0,0,0))
- player.Character:FindFirstChild(torsoname).Anchored = false
- repeat
- player.Character:FindFirstChild("HumanoidRootPart").CFrame = workspace:FindFirstChild(selected_target):FindFirstChild("HumanoidRootPart").CFrame
- wait()
- until workspace:FindFirstChild(selected_target) == nil or workspace:FindFirstChild(selected_target):FindFirstChild("Humanoid").Health <= 0 or player.Character == nil or player.Character:FindFirstChild("Humanoid").Health <= 0 or (workspace:FindFirstChild(selected_target):FindFirstChild("HumanoidRootPart").Velocity.magnitude - workspace:FindFirstChild(selected_target):FindFirstChild("Humanoid").WalkSpeed) > (workspace:FindFirstChild(selected_target):FindFirstChild("Humanoid").WalkSpeed + 20)
- player.Character:FindFirstChild("Humanoid"):UnequipTools()
- hathandle.Parent = hat
- hathandle.Massless = false
- tool:Destroy()
- player.Character:FindFirstChild("HumanoidRootPart").CFrame = savepos
- end
- end
- end)
- cmds.Report.MouseButton1Click:connect(function()
- if selected_target ~= nil and game.Players:FindFirstChild(selected_target) then
- for i = 1,10 do
- game.Players:ReportAbuse(game.Players:FindFirstChild(selected_target), "Exploiting", "HES EXPLOITING!!!!")
- end
- Notify("I reported them 10 times for you!")
- end
- end)
- header.Body.RS.MouseButton1Click:connect(function()
- if GUI.Enabled == true then
- GUI.Enabled = false
- else
- GUI.Enabled = true
- end
- end)
- cmds.Attach.MouseButton1Click:connect(function()
- if selected_target ~= nil then
- if workspace:FindFirstChild(selected_target) then
- local A=Instance.new'Animation'
- A.AnimationId='rbxassetid://148840371'
- local P=game:GetService'Players'.LocalPlayer
- local C=P.Character or P.CharacterAdded:Wait()
- local H=C:WaitForChild'Humanoid':LoadAnimation(A)
- H:Play()
- H:AdjustSpeed(2.5)
- repeat wait()
- C:WaitForChild'HumanoidRootPart'.CFrame=CFrame.new(workspace:FindFirstChild(selected_target):WaitForChild'HumanoidRootPart'.Position)
- until player.Character == nil or player.Character.Humanoid.Health <= 0 or workspace:FindFirstChild(selected_target) == nil
- H:Stop()
- end
- end
- end)
- cmds.Goto.MouseButton1Click:connect(function()
- if selected_target ~= nil then
- if workspace:FindFirstChild(selected_target) then
- player.Character:FindFirstChild("HumanoidRootPart").CFrame = workspace:FindFirstChild(selected_target):FindFirstChild("HumanoidRootPart").CFrame
- end
- end
- end)
- if game.GameId == 27611054 then
- for i,v in pairs(workspace:FindFirstChild("Booths"):GetDescendants()) do
- if v.Name == "CollisionBox" then
- v:GetPropertyChangedSignal("BrickColor"):connect(function()
- Notify("Oh dear someone banned you! I'll fix that!")
- v:Destroy()
- end)
- end
- end
- end
- spawn(function()
- wait(1)
- print("Loaded Magic.Console.V.1.1")
- Notify(picked_value)
- header.Visible = true
- end)
- spawn(function()
- while wait(2) do
- updateList()
- end
- end)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement