sIendytubble

scale splatter

Jun 20th, 2020
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.58 KB | None | 0 0
  1. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  2. local Player,game,owner = owner,game
  3. local RealPlayer = Player
  4. do
  5. print("FE Compatibility code by Mokiros")
  6. local rp = RealPlayer
  7. script.Parent = rp.Character
  8.  
  9. --RemoteEvent for communicating
  10. local Event = Instance.new("RemoteEvent")
  11. Event.Name = "UserInput_Event"
  12.  
  13. --Fake event to make stuff like Mouse.KeyDown work
  14. local function fakeEvent()
  15. local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
  16. t.connect = t.Connect
  17. return t
  18. end
  19.  
  20. --Creating fake input objects with fake variables
  21. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  22. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  23. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  24. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  25. end}
  26. --Merged 2 functions into one by checking amount of arguments
  27. CAS.UnbindAction = CAS.BindAction
  28.  
  29. --This function will trigger the events that have been :Connect()'ed
  30. local function te(self,ev,...)
  31. local t = m[ev]
  32. if t and t._fakeEvent then
  33. for _,f in pairs(t.Functions) do
  34. f(...)
  35. end
  36. end
  37. end
  38. m.TrigEvent = te
  39. UIS.TrigEvent = te
  40.  
  41. Event.OnServerEvent:Connect(function(plr,io)
  42. if plr~=rp then return end
  43. m.Target = io.Target
  44. m.Hit = io.Hit
  45. if not io.isMouse then
  46. local b = io.UserInputState == Enum.UserInputState.Begin
  47. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  48. return m:TrigEvent(b and "Button1Down" or "Button1Up")
  49. end
  50. if io.UserInputType == Enum.UserInputType.MouseButton2 then
  51. return m:TrigEvent(b and "Button2Down" or "Button2Up")
  52. end
  53. for _,t in pairs(CAS.Actions) do
  54. for _,k in pairs(t.Keys) do
  55. if k==io.KeyCode then
  56. t.Function(t.Name,io.UserInputState,io)
  57. end
  58. end
  59. end
  60. m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  61. UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  62. end
  63. end)
  64. Event.Parent = NLS([==[
  65. local Player = game:GetService("Players").LocalPlayer
  66. local Event = script:WaitForChild("UserInput_Event")
  67. local Mouse = Player:GetMouse()
  68. local UIS = game:GetService("UserInputService")
  69. local input = function(io,a)
  70. if a then return end
  71. --Since InputObject is a client-side instance, we create and pass table instead
  72. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  73. end
  74. UIS.InputBegan:Connect(input)
  75. UIS.InputEnded:Connect(input)
  76. local h,t
  77. --Give the server mouse data 30 times every second, but only if the values changed
  78. --If player is not moving their mouse, client won't fire events
  79. while wait(1/30) do
  80. if h~=Mouse.Hit or t~=Mouse.Target then
  81. h,t=Mouse.Hit,Mouse.Target
  82. Event:FireServer({isMouse=true,Target=t,Hit=h})
  83. end
  84. end]==],Player.Character)
  85.  
  86. ----Sandboxed game object that allows the usage of client-side methods and services
  87. --Real game object
  88. local _rg = game
  89.  
  90. --Metatable for fake service
  91. local fsmt = {
  92. __index = function(self,k)
  93. local s = rawget(self,"_RealService")
  94. if s then
  95. return typeof(s[k])=="function"
  96. and function(_,...)return s[k](s,...)end or s[k]
  97. end
  98. end,
  99. __newindex = function(self,k,v)
  100. local s = rawget(self,"_RealService")
  101. if s then s[k]=v end
  102. end
  103. }
  104. local function FakeService(t,RealService)
  105. t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
  106. return setmetatable(t,fsmt)
  107. end
  108.  
  109. --Fake game object
  110. local g = {
  111. GetService = function(self,s)
  112. return rawget(self,s) or _rg:GetService(s)
  113. end,
  114. Players = FakeService({
  115. LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
  116. },"Players"),
  117. UserInputService = FakeService(UIS,"UserInputService"),
  118. ContextActionService = FakeService(CAS,"ContextActionService"),
  119. RunService = FakeService({
  120. _btrs = {},
  121. RenderStepped = _rg:GetService("RunService").Heartbeat,
  122. BindToRenderStep = function(self,name,_,fun)
  123. self._btrs[name] = self.Heartbeat:Connect(fun)
  124. end,
  125. UnbindFromRenderStep = function(self,name)
  126. self._btrs[name]:Disconnect()
  127. end,
  128. },"RunService")
  129. }
  130. rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
  131. g.service = g.GetService
  132. FakeService(g,game)
  133. --Changing owner to fake player object to support owner:GetMouse()
  134. game,owner = g,g.Players.LocalPlayer
  135. end
  136. function ded(char)
  137.  
  138. coroutine.resume(coroutine.create(function()
  139. for i,v in pairs(char:GetChildren()) do
  140. while wait() do
  141. if v.ClassName == "MeshPart" or v.ClassName == "Part" then
  142. v.Size = v.Size + Vector3.new(0.05,0.05,0.05)
  143. end
  144. end
  145. end
  146. end))
  147. wait(2)
  148. Model0 = Instance.new("Model")
  149. Part1 = Instance.new("Part")
  150. Decal2 = Instance.new("Decal")
  151. Decal3 = Instance.new("Decal")
  152. Part4 = Instance.new("Part")
  153. Decal5 = Instance.new("Decal")
  154. Decal6 = Instance.new("Decal")
  155. Part7 = Instance.new("Part")
  156. Decal8 = Instance.new("Decal")
  157. Decal9 = Instance.new("Decal")
  158. Part10 = Instance.new("Part")
  159. Decal11 = Instance.new("Decal")
  160. Decal12 = Instance.new("Decal")
  161. Model0.Parent = workspace
  162. Part1.Parent = Model0
  163. Part1.CFrame = CFrame.new(-209.049988, 0.165398523, 179.447937, -0.819152594, 0, 0.573575675, 0, 1, 0, -0.573575675, 0, -0.819152594)
  164. Part1.Orientation = Vector3.new(0, 145, 0)
  165. Part1.Position = Vector3.new(-209.049988, 0.165398523, 179.447937)
  166. Part1.Rotation = Vector3.new(-180, 35, -180)
  167. Part1.Transparency = 1
  168. Part1.Size = Vector3.new(11.9000025, 0.0500000045, 13.5999994)
  169. Part1.BottomSurface = Enum.SurfaceType.Smooth
  170. Part1.TopSurface = Enum.SurfaceType.Smooth
  171. Decal2.Parent = Part1
  172. Decal2.Texture = "http://www.roblox.com/asset/?id=2210208276"
  173. Decal2.Face = Enum.NormalId.Top
  174. Decal3.Parent = Part1
  175. Decal3.Texture = "http://www.roblox.com/asset/?id=176678070"
  176. Decal3.Face = Enum.NormalId.Top
  177. Part4.Parent = Model0
  178. Part4.CFrame = CFrame.new(-209.049988, 0.165398523, 179.447937, -0.573577344, 0, 0.819151461, 0, 1, 0, -0.819151461, 0, -0.573577344)
  179. Part4.Orientation = Vector3.new(0, 125, 0)
  180. Part4.Position = Vector3.new(-209.049988, 0.165398523, 179.447937)
  181. Part4.Rotation = Vector3.new(-180, 55, -180)
  182. Part4.Transparency = 1
  183. Part4.Size = Vector3.new(11.9000025, 0.0500000045, 13.5999994)
  184. Part4.BottomSurface = Enum.SurfaceType.Smooth
  185. Part4.TopSurface = Enum.SurfaceType.Smooth
  186. Decal5.Parent = Part4
  187. Decal5.Texture = "http://www.roblox.com/asset/?id=2210208276"
  188. Decal5.Face = Enum.NormalId.Top
  189. Decal6.Parent = Part4
  190. Decal6.Texture = "http://www.roblox.com/asset/?id=176678070"
  191. Decal6.Face = Enum.NormalId.Top
  192. Part7.Parent = Model0
  193. Part7.CFrame = CFrame.new(-209.049988, 0.165398523, 179.447937, 1, 0, 0, 0, 1, 0, 0, 0, 1)
  194. Part7.Position = Vector3.new(-209.049988, 0.165398523, 179.447937)
  195. Part7.Transparency = 1
  196. Part7.Size = Vector3.new(11.9000025, 0.0500000045, 13.5999994)
  197. Part7.BottomSurface = Enum.SurfaceType.Smooth
  198. Part7.TopSurface = Enum.SurfaceType.Smooth
  199. Decal8.Parent = Part7
  200. Decal8.Texture = "http://www.roblox.com/asset/?id=2210208276"
  201. Decal8.Face = Enum.NormalId.Top
  202. Decal9.Parent = Part7
  203. Decal9.Texture = "http://www.roblox.com/asset/?id=176678070"
  204. Decal9.Face = Enum.NormalId.Top
  205. Part10.Parent = Model0
  206. Part10.CFrame = CFrame.new(-209.049988, 0.165398523, 179.447937, 0.499998987, 0, 0.866025984, 0, 1, 0, -0.866025984, 0, 0.499998987)
  207. Part10.Orientation = Vector3.new(0, 60, 0)
  208. Part10.Position = Vector3.new(-209.049988, 0.165398523, 179.447937)
  209. Part10.Rotation = Vector3.new(0, 60, 0)
  210. Part10.Transparency = 1
  211. Part10.Size = Vector3.new(11.9000025, 0.0500000045, 13.5999994)
  212. Part10.BottomSurface = Enum.SurfaceType.Smooth
  213. Part10.TopSurface = Enum.SurfaceType.Smooth
  214. Decal11.Parent = Part10
  215. Decal11.Texture = "http://www.roblox.com/asset/?id=2210208276"
  216. Decal11.Face = Enum.NormalId.Top
  217. Decal12.Parent = Part10
  218. Decal12.Texture = "http://www.roblox.com/asset/?id=176678070"
  219. Decal12.Face = Enum.NormalId.Top
  220. splatter = Instance.new("Sound",Part1)
  221. splatter.SoundId = "rbxassetid://429400881"
  222. splatter.Volume = 10
  223. splatter.Looped = false
  224. splatter:Play()
  225. for i,v in pairs(Model0:GetChildren()) do
  226. v.Position = char.HumanoidRootPart.Position - Vector3.new(0,4 - 0.05,0)
  227. end
  228. char:Destroy()
  229. end
  230. mouse = game.Players.LocalPlayer:GetMouse()
  231. mouse.Button1Down:Connect(function()
  232. if mouse.Target.Parent:FindFirstChildOfClass("Humanoid") then
  233. ded(mouse.Target.Parent)
  234. end
  235. end)
Add Comment
Please, Sign In to add comment