Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- THIS SCRIPTS IS VERY OUTDATED, THINGS IN THIS SCRIPT JUST BROKEN AND GOT PATCHED, MAY TRIGGER DETECTIONS [POTENTIAL BANS] --
- -- Murder Mystery EasyHub [OpenSource]
- --[[
- Update Logs :
- + Fixed Some Unexpected Bugs [PlayerEsp,GunEsp,RagdollRemover]
- + Added Bug Reporter [May Temporary]
- + Rewrite all Codes for Bug Fixes
- + Fixed Some Bugs
- ]]
- local StarterGui = game:GetService("StarterGui")
- local function Notif(title,text,time,button)
- local Setting = {
- Title = title,
- Text = text,
- Duration = time
- }
- if button then
- Setting.Button1 = "OK"
- end
- StarterGui:SetCore("SendNotification",Setting)
- end
- local Success, Error = pcall(function()
- if not game:GetService("CoreGui"):FindFirstChild("Loaded") then
- if game.PlaceId == 142823291 then
- local Players = game:GetService("Players")
- local LocalPlayer = Players.LocalPlayer
- local LocalName = LocalPlayer.Name
- local CoreGui = game:GetService("CoreGui")
- local RunService = game:GetService("RunService")
- local Heartbeat = RunService.Heartbeat
- local RS = game:GetService("ReplicatedStorage")
- local Detector = Instance.new("Folder",CoreGui)
- Detector.Name = "Loaded"
- local EspFolder = Instance.new("Folder",CoreGui)
- EspFolder.Name = "Object"
- local GunEsp = Instance.new("Folder",EspFolder)
- GunEsp.Name = "Gun"
- local PlayerEsp = Instance.new("Folder",EspFolder)
- PlayerEsp.Name = "Player"
- local NameEsp = Instance.new("Folder",PlayerEsp)
- NameEsp.Name = "Name"
- local PlayerCham = Instance.new("Folder",PlayerEsp)
- PlayerCham.Name = "Body"
- local Transparency = 0.7
- Notif("Hello"..LocalName,"Loading EasyHub.",3,false)
- -- Alive Checker
- local Roles
- function IsAlive(Player)
- for i, v in pairs(Roles) do
- if Player.Name == i then
- if not v.Killed and not v.Dead then
- return true
- else
- return false
- end
- end
- end
- end
- local Murderer
- local Sheriff
- local Hero
- -- Get Roles
- task.spawn(function()
- while wait(1) do
- local Remotes = RS:FindFirstChild("Remotes")
- if Remotes then
- local Extras = Remotes:FindFirstChild("Extras")
- if Extras then
- Roles = Extras:FindFirstChild("GetPlayerData", true):InvokeServer()
- if Roles then
- for i, v in pairs(Roles) do
- if v.Role == "Murderer" and Players:FindFirstChild(i) and IsAlive(Players:FindFirstChild(i)) then
- Murderer = i
- elseif v.Role == "Murderer" and Players:FindFirstChild(i) and not IsAlive(Players:FindFirstChild(i)) then
- Murderer = false
- elseif v.Role == "Sheriff" and Players:FindFirstChild(i) and IsAlive(Players:FindFirstChild(i)) then
- Sheriff = i
- elseif v.Role == "Sheriff" and Players:FindFirstChild(i) and not IsAlive(Players:FindFirstChild(i)) then
- Sheriff = false
- elseif v.Role == "Hero" and Players:FindFirstChild(i) and IsAlive(Players:FindFirstChild(i)) then
- Hero = i
- elseif v.Role == "Hero" and Players:FindFirstChild(i) and not IsAlive(Players:FindFirstChild(i)) then
- Hero = false
- end
- end
- end
- end
- end
- end
- end)
- -- Convert
- local function toObject(string)
- local object = game
- local objectNames = string.split(string, ".")
- for _, objectName in ipairs(objectNames) do
- object = object:FindFirstChild(objectName)
- if not object then
- return nil
- end
- end
- return object
- end
- -- Color
- local function getColor(object,type)
- if object == "Innocent" and type == "Solid" then
- return Color3.new(0,255,0)
- elseif object == "Innocent" and type == "Cham" then
- return Color3.fromRGB(75, 151, 75)
- elseif object == "Innocent" and type == "ESP" then
- return Color3.fromRGB(75, 255, 75)
- elseif object == "Sheriff" and type == "Solid" then
- return Color3.new(0,0,255)
- elseif object == "Sheriff" and type == "Cham" then
- return Color3.fromRGB(98, 37, 209)
- elseif object == "Sheriff" and type == "ESP" then
- return Color3.fromRGB(75, 75, 255)
- elseif object == "Murderer" and type == "Solid" then
- return Color3.new(255,0,0)
- elseif object == "Murderer" and type == "Cham" then
- return Color3.fromRGB(196, 40, 28)
- elseif object == "Murderer" and type == "ESP" then
- return Color3.fromRGB(255, 40, 29)
- elseif object == "Hero" and type == "Solid" then
- return Color3.new(255,255,0)
- elseif object == "Hero" and type == "Cham" then
- return Color3.fromRGB(245, 205, 48)
- elseif object == "Hero" and type == "ESP" then
- return Color3.fromRGB(245, 205, 48)
- elseif object == "Gun" and type == "ESP" then
- return Color3.fromRGB(121, 39, 176)
- elseif object == "Gun" and type == "Cham" then
- return Color3.fromRGB(98, 37, 209)
- elseif object == "Trap" and type == "ESP" then
- return Color3.fromRGB(255, 40, 29)
- elseif object == "Trap" and type == "Cham" then
- return Color3.fromRGB(196, 40, 28)
- end
- end
- -- Closest Player
- local function CLosestPlayer()
- local ClosestPlayer
- local HugeDistance = math.huge
- for _,Player in pairs(Players:GetPlayers()) do
- if Player ~= LocalPlayer then
- local Character = LocalPlayer.Character
- local oCharacter = Player.Character
- if Character and oCharacter then
- local Root = Character:FindFirstChild("HumanoidRootPart")
- local oRoot = oCharacter:FindFirstChild("HumanoidRootPart")
- if Root and oRoot then
- local PlayerDistance = (Root.Position - oRoot.Position).Magnitude
- if PlayerDistance < HugeDistance then
- HugeDistance = PlayerDistance
- ClosestPlayer = Player
- end
- end
- end
- end
- end
- return ClosestPlayer
- end
- -- Player Esp
- local function Esp(Player)
- repeat wait() until Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") and Player.Character:FindFirstChildOfClass("Humanoid")
- local Character = Player.Character
- if Character then
- local Head = Character:FindFirstChild("Head")
- if Head then
- for _,Child in pairs(NameEsp:GetChildren()) do
- if Child:IsA("Folder") and Child.Name == Player.Name then
- Child:Destroy()
- end
- end
- local NameHolder = Instance.new("Folder",NameEsp)
- NameHolder.Name = Player.Name
- local BillboardGui = Instance.new("BillboardGui",NameHolder)
- BillboardGui.Adornee = Head
- BillboardGui.Name = Head:GetFullName()
- BillboardGui.Size = UDim2.new(0, 100, 0, 150)
- BillboardGui.StudsOffset = Vector3.new(0,1,0)
- BillboardGui.AlwaysOnTop = true
- local TextLabel = Instance.new("TextLabel",BillboardGui)
- TextLabel.BackgroundTransparency = 1
- TextLabel.Position = UDim2.new(0, 0, 0, -50)
- TextLabel.Size = UDim2.new(0, 100, 0, 100)
- TextLabel.Font = Enum.Font.Gotham
- TextLabel.TextSize = 17
- TextLabel.TextColor3 = getColor("Innocent","ESP")
- TextLabel.TextStrokeTransparency = 0
- TextLabel.TextYAlignment = Enum.TextYAlignment.Bottom
- TextLabel.Text = Player.Name
- TextLabel.ZIndex = 0
- TextLabel.Name = Player.Name
- end
- end
- end
- for _,Player in pairs(Players:GetPlayers()) do
- if Player ~= LocalPlayer then
- Esp(Player)
- end
- end
- Players.PlayerAdded:Connect(function(Player)
- if Player ~= LocalPlayer then
- Esp(Player)
- end
- end)
- Players.PlayerRemoving:Connect(function(Player)
- if Player ~= LocalPlayer then
- for _,Child in pairs(NameEsp:GetChildren()) do
- if Child:IsA("Folder") and Child.Name == Player.Name then
- Child:Destroy()
- end
- end
- end
- end)
- Heartbeat:Connect(function()
- for _,Child in pairs(NameEsp:GetChildren()) do
- if Child:IsA("Folder") then
- local BillboardGui = Child:FindFirstChildOfClass("BillboardGui")
- if BillboardGui then
- local Object = toObject(BillboardGui.Name)
- if Object then
- BillboardGui.Adornee = Object
- end
- end
- end
- end
- end)
- -- Change Color
- Heartbeat:Connect(function()
- for _, v in pairs(Players:GetPlayers()) do
- if v ~= LocalPlayer then
- local Folder = NameEsp:FindFirstChild(v.Name)
- if Folder and Folder:IsA("Folder") then
- local BillboardGui = Folder:FindFirstChildOfClass("BillboardGui")
- if BillboardGui then
- local TextLabel = BillboardGui:FindFirstChild(v.Name)
- if TextLabel and TextLabel:IsA("TextLabel") then
- if v.Name == Sheriff and IsAlive(v) then
- TextLabel.TextColor3 = getColor("Sheriff","ESP")
- elseif v.Name == Murderer and IsAlive(v) then
- TextLabel.TextColor3 = getColor("Murderer","ESP")
- elseif v.Name == Hero and IsAlive(v) and Players:FindFirstChild(Sheriff) and not IsAlive(Players[Sheriff]) then
- TextLabel.TextColor3 = getColor("Hero","ESP")
- elseif v.Name == Hero and IsAlive(v) and not Players:FindFirstChild(Sheriff) then
- TextLabel.TextColor3 = getColor("Hero","ESP")
- elseif v.Name == Hero and IsAlive(v) then
- TextLabel.TextColor3 = getColor("Hero","ESP")
- elseif v.Name == Sheriff and not IsAlive(v) then
- TextLabel.TextColor3 = getColor("Innocent","ESP")
- elseif v.Name == Murderer and not IsAlive(v) then
- TextLabel.TextColor3 = getColor("Innocent","ESP")
- elseif v.Name == Hero and not IsAlive(v) then
- TextLabel.TextColor3 = getColor("Innocent","ESP")
- else
- TextLabel.TextColor3 = getColor("Innocent","ESP")
- end
- end
- end
- end
- end
- end
- end)
- -- Gun Drop Esp
- local function PESP(Parent,Adornee,Color3)
- local a = Instance.new("BoxHandleAdornment",Parent)
- a.Name = Adornee.Name.."_PESP"
- a.Adornee = Adornee
- a.AlwaysOnTop = true
- a.ZIndex = 0
- a.Size = Adornee.Size
- a.Transparency = Transparency
- a.Color3 = Color3
- end
- local function NESP(Adornee,Parent,Color3,Text)
- local BillboardGui = Instance.new("BillboardGui",Parent)
- BillboardGui.Adornee = Adornee
- BillboardGui.Name = Adornee.Name.."_NESP"
- BillboardGui.Size = UDim2.new(0, 100, 0, 150)
- BillboardGui.StudsOffset = Vector3.new(0,1,0)
- BillboardGui.AlwaysOnTop = true
- local TextLabel = Instance.new("TextLabel",BillboardGui)
- TextLabel.BackgroundTransparency = 1
- TextLabel.Position = UDim2.new(0, 100, 0, 100)
- TextLabel.Size = UDim2.new(0, 100, 0, 100)
- TextLabel.Font = Enum.Font.Gotham
- TextLabel.TextSize = 17
- TextLabel.TextColor3 = Color3
- TextLabel.TextStrokeTransparency = 0
- TextLabel.TextYAlignment = Enum.TextYAlignment.Bottom
- TextLabel.Text = Text
- TextLabel.ZIndex = 0
- end
- for _,Child in pairs(workspace:GetChildren()) do
- if Child.Name == "GunDrop" and Child:IsA("Part") then
- PESP(GunEsp,Child,getColor("Gun","Cham"))
- NESP(Child,GunEsp,getColor("Gun","ESP"),"Gun")
- end
- end
- workspace.ChildAdded:Connect(function(Child)
- if Child.Name == "GunDrop" and Child:IsA("Part") then
- PESP(GunEsp,Child,getColor("Gun","Cham"))
- NESP(Child,GunEsp,getColor("Gun","ESP"),"Gun")
- end
- end)
- workspace.ChildRemoved:Connect(function(Child)
- if Child.Name == "GunDrop" and Child:IsA("Part") then
- for _,child in pairs(GunEsp:GetChildren()) do
- if (child:IsA("BoxHandleAdornment") or child:IsA("BillboardGui")) and child.Adornee == Child then
- child:Destroy()
- end
- end
- end
- end)
- -- Player Cham
- local function Cham(Player)
- if PlayerCham then
- for _,Child in pairs(PlayerCham:GetChildren()) do
- if Child:IsA("Folder") and Child.Name == Player.Name.."_CHM" then
- Child:Destroy()
- end
- end
- end
- local ChamHolder = Instance.new("Folder",PlayerCham)
- ChamHolder.Name = Player.Name.."_CHM"
- repeat wait() until Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") and Player.Character:FindFirstChildOfClass("Humanoid")
- for _,Child in pairs(Player.Character:GetChildren()) do
- if Child:IsA("BasePart") and Child.Name ~= "KnifeDisplay" and Child.Name ~= "GunDisplay" then
- local a = Instance.new("BoxHandleAdornment",ChamHolder)
- a.Name = Child:GetFullName()
- a.Adornee = Child
- a.AlwaysOnTop = true
- a.ZIndex = 0
- a.Size = Child.Size
- a.Transparency = Transparency
- a.Color3 = getColor("Innocent","Cham")
- end
- end
- end
- for _,Player in pairs(Players:GetPlayers()) do
- if Player ~= LocalPlayer then
- Cham(Player)
- end
- end
- Players.PlayerAdded:Connect(function(Player)
- if Player ~= LocalPlayer then
- Cham(Player)
- end
- end)
- Players.PlayerRemoving:Connect(function(Player)
- if Player ~= LocalPlayer then
- for _,Child in pairs(PlayerCham:GetChildren()) do
- if Child:IsA("Folder") and Child.Name == Player.Name.."_CHM" then
- Child:Destroy()
- end
- end
- end
- end)
- Heartbeat:Connect(function()
- for _,Child in pairs(PlayerCham:GetChildren()) do
- if Child:IsA("Folder") then
- for _,child in pairs(Child:GetChildren()) do
- if child:IsA("BoxHandleAdornment") then
- local Object = toObject(child.Name)
- if Object then
- child.Adornee = Object
- child.Size = Object.Size
- end
- end
- end
- end
- end
- end)
- -- Change Color
- Heartbeat:Connect(function()
- for _, v in pairs(Players:GetPlayers()) do
- if v ~= LocalPlayer and v.Character then
- local ChamFolder = PlayerCham:FindFirstChild(v.Name.."_CHM")
- if ChamFolder and ChamFolder:IsA("Folder") then
- for _,Cham in pairs(ChamFolder:GetChildren()) do
- if Cham:IsA("BoxHandleAdornment") then
- if v.Name == Sheriff and IsAlive(v) then
- Cham.Color3 = getColor("Sheriff","Cham")
- elseif v.Name == Murderer and IsAlive(v) then
- Cham.Color3 = getColor("Murderer","Cham")
- elseif v.Name == Hero and IsAlive(v) and game.Players:FindFirstChild(Sheriff) and not IsAlive(game.Players[Sheriff]) then
- Cham.Color3 = getColor("Hero","Cham")
- elseif v.Name == Hero and IsAlive(v) and not game.Players:FindFirstChild(Sheriff) then
- Cham.Color3 = getColor("Hero","Cham")
- elseif v.Name == Hero and IsAlive(v) then
- Cham.Color3 = getColor("Hero","Cham")
- elseif v.Name == Sheriff and not IsAlive(v) then
- Cham.Color3 = getColor("Innocent","Cham")
- elseif v.Name == Murderer and not IsAlive(v) then
- Cham.Color3 = getColor("Innocent","Cham")
- elseif v.Name == Hero and not IsAlive(v) then
- Cham.Color3 = getColor("Innocent","Cham")
- else
- Cham.Color3 = getColor("Innocent","Cham")
- end
- end
- end
- end
- end
- end
- end)
- -- Anti Lag
- Heartbeat:Connect(function()
- for _,Player in pairs(Players:GetPlayers()) do
- local Character = Player.Character
- if Character then
- local Knife = Character:FindFirstChild("KnifeDisplay")
- if Knife then
- Knife:Destroy()
- end
- local Gun = Character:FindFirstChild("GunDisplay")
- if Gun then
- Gun:Destroy()
- end
- local Pet = Character:FindFirstChild("Pet")
- if Pet then
- Pet:Destroy()
- end
- for _,Child in pairs(Character:GetChildren()) do
- if Child:IsA("Tool") then
- local Handle = Tool:FindFirstChild("Handle")
- if Handle then
- local Chroma = Handle:FindFirstChild("Chroma")
- if Chroma then
- Chroma:Destroy()
- end
- end
- end
- end
- end
- end
- end)
- Heartbeat:Connect(function()
- local Raggy = workspace:FindFirstChild("Raggy")
- if Raggy and Raggy:IsA("Model") then
- Raggy:Destroy()
- end
- end)
- for _,Child in pairs(workspace:GetChildren()) do
- if Child:IsA("Model") or Child:IsA("Part") then
- local Handle = Child:FindFirstChild("Handle")
- if Handle then
- local Chroma = Handle:FindFirstChild("Chroma")
- if Chroma then
- Chroma:Destroy()
- end
- end
- end
- end
- workspace.ChildAdded:Connect(function(Child)
- if Child:IsA("Model") or Child:IsA("Part") then
- local Handle = Child:FindFirstChild("Handle")
- if Handle then
- local Chroma = Handle:FindFirstChild("Chroma")
- if Chroma then
- Chroma:Destroy()
- end
- end
- end
- end)
- -- Remove Traps
- Heartbeat:Connect(function()
- for _,Player in pairs(Players:GetPlayers()) do
- if Player ~= LocalPlayer then
- local Character = Player.Character
- if Character then
- local Trap = Character:FindFirstChild("Trap")
- if Trap and Trap:IsA("Model") then
- Trap:Destroy()
- end
- end
- end
- end
- end)
- -- Murderer Knife Stab Reach + Speed Hack
- Heartbeat:Connect(function()
- local Character = LocalPlayer.Character
- if Character then
- for _,Child in pairs(Character:GetChildren()) do
- if Child:IsA("Tool") then
- local Handle = Child:FindFirstChild("Handle")
- local KnifeServer = Child:FindFirstChild("KnifeServer")
- local IsGun = Child:FindFirstChild("IsGun")
- if Handle and KnifeServer and not IsGun then
- Handle.Size = Vector3.new(10,10,10)
- Handle.Massless = true
- Handle.Anchored = false
- Handle.CanCollide = false
- end
- end
- end
- local Humanoid = Character:FindFirstChildOfClass("Humanoid")
- if Humanoid and Humanoid.WalkSpeed < 18 then
- Humanoid.WalkSpeed = 18
- end
- end
- end)
- -- Break Sheriff / Hero Gun
- task.spawn(function()
- while wait() do
- for _,Player in pairs(Players:GetPlayers()) do
- if Player ~= LocalPlayer then
- local Character = Player.Character
- if Character then
- local Gun = Character:FindFirstChild("Gun") or Character:FindFirstChildOfClass("Tool")
- if Gun then
- local IsGun = Gun:FindFirstChild("IsGun")
- if IsGun and IsGun.Value == true then
- task.spawn(function()
- local Success, Error = pcall(function()
- local args = {
- [1] = 1,
- [2] = nil,
- [3] = "AH"
- }
- local KnifeServer = Gun:FindFirstChild("KnifeServer")
- if KnifeServer then
- local ShootGun = KnifeServer:FindFirstChild("ShootGun")
- if ShootGun then
- ShootGun:InvokeServer(unpack(args))
- end
- end
- end)
- end)
- end
- end
- end
- local Backpack = Player:FindFirstChildOfClass("Backpack")
- if Backpack then
- local Gun = Backpack:FindFirstChild("Gun") or Backpack:FindFirstChildOfClass("Tool")
- if Gun then
- local IsGun = Gun:FindFirstChild("IsGun")
- if IsGun and IsGun.Value == true then
- task.spawn(function()
- local Success, Error = pcall(function()
- local args = {
- [1] = 1,
- [2] = nil,
- [3] = "AH"
- }
- local KnifeServer = Gun:FindFirstChild("KnifeServer")
- if KnifeServer then
- local ShootGun = KnifeServer:FindFirstChild("ShootGun")
- if ShootGun then
- ShootGun:InvokeServer(unpack(args))
- end
- end
- end)
- end)
- end
- end
- end
- end
- end
- end
- end)
- -- Gun and Knife Silent Aim [BETA]
- local RawMetatable = getrawmetatable(game)
- local OldNameCall = RawMetatable.__namecall
- setreadonly(RawMetatable, false)
- RawMetatable.__namecall = newcclosure(function(Object, ...)
- local NamecallMethod = getnamecallmethod()
- local Arguments = {...}
- if NamecallMethod == "InvokeServer" and tostring(Object) == "ShootGun" then
- task.spawn(function()
- if Arguments[2] ~= nil then
- for _,Player in pairs(Players:GetPlayers()) do
- if Player ~= LocalPlayer then
- if Murderer == Player.Name then
- local Character = Player.Character
- if Character then
- local Root = Character:FindFirstChild("HumanoidRootPart")
- if Root then
- local Velocity = Root.AssemblyLinearVelocity
- local Result = Root.Position + (Velocity * Vector3.new(1,0,1) * 0.1) + Vector3.new(0, Velocity.Y / 20, 0)
- local Success, Error = pcall(function()
- Arguments[2] = Result
- end)
- end
- end
- end
- end
- end
- end
- end)
- if not Success then
- warn(Error)
- end
- elseif NamecallMethod == "FireServer" and tostring(Object) == "Throw" then
- task.spawn(function()
- local ClosestPlayer = ClosestPlayer()
- if ClosestPlayer then
- local Character = ClosestPlayer.Character
- if Character then
- local Root = Character:FindFirstChild("HumanoidRootPart")
- if Root then
- local LpCharacter = LocalPlayer.Character
- if LpCharacter then
- local LpRoot = LpCharacter:FindFirstChild("HumanoidRootPart")
- if LpRoot then
- local Velocity = Root.AssemblyLinearVelocity * Vector3.new(1,0,1)
- local Magnitude = (Root.Position - LpRoot.Position).Magnitude
- local Result = Root.Position + (Velocity * 0.5) * (Magnitude / 100)
- local Success, Error = pcall(function()
- Arguments[1] = CFrame.new(Result)
- Arguments[2] = Result
- end)
- end
- end
- end
- end
- end
- end)
- if not Success then
- warn(Error)
- end
- end
- return OldNameCall(Object, unpack(Arguments))
- end)
- setreadonly(RawMetatable, true)
- else
- Notif("EasyHub","Game not Supported.",3,false)
- script:Destroy()
- end
- elseif game:GetService("CoreGui"):FindFirstChild("Loaded") then
- Notif("EasyHub","Script Already Loaded.",3,false)
- script:Destroy()
- end
- end)
- -- Error Reporter [The Roblox Console its not working LOL]
- if not Success then
- Notif("Error",Error,math.huge,false)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement