Rufus14

funny spoon

Nov 2nd, 2020
1,448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 16.98 KB | None | 0 0
  1. --By Rufus14
  2. --Converted with ttyyuu12345's model to script plugin v4
  3. function sandbox(var,func)
  4.     local env = getfenv(func)
  5.     local newenv = setmetatable({},{
  6.         __index = function(self,k)
  7.             if k=="script" then
  8.                 return var
  9.             else
  10.                 return env[k]
  11.             end
  12.         end,
  13.     })
  14.     setfenv(func,newenv)
  15.     return func
  16. end
  17. cors = {}
  18. mas = Instance.new("Model",game:GetService("Lighting"))
  19. Tool0 = Instance.new("Tool")
  20. Part1 = Instance.new("Part")
  21. SpecialMesh2 = Instance.new("SpecialMesh")
  22. Script3 = Instance.new("Script")
  23. Tool0.Name = "spoo n"
  24. Tool0.Parent = mas
  25. Part1.Name = "Handle"
  26. Part1.Parent = Tool0
  27. Part1.CFrame = CFrame.new(-8.50000763, 7.49998093, -29.0999832, 0, -1, 0, 0, 0, -1, 1, 0, 0)
  28. Part1.Orientation = Vector3.new(90, -90, 0)
  29. Part1.Position = Vector3.new(-8.50000763, 7.49998093, -29.0999832)
  30. Part1.Rotation = Vector3.new(90, 0, 90)
  31. Part1.Color = Color3.new(0.623529, 0.631373, 0.67451)
  32. Part1.Size = Vector3.new(2.20000052, 0.199998304, 9.3999958)
  33. Part1.BottomSurface = Enum.SurfaceType.Smooth
  34. Part1.BrickColor = BrickColor.new("Fossil")
  35. Part1.TopSurface = Enum.SurfaceType.Smooth
  36. Part1.brickColor = BrickColor.new("Fossil")
  37. SpecialMesh2.Name = "mesh"
  38. SpecialMesh2.Parent = Part1
  39. SpecialMesh2.MeshId = "rbxassetid://431177782"
  40. SpecialMesh2.Scale = Vector3.new(0.0799999982, 0.0799999982, 0.0799999982)
  41. SpecialMesh2.MeshType = Enum.MeshType.FileMesh
  42. Script3.Parent = Tool0
  43. table.insert(cors,sandbox(Script3,function()
  44. --By Rufus14
  45. tool = script.Parent
  46. handle = tool.Handle
  47. handle.Transparency = 1
  48. players = game:GetService("Players")
  49. runservice = game:GetService("RunService")
  50. local owner
  51. local character
  52. equipped = "false"
  53. firstequip = true
  54. caneffect = false
  55. anim = "idle"
  56. mode = "bigspoon"
  57. ----------
  58. handle.ChildRemoved:connect(function(WHAT)
  59.     if WHAT.ClassName == "Sound" then
  60.         local backupyeaah = Instance.new("Sound", handle)
  61.         backupyeaah.SoundId = WHAT.SoundId
  62.         backupyeaah.Name = WHAT.Name
  63.         backupyeaah.Volume = WHAT.Volume
  64.         backupyeaah.TimePosition = WHAT.TimePosition
  65.         backupyeaah.Playing = WHAT.Playing
  66.     end
  67. end)
  68. ----------
  69. function switchmode()
  70.     if caneffect then
  71.         handle.how.Volume = 6
  72.         if mode == "bigspoon" then
  73.             mode = "bluespoon"
  74.             handle.transformsound.SoundId = "rbxassetid://4761049714"
  75.             handle.switch:Play()
  76.             handle.explosion:Play()
  77.             handle.fade:Play()
  78.             handle.fieryexplosion:Play()
  79.             handle.how.PlaybackSpeed = 1
  80.             handle.BrickColor = BrickColor.new("Toothpaste")
  81.             handle.how.SoundId = "rbxassetid://5513265404"
  82.             handle.transformsound:Play()
  83.             for i,v in pairs(handle:GetDescendants()) do
  84.                 if v.Name == "spoontyperare" then
  85.                     v.Text = "mmm blue spoo n"
  86.                     v.TextColor = BrickColor.new("Toothpaste")
  87.                 end
  88.             end
  89.             doeffect()
  90.         elseif mode == "bluespoon" then
  91.             mode = "chinese"
  92.             handle.transformsound.SoundId = "rbxassetid://5136719210"
  93.             handle.switch:Play()
  94.             handle.explosion:Play()
  95.             handle.fade:Play()
  96.             handle.fieryexplosion:Play()
  97.             handle.how.Volume = 6
  98.             handle.how.PlaybackSpeed = 1
  99.             handle.BrickColor = BrickColor.new("New Yeller")
  100.             handle.how.SoundId = "rbxassetid://4577864465"
  101.             handle.transformsound:Play()
  102.             for i,v in pairs(handle:GetDescendants()) do
  103.                 if v.Name == "spoontyperare" then
  104.                     v.Text = "私はパイプ爆弾を作っています"
  105.                     v.TextColor = BrickColor.new("New Yeller")
  106.                 end
  107.             end
  108.             coroutine.wrap(function()
  109.                 while mode == "chinese" and runservice.Stepped:wait() do
  110.                     handle.mesh.Scale = Vector3.new(0.08+math.sin(tick()*5)/20,0.08,0.08+math.cos(tick()*2.5)/40)
  111.                 end
  112.                 handle.mesh.Scale = Vector3.new(0.08,0.08,0.08)
  113.             end)()
  114.             doeffect()
  115.         elseif mode == "chinese" then
  116.             mode = "bigspoon"
  117.             handle.transformsound.SoundId = "rbxassetid://5382576606"
  118.             handle.switch:Play()
  119.             handle.explosion:Play()
  120.             handle.fade:Play()
  121.             handle.fieryexplosion:Play()
  122.             handle.how.Volume = 3
  123.             handle.how.PlaybackSpeed = 1
  124.             handle.BrickColor = BrickColor.new("Institutional white")
  125.             handle.how.SoundId = "rbxassetid://4771057299"
  126.             handle.transformsound:Play()
  127.             for i,v in pairs(handle:GetDescendants()) do
  128.                 if v.Name == "spoontyperare" then
  129.                     v.Text = "large spoo n"
  130.                     v.TextColor = BrickColor.new("Institutional white")
  131.                 end
  132.             end
  133.             doeffect()
  134.         end
  135.     end
  136. end
  137. function doeffect()
  138.     if caneffect then
  139.         local cyllinder = Instance.new("SpawnLocation", character)
  140.         cyllinder.Neutral = false
  141.         cyllinder.Material = "SmoothPlastic"
  142.         cyllinder.Shape = "Cylinder"
  143.         cyllinder.Size = Vector3.new(500,5,5)
  144.         cyllinder.CanCollide = false
  145.         cyllinder.Anchored = true
  146.         cyllinder.CastShadow = false
  147.         cyllinder.CFrame = CFrame.new(handle.Position) * CFrame.new(0,cyllinder.Size.y/2,0) * CFrame.fromEulerAnglesXYZ(0,0,math.pi/2)
  148.         local ring = Instance.new("SpawnLocation", character)
  149.         ring.Neutral = false
  150.         ring.Size = Vector3.new(5,5,4)
  151.         ring.CanCollide = false
  152.         ring.Anchored = true
  153.         ring.CFrame = CFrame.new(handle.Position) * CFrame.fromEulerAnglesXYZ(math.pi/2,0,0)
  154.         if mode == "bigspoon" then
  155.             cyllinder.BrickColor = BrickColor.White()
  156.             ring.BrickColor = BrickColor.White()
  157.         elseif mode == "bluespoon" then
  158.             cyllinder.BrickColor = BrickColor.new("Toothpaste")
  159.             ring.BrickColor = BrickColor.new("Toothpaste")
  160.         elseif mode == "chinese" then
  161.             cyllinder.BrickColor = BrickColor.new("New Yeller")
  162.             ring.BrickColor = BrickColor.new("New Yeller")
  163.         end
  164.         local mes = Instance.new("SpecialMesh", ring)
  165.         mes.MeshId = "rbxassetid://3270017"
  166.         coroutine.wrap(function()
  167.             for i = 1,20 do
  168.                 cyllinder.Size = cyllinder.Size + Vector3.new(0,1,1)
  169.                 cyllinder.Transparency = cyllinder.Transparency + 0.05
  170.                 runservice.Stepped:wait()
  171.             end
  172.             cyllinder:destroy()
  173.         end)()
  174.         coroutine.wrap(function()
  175.             for i = 1,100 do
  176.                 mes.Scale = mes.Scale + Vector3.new(2,2,0.5)
  177.                 ring.Transparency = ring.Transparency + 0.01
  178.                 runservice.Stepped:wait()
  179.             end
  180.             ring:destroy()
  181.         end)()
  182.         coroutine.wrap(function() --sg wind ring effect
  183.             local savedmode = mode
  184.             while equipped and wait(0.1) and mode == savedmode do
  185.                 local exblock = Instance.new("FlagStand", workspace)
  186.                 local shockwave = Instance.new("SpecialMesh", exblock)
  187.                 shockwave.MeshId = "rbxassetid://662585058"
  188.                 shockwave.Scale = Vector3.new(0.037, 0.007, 0.037)
  189.                 if mode == "bigspoon" then
  190.                     exblock.BrickColor = BrickColor.White()
  191.                 elseif mode == "bluespoon" then
  192.                     exblock.BrickColor = BrickColor.new("Toothpaste")
  193.                 elseif mode == "chinese" then
  194.                     exblock.BrickColor = BrickColor.new("New Yeller")
  195.                 end
  196.                 exblock.Anchored = true
  197.                 exblock.CanCollide = false
  198.                 exblock.Name = "effectlol"
  199.                 exblock.Transparency = 0.8
  200.                 local ignorelist = {handle}
  201.                 for i,v in pairs(workspace:GetDescendants()) do
  202.                     if v.Name == "effectlol" then
  203.                         table.insert(ignorelist, v)
  204.                     end
  205.                     if v.ClassName == "Model" then
  206.                         if v:findFirstChildOfClass("Humanoid") then
  207.                             table.insert(ignorelist, v)
  208.                         end
  209.                     end
  210.                 end
  211.                 local rayee = Ray.new(handle.Position, Vector3.new(0,-100,0))
  212.                 local hiit, poos, surff = workspace:FindPartOnRayWithIgnoreList(rayee, ignorelist)
  213.                 exblock.CFrame = CFrame.new(poos, poos-surff) * CFrame.new(0,0,1+math.random(1,10)/10) * CFrame.fromEulerAnglesXYZ(math.pi/2,math.rad(math.random(1,360)),math.rad(-10,10))
  214.                 coroutine.wrap(function()
  215.                     for i = 1,40 do
  216.                         shockwave.Scale = shockwave.Scale + Vector3.new(0.003,0.003,0.003)
  217.                         exblock.Transparency = exblock.Transparency + 0.005
  218.                         runservice.Stepped:wait()
  219.                     end
  220.                     exblock:destroy()
  221.                 end)()
  222.             end
  223.         end)()
  224.         coroutine.wrap(function() --shockwave
  225.             local savedmode = mode
  226.             while equipped and wait(0.1) and mode == savedmode do
  227.                 local exblock = Instance.new("FlagStand", workspace)
  228.                 local shockwave = Instance.new("SpecialMesh", exblock)
  229.                 shockwave.MeshId = "http://www.roblox.com/asset/?id=20329976"
  230.                 shockwave.Scale = Vector3.new(1,1,1)
  231.                 if mode == "bigspoon" then
  232.                     exblock.BrickColor = BrickColor.White()
  233.                 elseif mode == "bluespoon" then
  234.                     exblock.BrickColor = BrickColor.new("Toothpaste")
  235.                 elseif mode == "chinese" then
  236.                     exblock.BrickColor = BrickColor.new("New Yeller")
  237.                 end
  238.                 exblock.Anchored = true
  239.                 exblock.CanCollide = false
  240.                 exblock.Name = "effectlol"
  241.                 exblock.Transparency = 0.9
  242.                 local ignorelist = {handle}
  243.                 for i,v in pairs(workspace:GetDescendants()) do
  244.                     if v.Name == "effectlol" then
  245.                         table.insert(ignorelist, v)
  246.                     end
  247.                     if v.ClassName == "Model" then
  248.                         if v:findFirstChildOfClass("Humanoid") then
  249.                             table.insert(ignorelist, v)
  250.                         end
  251.                     end
  252.                 end
  253.                 local rayee = Ray.new(handle.Position, Vector3.new(0,-100,0))
  254.                 local hiit, poos, surff = workspace:FindPartOnRayWithIgnoreList(rayee, ignorelist)
  255.                 exblock.CFrame = CFrame.new(poos, poos-surff)*CFrame.fromEulerAnglesXYZ(math.pi/2,math.pi/2,0)
  256.                 local rotrandom = math.random(1,2)
  257.                 coroutine.wrap(function()
  258.                     for i = 1,40 do
  259.                         exblock.Transparency = exblock.Transparency + 0.0025
  260.                         exblock.CFrame = exblock.CFrame * CFrame.new(0,0.025,0)
  261.                         shockwave.Scale = shockwave.Scale + Vector3.new(0.5,-0.025,0.5)
  262.                         if rotrandom == 1 then
  263.                             exblock.CFrame = exblock.CFrame * CFrame.fromEulerAnglesXYZ(0,math.rad(20),0)
  264.                         else
  265.                             exblock.CFrame = exblock.CFrame * CFrame.fromEulerAnglesXYZ(0,math.rad(-20),0)
  266.                         end
  267.                         runservice.Stepped:wait()
  268.                     end
  269.                     exblock:destroy()
  270.                 end)()
  271.             end
  272.         end)()
  273.         if mode == "bigspoon" then
  274.             coroutine.wrap(function() --funny floor lines
  275.                 while equipped and wait(math.random(1,10)/120) and mode == "bigspoon" do
  276.                     local weirdonfloor = Instance.new("FlagStand", workspace)
  277.                     weirdonfloor.Anchored = true
  278.                     weirdonfloor.Size = Vector3.new(0.25,0.05,3)
  279.                     weirdonfloor.Material = "Neon"
  280.                     weirdonfloor.Name = "effectlol"
  281.                     weirdonfloor.CanCollide = false
  282.                     local ignorelist = {handle}
  283.                     for i,v in pairs(workspace:GetDescendants()) do
  284.                         if v.Name == "effectlol" then
  285.                             table.insert(ignorelist, v)
  286.                         end
  287.                         if v.ClassName == "Model" then
  288.                             if v:findFirstChildOfClass("Humanoid") then
  289.                                 table.insert(ignorelist, v)
  290.                             end
  291.                         end
  292.                     end
  293.                     local rayee = Ray.new(handle.Position, Vector3.new(0,-100,0))
  294.                     local hiit, poos, surff = workspace:FindPartOnRayWithIgnoreList(rayee, ignorelist)
  295.                     weirdonfloor.CFrame =  CFrame.new(poos, poos-surff) * CFrame.fromEulerAnglesXYZ(math.pi/2,math.rad(math.random(1,360)),0)
  296.                     coroutine.wrap(function()
  297.                         for i = 1,40 do
  298.                             weirdonfloor.CFrame = weirdonfloor.CFrame * CFrame.new(0,0,0.05/(i/60))
  299.                             weirdonfloor.Size = weirdonfloor.Size - Vector3.new(0,0,i/250)
  300.                             runservice.Stepped:wait()
  301.                         end
  302.                         weirdonfloor:destroy()
  303.                     end)()
  304.                 end
  305.             end)() --end of big spoon mode
  306.         elseif mode == "bluespoon" then
  307.             coroutine.wrap(function()
  308.                 while equipped and wait(math.random(1,10)/120) and mode == "bluespoon" do
  309.                     local weirdonfloor = Instance.new("FlagStand", workspace)
  310.                     Instance.new("SpecialMesh", weirdonfloor).MeshType = "Sphere"
  311.                     weirdonfloor.Anchored = true
  312.                     weirdonfloor.Size = Vector3.new(0.25,0.25,3)
  313.                     weirdonfloor.Material = "Neon"
  314.                     weirdonfloor.BrickColor = BrickColor.new("Toothpaste")
  315.                     weirdonfloor.Name = "effectlol"
  316.                     weirdonfloor.CanCollide = false
  317.                     local ignorelist = {handle}
  318.                     for i,v in pairs(workspace:GetDescendants()) do
  319.                         if v.Name == "effectlol" then
  320.                             table.insert(ignorelist, v)
  321.                         end
  322.                         if v.ClassName == "Model" then
  323.                             if v:findFirstChildOfClass("Humanoid") then
  324.                                 table.insert(ignorelist, v)
  325.                             end
  326.                         end
  327.                     end
  328.                     local rayee = Ray.new(handle.Position, Vector3.new(0,-100,0))
  329.                     local hiit, poos, surff = workspace:FindPartOnRayWithIgnoreList(rayee, ignorelist)
  330.                     weirdonfloor.CFrame =  CFrame.new(poos, poos-surff) * CFrame.new(math.random(-100,100)/10,math.random(-100,100)/10,0) * CFrame.fromEulerAnglesXYZ(math.random(-10,10)/30,math.random(-10,10)/30,0)
  331.                     coroutine.wrap(function()
  332.                         local goup = math.random(30,60)
  333.                         for i = 1,40 do
  334.                             goup = goup - 1
  335.                             weirdonfloor.CFrame = weirdonfloor.CFrame * CFrame.new(0,0,goup/100)
  336.                             weirdonfloor.Size = weirdonfloor.Size - Vector3.new(0,0,i/500)
  337.                             weirdonfloor.Transparency = weirdonfloor.Transparency + 0.025
  338.                             runservice.Stepped:wait()
  339.                         end
  340.                         weirdonfloor:destroy()
  341.                     end)()
  342.                 end
  343.             end)() --end of blue spoon mode
  344.         elseif mode == "chinese" then
  345.             coroutine.wrap(function()
  346.                 while equipped and wait(math.random(1,10)/120) and mode == "chinese" do
  347.                     local weirdonfloor = Instance.new("FlagStand", workspace)
  348.                     weirdonfloor.Anchored = true
  349.                     local darandom = 1+math.random(-10,10)/50
  350.                     weirdonfloor.Size = Vector3.new(darandom,darandom,darandom)
  351.                     weirdonfloor.Material = "Neon"
  352.                     weirdonfloor.BrickColor = BrickColor.new("New Yeller")
  353.                     weirdonfloor.Name = "effectlol"
  354.                     weirdonfloor.CanCollide = false
  355.                     local ignorelist = {handle}
  356.                     for i,v in pairs(workspace:GetDescendants()) do
  357.                         if v.Name == "effectlol" then
  358.                             table.insert(ignorelist, v)
  359.                         end
  360.                         if v.ClassName == "Model" then
  361.                             if v:findFirstChildOfClass("Humanoid") then
  362.                                 table.insert(ignorelist, v)
  363.                             end
  364.                         end
  365.                     end
  366.                     weirdonfloor.CFrame = handle.CFrame * CFrame.new(math.random(-10,10)/10,math.random(-10,10)/10,math.random(-80,80)/10)
  367.                     coroutine.wrap(function()
  368.                         for i = 1,40 do
  369.                             weirdonfloor.CFrame = weirdonfloor.CFrame * CFrame.new(0,0,-0.1)
  370.                             weirdonfloor.Size = weirdonfloor.Size - Vector3.new(0.025,0.025,0.025)
  371.                             weirdonfloor.Transparency = weirdonfloor.Transparency + 0.025
  372.                             runservice.Stepped:wait()
  373.                         end
  374.                         weirdonfloor:destroy()
  375.                     end)()
  376.                 end
  377.             end)() --end of big spoon mode
  378.         end
  379.     end
  380. end
  381. tool.Activated:connect(switchmode)
  382. tool.Equipped:connect(function()
  383.     equipped = true
  384.     owner = players:GetPlayerFromCharacter(tool.Parent)
  385.     character = owner.Character
  386.     local rightgrip = character["Right Arm"]:WaitForChild("RightGrip")
  387.     rightgrip.C0 = CFrame.new(0.486789703, -0.89996767, -1.50501633, 0, -1, 0, 0.999994159, 0, 0, 0, 0, 1)
  388.     if firstequip then
  389.         firstequip = false
  390.         mode = "bigspoon"
  391.         local transformsound = Instance.new("Sound", handle)
  392.         transformsound.SoundId = "rbxassetid://5382576606"
  393.         transformsound.Volume = 7
  394.         transformsound.Name = "transformsound"
  395.         local spoonful = Instance.new("Sound", handle)
  396.         spoonful.SoundId = "rbxassetid://4941462217"
  397.         spoonful.Volume = 3
  398.         spoonful.Name = "spoonful"
  399.         spoonful:Play()
  400.         wait(3)
  401.         while runservice.Stepped:wait() and not equipped do end
  402.         handle.Transparency = 0
  403.         for i = 1,10 do
  404.             local billboard = Instance.new("BillboardGui", handle)
  405.             billboard.Adornee = handle
  406.             billboard.Size = UDim2.new(15,0,2,0)
  407.             if i == 1 then
  408.                 billboard.AlwaysOnTop = true
  409.             end
  410.             local text = Instance.new("TextLabel", billboard)
  411.             text.Text = "large spoo n"
  412.             text.BackgroundTransparency = 1
  413.             text.TextScaled = true
  414.             text.Name = "spoontyperare"
  415.             text.Size = UDim2.new(1,0,1,0)
  416.             text.TextStrokeTransparency = i/10
  417.             text.TextTransparency = i/10
  418.             text.TextStrokeColor3 = Color3.fromRGB(100,100,100)
  419.             text.TextColor3 = Color3.fromRGB(255,255,255)
  420.             text.Font = "Cartoon"
  421.             coroutine.wrap(function()
  422.                 while runservice.Stepped:wait() do
  423.                     if equipped then
  424.                         billboard.ExtentsOffset = Vector3.new(math.cos(tick()-i/20)*2.5,1.5+math.sin(tick()-(i/20)*2)/8,0)
  425.                         text.Rotation = math.cos(tick()-i/20)*-10
  426.                     end
  427.                 end
  428.             end)()
  429.         end
  430.         transformsound:Play()
  431.         local explosion = Instance.new("Sound", handle)
  432.         explosion.SoundId = "rbxassetid://741272936"
  433.         explosion.Volume = 5
  434.         explosion.Name = "explosion"
  435.         local fieryexplosion = Instance.new("Sound", handle)
  436.         fieryexplosion.SoundId = "rbxassetid://429123896"
  437.         fieryexplosion.Volume = 5
  438.         fieryexplosion.Name = "fieryexplosion"
  439.         local fade = Instance.new("Sound", handle)
  440.         fade.SoundId = "rbxassetid://1192402877"
  441.         fade.Volume = 5
  442.         fade.Name = "fade"
  443.         local switchsound = Instance.new("Sound", handle)
  444.         switchsound.SoundId = "rbxassetid://847061203"
  445.         switchsound.Volume = 7
  446.         switchsound.Name = "switch"
  447.         switchsound:Play()
  448.         local musicglitcheramazing = Instance.new("Sound", handle)
  449.         musicglitcheramazing.SoundId = "rbxassetid://4771057299"
  450.         musicglitcheramazing.Volume = 3
  451.         musicglitcheramazing.Looped = true
  452.         musicglitcheramazing.Name = "how"
  453.         musicglitcheramazing.TimePosition = 0.4
  454.         musicglitcheramazing:Play()
  455.         caneffect = true
  456.     else
  457.         if handle:findFirstChild("how") then
  458.             handle.how:Resume()
  459.         end
  460.     end
  461.     --overdramatized effects
  462.     if caneffect then
  463.         doeffect()
  464.     end
  465. end)
  466. tool.Unequipped:connect(function()
  467.     equipped = false
  468.     if handle:findFirstChild("how") then
  469.         handle.how:Pause()
  470.     end
  471. end)
  472. end))
  473. for i,v in pairs(mas:GetChildren()) do
  474.     v.Parent = owner.Backpack
  475.     pcall(function() v:MakeJoints() end)
  476. end
  477. mas:Destroy()
  478. for i,v in pairs(cors) do
  479.     spawn(function()
  480.         pcall(v)
  481.     end)
  482. end
Add Comment
Please, Sign In to add comment