Sincerate

Replicating GUI

Feb 22nd, 2020
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 12.05 KB | None | 0 0
  1. local screenGui = game:GetObjects("rbxassetid://3546404827")[1]
  2.   local mainFrame = screenGui.Frame
  3.     local pages = mainFrame.Pages
  4.       local pageLayout = pages.UIPageLayout
  5.       local pageScripts = pages.Scripts
  6.         local interactiveButton = pageScripts.Character.Elements.TextButton
  7.         local utility = pageScripts.Utility
  8.           local utilityElements = utility.Elements
  9.       local pageOptions = pages.Options
  10.     local titleFrame = mainFrame.Title
  11.     local toolbar = mainFrame.Toolbar
  12.  
  13. screenGui.LocalScript:Destroy()
  14. screenGui.Parent = game:GetService("CoreGui")
  15. interactiveButton.Parent = nil
  16. mainFrame.Visible = true
  17.  
  18. gripCenter = CFrame.new(0, 0, 1) * CFrame.Angles(math.rad(90), 0, 0)
  19. offset = CFrame.Angles(0, 0, 0)
  20.  
  21. _player = {
  22.     p = game:GetService("Players").LocalPlayer;
  23.     b = function()
  24.         return _player.p:FindFirstChild("Backpack")
  25.     end;
  26.     c = function()
  27.         return _player.p.Character
  28.     end;
  29. }
  30. _functions = {
  31.     respawn = function()
  32.         local c = _player.c()
  33.         if workspace:FindFirstChild(_player.p.Name) then
  34.             spawn(function()
  35.                 wait(.5)
  36.                 if _player.c() ~= workspace:FindFirstChild(_player.p.Name) then
  37.                     workspace:FindFirstChild(_player.p.Name):BreakJoints()
  38.                 end
  39.             end)
  40.         end
  41.         if c then
  42.             c:BreakJoints()
  43.             c:ClearAllChildren()
  44.         end
  45.         local newChar = Instance.new("Model", workspace)
  46.         local hum = Instance.new("Humanoid", newChar)
  47.         local torso = Instance.new("Part", newChar)
  48.         newChar.Name = "respawn_"
  49.         torso.Name = "Torso"
  50.         torso.Transparency = 1
  51.         _player.p.Character = newChar
  52.         torso.Name = ""
  53.         torso.CanCollide = false
  54.         newChar:MoveTo(Vector3.new(999999, 999999, 999999))
  55.     end;
  56.     tools = function(int)
  57.         local toolamount = int or 200
  58.        
  59.         local LocalPlayer = game:GetService("Players").LocalPlayer
  60.         local runservice = game:GetService("RunService")
  61.         LocalPlayer.Character:FindFirstChild("Humanoid"):UnequipTools()
  62.         local currentamount = #LocalPlayer.Backpack:GetChildren()
  63.         LocalPlayer.Character.Archivable = true
  64.         local tempchar = LocalPlayer.Character:Clone()
  65.         local lastchar = nil
  66.         tempchar.Parent = workspace
  67.         local savepos = LocalPlayer.Character:FindFirstChild("HumanoidRootPart").CFrame
  68.         local renderstepped = runservice.RenderStepped:Connect(function()
  69.             workspace.CurrentCamera.CameraSubject = tempchar:FindFirstChild("Humanoid")
  70.             for _, tool in pairs(LocalPlayer.Backpack:GetChildren()) do
  71.                 if tool:IsA("Tool") then
  72.                     tool.Parent = LocalPlayer
  73.                 end
  74.             end
  75.             for _, char in pairs(workspace:GetChildren()) do
  76.                 if char.Name == LocalPlayer.Name and char:FindFirstChildWhichIsA("Humanoid") then
  77.                     char.Humanoid.Health = 0
  78.                 end
  79.             end
  80.             LocalPlayer.Character:ClearAllChildren()
  81.             local char = Instance.new("Model", workspace)
  82.             Instance.new("Humanoid", char)
  83.             LocalPlayer.Character = char
  84.             if lastchar ~= nil then
  85.                 lastchar:Destroy()
  86.             end
  87.             repeat runservice.RenderStepped:Wait() until LocalPlayer.Character ~= nil
  88.             lastchar = char
  89.         end)
  90.         repeat runservice.RenderStepped:Wait() until #LocalPlayer:GetChildren() - 3 - currentamount >= toolamount
  91.         renderstepped:Disconnect()
  92.         repeat runservice.RenderStepped:Wait() until LocalPlayer.Character:FindFirstChild("HumanoidRootPart") ~= nil
  93.         lastchar:Destroy()
  94.        
  95.         utilityElements.Tools.Text = "Done respawning?"
  96.         repeat runservice.RenderStepped:Wait() until utilityElements.Tools.Text == "Load Tools"
  97.        
  98.         for _, tool in pairs(LocalPlayer:GetChildren()) do
  99.             if tool:IsA("Tool") then
  100.                 tool.Parent = LocalPlayer.Backpack
  101.             end
  102.         end
  103.         LocalPlayer.Character:FindFirstChild("HumanoidRootPart").CFrame = savepos
  104.         tempchar:Destroy()
  105.     end;
  106.     load = function()
  107.         local b = _player.b()
  108.         local c = _player.c()
  109.         local grip = function(tool, cf)
  110.             local origin = CFrame.new(cf.p)
  111.             local x, y, z = cf:toEulerAnglesXYZ()
  112.             local new = CFrame.Angles(x, y, z)
  113.             local grip = (origin * new):inverse()
  114.             tool.Grip = grip
  115.         end
  116.         local model = c:WaitForChild("gay") -- stupid name choice from what a few months ago?? i have nothing against it i swear
  117.         local parts = {}
  118.         wait(1)
  119.        
  120.         for i, Model in pairs(c:GetChildren()) do
  121.             if Model:IsA("Model") and Model.Name == "gay" then
  122.                 for i, v in pairs(Model:GetDescendants()) do
  123.                     if v:IsA("BasePart") then
  124.                         v.LocalTransparencyModifier = 1
  125.                         if v.Name ~= "Ignore" then
  126.                             table.insert(parts, v)
  127.                         end
  128.                     end
  129.                     if not v:IsA("BasePart") and not v:IsA("JointInstance") and not v:IsA("BodyMover") and not v:isA("Humanoid") and not v:IsA("Model") then
  130.                         v:Remove()
  131.                     end
  132.                 end
  133.                 Model.ChildAdded:Connect(function(c)
  134.                     c.Parent = nil
  135.                 end)
  136.             end
  137.         end
  138.        
  139.         for _, part in pairs(parts) do
  140.             local m = Instance.new("BlockMesh", part)
  141.             m.Scale = Vector3.new(0, 0, 0)
  142.         end
  143.        
  144.         local tools = b:GetChildren()
  145.         for i, tool in pairs(tools) do
  146.             if tool.Parent then
  147.                 wrap(function()
  148.                     tool.Parent = c
  149.                     for i, v in pairs(tool:GetDescendants()) do
  150.                         if v:IsA("Sound") or v:IsA("TouchTransmitter") then
  151.                             v:Destroy()
  152.                         elseif v:IsA("BasePart") then
  153.                             v.Massless = true
  154.                             v.CanCollide = false
  155.                         elseif v:IsA("LocalScript") or v:IsA("Script") then
  156.                             v:Destroy()
  157.                         end
  158.                     end
  159.                    
  160.                     if tool:FindFirstChild("Handle") then
  161.                         local handle = tool.Handle
  162.                         local fakeHandle = handle:Clone()
  163.                         fakeHandle.Name = "FakeHandle"
  164.                         fakeHandle.Parent = tool
  165.                         local w = Instance.new("Weld", handle)
  166.                         w.Part0 = fakeHandle
  167.                         w.Part1 = handle
  168.                         handle.Size = Vector3.new(0, 0, 0)
  169.                     end
  170.                    
  171.                     tool.Parent = b
  172.                 end)
  173.             end
  174.             if (not parts[i]) then
  175.                 tools[i] = nil
  176.                 tool:Destroy()
  177.             end
  178.         end
  179.        
  180.         wait(.2)
  181.         local amt = #tools
  182.        
  183.         wrap(function()
  184.             local connection1
  185.            
  186.             connection1 = game:GetService("RunService").RenderStepped:Connect(function(step)
  187.                 for i = 1, amt do
  188.                     local tool = tools[i]
  189.                     if parts[i] then
  190.                         tool.Parent = b
  191.                         tool.Parent = c
  192.                     end
  193.                 end
  194.                
  195.                 if _player.c() ~= c or c:FindFirstChildWhichIsA("Humanoid").Health == 0 then
  196.                     connection1:Disconnect()
  197.                 end
  198.                
  199.                 utilityElements.Replicate.Text = ("Replicate (%dfps)"):format(1/step)
  200.             end)
  201.         end)
  202.        
  203.         local connection2
  204.         connection2 = game:GetService("RunService").Heartbeat:Connect(function()
  205.             for i = 1, amt do
  206.                 local tool = tools[i]
  207.                 if parts[i] then
  208.                     if parts[i].Transparency ~= 1 then
  209.                         local p = _cframe.toWorldPoint(parts[i].CFrame) * offset
  210.                         grip(tool, p)
  211.                     else
  212.                         local p = _cframe.toWorldPoint(CFrame.new(0, -250, 0))
  213.                         grip(tool, p)
  214.                     end
  215.                 end
  216.             end
  217.             if _player.c() ~= c or c:FindFirstChildWhichIsA("Humanoid").Health == 0 then
  218.                 connection2:Disconnect()
  219.             end
  220.         end)
  221.     end;
  222. }
  223. _cframe = {
  224.     diff = function(a, b)
  225.         return (a:Inverse() * b)
  226.     end;
  227.     toWorldPoint = function(a)
  228.         local arm = _player.c():FindFirstChild('Right Arm') or _player.c():FindFirstChild('RightHand')
  229.         local off = arm.CFrame * gripCenter:Inverse()
  230.         if arm.Name == "RightHand" then
  231.             off = arm.CFrame * CFrame.Angles(math.rad(-90), 0, 0)
  232.         end
  233.         return _cframe.diff(off, a)
  234.     end;
  235.     tween = function(object,style,direction,t,goal)
  236.         local tweenservice = game:GetService("TweenService")
  237.         local tweenInfo = TweenInfo.new(t,Enum.EasingStyle[style],Enum.EasingDirection[direction])
  238.         local tween = tweenservice:Create(object,tweenInfo,goal)
  239.         tween:Play()
  240.         return tween
  241.     end;
  242. }
  243. scriptList = {
  244.     Character = {
  245.         ['Titan']           = {"rbxassetid://3600286284", "rbxassetid://3070358214"};
  246.         ['Winged Titan']    = {"rbxassetid://3593786550", "rbxassetid://3070358214"};
  247.         ['Part Surround']   = {"rbxassetid://3546680077", "rbxassetid://3546673786"};
  248.     },
  249.     Mechanical = {
  250.         ['Spiderbot']       = {"rbxassetid://3040869607", "rbxassetid://3070355648"};
  251.         ['Drone']           = {"rbxassetid://3074236927", "rbxassetid://3074245958"};
  252.         ['Noise']           = {"rbxassetid://3193712297", "rbxassetid://3070358314"};
  253.     },
  254.     Aesthetic = {
  255.         ['Wings']           = {"rbxassetid://3040946714", "rbxassetid://3070358381"};
  256.         ['Tail']            = {"rbxassetid://3041387168", "rbxassetid://3070358314"};
  257.         ['Star Glitcher']   = {"rbxassetid://3074734519", "rbxassetid://3074751071"};
  258.         ['Tentacles']       = {"rbxassetid://3074817074", "rbxassetid://3074820325"};
  259.     },
  260.     Weapon = {
  261.         ['Master Hand']     = {"rbxassetid://3040943596", "rbxassetid://3070358267"};
  262.         ['Ravenger']        = {"rbxassetid://3040945482", "rbxassetid://3070358154"};
  263.     },
  264. }
  265. wrap = function(f)
  266.     return coroutine.wrap(f)()
  267. end
  268.  
  269. if game:GetService("RunService"):IsStudio() then
  270.     guiLib = require(screenGui.GuiLib)
  271. else
  272.     guiLib = loadstring(screenGui.GuiLib.Source)()
  273. end
  274.  
  275. for title, tbl in pairs(scriptList) do
  276.     local frame = pageScripts[title]
  277.     for name, info in pairs(tbl) do
  278.         local btn = interactiveButton:Clone()
  279.         btn.Name = name
  280.         btn.Text = name
  281.         btn.Parent = frame.Elements
  282.         btn.Icon.Image = info[2]
  283.        
  284.         guiLib.circleInteractive(btn)
  285.         guiLib.colorInteractive(btn)
  286.        
  287.         btn.MouseButton1Click:Connect(function()
  288.             local scr = game:GetObjects(info[1])[1]
  289.             local source = scr.Source
  290.            
  291.             if game:GetService("RunService"):IsStudio() == false then
  292.                 for i, v in pairs(scr:GetChildren()) do
  293.                     v.Parent = script
  294.                 end
  295.                 wrap(function()
  296.                     local func = loadstring(source)
  297.                     spawn(func)
  298.                 end)
  299.             else
  300.                 scr.Disabled = true
  301.                 scr.Parent = _player.c()
  302.                 wait(.1)
  303.                 scr.Disabled = false
  304.             end
  305.         end)
  306.     end
  307. end
  308.  
  309. repeat wait() until pageLayout.CurrentPage
  310.  
  311. guiLib.draggable(mainFrame, titleFrame)
  312. for i, v in pairs(toolbar:GetChildren()) do
  313.     if v:IsA("TextButton") then
  314.         guiLib.circleInteractive(v, 2, 1)
  315.         v.MouseButton1Click:Connect(function()
  316.             pageLayout:JumpTo(pages[v.Name])
  317.         end)
  318.         pageLayout.Changed:Connect(function(p)
  319.             if pageLayout.CurrentPage.Name == v.Name then
  320.                 guiLib.tween(v, "Sine", "Out", .5, {BackgroundColor3 = Color3.fromRGB(255, 118, 26)})
  321.             else
  322.                 guiLib.tween(v, "Sine", "Out", .5, {BackgroundColor3 = Color3.fromRGB(236, 109, 17)})
  323.             end
  324.         end)
  325.     end
  326. end
  327.  
  328. for i, v in pairs(utilityElements:GetChildren()) do
  329.     if v:IsA("TextButton") then
  330.         guiLib.circleInteractive(v)
  331.         guiLib.colorInteractive(v)
  332.     end
  333. end
  334.  
  335. utilityElements.Reset.MouseButton1Click:Connect(function()
  336.     local c = _player.c()
  337.     c.Humanoid.Health = 0
  338.     wait(.55)
  339.     for i, v in pairs(c:GetChildren()) do
  340.         if v:IsA("BackpackItem") then
  341.             v.Parent = _player.b()
  342.             v.Parent = _player.p
  343.         end
  344.     end
  345.     repeat wait() until _player.c() ~= c
  346.     _player.c():WaitForChild("Right Arm")
  347.     wait(.25)
  348.     for i, v in pairs(_player.p:GetChildren()) do
  349.         if v:IsA("Tool") then
  350.             v.Parent = _player.b()
  351.         end
  352.     end
  353. end)
  354.  
  355. utilityElements.Block.MouseButton1Click:Connect(function()
  356.     local c = _player.c()
  357.     for _, v in pairs(c:GetChildren()) do
  358.         if v:IsA("BackpackItem") then
  359.             for _, m in pairs(v:GetDescendants()) do
  360.                 if m:IsA("DataModelMesh") then
  361.                     m:Destroy()
  362.                 end
  363.             end
  364.         end
  365.     end
  366. end)
  367.  
  368. local noclip = false
  369. utilityElements.Noclip.MouseButton1Click:Connect(function()
  370.     noclip = not noclip
  371. end)
  372.  
  373. utilityElements.Tools.MouseButton1Click:Connect(function()
  374.     if utilityElements.Tools.Text == "Load Tools" then
  375.         _functions.tools(120)
  376.     else
  377.         utilityElements.Tools.Text = "Load Tools"
  378.     end
  379. end)
  380.  
  381. utilityElements.Replicate.MouseButton1Click:Connect(function()
  382.     _functions.load()
  383. end)
  384.  
  385. local flipped = 0
  386. utilityElements.Flip.MouseButton1Click:Connect(function()
  387.     flipped = (flipped + 1) % 4
  388.     if flipped == 0 then
  389.         offset = CFrame.Angles(0, 0, 0)
  390.     elseif flipped == 1 then
  391.         offset = CFrame.Angles(math.rad(90), 0, 0)
  392.     elseif flipped == 2 then
  393.         offset = CFrame.Angles(0, math.rad(90), 0)
  394.     elseif flipped == 3 then
  395.         offset = CFrame.Angles(0, 0, math.rad(90))
  396.     end
  397. end)
  398.  
  399. game:GetService("RunService").Stepped:Connect(function()
  400.     local c = _player.c()
  401.     if noclip then
  402.         local descendants = c:GetDescendants()
  403.         for i = 1, #descendants do
  404.             local v = descendants[i]
  405.             if v:IsA("BasePart") and v.Name ~= "HumanoidRootPart" then
  406.                 v.CanCollide = false
  407.             end
  408.         end
  409.     end
  410. end)
  411.  
  412. workspace:WaitForChild("S")
Add Comment
Please, Sign In to add comment