Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if game:GetService("RunService"):IsClient() then error("Please run as a server script. Use h/ instead of hl/.") end
- print("FE Compatibility: by WaverlyCole & Mokiros")
- InternalData = {}
- do
- script.Parent = owner.Character
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInput"
- local function NewFakeEvent()
- local Fake = {fakeEvent=true,Connect=function(self,Func)self.Function=Func end}Fake.connect = Fake.Connect
- return Fake
- end
- local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
- local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
- local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
- self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
- end};ContextActionService.UnBindAction = ContextActionService.BindAction
- local function TriggerEvent(self,Event,...)
- local Trigger = Mouse[Event]
- if Trigger and Trigger.fakeEvent and Trigger.Function then
- Trigger.Function(...)
- end
- end
- Mouse.TrigEvent = TriggerEvent
- UserInputService.TrigEvent = TriggerEvent
- Event.OnServerEvent:Connect(function(FiredBy,Input)
- if FiredBy.Name ~= owner.Name then end
- if Input.MouseEvent then
- Mouse.Target = Input.Target
- Mouse.Hit = Input.Hit
- else
- local Begin = Input.UserInputState == Enum.UserInputState.Begin
- if Input.UserInputType == Enum.UserInputType.MouseButton1 then
- return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up")
- end
- for _,Action in pairs(ContextActionService.Actions) do
- for _,Key in pairs(Action.Keys) do
- if Key==Input.KeyCode then
- Action.Function(Action.Name,Input.UserInputState,Input)
- end
- end
- end
- Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
- UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
- end
- end)
- InternalData["Mouse"] = Mouse
- InternalData["ContextActionService"] = ContextActionService
- InternalData["UserInputService"] = UserInputService
- Event.Parent = NLS([[
- local Player = owner
- local Event = script:WaitForChild("UserInput")
- local UserInputService = game:GetService("UserInputService")
- local Mouse = Player:GetMouse()
- local Input = function(Input,gameProcessedEvent)
- if gameProcessedEvent then return end
- Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
- end
- UserInputService.InputBegan:Connect(Input)
- UserInputService.InputEnded:Connect(Input)
- local Hit,Target
- while wait(1/30) do
- if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
- Hit,Target = Mouse.Hit,Mouse.Target
- Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
- end
- end
- ]],owner.Character)
- end
- RealGame = game;game = setmetatable({},{
- __index = function (self,Index)
- local Sandbox = function (Thing)
- if Thing:IsA("Player") then
- local RealPlayer = Thing
- return setmetatable({},{
- __index = function (self,Index)
- local Type = type(RealPlayer[Index])
- if Type == "function" then
- if Index:lower() == "getmouse" or Index:lower() == "mouse" then
- return function (self)
- return InternalData["Mouse"]
- end
- end
- return function (self,...)
- return RealPlayer[Index](RealPlayer,...)
- end
- else
- if Index == "PlrObj" then
- return RealPlayer
- end
- return RealPlayer[Index]
- end
- end;
- __tostring = function(self)
- return RealPlayer.Name
- end
- })
- end
- end
- if RealGame[Index] then
- local Type = type(RealGame[Index])
- if Type == "function" then
- if Index:lower() == "getservice" or Index:lower() == "service" then
- return function (self,Service)
- if Service:lower() == "players" then
- return setmetatable({},{
- __index = function (self2,Index2)
- local RealService = RealGame:GetService(Service)
- local Type2 = type(Index2)
- if Type2 == "function" then
- return function (self,...)
- return RealService[Index2](RealService,...)
- end
- else
- if Index2:lower() == "localplayer" then
- return Sandbox(owner)
- end
- return RealService[Index2]
- end
- end;
- __tostring = function(self)
- return RealGame:GetService(Service).Name
- end
- })
- elseif Service:lower() == "contextactionservice" then
- return InternalData["ContextActionService"]
- elseif Service:lower() == "contextactionservice" then
- return InternalData["UserInputService"]
- elseif Service:lower() == "runservice" then
- return setmetatable({},{
- __index = function(self2,Index2)
- local RealService = RealGame:GetService(Service)
- local Type2 = type(Index2)
- if Type2 == "function" then
- return function (self,...)
- return RealService[Index2](RealService,...)
- end
- else
- if Index2:lower() == "bindtorenderstep" then
- return function (self,Name,Priority,Function)
- return RealGame:GetService("RunService").Stepped:Connect(Function)
- end
- end
- if Index2:lower() == "renderstepped" then
- return RealService["Stepped"]
- end
- return RealService[Index2]
- end
- end
- })
- else
- return RealGame:GetService(Service)
- end
- end
- end
- return function (self,...)
- return RealGame[Index](RealGame,...)
- end
- else
- if game:GetService(Index) then
- return game:GetService(Index)
- end
- return RealGame[Index]
- end
- else
- return nil
- end
- end
- });Game = game;owner = game:GetService("Players").LocalPlayer;script = {}
- print("Complete! Running...")
- print("controls:")
- print("z - make it morning")
- print("x - make it night")
- print("c - clean workspace")
- print("v - heal the player your mouse is pointing at")
- print("f - make the player your mouse is pointing at fat")
- print("n - make everyone fat")
- print("e - annihilate the player your mouse is pointing at")
- print("p - suicide")
- print("k - kill other players")
- print("b - control the player your mouse it pointing at")
- print("r - tp evryone to you")
- print("t - send the player your mouse is pointing at to 'heaven'")
- print("q - spawn pet")
- print("g - spawn a blackhole")
- oil = game.Players.LocalPlayer
- sauce = oil.Character
- tor = sauce:FindFirstChild("Torso") or sauce:FindFirstChild("UpperTorso")
- head = sauce:FindFirstChild("Head")
- larm = sauce:FindFirstChild("Left Arm") or sauce:FindFirstChild("LeftUpperArm")
- rarm = sauce:FindFirstChild("Right Arm") or sauce:FindFirstChild("RightUpperArm")
- rleg = sauce:FindFirstChild("Right Leg") or sauce:FindFirstChild("RightUpperLeg")
- lleg = sauce:FindFirstChild("Left Leg") or sauce:FindFirstChild("LeftUpperLeg")
- hum = sauce:FindFirstChildOfClass("Humanoid")
- humroot = sauce:FindFirstChild("HumanoidRootPart")
- mou = oil:GetMouse()
- remoteequipped = true
- controlling = false
- light = game:GetService("Lighting")
- tool = Instance.new("Tool", oil.Backpack)
- tool.Name = "Remote"
- hand = Instance.new("Part", tool)
- hand.Name = "Handle"
- hand.Size = Vector3.new(1, 1, 1)
- hand.Transparency = 1
- p1 = Instance.new("Part", hand)
- p1.Size = Vector3.new(0.6, 0.1, 1.2)
- p1.Material = "Metal"
- p1.Name = "p1"
- p2 = Instance.new("Part", hand)
- p2.Size = Vector3.new(0.4, 0.1, 0.1)
- p2.Material = "Metal"
- p2.Name = "p2"
- p2.Shape = "Cylinder"
- p3 = Instance.new("Part", hand)
- p3.Shape = "Ball"
- p3.Material = "Neon"
- p3.Size = Vector3.new(0.15, 0.15, 0.15)
- p3.BrickColor = BrickColor.new("Crimson")
- p3.Name = "p3"
- p4 = Instance.new("Part", hand)
- p4.Size = Vector3.new(0.2, 0.4, 0.4)
- p4.Material = "Neon"
- p4.Name = "p4"
- p4.BrickColor = BrickColor.new("Maroon")
- p4.Shape = "Cylinder"
- w1 = Instance.new("Weld", p1)
- w1.Part0 = hand
- w1.Part1 = p1
- w1.C1 = CFrame.new(0, 0, 0.6)
- w1.Name = "w1"
- w2 = Instance.new("Weld", p2)
- w2.Part0 = hand
- w2.Part1 = p2
- w2.C1 = CFrame.new(1.3, 0, 0) * CFrame.Angles(math.rad(0), math.rad(90), math.rad(0))
- w3 = Instance.new("Weld", p3)
- w3.Part0 = hand
- w3.Part1 = p3
- w3.C1 = CFrame.new(0, 0, 1.5)
- w4 = Instance.new("Weld", p4)
- w4.Part0 = hand
- w4.Part1 = p4
- w4.C1 = CFrame.new(0.1, 0, 0.6) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(90))
- tool.Equipped:connect(function()
- remoteequipped = true
- function pressed(key)
- if remoteequipped == true then
- if key == "x" then
- light.TimeOfDay = 21
- elseif key == "z" then
- light.TimeOfDay = 7
- elseif key == "c" then
- for i,v in pairs(workspace:GetChildren()) do
- if v:IsA("Part") and v.Name ~= "Base" then
- v.Locked = false
- v:remove()
- end
- if v:IsA("Model") and not v:FindFirstChildOfClass("Humanoid") then
- v:remove()
- end
- end
- elseif key == "p" then
- hum.Health = 0
- elseif key == "k" then
- for i,v in pairs(workspace:GetChildren()) do
- if v:IsA("Model") and v:FindFirstChildOfClass("Humanoid") and v.Name ~= sauce.Name then
- khum = v:FindFirstChildOfClass("Humanoid")
- khum.Health = 0
- end
- end
- elseif key == "r" then
- for i,v in pairs(workspace:GetChildren()) do
- if v:IsA("Model") and v:FindFirstChildOfClass("Humanoid") and v.Name ~= sauce.Name then
- vtor = v:FindFirstChild("Torso" )or v:FindFirstChild("UpperTorso")
- vtor.CFrame = tor.CFrame * CFrame.new(0, 0, -5)
- end
- end
- elseif key == "v" then
- if mou.Target.Parent and mou.Target.Parent:FindFirstChildOfClass("Humanoid") then
- mouhum = mou.Target.Parent:FindFirstChildOfClass("Humanoid")
- mouhum.Health = mouhum.MaxHealth
- mouhead = mou.Target.Parent:FindFirstChild("Head")
- bill = Instance.new("BillboardGui", mouhead)
- bill.AlwaysOnTop = true
- bill.StudsOffset = Vector3.new(0, 2, 0)
- bill.Adornee = mouhead
- bill.Size = UDim2.new(5, 35, 5, 35)
- btext = Instance.new("TextLabel", bill)
- btext.Text = mou.Target.Parent.Name.." has been Healed!"
- btext.Font = "Bodoni"
- btext.TextSize = 30
- btext.TextScaled = true
- btext.BorderSizePixel = 0
- btext.BackgroundTransparency = 1
- btext.Size = UDim2.new(1.5, 0, 0.5, 0)
- btext.TextColor = BrickColor.new("Bright green")
- game:GetService("Debris"):AddItem(bill, 2)
- end
- elseif key == "e" then
- if mou.Target.Parent and mou.Target.Parent:FindFirstChildOfClass("Humanoid") then
- local nomoretor = mou.Target.Parent:FindFirstChild("Torso") or mou.Target.Parent:FindFirstChild("UpperTorso")
- local nomorehum = mou.Target.parent:FindFirstChildOfClass("Humanoid")
- local explo = Instance.new("Explosion", workspace)
- explo.Position = nomoretor.Position
- nomorehum.Health = 0
- end
- elseif key == "f" then
- if mou.Target.Parent and mou.Target.Parent:FindFirstChildOfClass("Humanoid") then
- local fatman = mou.Target.Parent
- local fatmanhum = fatman:FindFirstChildOfClass("Humanoid")
- fatmanhum.WalkSpeed = 8
- local fattor = mou.Target.Parent:FindFirstChild("Torso") or mou.Target.Parent:FindFirstChild("UpperTorso")
- local hinum = Instance.new("Sound", fattor)
- hinum.SoundId = "rbxassetid://1278031541"
- hinum.Volume = 10
- local realfat = Instance.new("Part", fattor)
- realfat.BrickColor = fattor.BrickColor
- realfat.Material = "SmoothPlastic"
- local supaweld = Instance.new("Weld", realfat)
- supaweld.Part0 = fattor
- supaweld.Part1 = realfat
- local fat = Instance.new("SpecialMesh", realfat)
- fat.MeshType = "Sphere"
- fat.Scale = Vector3.new(0.6, 1.6, 0.9)
- fat.Offset = Vector3.new(0, -0.4, -0.7)
- hinum:Play()
- if fatman:FindFirstChildOfClass("Shirt") then
- fatman:FindFirstChildOfClass("Shirt"):remove()
- end
- end
- elseif key == "b" then
- if mou.Target.Parent and mou.Target.Parent:FindFirstChildOfClass("Humanoid") and controlling == false then
- controlling = true
- cman = mou.Target.Parent
- mtor = cman:FindFirstChild("Torso") or cman:FindFirstChild("UpperTorso")
- mlarm = cman:FindFirstChild("Left Arm") or cman:FindFirstChild("LeftUpperArm")
- mrarm = cman:FindFirstChild("Right Arm") or cman:FindFirstChild("RightUpperArm")
- mlleg = cman:FindFirstChild("Left Leg") or cman:FindFirstChild("LeftUpperLeg")
- mrleg = cman:FindFirstChild("Right Leg") or cman:FindFirstChild("RightUpperLeg")
- mhead = cman:FindFirstChild("Head")
- mhum = cman:FindFirstChildOfClass("Humanoid")
- mhum.PlatformStand = true
- hum.NameOcclusion = "NoOcclusion"
- mface = head:FindFirstChild("face")
- mface.Transparency = 1
- humroot.Transparency = 1
- for i,v in pairs(sauce:GetChildren()) do
- if v:IsA("Part") then
- v.Transparency = 1
- end
- if v:IsA("Accessory") then
- v.Handle.Transparency = 1
- end
- end
- ow1 = Instance.new("Weld", tor)
- ow1.Part0 = tor
- ow1.Part1 = mtor
- ow2 = Instance.new("Weld", larm)
- ow2.Part0 = larm
- ow2.Part1 = mlarm
- ow3 = Instance.new("Weld", rarm)
- ow3.Part0 = rarm
- ow3.Part1 = mrarm
- ow4 = Instance.new("Weld", lleg)
- ow4.Part0 = lleg
- ow4.Part1 = mlleg
- ow5 = Instance.new("Weld", rleg)
- ow5.Part0 = rleg
- ow5.Part1 = mrleg
- ow6 = Instance.new("Weld", head)
- ow6.Part0 = head
- ow6.Part1 = mhead
- elseif controlling == true then
- controlling = false
- ow1:Destroy()
- ow2:Destroy()
- ow3:Destroy()
- ow4:Destroy()
- ow5:Destroy()
- ow6:Destroy()
- mhum.PlatformStand = false
- hum.NameOcclusion = "OccludeAll"
- humrootTransparency = 1
- mface.Transparency = 0
- for i,v in pairs(sauce:GetChildren()) do
- if v:IsA("Part") and v ~= humroot then
- v.Transparency = 0
- end
- if v:IsA("Accessory") then
- v.Handle.Transparency = 0
- end
- end
- end
- elseif key == "n" then
- for i,v in pairs(workspace:GetChildren()) do
- if v:IsA("Model") and v:FindFirstChildOfClass("Humanoid") and v.Name ~= sauce.Name then
- local fatman = v
- local fatmanhum = fatman:FindFirstChildOfClass("Humanoid")
- fatmanhum.WalkSpeed = 8
- local fattor = fatman:FindFirstChild("Torso") or fatman:FindFirstChild("UpperTorso")
- local hinum2 = Instance.new("Sound", fattor)
- hinum2.SoundId = "rbxassetid://1278031541"
- hinum2.Volume = 10
- local realfat = Instance.new("Part", fattor)
- realfat.BrickColor = fattor.BrickColor
- realfat.Material = "SmoothPlastic"
- local supaweld = Instance.new("Weld", realfat)
- supaweld.Part0 = fattor
- supaweld.Part1 = realfat
- local fat = Instance.new("SpecialMesh", realfat)
- fat.MeshType = "Sphere"
- fat.Scale = Vector3.new(0.6, 1.6, 0.9)
- fat.Offset = Vector3.new(0, -0.4, -0.7)
- hinum2:Play()
- if fatman:FindFirstChildOfClass("Shirt") then
- fatman:FindFirstChildOfClass("Shirt"):remove()
- end
- end
- end
- elseif key == "t" then
- if mou.Target.Parent and mou.Target.Parent:FindFirstChildOfClass("Humanoid") then
- local goneman = mou.Target.Parent
- local gonehead = goneman:FindFirstChild("Head")
- local gonetor = goneman:FindFirstChild("Torso") or goneman:FindFirstChild("UpperTorso")
- local lightb = Instance.new("Part", goneman)
- lightb.Shape = "Cylinder"
- lightb.CanCollide = false
- lightb.Anchored = true
- lightb.Size = Vector3.new(300, 10, 10)
- lightb.Material = "Neon"
- lightb.Transparency = 0.5
- lightb.BrickColor = BrickColor.new("New Yeller")
- lightb.CFrame = gonetor.CFrame * CFrame.new(0, 140, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(90))
- local start = gonetor.CFrame
- local finish = lightb.CFrame * CFrame.new(140, 0, 0)
- for i = 0,1,.01 do
- gonetor.CFrame = start:lerp(finish, i)
- wait()
- end
- gonehead.Size = Vector3.new(50, 50, 50)
- lightb:Destroy()
- end
- elseif key == "q" then
- if mou.Target ~= nil then
- local dont = Instance.new("Part", sauce)
- dont.CFrame = mou.Hit
- dont.Material = "Sand"
- dont.BrickColor = BrickColor.new("Pastel yellow")
- dont.Size = Vector3.new(3, 3, 3)
- dont.Shape = "Ball"
- dont.Anchored = true
- local obj = Instance.new("Sound", dont)
- local feats = {463838589, 691897627, 179270320, 425407550, 1074595721, 1065045593, 142688397, 1308566029, 1402510823}
- obj.SoundId = "rbxassetid://"..feats[math.random(1,#feats)]
- obj.Volume = 10
- obj.Looped = true
- obj:Play()
- oil.Chatted:connect(function(msg)
- if msg:lower():sub(1, 7) == "plastic" then
- dont.Material = "Plastic"
- elseif msg:lower():sub(1, 5) == "slate" then
- dont.Material = "Slate"
- elseif msg:lower():sub(1, 3) == "ice" then
- dont.Material = "Ice"
- elseif msg:lower():sub(1, 5) == "metal" then
- dont.Material = "Metal"
- elseif msg:lower():sub(1, 4) == "neon" then
- dont.Material = "Neon"
- elseif msg:lower():sub(1, 5) == "grass" then
- dont.Material = "Grass"
- elseif msg:lower():sub(1, 4) == "sand" then
- dont.Material = "Sand"
- elseif msg:lower():sub(1, 9) == "woodplank" then
- dont.Material = "WoodPlanks"
- elseif msg:lower():sub(1, 4) == "wood" then
- dont.Material = "Wood"
- elseif msg:lower():sub(1, 6) == "marble" then
- dont.Material = "Marble"
- elseif msg:lower():sub(1, 8) == "concrete" then
- dont.Material = "Concrete"
- elseif msg:lower():sub(1, 5) == "brick" then
- dont.Material = "Brick"
- elseif msg:lower():sub(1, 7) == "granite" then
- dont.Material = "Granite"
- elseif msg:lower():sub(1, 6) == "pebble" then
- dont.Material = "Pebble"
- elseif msg:lower():sub(1, 11) == "cobblestone" then
- dont.Material = "Cobblestone"
- elseif msg:lower():sub(1, 13) == "corrodedmetal" then
- dont.Material = "CorrodedMetal"
- elseif msg:lower():sub(1, 12) == "diamondplate" then
- dont.Material = "DiamondPlate"
- elseif msg:lower():sub(1, 4) == "foil" then
- dont.Material = "Foil"
- elseif msg:lower():sub(1, 6) == "fabric" then
- dont.Material = "Fabric"
- elseif msg:lower():sub(1, 6) == "yellow" then
- dont.BrickColor = BrickColor.new("New Yeller")
- elseif msg:lower():sub(1, 6) == "purple" then
- dont.BrickColor = BrickColor.new("Bright violet")
- elseif msg:lower():sub(1, 3) == "red" then
- dont.BrickColor = BrickColor.new("Crimson")
- elseif msg:lower():sub(1, 5) == "black" then
- dont.BrickColor = BrickColor.new("Really black")
- elseif msg:lower():sub(1, 5) == "white" then
- dont.BrickColor = BrickColor.new("Institutional white")
- elseif msg:lower():sub(1, 4) == "pink" then
- dont.BrickColor = BrickColor.new("Hot pink")
- elseif msg:lower():sub(1, 5) == "green" then
- dont.BrickColor = BrickColor.new("Bright green")
- elseif msg:lower():sub(1, 4) == "grey" then
- dont.BrickColor = BrickColor.new("Medium stone grey")
- elseif msg:lower():sub(1, 5) == "brown" then
- dont.BrickColor = BrickColor.new("Burnt Sienna")
- elseif msg:lower():sub(1, 6) == "orange" then
- dont.BrickColor = BrickColor.new("Deep orange")
- elseif msg:lower():sub(1, 4) == "blue" then
- dont.BrickColor = BrickColor.new("Really blue")
- elseif msg:lower():sub(1, 4) == "cyan" then
- dont.BrickColor = BrickColor.new("Cyan")
- elseif msg:lower():sub(1, 6) == "pastel" then
- dont.BrickColor = BrickColor.new("Pastel yellow")
- elseif msg:lower():sub(1, 5) == "ghost" then
- dont.Transparency = 0.7
- elseif msg:lower():sub(1, 5) == "alive" then
- dont.Transparency = 0
- elseif msg:lower():sub(1, 5) == "block" then
- dont.Shape = "Block"
- elseif msg:lower():sub(1, 4) == "ball" then
- dont.Shape = "Ball"
- elseif msg:lower():sub(1, 3) == "bye" then
- dont:Destroy()
- elseif msg:lower():sub(1, 17) == "pick another song" then
- obj:Stop()
- obj.SoundId = "rbxassetid://"..feats[math.random(1,#feats)]
- obj.Volume = 10
- obj.Looped = true
- obj:Play()
- elseif msg:lower():sub(1, 4) == "play" then
- obj:Play()
- elseif msg:lower():sub(1, 4) == "stop" then
- obj:Stop()
- elseif msg:lower():sub(1, 3) == "add" then
- obj:Stop()
- local arg = msg:sub(5, 999)
- obj.SoundId = "rbxassetid://"..arg
- obj:Play()
- end
- end)
- while true do
- for i = 0,1,.001 do
- dont.CFrame = dont.CFrame:lerp(tor.CFrame * CFrame.new(0, 5, 3), i)
- dont.Size = Vector3.new(obj.PlaybackLoudness/80, obj.PlaybackLoudness/80, obj.PlaybackLoudness/80)
- wait()
- end
- wait()
- end
- end
- elseif key == "g" then
- if mou.Target ~= nil then
- local MAN = mou.Target.Parent
- local MANT = MAN:FindFirstChild("Torso") or MAN:FindFirstChild("UpperTorso")
- local hole = Instance.new("Part", workspace)
- hole.Shape = "Ball"
- hole.Size = Vector3.new(0.7, 0.7, 0.7)
- hole.BrickColor = BrickColor.new("Eggplant")
- hole.Anchored = true
- hole.Material = "Neon"
- hole.CFrame = mou.Hit
- for i,v in pairs(workspace:GetChildren()) do
- if v:IsA("Model") and v:FindFirstChildOfClass("Humanoid") and v.Name ~= sauce.Name then
- local owtor = v
- blacktor = owtor:FindFirstChild("Torso") or owtor:FindFirstChild("UpperTorso")
- bodpos = Instance.new("BodyPosition", blacktor)
- bodpos.Position = hole.Position
- bodpos.P = 5000000000
- bodpos.MaxForce = Vector3.new(500000000, 500000000, 500000000)
- end
- end
- end
- end
- end
- end
- mou.KeyDown:connect(pressed)
- end)
- tool.Unequipped:connect(function()
- remoteequipped = false
- end)
- --https://github.com/Mokiros/roblox-FE-compatibility
- if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
- local Player,game,owner = owner,game
- local RealPlayer = Player
- do
- print("FE Compatibility code by Mokiros")
- local rp = RealPlayer
- script.Parent = rp.Character
- --RemoteEvent for communicating
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInput_Event"
- --Fake event to make stuff like Mouse.KeyDown work
- local function fakeEvent()
- local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
- t.connect = t.Connect
- return t
- end
- --Creating fake input objects with fake variables
- local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
- local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
- local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
- CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
- end}
- --Merged 2 functions into one by checking amount of arguments
- CAS.UnbindAction = CAS.BindAction
- --This function will trigger the events that have been :Connect()'ed
- local function te(self,ev,...)
- local t = m[ev]
- if t and t._fakeEvent then
- for _,f in pairs(t.Functions) do
- f(...)
- end
- end
- end
- m.TrigEvent = te
- UIS.TrigEvent = te
- Event.OnServerEvent:Connect(function(plr,io)
- if plr~=rp then return end
- m.Target = io.Target
- m.Hit = io.Hit
- if not io.isMouse then
- local b = io.UserInputState == Enum.UserInputState.Begin
- if io.UserInputType == Enum.UserInputType.MouseButton1 then
- return m:TrigEvent(b and "Button1Down" or "Button1Up")
- end
- if io.UserInputType == Enum.UserInputType.MouseButton2 then
- return m:TrigEvent(b and "Button2Down" or "Button2Up")
- end
- for _,t in pairs(CAS.Actions) do
- for _,k in pairs(t.Keys) do
- if k==io.KeyCode then
- t.Function(t.Name,io.UserInputState,io)
- end
- end
- end
- m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
- UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
- end
- end)
- Event.Parent = NLS([==[
- local Player = game:GetService("Players").LocalPlayer
- local Event = script:WaitForChild("UserInput_Event")
- local Mouse = Player:GetMouse()
- local UIS = game:GetService("UserInputService")
- local input = function(io,a)
- if a then return end
- --Since InputObject is a client-side instance, we create and pass table instead
- Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
- end
- UIS.InputBegan:Connect(input)
- UIS.InputEnded:Connect(input)
- local h,t
- --Give the server mouse data 30 times every second, but only if the values changed
- --If player is not moving their mouse, client won't fire events
- while wait(1/30) do
- if h~=Mouse.Hit or t~=Mouse.Target then
- h,t=Mouse.Hit,Mouse.Target
- Event:FireServer({isMouse=true,Target=t,Hit=h})
- end
- end]==],Player.Character)
- ----Sandboxed game object that allows the usage of client-side methods and services
- --Real game object
- local _rg = game
- --Metatable for fake service
- local fsmt = {
- __index = function(self,k)
- local s = rawget(self,"_RealService")
- if s then
- return typeof(s[k])=="function"
- and function(_,...)return s[k](s,...)end or s[k]
- end
- end,
- __newindex = function(self,k,v)
- local s = rawget(self,"_RealService")
- if s then s[k]=v end
- end
- }
- local function FakeService(t,RealService)
- t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
- return setmetatable(t,fsmt)
- end
- --Fake game object
- local g = {
- GetService = function(self,s)
- return rawget(self,s) or _rg:GetService(s)
- end,
- Players = FakeService({
- LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
- },"Players"),
- UserInputService = FakeService(UIS,"UserInputService"),
- ContextActionService = FakeService(CAS,"ContextActionService"),
- RunService = FakeService({
- _btrs = {},
- RenderStepped = _rg:GetService("RunService").Heartbeat,
- BindToRenderStep = function(self,name,_,fun)
- self._btrs[name] = self.Heartbeat:Connect(fun)
- end,
- UnbindFromRenderStep = function(self,name)
- self._btrs[name]:Disconnect()
- end,
- },"RunService")
- }
- rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
- g.service = g.GetService
- FakeService(g,game)
- --Changing owner to fake player object to support owner:GetMouse()
- game,owner = g,g.Players.LocalPlayer
- end
- local plr = game:service'Players'.LocalPlayer
- local char = plr.Character
- local mouse = plr:GetMouse()
- local torso = char:findFirstChild("Torso")
- local head = char.Head
- local ra = char:findFirstChild("Right Arm")
- local la = char:findFirstChild("Left Arm")
- local rl = char:findFirstChild("Right Leg")
- local ll = char:findFirstChild("Left Leg")
- local rs = torso:findFirstChild("Right Shoulder")
- local ls = torso:findFirstChild("Left Shoulder")
- local equipped = false
- local debounce = false
- local slashing = false
- local blocking = false
- local blocking2 = false
- local stoopidstuff = Instance.new("BoolValue", char)
- stoopidstuff.Name = "stoopidstuff"
- stoopidstuff.Value = true
- local healing = false
- local storedhealth
- local storewalkspeed = char:findFirstChild("Humanoid").WalkSpeed
- local damage = 9999991e+9999
- local colors = {"Bright red"}
- function part(parent, size, formfactor, color, collide, transparency)
- local p=Instance.new("Part", parent)
- p.FormFactor=formfactor
- p.CanCollide=false
- p.Size=size
- p.Locked=true
- p.Transparency=transparency
- p.Position=torso.Position
- p.BrickColor=color
- p.FrontSurface="SmoothNoOutlines"
- p.BackSurface="SmoothNoOutlines"
- p.LeftSurface="SmoothNoOutlines"
- p.BottomSurface="SmoothNoOutlines"
- p.TopSurface="SmoothNoOutlines"
- p.RightSurface="SmoothNoOutlines"
- return p
- end
- function wedge(parent, size, formfactor, color, collide)
- local p=Instance.new("Wedge", parent)
- p.FormFactor=formfactor
- p.CanCollide=false
- p.Size=size
- p.Locked=true
- p.Position = torso.Position
- p.BrickColor=color
- p.FrontSurface="SmoothNoOutlines"
- p.BackSurface="SmoothNoOutlines"
- p.LeftSurface="SmoothNoOutlines"
- p.BottomSurface="SmoothNoOutlines"
- p.TopSurface="SmoothNoOutlines"
- p.RightSurface="SmoothNoOutlines"
- return p
- end
- function weld(c0, c1, part1, part0)
- local wel=Instance.new("Weld", char)
- wel.Part0 = part0
- wel.Part1 = part1
- wel.C0 = c0
- wel.C1 = c1
- return wel
- end
- function specialmesh(parent, meshType, scale, meshId)
- local mesh = Instance.new("SpecialMesh", parent)
- mesh.Scale = scale
- mesh.MeshType = meshType
- mesh.MeshId = meshId
- return mesh
- end
- function equip()
- ar = Instance.new("Part", char)
- ar.FormFactor = "Custom"
- ar.Size = Vector3.new(1, 1, 1)
- ar.Transparency = 1
- ar.CanCollide = false
- ar.Locked = true
- ar:BreakJoints()
- fakel = Instance.new("Weld", char)
- fakel.Part0 = char.Torso
- fakel.Part1 = ar
- coroutine.wrap(function()
- for angle = 0, 45, 5 do
- if fakel == nil then return end
- fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(angle), math.rad(0), math.rad(0))
- wait()
- end
- end)()
- welditbro = Instance.new("Weld", char)
- welditbro.C0 = CFrame.new(0, 0.5, 0)
- welditbro.Part0 = ra
- welditbro.Part1 = ar
- end
- function block()
- if not equipped then return end
- stoopidstuff.Value = true
- damage = 200000000
- char:findFirstChild("Humanoid").WalkSpeed = 6
- storedhealth = char:findFirstChild("Humanoid").Health
- for angle = 0, 70, 10 do
- fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(45), math.rad(angle), 0)
- wait()
- end
- coroutine.wrap(function()
- while blocking do
- if not blocking then return end
- char:findFirstChild("Humanoid").Health = storedhealth
- game:service'RunService'.Stepped:wait()
- end
- end)()
- end
- function unblock()
- stoopidstuff.Value = false
- if not equipped then return end
- damage = 3000000
- char:findFirstChild("Humanoid").WalkSpeed = storewalkspeed
- for angle = 70, 0, -10 do
- fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(45), math.rad(angle), 0)
- wait()
- end
- blocking = false
- end
- function block2()
- if not equipped then return end
- stoopidstuff.Value = true
- damage = 20000000
- char:findFirstChild("Humanoid").WalkSpeed = 6
- storedhealth = char:findFirstChild("Humanoid").Health
- for angle = 0, 50, 10 do
- fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(45 + angle/6), 0, -math.rad(angle))
- wait()
- end
- coroutine.wrap(function()
- while blocking2 do
- if not blocking2 then return end
- char:findFirstChild("Humanoid").Health = storedhealth
- game:service'RunService'.Stepped:wait()
- end
- end)()
- end
- function unblock2()
- stoopidstuff.Value = false
- if not equipped then return end
- damage = 30000
- char:findFirstChild("Humanoid").WalkSpeed = storewalkspeed
- for angle = 50, 0, -10 do
- fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(45 + angle/6), math.rad(0), -math.rad(angle))
- wait()
- end
- blocking2 = false
- end
- function heal()
- ar2 = Instance.new("Part", char)
- ar2.FormFactor = "Custom"
- ar2.Size = Vector3.new(1, 1, 1)
- ar2.Transparency = 1
- ar2.CanCollide = false
- ar2.Locked = true
- ar2:BreakJoints()
- fakel2 = Instance.new("Weld", char)
- fakel2.Part0 = torso
- fakel2.Part1 = ar2
- welditbro2 = Instance.new("Weld", char)
- welditbro2.C0 = CFrame.new(0, 0.5, 0)
- welditbro2.Part0 = la
- welditbro2.Part1 = ar2
- for angle = 0, 170, 5 do
- fakel2.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.Angles(math.rad(angle), math.rad(0), math.rad(0))
- wait()
- end
- local ball = Instance.new("Part", char)
- ball.FormFactor = "Custom"
- ball.BrickColor = BrickColor.new("Lime green")
- ball.Anchored = true
- ball.CanCollide = false
- ball.TopSurface = 0
- ball.BottomSurface = 0
- ball.Transparency = 0.4
- ball.Locked = true
- ball.Shape = "Ball"
- ball.CFrame = torso.CFrame
- local mesh = Instance.new("SpecialMesh", ball)
- mesh.MeshType = "Sphere"
- coroutine.wrap(function()
- for i = 0.2, 8, 0.1 do
- mesh.Scale = Vector3.new(i, i, i)
- ball.Transparency = ball.Transparency + 0.005
- wait()
- end
- ball:Destroy()
- end)()
- local splash = Instance.new("Part", char)
- splash.FormFactor = "Custom"
- splash.BrickColor = BrickColor.new("Lime green")
- splash.Transparency = 0
- splash.Anchored = true
- splash.CanCollide = false
- splash.BottomSurface = 0
- splash.TopSurface = 0
- splash.Locked = true
- local mesh = Instance.new("SpecialMesh", splash)
- mesh.MeshType = "FileMesh"
- mesh.Scale = Vector3.new(1, 1, 1)
- mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
- splash:BreakJoints()
- splash.CFrame = ball.CFrame * CFrame.Angles(math.rad(90), 0, 0)
- coroutine.resume(coroutine.create(function()
- for i = 0, 50, 0.5 do
- mesh.Scale = Vector3.new(i, i, 1)
- splash.Transparency = splash.Transparency + 0.01
- wait()
- end
- splash:Destroy()
- end))
- char:findFirstChild("Humanoid").Health = char:findFirstChild("Humanoid").Health + 1000
- wait(0.5)
- welditbro2:Destroy()
- fakel2:Destroy()
- ar2:Destroy()
- ls.Parent = torso
- wait(1)
- healing = false
- end
- function slash()
- if blocking then return end
- if blocking2 then return end
- if not equipped then return end
- damage = 200000000
- for angle = 45, 95, 10 do
- fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(angle), math.rad(angle/2), 0)
- wait()
- end
- for angle = 95, 5, -20 do
- fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(angle), math.rad(angle/2), 0)
- wait()
- end
- for angle = 5, 45, 10 do
- fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(angle), math.rad(angle/angle - 5), 0)
- wait()
- end
- slashing = false
- fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(45), 0, 0)
- damage = 200000000
- wait(0.2)
- end
- function deequip()
- pcall(function()
- ar:Destroy()
- fakel:Destroy()
- welditbro:Destroy()
- end)
- end
- local part1 = part(char, Vector3.new(0.2, 1.4, 0.2), "Custom", BrickColor.new("Black"), 0)
- Instance.new("CylinderMesh", part1)
- local weld1 = weld(CFrame.new(0, 0, 1) * CFrame.Angles(math.pi/2, 0, 0), CFrame.new(), ra, part1)
- local part2 = part(char, Vector3.new(0.4, 0.4, 0.4), "Custom", BrickColor.new("Black"), 0)
- Instance.new("CylinderMesh", part2)
- local weld3 = weld(CFrame.new(0, 0.65, 0), CFrame.new(), part2, part1)
- local part3 = part(char, Vector3.new(0.3, 4.4, 0.3), "Custom", BrickColor.White(), 0)
- local mesh1 = specialmesh(part3, "Head", Vector3.new(0.8, 1, 0.8), "")
- local weld4 = weld(CFrame.new(0, 2.9, 0), CFrame.new(), part3, part1)
- local part4 = part(char, Vector3.new(0.4, 4.4, 0.4), "Custom", BrickColor.new(colors[math.random(1, #colors)]), 0)
- local mesh2 = specialmesh(part4, "Head", Vector3.new(1, 1.01, 1), "")
- local weld5 = weld(CFrame.new(0, 2.9, 0), CFrame.new(), part4, part1)
- local pl = Instance.new("PointLight", part4)
- pl.Color = part4.BrickColor.Color
- pl.Brightness = 0
- part3.Transparency = 1
- part4.Transparency = 1
- part4.Touched:connect(function(hit)
- if not equipped then return end
- if debounce then return end
- debounce = true
- coroutine.wrap(function()
- pcall(function()
- if hit.Parent:FindFirstChild("Humanoid") ~= nil then
- if hit.Parent.Name == char.Name then return end
- if hit.Parent:findFirstChild("stoopidstuff") ~= nil and hit.Parent:findFirstChild("stoopidstuff").Value == true then
- return
- end
- damagerandom = damage + math.random(0, 10)
- hit.Parent.Humanoid.Health = hit.Parent.Humanoid.Health - damagerandom
- coroutine.wrap(function()
- local prt = Instance.new("Part", char)
- prt.FormFactor = "Custom"
- prt.Size = Vector3.new(0.1, 0.1, 0.1)
- prt.Transparency = 1
- prt.CanCollide = false
- prt.CFrame = CFrame.new(part4.CFrame.x, part4.CFrame.y, part4.CFrame.z)
- prt.Anchored = true
- coroutine.resume(coroutine.create(function()
- for i = 2, 10, 0.05 do
- if prt == nil then return end
- prt.CFrame = prt.CFrame * CFrame.new(0, 0.05, 0)
- game:service'RunService'.Stepped:wait()
- end
- end))
- local bg = Instance.new("BillboardGui")
- bg.Parent = prt
- bg.Adornee = prt
- bg.Size = UDim2.new(4, 0, 3.5, 0)
- bg.ExtentsOffset = Vector3.new(0, 0, 0)
- local lol = Instance.new("TextLabel")
- lol.Size = UDim2.new(1.3, 0, 0.4, 0)
- lol.TextScaled = true
- lol.TextWrapped = true
- lol.BackgroundTransparency = 0.4
- lol.Parent = bg
- lol.FontSize = "Size24"
- lol.TextColor3 = Color3.new(1, 0, 0)
- lol.TextStrokeTransparency = 0
- lol.Font = "ArialBold"
- lol.Text = "-"..damagerandom
- wait(5)
- prt:Destroy()
- end)()
- end
- end)
- end)()
- wait(0.1)
- debounce = false
- end)
- mouse.Button1Down:connect(function(mouse)
- if slashing then return end
- if not equipped then return end
- if blocking2 then return end
- if blocking then return end
- slashing = true
- slash()
- end)
- mouse.KeyUp:connect(function(key)
- if key == "f" then
- if not equipped then return end
- if not blocking then return end
- unblock()
- char:findFirstChild("Humanoid").MaxHealth = 100
- end
- if key == "g" then
- if not equipped then return end
- if not blocking2 then return end
- unblock2()
- char:findFirstChild("Humanoid").MaxHealth = 100
- end
- end)
- mouse.KeyDown:connect(function(key)
- if key == "f" then
- if not equipped then return end
- if blocking then return end
- if blocking2 then return end
- blocking = true
- block()
- end
- if key == "g" then
- if not equipped then return end
- if blocking then return end
- if blocking2 then return end
- blocking2 = true
- block2()
- end
- if key == "v" then
- if healing then return end
- if slashing then return end
- healing = true
- heal()
- end
- if key == "q" then
- if blocking2 then return end
- if blocking then return end
- equipped = not equipped
- if equipped then
- coroutine.wrap(function()
- while equipped do
- part4.Transparency = 0.6
- pl.Brightness = 0.6
- wait(0.05)
- part4.Transparency = 0.7
- pl.Brightness = 0.8
- wait(0.05)
- end
- end)()
- weld1.Part1 = ra
- weld1.C0 = CFrame.new(0, 0, 1) * CFrame.Angles(math.pi/2, 0, 0)
- part3.Transparency = 0
- local sound = Instance.new("Sound", char.Head)
- sound.SoundId = [[rbxasset://sounds\Rocket whoosh 01.wav]]
- sound.Pitch = 3
- sound.Volume = 1
- sound:play()
- equip()
- wait(1)
- sound:stop()
- sound:Destroy()
- else
- deequip()
- wait(0.1)
- weld1.Part1 = rl
- weld1.C0 = CFrame.new(-0.6,-0.8,-0.2) * CFrame.Angles(math.pi/4, 0, 0)
- part3.Transparency = 1
- pl.Brightness = 0
- part4.Transparency = 1
- end
- end
- end)
- while true do
- if slashing then
- local clone = part4:clone()
- clone.Anchored = true
- clone.Parent = workspace
- clone.Name = "trail"
- clone:findFirstChild("Mesh"):Destroy()
- Instance.new("BlockMesh", clone)
- clone.Mesh.Scale = clone.Mesh.Scale - Vector3.new(0.8, 0, 0) + Vector3.new(0, 0, 1.6)
- coroutine.wrap(function()
- for i = 0, 20 do
- clone.Transparency = clone.Transparency + 0.05
- clone.Mesh.Scale = clone.Mesh.Scale - Vector3.new(0.05, 0.05, 0.05)
- wait()
- end
- clone:Destroy()
- end)()
- end
- wait()
- end
- if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
- local Player,game,owner = owner,game
- local RealPlayer = Player
- do
- print("FE Compatibility code by Mokiros")
- local rp = RealPlayer
- script.Parent = rp.Character
- --RemoteEvent for communicating
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInput_Event"
- --Fake event to make stuff like Mouse.KeyDown work
- local function fakeEvent()
- local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
- t.connect = t.Connect
- return t
- end
- --Creating fake input objects with fake variables
- local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
- local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
- local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
- CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
- end}
- --Merged 2 functions into one by checking amount of arguments
- CAS.UnbindAction = CAS.BindAction
- --This function will trigger the events that have been :Connect()'ed
- local function te(self,ev,...)
- local t = m[ev]
- if t and t._fakeEvent then
- for _,f in pairs(t.Functions) do
- f(...)
- end
- end
- end
- m.TrigEvent = te
- UIS.TrigEvent = te
- Event.OnServerEvent:Connect(function(plr,io)
- if plr~=rp then return end
- m.Target = io.Target
- m.Hit = io.Hit
- if not io.isMouse then
- local b = io.UserInputState == Enum.UserInputState.Begin
- if io.UserInputType == Enum.UserInputType.MouseButton1 then
- return m:TrigEvent(b and "Button1Down" or "Button1Up")
- end
- if io.UserInputType == Enum.UserInputType.MouseButton2 then
- return m:TrigEvent(b and "Button2Down" or "Button2Up")
- end
- for _,t in pairs(CAS.Actions) do
- for _,k in pairs(t.Keys) do
- if k==io.KeyCode then
- t.Function(t.Name,io.UserInputState,io)
- end
- end
- end
- m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
- UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
- end
- end)
- Event.Parent = NLS([==[
- local Player = game:GetService("Players").LocalPlayer
- local Event = script:WaitForChild("UserInput_Event")
- local Mouse = Player:GetMouse()
- local UIS = game:GetService("UserInputService")
- local input = function(io,a)
- if a then return end
- --Since InputObject is a client-side instance, we create and pass table instead
- Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
- end
- UIS.InputBegan:Connect(input)
- UIS.InputEnded:Connect(input)
- local h,t
- --Give the server mouse data 30 times every second, but only if the values changed
- --If player is not moving their mouse, client won't fire events
- while wait(1/30) do
- if h~=Mouse.Hit or t~=Mouse.Target then
- h,t=Mouse.Hit,Mouse.Target
- Event:FireServer({isMouse=true,Target=t,Hit=h})
- end
- end]==],Player.Character)
- ----Sandboxed game object that allows the usage of client-side methods and services
- --Real game object
- local _rg = game
- --Metatable for fake service
- local fsmt = {
- __index = function(self,k)
- local s = rawget(self,"_RealService")
- if s then
- return typeof(s[k])=="function"
- and function(_,...)return s[k](s,...)end or s[k]
- end
- end,
- __newindex = function(self,k,v)
- local s = rawget(self,"_RealService")
- if s then s[k]=v end
- end
- }
- local function FakeService(t,RealService)
- t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
- return setmetatable(t,fsmt)
- end
- --Fake game object
- local g = {
- GetService = function(self,s)
- return rawget(self,s) or _rg:GetService(s)
- end,
- Players = FakeService({
- LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
- },"Players"),
- UserInputService = FakeService(UIS,"UserInputService"),
- ContextActionService = FakeService(CAS,"ContextActionService"),
- RunService = FakeService({
- _btrs = {},
- RenderStepped = _rg:GetService("RunService").Heartbeat,
- BindToRenderStep = function(self,name,_,fun)
- self._btrs[name] = self.Heartbeat:Connect(fun)
- end,
- UnbindFromRenderStep = function(self,name)
- self._btrs[name]:Disconnect()
- end,
- },"RunService")
- }
- rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
- g.service = g.GetService
- FakeService(g,game)
- --Changing owner to fake player object to support owner:GetMouse()
- game,owner = g,g.Players.LocalPlayer
- end
- script.Parent = workspace.CurrentCamera
- local plr = game:GetService("Players").LocalPlayer
- local tool = Instance.new("Tool",plr:WaitForChild("Backpack"))
- tool.Grip = CFrame.new(0,-0.2,-1.6) * CFrame.Angles(math.rad(100),math.rad(180),math.rad(0))
- tool.Name = "bluE"
- local part = Instance.new("Part",tool)
- part.Name = "Handle"
- part.Size = Vector3.new(4,6,4)
- part.TopSurface = "Smooth"
- part.BottomSurface = "Smooth"
- part.CanCollide = false
- part:BreakJoints()
- local mesh = Instance.new("SpecialMesh",part)
- mesh.MeshId = "rbxassetid://24342877" --mesh.MeshId = "rbxassetid://132920499"
- mesh.TextureId = "rbxassetid://139521211" --"http://www.roblox.com/asset/?id=134479421"
- mesh.Scale = Vector3.new(2,2,2)
- local sound = Instance.new("Sound",part)
- sound.SoundId = "rbxassetid://148862502"
- sound.Volume = 10
- local sound2 = Instance.new("Sound",part)
- sound2.SoundId = "rbxassetid://280667448"
- sound2.Volume = 5
- local sound3 = Instance.new("Sound",part)
- sound3.SoundId = "rbxassetid://198973822"
- sound3.Volume = 10
- local sound4 = Instance.new("Sound",part)
- sound4.SoundId = "rbxassetid://258057783"
- sound4.Volume = 10
- local sound5 = Instance.new("Sound",part)
- sound5.SoundId = "rbxassetid://130932305"
- sound5.Volume = 10
- local sound6 = Instance.new("Sound",part)
- sound6.SoundId = "rbxassetid://906084456"
- sound6.Volume = 10
- sound6.TimePosition = 2
- function firstHum(target)
- for i,v in pairs(target:GetChildren()) do
- if v:IsA("Humanoid") then
- return v
- end
- end
- return nil
- end
- local slap = false
- local cd = false
- plr:GetMouse().Button1Down:connect(function()
- if tool.Parent == plr.Character then
- if slap == false then
- slap = true
- sound2:Play()
- local str = Instance.new("StringValue")
- str.Name = "toolanim"
- str.Value = "Slash"
- str.Parent = tool
- wait(1)
- slap = false
- end
- end
- end)
- part.Touched:connect(function(hit)
- if slap == true then
- if cd == false then
- if not hit:IsDescendantOf(plr.Character) then
- if hit.Parent:IsA("Model") then
- local fhum = firstHum(hit.Parent)
- if fhum then
- cd = true
- fhum.PlatformStand = true
- sound:Play()
- local con1
- con1 = game:GetService("RunService").Heartbeat:connect(function()
- fhum.PlatformStand = true
- end)
- wait(0.1)
- local vel = Instance.new("BodyVelocity",hit)
- vel.Velocity = ((hit.Position - plr.Character:WaitForChild("HumanoidRootPart").Position).unit + Vector3.new(0,0.5,0))*50
- vel.MaxForce = Vector3.new(10000000,10000000,10000000)
- wait(1)
- cd = false
- vel:Destroy()
- local vel2 = Instance.new("BodyVelocity",hit)
- vel2.Velocity = Vector3.new(0,12.5,0)
- vel2.MaxForce = Vector3.new(10000000,10000000,10000000)
- local p2 = Instance.new("Part",hit)
- p2.Anchored = true
- p2.Transparency = 0.6
- p2.CanCollide = false
- p2.Size = Vector3.new(0.2,0.2,0.2)
- p2.CFrame = CFrame.new(hit.CFrame.p) * CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
- p2.BrickColor = BrickColor.new("New Yeller")
- p2.Material = "Neon"
- local m2 = Instance.new("CylinderMesh",p2)
- m2.Scale = Vector3.new(60,10000,60)
- local scln = sound3:Clone()
- scln.Parent = hit
- scln:Play()
- local con2
- con2 = game:GetService("RunService").Heartbeat:connect(function()
- p2.CFrame = CFrame.new(hit.CFrame.p) * CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
- end)
- wait(7)
- vel2.Velocity = Vector3.new(0,0,0)
- wait(0.5)
- scln:Stop()
- local scln3 = sound5:Clone()
- scln3.Parent = hit
- scln3:Play()
- wait(1)
- local bav = Instance.new("BodyAngularVelocity",hit)
- bav.AngularVelocity = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360))
- vel2.Velocity = Vector3.new(0,-250,0)
- p2.BrickColor = BrickColor.new("Really red")
- local scln6 = sound6:Clone()
- scln6.Parent = hit
- scln6:Play()
- local continue = false
- local htc
- htc = hit.Touched:connect(function(hitp)
- if not hitp:IsDescendantOf(hit.Parent) then
- continue = true
- scln6:Stop()
- vel2:Destroy()
- con2:Disconnect()
- con1:Disconnect()
- htc:Disconnect()
- p2:Destroy()
- end
- end)
- repeat wait() until continue == true
- local ctab = {}
- for i=1,4 do
- local p = Instance.new("Part",hit)
- p.Size = Vector3.new(30,30,30)
- p.Anchored = true
- p.CanCollide = false
- p.TopSurface = "Smooth"
- p.BottomSurface = "Smooth"
- p.Color = Color3.fromRGB(255,math.random(0,255),0)
- p.CFrame = hit.CFrame
- local con
- con = game:GetService("RunService").Heartbeat:connect(function()
- p.CFrame = p.CFrame * CFrame.Angles(math.rad(math.random(0,360)),math.rad(math.random(0,360)),math.rad(math.random(0,360)))
- p.Transparency = p.Transparency + 0.01
- if p.Transparency >= 1 then
- con:Disconnect()
- end
- end)
- table.insert(ctab,con)
- end
- Instance.new("Explosion",workspace).Position = hit.Position
- local scln2 = sound4:Clone()
- scln2.Parent = hit
- scln2:Play()
- vel2:Destroy()
- hit.Parent:BreakJoints()
- repeat wait() until not hit:IsDescendantOf(workspace)
- con2:Disconnect()
- end
- end
- end
- end
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement