yoitzErrorYT

Untitled

Jun 11th, 2023
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.87 KB | None | 0 0
  1. --[[
  2. made by rouxhaver
  3.  
  4. Note: Im too stupid to figure out how to stop hats from falling; so your character will reset once this happens
  5. ]]
  6. local Players = game:GetService("Players")
  7. local RunService = game:GetService("RunService")
  8. local LocalPlayer = Players.LocalPlayer
  9.  
  10. if not getgenv().Network then
  11. getgenv().Network = {
  12. BaseParts = {};
  13. FakeConnections = {};
  14. Connections = {};
  15. Output = {
  16. Enabled = true;
  17. Prefix = "[NETWORK] ";
  18. Send = function(Type,Output,BypassOutput)
  19. if typeof(Type) == "function" and (Type == print or Type == warn or Type == error) and typeof(Output) == "string" and (typeof(BypassOutput) == "nil" or typeof(BypassOutput) == "boolean") then
  20. if Network["Output"].Enabled == true or BypassOutput == true then
  21. Type(Network["Output"].Prefix..Output);
  22. end;
  23. elseif Network["Output"].Enabled == true then
  24. error(Network["Output"].Prefix.."Output Send Error : Invalid syntax.");
  25. end;
  26. end;
  27. };
  28. CharacterRelative = false;
  29. }
  30.  
  31. Network["Output"].Send(print,": Loading.")
  32. Network["Velocity"] = Vector3.new(14.46262424,14.46262424,14.46262424); --exactly 25.1 magnitude
  33. Network["RetainPart"] = function(Part,ReturnFakePart) --function for retaining ownership of unanchored parts
  34. assert(typeof(Part) == "Instance" and Part:IsA("BasePart") and Part:IsDescendantOf(workspace),Network["Output"].Prefix.."RetainPart Error : Invalid syntax: Arg1 (Part) must be a BasePart which is a descendant of workspace.")
  35. assert(typeof(ReturnFakePart) == "boolean" or typeof(ReturnFakePart) == "nil",Network["Output"].Prefix.."RetainPart Error : Invalid syntax: Arg2 (ReturnFakePart) must be a boolean or nil.")
  36. if not table.find(Network["BaseParts"],Part) then
  37. if Network.CharacterRelative == true then
  38. local Character = LocalPlayer.Character
  39. if Character and Character.PrimaryPart then
  40. local Distance = (Character.PrimaryPart.Position-Part.Position).Magnitude
  41. if Distance > 1000 then
  42. Network["Output"].Send(warn,"RetainPart Warning : PartOwnership not applied to BasePart "..Part:GetFullName()..", as it is more than "..gethiddenproperty(LocalPlayer,"MaximumSimulationRadius").." studs away.")
  43. return false
  44. end
  45. else
  46. Network["Output"].Send(warn,"RetainPart Warning : PartOwnership not applied to BasePart "..Part:GetFullName()..", as the LocalPlayer Character's PrimaryPart does not exist.")
  47. return false
  48. end
  49. end
  50. table.insert(Network["BaseParts"],Part)
  51. Part.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0)
  52. Network["Output"].Send(print,"PartOwnership Output : PartOwnership applied to BasePart "..Part:GetFullName()..".")
  53. if ReturnFakePart == true then
  54. return FakePart
  55. end
  56. else
  57. Network["Output"].Send(warn,"RetainPart Warning : PartOwnership not applied to BasePart "..Part:GetFullName()..", as it already active.")
  58. return false
  59. end
  60. end
  61.  
  62. Network["RemovePart"] = function(Part) --function for removing ownership of unanchored part
  63. assert(typeof(Part) == "Instance" and Part:IsA("BasePart"),Network["Output"].Prefix.."RemovePart Error : Invalid syntax: Arg1 (Part) must be a BasePart.")
  64. local Index = table.find(Network["BaseParts"],Part)
  65. if Index then
  66. table.remove(Network["BaseParts"],Index)
  67. Network["Output"].Send(print,"RemovePart Output: PartOwnership removed from BasePart "..Part:GetFullName()..".")
  68. else
  69. Network["Output"].Send(warn,"RemovePart Warning : BasePart "..Part:GetFullName().." not found in BaseParts table.")
  70. end
  71. end
  72.  
  73. Network["SuperStepper"] = Instance.new("BindableEvent") --make super fast event to connect to
  74. for _,Event in pairs({RunService.Stepped,RunService.Heartbeat}) do
  75. Event:Connect(function()
  76. return Network["SuperStepper"]:Fire(Network["SuperStepper"],tick())
  77. end)
  78. end
  79.  
  80. Network["PartOwnership"] = {};
  81. Network["PartOwnership"]["PreMethodSettings"] = {};
  82. Network["PartOwnership"]["Enabled"] = false;
  83. Network["PartOwnership"]["Enable"] = coroutine.create(function() --creating a thread for network stuff
  84. if Network["PartOwnership"]["Enabled"] == false then
  85. Network["PartOwnership"]["Enabled"] = true --do cool network stuff before doing more cool network stuff
  86. Network["PartOwnership"]["PreMethodSettings"].ReplicationFocus = LocalPlayer.ReplicationFocus
  87. LocalPlayer.ReplicationFocus = workspace
  88. Network["PartOwnership"]["PreMethodSettings"].SimulationRadius = gethiddenproperty(LocalPlayer,"SimulationRadius")
  89. Network["PartOwnership"]["Connection"] = Network["SuperStepper"].Event:Connect(function() --super fast asynchronous loop
  90. sethiddenproperty(LocalPlayer,"SimulationRadius",1/0)
  91. for _,Part in pairs(Network["BaseParts"]) do --loop through parts and do network stuff
  92. coroutine.wrap(function()
  93. if Part:IsDescendantOf(workspace) then
  94. if Network.CharacterRelative == true then
  95. local Character = LocalPlayer.Character;
  96. if Character and Character.PrimaryPart then
  97. local Distance = (Character.PrimaryPart.Position - Part.Position).Magnitude
  98. if Distance > 1000 then
  99. Network["Output"].Send(warn,"PartOwnership Warning : PartOwnership not applied to BasePart "..Part:GetFullName()..", as it is more than "..gethiddenproperty(LocalPlayer,"MaximumSimulationRadius").." studs away.")
  100. Lost = true;
  101. Network["RemovePart"](Part)
  102. end
  103. else
  104. Network["Output"].Send(warn,"PartOwnership Warning : PartOwnership not applied to BasePart "..Part:GetFullName()..", as the LocalPlayer Character's PrimaryPart does not exist.")
  105. end
  106. end
  107. Part.Velocity = Network["Velocity"]+Vector3.new(0,math.cos(tick()*10)/100,0) --keep network by sending physics packets of 30 magnitude + an everchanging addition in the y level so roblox doesnt get triggered and fuck your ownership
  108. else
  109. Network["RemovePart"](Part)
  110. end
  111. end)()
  112. end
  113. end)
  114. Network["Output"].Send(print,"PartOwnership Output : PartOwnership enabled.")
  115. else
  116. Network["Output"].Send(warn,"PartOwnership Output : PartOwnership already enabled.")
  117. end
  118. end)
  119. Network["PartOwnership"]["Disable"] = coroutine.create(function()
  120. if Network["PartOwnership"]["Connection"] then
  121. Network["PartOwnership"]["Connection"]:Disconnect()
  122. LocalPlayer.ReplicationFocus = Network["PartOwnership"]["PreMethodSettings"].ReplicationFocus
  123. sethiddenproperty(LocalPlayer,"SimulationRadius",Network["PartOwnership"]["PreMethodSettings"].SimulationRadius)
  124. Network["PartOwnership"]["PreMethodSettings"] = {}
  125. for _,Part in pairs(Network["BaseParts"]) do
  126. Network["RemovePart"](Part)
  127. end
  128. Network["PartOwnership"]["Enabled"] = false
  129. Network["Output"].Send(print,"PartOwnership Output : PartOwnership disabled.")
  130. else
  131. Network["Output"].Send(warn,"PartOwnership Output : PartOwnership already disabled.")
  132. end
  133. end)
  134. Network["Output"].Send(print,": Loaded.")
  135. end
  136.  
  137. coroutine.resume(Network["PartOwnership"]["Enable"])
  138.  
  139. player = game:GetService("Players").LocalPlayer
  140.  
  141. char = player.Character
  142. char.Archivable = true
  143.  
  144. fake = char:Clone()
  145. fake.Parent = workspace
  146. fake.HumanoidRootPart.CFrame = CFrame.new(0, math.huge, 0)
  147.  
  148. player.Character = nil
  149. player.Character = fake
  150.  
  151. wait(game.Players.RespawnTime + .3)
  152.  
  153. char.Humanoid.Health = 0
  154.  
  155. Gui = player.PlayerGui
  156. Backpack = player.Backpack
  157. Mouse = player:GetMouse()
  158.  
  159. Parts_Folder = Instance.new("Folder",workspace)
  160.  
  161. for i,v in pairs(char:GetChildren()) do
  162. if v:IsA("Accessory") then
  163. local Part = Instance.new("Part",Parts_Folder)
  164. Part.Name = v.Name
  165. Part.Anchored = true
  166. Part.Size = v.Handle.Size - Vector3.new(0.001,0.001,0.001)
  167. Part.Position = char.Head.Position + Vector3.new(math.random(-5,5),math.random(-1,1),math.random(-5,5))
  168. Part:SetAttribute("Moveable",true)
  169. Part.Material = Enum.Material.SmoothPlastic
  170. Part.CanCollide = false
  171. Part.Color = Color3.new(1,0,0)
  172. Part.Transparency = 1
  173. local obj = Instance.new("ObjectValue",Part)
  174. obj.Name = "hat"
  175. obj.Value = v.Handle
  176.  
  177. local Hat = v.Handle
  178. Network.RetainPart(Hat)
  179. Hat.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0)
  180. coroutine.wrap(function()
  181. while Hat:FindFirstAncestor("Game") do
  182. Hat.CFrame = Part.CFrame
  183. task.wait()
  184. end
  185. player.Character = char
  186. end)()
  187. end
  188. end
  189.  
  190.  
  191. Move_Tool = Instance.new("Tool",Backpack)
  192. Rotate_Tool = Instance.new("Tool",Backpack)
  193. MHandle = Instance.new("Part",Move_Tool)
  194. RHandle = Instance.new("Part",Rotate_Tool)
  195. Mgrabs = Instance.new("Handles",Gui)
  196. Rgrabs = Instance.new("ArcHandles",Gui)
  197. Outline = Instance.new("Highlight")
  198.  
  199. Move_Tool.Name = "Move"
  200. Move_Tool.CanBeDropped = false
  201.  
  202. Rotate_Tool.Name = "Rotate"
  203. Rotate_Tool.CanBeDropped = false
  204.  
  205. MHandle.Name = "Handle"
  206. MHandle.Transparency = 1
  207.  
  208. RHandle.Name = "Handle"
  209. RHandle.Transparency = 1
  210.  
  211. Mgrabs.Visible = false
  212. Mgrabs.Color3 = Color3.new(1, 0.8, 0)
  213. Mgrabs.Style = "Movement"
  214.  
  215. Rgrabs.Visible = false
  216.  
  217. Outline.FillTransparency = 1
  218. Outline.OutlineTransparency = 0
  219. Outline.OutlineColor = Color3.new(1, 0.8, 0)
  220.  
  221. Active_Part = nil
  222.  
  223. Move_Tool.AncestryChanged:Connect(function()
  224. if Move_Tool.Parent == fake and Active_Part ~= nil then
  225. Mgrabs.Visible = true
  226. Mgrabs.Adornee = Active_Part
  227. end
  228. end)
  229.  
  230. Move_Tool.AncestryChanged:Connect(function()
  231. if Move_Tool.Parent ~= fake then
  232. Mgrabs.Visible = false
  233. Mgrabs.Adornee = nil
  234. end
  235. end)
  236.  
  237. Mouse.Button1Down:Connect(function()
  238. if Move_Tool.Parent == fake and Mouse.Target:GetAttribute("Moveable") then
  239. Active_Part = Mouse.Target
  240. Mgrabs.Visible = true
  241. Mgrabs.Adornee = Active_Part
  242. Outline.Parent = Active_Part.hat.Value
  243. end
  244. if Rotate_Tool.Parent == fake and Mouse.Target:GetAttribute("Moveable") then
  245. Active_Part = Mouse.Target
  246. Rgrabs.Visible = true
  247. Rgrabs.Adornee = Active_Part
  248. Outline.Parent = Active_Part.hat.Value
  249. end
  250. end)
  251.  
  252. Rotate_Tool.AncestryChanged:Connect(function()
  253. if Rotate_Tool.Parent == fake and Active_Part ~= nil then
  254. Rgrabs.Visible = true
  255. Rgrabs.Adornee = Active_Part
  256. end
  257. end)
  258.  
  259. Rotate_Tool.AncestryChanged:Connect(function()
  260. if Rotate_Tool.Parent ~= fake then
  261. Rgrabs.Visible = false
  262. Rgrabs.Adornee = nil
  263. end
  264. end)
  265.  
  266. MOGCFrame = CFrame.new()
  267.  
  268. Mgrabs.MouseButton1Down:Connect(function()
  269. MOGCFrame = Active_Part.CFrame
  270. end)
  271.  
  272. Mgrabs.MouseDrag:Connect(function(knob, pos)
  273. if knob == Enum.NormalId.Front then
  274. Active_Part.CFrame = MOGCFrame + MOGCFrame.LookVector * pos
  275. end
  276. if knob == Enum.NormalId.Back then
  277. Active_Part.CFrame = MOGCFrame + MOGCFrame.LookVector * -pos
  278. end
  279. if knob == Enum.NormalId.Top then
  280. Active_Part.CFrame = MOGCFrame + MOGCFrame.UpVector * pos
  281. end
  282. if knob == Enum.NormalId.Bottom then
  283. Active_Part.CFrame = MOGCFrame + MOGCFrame.UpVector * -pos
  284. end
  285. if knob == Enum.NormalId.Left then
  286. Active_Part.CFrame = MOGCFrame + MOGCFrame.RightVector * -pos
  287. end
  288. if knob == Enum.NormalId.Right then
  289. Active_Part.CFrame = MOGCFrame + MOGCFrame.RightVector * pos
  290. end
  291. end)
  292.  
  293. ROGCFrame = CFrame.new()
  294.  
  295. Rgrabs.MouseButton1Down:Connect(function()
  296. ROGCFrame = Active_Part.CFrame
  297. end)
  298.  
  299. Rgrabs.MouseDrag:Connect(function(knob, angle)
  300. if knob == Enum.Axis.Y then
  301. Active_Part.CFrame = ROGCFrame * CFrame.Angles(0,angle,0)
  302. end
  303. if knob == Enum.Axis.X then
  304. Active_Part.CFrame = ROGCFrame * CFrame.Angles(angle,0,0)
  305. end
  306. if knob == Enum.Axis.Z then
  307. Active_Part.CFrame = ROGCFrame * CFrame.Angles(0,0,angle)
  308. end
  309. end)
  310.  
  311. Mouse.TargetFilter = char
  312.  
  313. camera = workspace.CurrentCamera
  314. input = game:GetService("UserInputService")
  315.  
  316. Camera_Part = Instance.new("Part",workspace)
  317. Camera_Part.Anchored = true
  318. Camera_Part.Transparency = 0.85
  319. Camera_Part.Shape = Enum.PartType.Ball
  320. Camera_Part.Size = Vector3.new(0.5,0.5,0.5)
  321. Camera_Part.Material = Enum.Material.SmoothPlastic
  322.  
  323. current_position = char.Head.Position
  324.  
  325. camera.CameraSubject = Camera_Part
  326.  
  327. game:GetService("StarterGui"):SetCore("SendNotification",{
  328. Title = "FE BTools Loaded",
  329. Text = "Made by rouxhaver",
  330. Icon = "rbxassetid://12997341656"
  331. })
  332. game:GetService("StarterGui"):SetCore("SendNotification",{
  333. Title = "Network Credit:",
  334. Text = "thanks to 4eyes for network stuff",
  335. Icon = "rbxassetid://12997341656"
  336. })
  337. while wait() do
  338. if input:IsKeyDown(Enum.KeyCode.D) then
  339. current_position += camera.CFrame.RightVector * speed
  340. end
  341. if input:IsKeyDown(Enum.KeyCode.A) then
  342. current_position += camera.CFrame.RightVector * -speed
  343. end
  344. if input:IsKeyDown(Enum.KeyCode.W) then
  345. current_position += camera.CFrame.LookVector * speed
  346. end
  347. if input:IsKeyDown(Enum.KeyCode.S) then
  348. current_position += camera.CFrame.LookVector * -speed
  349. end
  350. if input:IsKeyDown(Enum.KeyCode.E) then
  351. current_position += camera.CFrame.UpVector * speed
  352. end
  353. if input:IsKeyDown(Enum.KeyCode.Q) then
  354. current_position += camera.CFrame.UpVector * -speed
  355. end
  356. if input:IsKeyDown(Enum.KeyCode.LeftShift) then do
  357. speed = 1.5
  358. end else
  359. speed = 0.75
  360. end
  361. Camera_Part.Position = current_position
  362. end
Add Comment
Please, Sign In to add comment