Advertisement
DarkzScriptYT

Super Black Hole

Feb 14th, 2025
393
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.72 KB | None | 0 0
  1. local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
  2.  
  3. local Window = Rayfield:CreateWindow({
  4. Name = "Darkz ScriptYT",
  5. Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default).
  6. LoadingTitle = "Super BlackHole V1",
  7. LoadingSubtitle = "By Darkz Script",
  8. Theme = "Default", -- Check https://docs.sirius.menu/rayfield/configuration/themes
  9.  
  10. DisableRayfieldPrompts = false,
  11. DisableBuildWarnings = false, -- Prevents Rayfield from warning when the script has a version mismatch with the interface
  12.  
  13. ConfigurationSaving = {
  14. Enabled = false,
  15. FolderName = nil, -- Create a custom folder for your hub/game
  16. FileName = "ETC"
  17. },
  18.  
  19. Discord = {
  20. Enabled = false, -- Prompt the user to join your Discord server if their executor supports it
  21. Invite = "noinvitelink", -- The Discord invite code, do not include discord.gg/. E.g. discord.gg/ ABCD would be ABCD
  22. RememberJoins = true -- Set this to false to make them join the discord every time they load it up
  23. },
  24.  
  25. KeySystem = false, -- Set this to true to use our key system
  26. KeySettings = {
  27. Title = "Untitled",
  28. Subtitle = "Key System",
  29. Note = "No method of obtaining the key is provided", -- Use this to tell the user how to get a key
  30. FileName = "Key", -- It is recommended to use something unique as other scripts using Rayfield may overwrite your key file
  31. SaveKey = true, -- The user's key will be saved, but if you change the key, they will be unable to use your script
  32. GrabKeyFromSite = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from
  33. Key = {"Hello"} -- List of keys that will be accepted by the system, can be RAW file links (pastebin, github etc) or simple strings ("hello","key22")
  34. }
  35. })
  36. local Players = game:GetService("Players")
  37. local RunService = game:GetService("RunService")
  38. local UserInputService = game:GetService("UserInputService")
  39. local LocalPlayer = Players.LocalPlayer
  40. local Workspace = game:GetService("Workspace")
  41.  
  42. local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  43. local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
  44.  
  45. local Folder = Instance.new("Folder", Workspace)
  46. local Part = Instance.new("Part", Folder)
  47. local Attachment1 = Instance.new("Attachment", Part)
  48. Part.Anchored = true
  49. Part.CanCollide = false
  50. Part.Transparency = 1
  51.  
  52. if not getgenv().Network then
  53. getgenv().Network = {
  54. BaseParts = {},
  55. Velocity = Vector3.new(14.46262424, 14.46262424, 14.46262424)
  56. }
  57.  
  58. Network.RetainPart = function(Part)
  59. if typeof(Part) == "Instance" and Part:IsA("BasePart") and Part:IsDescendantOf(Workspace) then
  60. table.insert(Network.BaseParts, Part)
  61. Part.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  62. Part.CanCollide = false
  63. end
  64. end
  65.  
  66. local function EnablePartControl()
  67. LocalPlayer.ReplicationFocus = Workspace
  68. RunService.Heartbeat:Connect(function()
  69. sethiddenproperty(LocalPlayer, "SimulationRadius", math.huge)
  70. for _, Part in pairs(Network.BaseParts) do
  71. if Part:IsDescendantOf(Workspace) then
  72. Part.Velocity = Network.Velocity
  73. end
  74. end
  75. end)
  76. end
  77.  
  78. EnablePartControl()
  79. end
  80.  
  81. local function ForcePart(v)
  82. 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
  83. for _, x in next, v:GetChildren() do
  84. 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
  85. x:Destroy()
  86. end
  87. end
  88. if v:FindFirstChild("Attachment") then
  89. v:FindFirstChild("Attachment"):Destroy()
  90. end
  91. if v:FindFirstChild("AlignPosition") then
  92. v:FindFirstChild("AlignPosition"):Destroy()
  93. end
  94. if v:FindFirstChild("Torque") then
  95. v:FindFirstChild("Torque"):Destroy()
  96. end
  97. v.CanCollide = false
  98. local Torque = Instance.new("Torque", v)
  99. Torque.Torque = Vector3.new(100000, 100000, 100000)
  100. local AlignPosition = Instance.new("AlignPosition", v)
  101. local Attachment2 = Instance.new("Attachment", v)
  102. Torque.Attachment0 = Attachment2
  103. AlignPosition.MaxForce = 9999999999999999
  104. AlignPosition.MaxVelocity = math.huge
  105. AlignPosition.Responsiveness = 200
  106. AlignPosition.Attachment0 = Attachment2
  107. AlignPosition.Attachment1 = Attachment1
  108. end
  109. end
  110.  
  111.  
  112.  
  113. local Players = game:GetService("Players")
  114. local RunService = game:GetService("RunService")
  115. local UserInputService = game:GetService("UserInputService")
  116. local SoundService = game:GetService("SoundService")
  117. local StarterGui = game:GetService("StarterGui")
  118. local TextChatService = game:GetService("TextChatService")
  119.  
  120. local LocalPlayer = Players.LocalPlayer
  121.  
  122. -- Sound Effects
  123. local function playSound(soundId)
  124. local sound = Instance.new("Sound")
  125. sound.SoundId = "rbxassetid://" .. soundId
  126. sound.Parent = SoundService
  127. sound:Play()
  128. sound.Ended:Connect(function()
  129. sound:Destroy()
  130. end)
  131. end
  132.  
  133. -- Play initial sound
  134. playSound("2865227271")
  135.  
  136. -- GUI Creation
  137. local ScreenGui = Instance.new("ScreenGui")
  138. ScreenGui.Name = "SuperRingPartsGUI"
  139. ScreenGui.ResetOnSpawn = false
  140. ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
  141.  
  142. local MainFrame = Instance.new("Frame")
  143. MainFrame.Size = UDim2.new(0, 220, 0, 190)
  144. MainFrame.Position = UDim2.new(0.5, -110, 0.5, -95)
  145. MainFrame.BackgroundColor3 = Color3.fromRGB(204, 0, 0) -- Light brown
  146. MainFrame.BorderSizePixel = 0
  147. MainFrame.Parent = ScreenGui
  148.  
  149. -- Make the GUI round
  150. local UICorner = Instance.new("UICorner")
  151. UICorner.CornerRadius = UDim.new(0, 20)
  152. UICorner.Parent = MainFrame
  153.  
  154. local Title = Instance.new("TextLabel")
  155. Title.Size = UDim2.new(1, 0, 0, 40)
  156. Title.Position = UDim2.new(0, 0, 0, 0)
  157. Title.Text = "Super Ring Parts v4"
  158. Title.TextColor3 = Color3.fromRGB(153, 0, 0) -- Dark brown
  159. Title.BackgroundColor3 = Color3.fromRGB(255, 51, 51) -- Lighter brown
  160. Title.Font = Enum.Font.Fondamento -- More elegant font
  161. Title.TextSize = 22
  162. Title.Parent = MainFrame
  163.  
  164. -- Round the title
  165. local TitleCorner = Instance.new("UICorner")
  166. TitleCorner.CornerRadius = UDim.new(0, 20)
  167. TitleCorner.Parent = Title
  168.  
  169. local ToggleButton = Instance.new("TextButton")
  170. ToggleButton.Size = UDim2.new(0.8, 0, 0, 35)
  171. ToggleButton.Position = UDim2.new(0.1, 0, 0.3, 0)
  172. ToggleButton.Text = "Ring Parts Off"
  173. ToggleButton.BackgroundColor3 = Color3.fromRGB(0, 0, 255) -- Sienna
  174. ToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) -- Cornsilk
  175. ToggleButton.Font = Enum.Font.Fondamento
  176. ToggleButton.TextSize = 18
  177. ToggleButton.Parent = MainFrame
  178.  
  179. -- Round the toggle button
  180. local ToggleCorner = Instance.new("UICorner")
  181. ToggleCorner.CornerRadius = UDim.new(0, 10)
  182. ToggleCorner.Parent = ToggleButton
  183.  
  184. local DecreaseRadius = Instance.new("TextButton")
  185. DecreaseRadius.Size = UDim2.new(0.2, 0, 0, 35)
  186. DecreaseRadius.Position = UDim2.new(0.1, 0, 0.6, 0)
  187. DecreaseRadius.Text = "<"
  188. DecreaseRadius.BackgroundColor3 = Color3.fromRGB(255, 153, 153) -- Saddle brown
  189. DecreaseRadius.TextColor3 = Color3.fromRGB(255, 255, 255) -- Cornsilk
  190. DecreaseRadius.Font = Enum.Font.Fondamento
  191. DecreaseRadius.TextSize = 18
  192. DecreaseRadius.Parent = MainFrame
  193.  
  194. -- Round the decrease button
  195. local DecreaseCorner = Instance.new("UICorner")
  196. DecreaseCorner.CornerRadius = UDim.new(0, 10)
  197. DecreaseCorner.Parent = DecreaseRadius
  198.  
  199. local IncreaseRadius = Instance.new("TextButton")
  200. IncreaseRadius.Size = UDim2.new(0.2, 0, 0, 35)
  201. IncreaseRadius.Position = UDim2.new(0.7, 0, 0.6, 0)
  202. IncreaseRadius.Text = ">"
  203. IncreaseRadius.BackgroundColor3 = Color3.fromRGB(255, 153, 153) -- Saddle brown
  204. IncreaseRadius.TextColor3 = Color3.fromRGB(255, 255, 255) -- Cornsilk
  205. IncreaseRadius.Font = Enum.Font.Fondamento
  206. IncreaseRadius.TextSize = 18
  207. IncreaseRadius.Parent = MainFrame
  208.  
  209. -- Round the increase button
  210. local IncreaseCorner = Instance.new("UICorner")
  211. IncreaseCorner.CornerRadius = UDim.new(0, 10)
  212. IncreaseCorner.Parent = IncreaseRadius
  213.  
  214. local RadiusDisplay = Instance.new("TextLabel")
  215. RadiusDisplay.Size = UDim2.new(0.4, 0, 0, 35)
  216. RadiusDisplay.Position = UDim2.new(0.3, 0, 0.6, 0)
  217. RadiusDisplay.Text = "Radius: 50"
  218. RadiusDisplay.BackgroundColor3 = Color3.fromRGB(255, 0, 0) -- Tan
  219. RadiusDisplay.TextColor3 = Color3.fromRGB(255, 255, 255) -- Dark brown
  220. RadiusDisplay.Font = Enum.Font.Fondamento
  221. RadiusDisplay.TextSize = 18
  222. RadiusDisplay.Parent = MainFrame
  223.  
  224. -- Round the radius display
  225. local RadiusCorner = Instance.new("UICorner")
  226. RadiusCorner.CornerRadius = UDim.new(0, 10)
  227. RadiusCorner.Parent = RadiusDisplay
  228.  
  229. local Watermark = Instance.new("TextLabel")
  230. Watermark.Size = UDim2.new(1, 0, 0, 20)
  231. Watermark.Position = UDim2.new(0, 0, 1, -20)
  232. Watermark.Text = "Super Ring [V4] by lukas"
  233. Watermark.TextColor3 = Color3.fromRGB(255, 255, 255) -- Dark brown
  234. Watermark.BackgroundTransparency = 1
  235. Watermark.Font = Enum.Font.Fondamento
  236. Watermark.TextSize = 14
  237. Watermark.Parent = MainFrame
  238.  
  239. -- Add minimize button
  240. local MinimizeButton = Instance.new("TextButton")
  241. MinimizeButton.Size = UDim2.new(0, 30, 0, 30)
  242. MinimizeButton.Position = UDim2.new(1, -35, 0, 5)
  243. MinimizeButton.Text = "-"
  244. MinimizeButton.BackgroundColor3 = Color3.fromRGB(0, 0, 255) -- Saddle brown
  245. MinimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255) -- Cornsilk
  246. MinimizeButton.Font = Enum.Font.Fondamento
  247. MinimizeButton.TextSize = 18
  248. MinimizeButton.Parent = MainFrame
  249.  
  250. -- Round the minimize button
  251. local MinimizeCorner = Instance.new("UICorner")
  252. MinimizeCorner.CornerRadius = UDim.new(0, 15)
  253. MinimizeCorner.Parent = MinimizeButton
  254.  
  255. -- Minimize functionality
  256. local minimized = false
  257. MinimizeButton.MouseButton1Click:Connect(function()
  258. minimized = not minimized
  259. if minimized then
  260. MainFrame:TweenSize(UDim2.new(0, 220, 0, 40), "Out", "Quad", 0.3, true)
  261. MinimizeButton.Text = "+"
  262. ToggleButton.Visible = false
  263. DecreaseRadius.Visible = false
  264. IncreaseRadius.Visible = false
  265. RadiusDisplay.Visible = false
  266. Watermark.Visible = false
  267. else
  268. MainFrame:TweenSize(UDim2.new(0, 220, 0, 190), "Out", "Quad", 0.3, true)
  269. MinimizeButton.Text = "-"
  270. ToggleButton.Visible = true
  271. DecreaseRadius.Visible = true
  272. IncreaseRadius.Visible = true
  273. RadiusDisplay.Visible = true
  274. Watermark.Visible = true
  275. end
  276. playSound("12221967")
  277. end)
  278.  
  279. -- Make GUI draggable
  280. local dragging
  281. local dragInput
  282. local dragStart
  283. local startPos
  284.  
  285. local function update(input)
  286. local delta = input.Position - dragStart
  287. MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
  288. end
  289.  
  290. MainFrame.InputBegan:Connect(function(input)
  291. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  292. dragging = true
  293. dragStart = input.Position
  294. startPos = MainFrame.Position
  295.  
  296. input.Changed:Connect(function()
  297. if input.UserInputState == Enum.UserInputState.End then
  298. dragging = false
  299. end
  300. end)
  301. end
  302. end)
  303.  
  304. MainFrame.InputChanged:Connect(function(input)
  305. if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
  306. dragInput = input
  307. end
  308. end)
  309.  
  310. UserInputService.InputChanged:Connect(function(input)
  311. if input == dragInput and dragging then
  312. update(input)
  313. end
  314. end)
  315.  
  316. -- Ring Parts Logic
  317. if not getgenv().Network then
  318. getgenv().Network = {
  319. BaseParts = {},
  320. Velocity = Vector3.new(14.46262424, 14.46262424, 14.46262424)
  321. }
  322. Network.RetainPart = function(Part)
  323. if typeof(Part) == "Instance" and Part:IsA("BasePart") and Part:IsDescendantOf(workspace) then
  324. table.insert(Network.BaseParts, Part)
  325. Part.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  326. Part.CanCollide = false
  327. end
  328. end
  329. local function EnablePartControl()
  330. LocalPlayer.ReplicationFocus = workspace
  331. RunService.Heartbeat:Connect(function()
  332. sethiddenproperty(LocalPlayer, "SimulationRadius", math.huge)
  333. for _, Part in pairs(Network.BaseParts) do
  334. if Part:IsDescendantOf(workspace) then
  335. Part.Velocity = Network.Velocity
  336. end
  337. end
  338. end)
  339. end
  340. EnablePartControl()
  341. end
  342.  
  343. local radius = 50
  344. local height = 100
  345. local rotationSpeed = 1
  346. local attractionStrength = 1000
  347. local ringPartsEnabled = false
  348.  
  349. local function RetainPart(Part)
  350. if Part:IsA("BasePart") and not Part.Anchored and Part:IsDescendantOf(workspace) then
  351. if Part.Parent == LocalPlayer.Character or Part:IsDescendantOf(LocalPlayer.Character) then
  352. return false
  353. end
  354.  
  355. Part.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  356. Part.CanCollide = false
  357. return true
  358. end
  359. return false
  360. end
  361.  
  362. local parts = {}
  363. local function addPart(part)
  364. if RetainPart(part) then
  365. if not table.find(parts, part) then
  366. table.insert(parts, part)
  367. end
  368. end
  369. end
  370.  
  371. local function removePart(part)
  372. local index = table.find(parts, part)
  373. if index then
  374. table.remove(parts, index)
  375. end
  376. end
  377.  
  378. for _, part in pairs(workspace:GetDescendants()) do
  379. addPart(part)
  380. end
  381.  
  382. workspace.DescendantAdded:Connect(addPart)
  383. workspace.DescendantRemoving:Connect(removePart)
  384.  
  385. RunService.Heartbeat:Connect(function()
  386. if not ringPartsEnabled then return end
  387.  
  388. local humanoidRootPart = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
  389. if humanoidRootPart then
  390. local tornadoCenter = humanoidRootPart.Position
  391. for _, part in pairs(parts) do
  392. if part.Parent and not part.Anchored then
  393. local pos = part.Position
  394. local distance = (Vector3.new(pos.X, tornadoCenter.Y, pos.Z) - tornadoCenter).Magnitude
  395. local angle = math.atan2(pos.Z - tornadoCenter.Z, pos.X - tornadoCenter.X)
  396. local newAngle = angle + math.rad(rotationSpeed)
  397. local targetPos = Vector3.new(
  398. tornadoCenter.X + math.cos(newAngle) * math.min(radius, distance),
  399. tornadoCenter.Y + (height * (math.abs(math.sin((pos.Y - tornadoCenter.Y) / height)))),
  400. tornadoCenter.Z + math.sin(newAngle) * math.min(radius, distance)
  401. )
  402. local directionToTarget = (targetPos - part.Position).unit
  403. part.Velocity = directionToTarget * attractionStrength
  404. end
  405. end
  406. end
  407. end)
  408.  
  409. -- Button functionality
  410. ToggleButton.MouseButton1Click:Connect(function()
  411. ringPartsEnabled = not ringPartsEnabled
  412. ToggleButton.Text = ringPartsEnabled and "Ring Parts On" or "Ring Parts Off"
  413. ToggleButton.BackgroundColor3 = ringPartsEnabled and Color3.fromRGB(50, 205, 50) or Color3.fromRGB(160, 82, 45)
  414. playSound("12221967")
  415. end)
  416.  
  417. DecreaseRadius.MouseButton1Click:Connect(function()
  418. radius = math.max(1, radius - 2)
  419. RadiusDisplay.Text = "Radius: " .. radius
  420. playSound("12221967")
  421. end)
  422.  
  423. IncreaseRadius.MouseButton1Click:Connect(function()
  424. radius = math.min(1000, radius + 2)
  425. RadiusDisplay.Text = "Radius: " .. radius
  426. playSound("12221967")
  427. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement