Advertisement
Theqop61

super ring parts v5 by lukas & skidded

Dec 15th, 2024 (edited)
1,483
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.91 KB | None | 0 0
  1. -- Universal Part Claim
  2. local Players = game:GetService("Players")
  3. local RunService = game:GetService("RunService")
  4. local UserInputService = game:GetService("UserInputService")
  5. local LocalPlayer = Players.LocalPlayer
  6. local Workspace = game:GetService("Workspace")
  7.  
  8. local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  9. local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
  10.  
  11. local Folder = Instance.new("Folder", Workspace)
  12. local Part = Instance.new("Part", Folder)
  13. local Attachment1 = Instance.new("Attachment", Part)
  14. Part.Anchored = true
  15. Part.CanCollide = false
  16. Part.Transparency = 1
  17.  
  18. if not getgenv().Network then
  19. getgenv().Network = {
  20. BaseParts = {},
  21. Velocity = Vector3.new(14.46262424, 14.46262424, 14.46262424)
  22. }
  23.  
  24. Network.RetainPart = function(Part)
  25. if typeof(Part) == "Instance" and Part:IsA("BasePart") and Part:IsDescendantOf(Workspace) then
  26. table.insert(Network.BaseParts, Part)
  27. Part.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  28. Part.CanCollide = false
  29. end
  30. end
  31.  
  32. local function EnablePartControl()
  33. LocalPlayer.ReplicationFocus = Workspace
  34. RunService.Heartbeat:Connect(function()
  35. sethiddenproperty(LocalPlayer, "SimulationRadius", math.huge)
  36. for _, Part in pairs(Network.BaseParts) do
  37. if Part:IsDescendantOf(Workspace) then
  38. Part.Velocity = Network.Velocity
  39. end
  40. end
  41. end)
  42. end
  43.  
  44. EnablePartControl()
  45. end
  46.  
  47. local function ForcePart(v)
  48. if v:IsA("Part") and not v.Anchored and not v.Parent:FindFirstChild("Humanoid") and not v.Parent:FindFirstChild("Head") and v.Name ~= "Handle" then
  49. for _, x in next, v:GetChildren() do
  50. if x:IsA("BodyAngularVelocity") or x:IsA("BodyForce") or x:IsA("BodyGyro") or x:IsA("BodyPosition") or x:IsA("BodyThrust") or x:IsA("BodyVelocity") or x:IsA("RocketPropulsion") then
  51. x:Destroy()
  52. end
  53. end
  54. if v:FindFirstChild("Attachment") then
  55. v:FindFirstChild("Attachment"):Destroy()
  56. end
  57. if v:FindFirstChild("AlignPosition") then
  58. v:FindFirstChild("AlignPosition"):Destroy()
  59. end
  60. if v:FindFirstChild("Torque") then
  61. v:FindFirstChild("Torque"):Destroy()
  62. end
  63. v.CanCollide = false
  64. local Torque = Instance.new("Torque", v)
  65. Torque.Torque = Vector3.new(100000, 100000, 100000)
  66. local AlignPosition = Instance.new("AlignPosition", v)
  67. local Attachment2 = Instance.new("Attachment", v)
  68. Torque.Attachment0 = Attachment2
  69. AlignPosition.MaxForce = 9999999999999999
  70. AlignPosition.MaxVelocity = math.huge
  71. AlignPosition.Responsiveness = 200
  72. AlignPosition.Attachment0 = Attachment2
  73. AlignPosition.Attachment1 = Attachment1
  74. end
  75. end
  76.  
  77.  
  78.  
  79. local Players = game:GetService("Players")
  80. local RunService = game:GetService("RunService")
  81. local UserInputService = game:GetService("UserInputService")
  82. local SoundService = game:GetService("SoundService")
  83. local StarterGui = game:GetService("StarterGui")
  84. local TextChatService = game:GetService("TextChatService")
  85.  
  86. local LocalPlayer = Players.LocalPlayer
  87.  
  88. -- Sound Effects
  89. local function playSound(soundId)
  90. local sound = Instance.new("Sound")
  91. sound.SoundId = "rbxassetid://" .. soundId
  92. sound.Parent = SoundService
  93. sound:Play()
  94. sound.Ended:Connect(function()
  95. sound:Destroy()
  96. end)
  97. end
  98.  
  99. -- Play initial sound
  100. playSound("2865227271")
  101.  
  102. -- GUI Creation
  103. local ScreenGui = Instance.new("ScreenGui")
  104. ScreenGui.Name = "SuperRingPartsGUI"
  105. ScreenGui.ResetOnSpawn = false
  106. ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
  107.  
  108. local MainFrame = Instance.new("Frame")
  109. MainFrame.Size = UDim2.new(0, 220, 0, 190)
  110. MainFrame.Position = UDim2.new(0.5, -110, 0.5, -95)
  111. MainFrame.BackgroundColor3 = Color3.fromRGB(0, 102, 51) -- Green
  112. MainFrame.BorderSizePixel = 0
  113. MainFrame.Parent = ScreenGui
  114.  
  115. -- Make the GUI round
  116. local UICorner = Instance.new("UICorner")
  117. UICorner.CornerRadius = UDim.new(0, 20)
  118. UICorner.Parent = MainFrame
  119.  
  120. local Title = Instance.new("TextLabel")
  121. Title.Size = UDim2.new(1, 0, 0, 40)
  122. Title.Position = UDim2.new(0, 0, 0, 0)
  123. Title.Text = "Super Ring Parts v5"
  124. Title.TextColor3 = Color3.fromRGB(255, 255, 255) -- White
  125. Title.BackgroundColor3 = Color3.fromRGB(0, 153, 76) -- Little dark green
  126. Title.Font = Enum.Font.Fondamento -- More elegant font
  127. Title.TextSize = 22
  128. Title.Parent = MainFrame
  129.  
  130. -- Round the title
  131. local TitleCorner = Instance.new("UICorner")
  132. TitleCorner.CornerRadius = UDim.new(0, 20)
  133. TitleCorner.Parent = Title
  134.  
  135. local ToggleButton = Instance.new("TextButton")
  136. ToggleButton.Size = UDim2.new(0.8, 0, 0, 35)
  137. ToggleButton.Position = UDim2.new(0.1, 0, 0.3, 0)
  138. ToggleButton.Text = "Off"
  139. ToggleButton.BackgroundColor3 = Color3.fromRGB(255, 0, 0) -- Red
  140. ToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) -- White
  141. ToggleButton.Font = Enum.Font.Fondamento
  142. ToggleButton.TextSize = 15
  143. ToggleButton.Parent = MainFrame
  144.  
  145. -- Round the toggle button
  146. local ToggleCorner = Instance.new("UICorner")
  147. ToggleCorner.CornerRadius = UDim.new(0, 10)
  148. ToggleCorner.Parent = ToggleButton
  149.  
  150. local DecreaseRadius = Instance.new("TextButton")
  151. DecreaseRadius.Size = UDim2.new(0.2, 0, 0, 35)
  152. DecreaseRadius.Position = UDim2.new(0.1, 0, 0.6, 0)
  153. DecreaseRadius.Text = "<"
  154. DecreaseRadius.BackgroundColor3 = Color3.fromRGB(255, 255, 0) -- Yellow
  155. DecreaseRadius.TextColor3 = Color3.fromRGB(0, 0, 0) -- White
  156. DecreaseRadius.Font = Enum.Font.Fondamento
  157. DecreaseRadius.TextSize = 18
  158. DecreaseRadius.Parent = MainFrame
  159.  
  160. -- Round the decrease button
  161. local DecreaseCorner = Instance.new("UICorner")
  162. DecreaseCorner.CornerRadius = UDim.new(0, 10)
  163. DecreaseCorner.Parent = DecreaseRadius
  164.  
  165. local IncreaseRadius = Instance.new("TextButton")
  166. IncreaseRadius.Size = UDim2.new(0.2, 0, 0, 35)
  167. IncreaseRadius.Position = UDim2.new(0.7, 0, 0.6, 0)
  168. IncreaseRadius.Text = ">"
  169. IncreaseRadius.BackgroundColor3 = Color3.fromRGB(255, 255, 0) -- Yellow
  170. IncreaseRadius.TextColor3 = Color3.fromRGB(0, 0, 0) -- White
  171. IncreaseRadius.Font = Enum.Font.Fondamento
  172. IncreaseRadius.TextSize = 18
  173. IncreaseRadius.Parent = MainFrame
  174.  
  175. -- Round the increase button
  176. local IncreaseCorner = Instance.new("UICorner")
  177. IncreaseCorner.CornerRadius = UDim.new(0, 10)
  178. IncreaseCorner.Parent = IncreaseRadius
  179.  
  180. local RadiusDisplay = Instance.new("TextLabel")
  181. RadiusDisplay.Size = UDim2.new(0.4, 0, 0, 35)
  182. RadiusDisplay.Position = UDim2.new(0.3, 0, 0.6, 0)
  183. RadiusDisplay.Text = "Radius: 50"
  184. RadiusDisplay.BackgroundColor3 = Color3.fromRGB(255, 255, 0) -- Yellow
  185. RadiusDisplay.TextColor3 = Color3.fromRGB(0, 0, 0) -- White
  186. RadiusDisplay.Font = Enum.Font.Fondamento
  187. RadiusDisplay.TextSize = 15
  188. RadiusDisplay.Parent = MainFrame
  189.  
  190. -- Round the radius display
  191. local RadiusCorner = Instance.new("UICorner")
  192. RadiusCorner.CornerRadius = UDim.new(0, 10)
  193. RadiusCorner.Parent = RadiusDisplay
  194.  
  195. local Watermark = Instance.new("TextLabel")
  196. Watermark.Size = UDim2.new(1, 0, 0, 20)
  197. Watermark.Position = UDim2.new(0, 0, 1, -20)
  198. Watermark.Text = "Super Ring [V5] by lukas!"
  199. Watermark.TextColor3 = Color3.fromRGB(255, 255, 255) -- Dark brown
  200. Watermark.BackgroundTransparency = 1
  201. Watermark.Font = Enum.Font.Fondamento
  202. Watermark.TextSize = 14
  203. Watermark.Parent = MainFrame
  204.  
  205. -- Add minimize button
  206. local MinimizeButton = Instance.new("TextButton")
  207. MinimizeButton.Size = UDim2.new(0, 30, 0, 30)
  208. MinimizeButton.Position = UDim2.new(1, -35, 0, 5)
  209. MinimizeButton.Text = "-"
  210. MinimizeButton.BackgroundColor3 = Color3.fromRGB(0, 255, 0) -- Green
  211. MinimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255) -- White
  212. MinimizeButton.Font = Enum.Font.Fondamento
  213. MinimizeButton.TextSize = 15
  214. MinimizeButton.Parent = MainFrame
  215.  
  216. -- Round the minimize button
  217. local MinimizeCorner = Instance.new("UICorner")
  218. MinimizeCorner.CornerRadius = UDim.new(0, 15)
  219. MinimizeCorner.Parent = MinimizeButton
  220.  
  221. -- Minimize functionality
  222. local minimized = false
  223. MinimizeButton.MouseButton1Click:Connect(function()
  224. minimized = not minimized
  225. if minimized then
  226. MainFrame:TweenSize(UDim2.new(0, 220, 0, 40), "Out", "Quad", 0.3, true)
  227. MinimizeButton.Text = "+"
  228. ToggleButton.Visible = false
  229. DecreaseRadius.Visible = false
  230. IncreaseRadius.Visible = false
  231. RadiusDisplay.Visible = false
  232. Watermark.Visible = false
  233. else
  234. MainFrame:TweenSize(UDim2.new(0, 220, 0, 190), "Out", "Quad", 0.3, true)
  235. MinimizeButton.Text = "-"
  236. ToggleButton.Visible = true
  237. DecreaseRadius.Visible = true
  238. IncreaseRadius.Visible = true
  239. RadiusDisplay.Visible = true
  240. Watermark.Visible = true
  241. end
  242. playSound("12221967")
  243. end)
  244.  
  245. -- Make GUI draggable
  246. local dragging
  247. local dragInput
  248. local dragStart
  249. local startPos
  250.  
  251. local function update(input)
  252. local delta = input.Position - dragStart
  253. MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
  254. end
  255.  
  256. MainFrame.InputBegan:Connect(function(input)
  257. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  258. dragging = true
  259. dragStart = input.Position
  260. startPos = MainFrame.Position
  261.  
  262. input.Changed:Connect(function()
  263. if input.UserInputState == Enum.UserInputState.End then
  264. dragging = false
  265. end
  266. end)
  267. end
  268. end)
  269.  
  270. MainFrame.InputChanged:Connect(function(input)
  271. if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
  272. dragInput = input
  273. end
  274. end)
  275.  
  276. UserInputService.InputChanged:Connect(function(input)
  277. if input == dragInput and dragging then
  278. update(input)
  279. end
  280. end)
  281.  
  282. -- Ring Parts Claim
  283. if not getgenv().Network then
  284. getgenv().Network = {
  285. BaseParts = {},
  286. Velocity = Vector3.new(14.46262424, 14.46262424, 14.46262424)
  287. }
  288. Network.RetainPart = function(Part)
  289. if typeof(Part) == "Instance" and Part:IsA("BasePart") and Part:IsDescendantOf(workspace) then
  290. table.insert(Network.BaseParts, Part)
  291. Part.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  292. Part.CanCollide = false
  293. end
  294. end
  295. local function EnablePartControl()
  296. LocalPlayer.ReplicationFocus = workspace
  297. RunService.Heartbeat:Connect(function()
  298. sethiddenproperty(LocalPlayer, "SimulationRadius", math.huge)
  299. for _, Part in pairs(Network.BaseParts) do
  300. if Part:IsDescendantOf(workspace) then
  301. Part.Velocity = Network.Velocity
  302. end
  303. end
  304. end)
  305. end
  306. EnablePartControl()
  307. end
  308.  
  309. -- Edits
  310. local radius = 50
  311. local height = 100
  312. local rotationSpeed = 0.5
  313. local attractionStrength = 1000
  314. local ringPartsEnabled = false
  315.  
  316. local function RetainPart(Part)
  317. if Part:IsA("BasePart") and not Part.Anchored and Part:IsDescendantOf(workspace) then
  318. if Part.Parent == LocalPlayer.Character or Part:IsDescendantOf(LocalPlayer.Character) then
  319. return false
  320. end
  321.  
  322. Part.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  323. Part.CanCollide = false
  324. return true
  325. end
  326. return false
  327. end
  328.  
  329. local parts = {}
  330. local function addPart(part)
  331. if RetainPart(part) then
  332. if not table.find(parts, part) then
  333. table.insert(parts, part)
  334. end
  335. end
  336. end
  337.  
  338. local function removePart(part)
  339. local index = table.find(parts, part)
  340. if index then
  341. table.remove(parts, index)
  342. end
  343. end
  344.  
  345. for _, part in pairs(workspace:GetDescendants()) do
  346. addPart(part)
  347. end
  348.  
  349. workspace.DescendantAdded:Connect(addPart)
  350. workspace.DescendantRemoving:Connect(removePart)
  351.  
  352. RunService.Heartbeat:Connect(function()
  353. if not ringPartsEnabled then return end
  354.  
  355. local humanoidRootPart = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
  356. if humanoidRootPart then
  357. local tornadoCenter = humanoidRootPart.Position
  358. for _, part in pairs(parts) do
  359. if part.Parent and not part.Anchored then
  360. local pos = part.Position
  361. local distance = (Vector3.new(pos.X, tornadoCenter.Y, pos.Z) - tornadoCenter).Magnitude
  362. local angle = math.atan2(pos.Z - tornadoCenter.Z, pos.X - tornadoCenter.X)
  363. local newAngle = angle + math.rad(rotationSpeed)
  364. local targetPos = Vector3.new(
  365. tornadoCenter.X + math.cos(newAngle) * math.min(radius, distance),
  366. tornadoCenter.Y + (height * (math.abs(math.sin((pos.Y - tornadoCenter.Y) / height)))),
  367. tornadoCenter.Z + math.sin(newAngle) * math.min(radius, distance)
  368. )
  369. local directionToTarget = (targetPos - part.Position).unit
  370. part.Velocity = directionToTarget * attractionStrength
  371. end
  372. end
  373. end
  374. end)
  375.  
  376. -- Button functionality
  377. ToggleButton.MouseButton1Click:Connect(function()
  378. ringPartsEnabled = not ringPartsEnabled
  379. ToggleButton.Text = ringPartsEnabled and "Ring Parts On" or "Ring Parts Off"
  380. ToggleButton.BackgroundColor3 = ringPartsEnabled and Color3.fromRGB(50, 205, 50) or Color3.fromRGB(160, 82, 45)
  381. playSound("12221967")
  382. end)
  383.  
  384. DecreaseRadius.MouseButton1Click:Connect(function()
  385. radius = math.max(0, radius - 5)
  386. RadiusDisplay.Text = "Radius: " .. radius
  387. playSound("12221967")
  388. end)
  389.  
  390. IncreaseRadius.MouseButton1Click:Connect(function()
  391. radius = math.min(10000, radius + 5)
  392. RadiusDisplay.Text = "Radius: " .. radius
  393. playSound("12221967")
  394. end)
  395.  
  396. -- Get player thumbnail
  397. local userId = Players:GetUserIdFromNameAsync("Robloxlukasgames")
  398. local thumbType = Enum.ThumbnailType.HeadShot
  399. local thumbSize = Enum.ThumbnailSize.Size420x420
  400. local content, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
  401.  
  402. StarterGui:SetCore("SendNotification", {
  403. Title = "Super ring parts V4",
  404. Text = "enjoy",
  405. Icon = content,
  406. Duration = 5
  407. })
  408.  
  409. StarterGui:SetCore("SendNotification", {
  410. Title = "Credits",
  411. Text = "Original By Yumm Scriptblox",
  412. Icon = content,
  413. Duration = 5
  414. })
  415.  
  416. StarterGui:SetCore("SendNotification", {
  417. Title = "Credits",
  418. Text = "Edited By lukas",
  419. Icon = content,
  420. Duration = 5
  421. })
  422.  
  423. -- Chat message (Updated for new chat system)
  424. local function SendChatMessage(message)
  425. if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then
  426. local textChannel = TextChatService.TextChannels.RBXGeneral
  427. textChannel:SendAsync(message)
  428. else
  429. game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest:FireServer(message, "All")
  430. end
  431. end
  432.  
  433.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement