Back to Scripts
Buraco negro

Buraco negro

ScriptBlox
Universal Free

Game: Universal Script 📌

136 Views
0 Likes
0 Dislikes
Happykid

Happykid

offline

Features

Não sei

Script Code

-- BIG ANIME RUBI SYSTEM - FINAL EDITION
-- Hub principal + Rubi portátil (Tool) + Editor real

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Debris = game:GetService("Debris")
local player = Players.LocalPlayer
repeat task.wait() until player.Character
local char = player.Character
local hrp = char:WaitForChild("HumanoidRootPart")

pcall(function()
	player.PlayerGui:FindFirstChild("RubiHub"):Destroy()
	player.PlayerGui:FindFirstChild("DiskHub"):Destroy()
end)

-- ================= SPAWN POINTS =================
local spawnPoints = {
	Head = char:WaitForChild("Head"),
	RightHand = char:FindFirstChild("RightHand") or char:FindFirstChild("Right Arm"),
	LeftHand = char:FindFirstChild("LeftHand") or char:FindFirstChild("Left Arm"),
	Torso = char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso")
}
local currentPart = "Torso"

-- ================= VARS =================
local trails = {}
local trailCount = 6
local trailSize = 0.25
local lifetime = 0.9
local useGradient = true
local color1 = Color3.fromRGB(0,255,255)
local color2 = Color3.fromRGB(180,0,255)
local textureMode = "None"

-- vortex
local vortex = false
local vortexRadius = 3
local vortexSpeed = 2

-- ================= CORE =================
local function clearTrails()
	for _,t in pairs(trails) do
		pcall(function() t.trail:Destroy() end)
	end
	trails = {}
end

local function applyTexture(t)
	if textureMode == "Voxel" then
		t.Texture = "rbxassetid://623514630"
		t.MinLength = 1
	elseif textureMode == "Hacker" then
		t.Texture = "rbxassetid://444593406"
	else
		t.Texture = nil
	end
end

local function createTrail()
	clearTrails()
	local basePart = spawnPoints[currentPart]
	if not basePart then return end

	for i=1,trailCount do
		local a0 = Instance.new("Attachment", basePart)
		local a1 = Instance.new("Attachment", basePart)

		local side = (i % 2 == 0) and 1 or -1
		local spread = math.ceil(i/2) * 0.4
		a0.Position = Vector3.new(side*spread,0,0)
		a1.Position = Vector3.new(side*spread,0,-4)

		local t = Instance.new("Trail")
		t.Attachment0 = a0
		t.Attachment1 = a1
		t.Lifetime = lifetime
		t.WidthScale = NumberSequence.new(trailSize)
		t.LightEmission = 1

		if useGradient then
			t.Color = ColorSequence.new{
				ColorSequenceKeypoint.new(0,color1),
				ColorSequenceKeypoint.new(1,color2)
			}
		else
			t.Color = ColorSequence.new(color1)
		end

		applyTexture(t)
		t.Parent = basePart
		table.insert(trails,{trail=t,a0=a0,a1=a1})
	end
end

-- ================= VORTEX (BURACO NEGRO REAL) =================
RunService.RenderStepped:Connect(function(dt)
	if vortex then
		local t = tick() * vortexSpeed
		for i,v in pairs(trails) do
			local ang = t + i
			local x = math.cos(ang)*vortexRadius
			local z = math.sin(ang)*vortexRadius
			v.a0.Position = Vector3.new(x,0,z)
			v.a1.Position = Vector3.new(-x,0,-z)
		end
	end
end)

-- ================= RUBI HUB (PRINCIPAL) =================
local gui = Instance.new("ScreenGui", player.PlayerGui)
gui.Name = "RubiHub"

local open = Instance.new("TextButton", gui)
open.Text = "💎 RUBI"
open.Size = UDim2.fromScale(0.12,0.06)
open.Position = UDim2.fromScale(0.02,0.45)

local hub = Instance.new("Frame", gui)
hub.Size = UDim2.fromScale(0.5,0.7)
hub.Position = UDim2.fromScale(0.25,0.15)
hub.BackgroundColor3 = Color3.fromRGB(18,18,25)
hub.Visible = false
hub.Active = true
hub.Draggable = true

open.MouseButton1Click:Connect(function()
	hub.Visible = not hub.Visible
end)

local function makeBtn(text,pos,callback)
	local b = Instance.new("TextButton", hub)
	b.Text = text
	b.Size = UDim2.fromScale(0.45,0.07)
	b.Position = pos
	b.MouseButton1Click:Connect(callback)
end

-- ===== PRESETS =====
makeBtn("Galaxy",UDim2.fromScale(0.05,0.05),function()
	color1 = Color3.fromRGB(80,0,255)
	color2 = Color3.fromRGB(0,255,255)
	createTrail()
end)

makeBtn("Fire",UDim2.fromScale(0.05,0.13),function()
	color1 = Color3.fromRGB(255,80,0)
	color2 = Color3.fromRGB(255,255,0)
	createTrail()
end)

makeBtn("Shadow",UDim2.fromScale(0.05,0.21),function()
	color1 = Color3.fromRGB(0,0,0)
	color2 = Color3.fromRGB(120,0,120)
	createTrail()
end)

makeBtn("Neon RGB",UDim2.fromScale(0.05,0.29),function()
	color1 = Color3.fromRGB(255,0,0)
	color2 = Color3.fromRGB(0,255,255)
	createTrail()
end)

makeBtn("Void",UDim2.fromScale(0.05,0.37),function()
	color1 = Color3.fromRGB(10,10,10)
	color2 = Color3.fromRGB(60,0,80)
	createTrail()
end)

-- ===== MODOS =====
makeBtn("Voxel",UDim2.fromScale(0.05,0.48),function()
	textureMode = "Voxel"
	createTrail()
end)

makeBtn("Hacker",UDim2.fromScale(0.05,0.56),function()
	textureMode = "Hacker"
	createTrail()
end)

makeBtn("Normal",UDim2.fromScale(0.05,0.64),function()
	textureMode = "None"
	createTrail()
end)

-- ===== CONTROLES =====
makeBtn("+ Linhas",UDim2.fromScale(0.52,0.05),function()
	trailCount += 2
	createTrail()
end)

makeBtn("- Linhas",UDim2.fromScale(0.52,0.13),function()
	if trailCount > 2 then
		trailCount -= 2
		createTrail()
	end
end)

makeBtn("Espessura +",UDim2.fromScale(0.52,0.21),function()
	trailSize += 0.05
	createTrail()
end)

makeBtn("Espessura -",UDim2.fromScale(0.52,0.29),function()
	if trailSize > 0.05 then
		trailSize -= 0.05
		createTrail()
	end
end)

makeBtn("Duração +",UDim2.fromScale(0.52,0.37),function()
	lifetime += 0.2
	createTrail()
end)

makeBtn("Duração -",UDim2.fromScale(0.52,0.45),function()
	if lifetime > 0.2 then
		lifetime -= 0.2
		createTrail()
	end
end)

makeBtn("Gradient ON/OFF",UDim2.fromScale(0.52,0.53),function()
	useGradient = not useGradient
	createTrail()
end)

makeBtn("VORTEX (Buraco Negro)",UDim2.fromScale(0.52,0.61),function()
	vortex = not vortex
end)

-- ===== POSIÇÃO NO CORPO =====
makeBtn("Cabeça",UDim2.fromScale(0.05,0.8),function()
	currentPart = "Head"
	createTrail()
end)

makeBtn("Mão Dir",UDim2.fromScale(0.25,0.8),function()
	currentPart = "RightHand"
	createTrail()
end)

makeBtn("Mão Esq",UDim2.fromScale(0.45,0.8),function()
	currentPart = "LeftHand"
	createTrail()
end)

makeBtn("Torso",UDim2.fromScale(0.65,0.8),function()
	currentPart = "Torso"
	createTrail()
end)

-- ================= RUBI DISK (TOOL PORTÁTIL) =================
local diskTool = Instance.new("Tool", player.Backpack)
diskTool.Name = "RubiDisk"
diskTool.RequiresHandle = true

local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Shape = Enum.PartType.Cylinder
handle.Size = Vector3.new(1,0.2,1)
handle.Material = Enum.Material.Neon
handle.Color = Color3.fromRGB(120,0,255)
handle.CanCollide = false
handle.Parent = diskTool

local mesh = Instance.new("SpecialMesh", handle)
mesh.MeshType = Enum.MeshType.Sphere
mesh.Scale = Vector3.new(1.5,0.3,1.5)

-- MINI HUB DO DISCO
local diskGui = Instance.new("ScreenGui", player.PlayerGui)
diskGui.Name = "DiskHub"
diskGui.Enabled = false

local f = Instance.new("Frame", diskGui)
f.Size = UDim2.fromScale(0.22,0.32)
f.Position = UDim2.fromScale(0.75,0.6)
f.BackgroundColor3 = Color3.fromRGB(15,15,20)
f.Active = true
f.Draggable = true

local function diskBtn(text,y,func)
	local b = Instance.new("TextButton", f)
	b.Size = UDim2.fromScale(0.9,0.2)
	b.Position = UDim2.fromScale(0.05,y)
	b.Text = text
	b.MouseButton1Click:Connect(func)
end

diskBtn("Galaxy",0.05,function()
	color1 = Color3.fromRGB(80,0,255)
	color2 = Color3.fromRGB(0,255,255)
	createTrail()
end)

diskBtn("Voxel",0.3,function()
	textureMode = "Voxel"
	createTrail()
end)

diskBtn("Vortex",0.55,function()
	vortex = not vortex
end)

diskTool.Equipped:Connect(function()
	diskGui.Enabled = true
end)

diskTool.Unequipped:Connect(function()
	diskGui.Enabled = false
end)

-- ARREMESSO VISUAL DO DISCO
diskTool.Activated:Connect(function()
	local proj = handle:Clone()
	proj.Anchored = false
	proj.CanCollide = false
	proj.CFrame = handle.CFrame
	proj.Parent = workspace
	proj.Velocity = hrp.CFrame.LookVector * 80
	Debris:AddItem(proj,2)
end)

-- START
createTrail()

Ratings & Reviews

No reviews yet. Be the first to review this script!

Comments (0)

Please login to comment

Login with Discord

Loading comments...