Prime scirpts
Key RequiredUniversal

Prime scirpts

Universal ScriptPrime_weirdrickPrime_weirdrick 395 views 1.7K executesUpdated Sep 25, 2026
Unrated
00
Lua Script•1469 lines (48453 chars)
-- LocalScript: StarterPlayer > StarterPlayerScripts
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local camera = Workspace.CurrentCamera

--------------------------------------------------------------------------------
-- 1. INTRO BANNER SYSTEM
--------------------------------------------------------------------------------
local function playScriptIntro(scriptName)
	task.spawn(function()
		local introGui = Instance.new("ScreenGui")
		introGui.Name = "ScriptIntroGui"
		introGui.ResetOnSpawn = false
		introGui.Parent = playerGui

		local banner = Instance.new("Frame")
		banner.Size = UDim2.new(0.85, 0, 0, 65)
		banner.Position = UDim2.new(0.075, 0, -0.2, 0)
		banner.BackgroundColor3 = Color3.fromRGB(10, 15, 30)
		banner.BorderColor3 = Color3.fromRGB(0, 200, 255)
		banner.BorderSizePixel = 2
		banner.Parent = introGui

		local corner = Instance.new("UICorner")
		corner.CornerRadius = UDim.new(0, 10)
		corner.Parent = banner

		local txt = Instance.new("TextLabel")
		txt.Size = UDim2.new(1, -10, 1, 0)
		txt.Position = UDim2.new(0, 5, 0, 0)
		txt.BackgroundTransparency = 1
		txt.Text = scriptName .. "\nmade by prime_weirdRick/villiamisdabest"
		txt.TextColor3 = Color3.fromRGB(0, 220, 255)
		txt.TextSize = 15
		txt.Font = Enum.Font.GothamBold
		txt.TextWrapped = true
		txt.Parent = banner

		local slideIn = TweenService:Create(banner, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
			Position = UDim2.new(0.075, 0, 0.05, 0)
		})
		slideIn:Play()
		slideIn.Completed:Wait()

		task.wait(1)

		local slideOut = TweenService:Create(banner, TweenInfo.new(0.3, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {
			Position = UDim2.new(0.075, 0, -0.2, 0)
		})
		slideOut:Play()
		slideOut.Completed:Connect(function()
			introGui:Destroy()
		end)
	end)
end

--------------------------------------------------------------------------------
-- 2. GUI CLEANUP & DRAGGABLE UTILITY
--------------------------------------------------------------------------------
local oldGui = playerGui:FindFirstChild("ExploitersRingGui")
if oldGui then oldGui:Destroy() end

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "ExploitersRingGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui

local function makeDraggable(guiObject)
	local dragging, dragInput, dragStart, startPos

	guiObject.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = true
			dragStart = input.Position
			startPos = guiObject.Position
			input.Changed:Connect(function()
				if input.UserInputState == Enum.UserInputState.End then
					dragging = false
				end
			end)
		end
	end)

	guiObject.InputChanged:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
			dragInput = input
		end
	end)

	UserInputService.InputChanged:Connect(function(input)
		if input == dragInput and dragging then
			local delta = input.Position - dragStart
			guiObject.Position = UDim2.new(
				startPos.X.Scale,
				startPos.X.Offset + delta.X,
				startPos.Y.Scale,
				startPos.Y.Offset + delta.Y
			)
		end
	end)
end

--------------------------------------------------------------------------------
-- 3. MAIN MENU SETUP & TOGGLE
--------------------------------------------------------------------------------
local toggleBtn = Instance.new("TextButton")
toggleBtn.Name = "ToggleButton"
toggleBtn.Size = UDim2.new(0, 55, 0, 55)
toggleBtn.Position = UDim2.new(0, 20, 0, 80)
toggleBtn.Text = "PRIME"
toggleBtn.TextSize = 13
toggleBtn.Font = Enum.Font.SourceSansBold
toggleBtn.BackgroundColor3 = Color3.fromRGB(5, 15, 30)
toggleBtn.TextColor3 = Color3.fromRGB(0, 245, 255)
toggleBtn.Parent = screenGui

local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(1, 0)
btnCorner.Parent = toggleBtn

local btnStroke = Instance.new("UIStroke")
btnStroke.Color = Color3.fromRGB(0, 230, 255)
btnStroke.Thickness = 3
btnStroke.Parent = toggleBtn

makeDraggable(toggleBtn)

local loadingFrame = Instance.new("Frame")
loadingFrame.Name = "LoadingFrame"
loadingFrame.Size = UDim2.new(0, 280, 0, 480)
loadingFrame.Position = UDim2.new(0, 20, 0, 145)
loadingFrame.BackgroundColor3 = Color3.fromRGB(3, 10, 20)
loadingFrame.Visible = false
loadingFrame.ZIndex = 10
loadingFrame.Parent = screenGui

local loadCorner = Instance.new("UICorner")
loadCorner.CornerRadius = UDim.new(0, 10)
loadCorner.Parent = loadingFrame

local loadStroke = Instance.new("UIStroke")
loadStroke.Color = Color3.fromRGB(0, 230, 255)
loadStroke.Thickness = 2.5
loadStroke.Parent = loadingFrame

local loadLabel = Instance.new("TextLabel")
loadLabel.Size = UDim2.new(1, -20, 0, 60)
loadLabel.Position = UDim2.new(0, 10, 0.4, -30)
loadLabel.Text = "Made by prime_weirdRick"
loadLabel.TextSize = 16
loadLabel.Font = Enum.Font.SourceSansBold
loadLabel.TextColor3 = Color3.fromRGB(0, 245, 255)
loadLabel.TextWrapped = true
loadLabel.BackgroundTransparency = 1
loadLabel.ZIndex = 11
loadLabel.Parent = loadingFrame

local isMenuLoaded = false
local isLoading = false

local menuFrame = Instance.new("Frame")
menuFrame.Name = "MenuFrame"
menuFrame.Size = UDim2.new(0, 280, 0, 480)
menuFrame.Position = UDim2.new(0, 20, 0, 145)
menuFrame.BackgroundColor3 = Color3.fromRGB(4, 12, 25)
menuFrame.Visible = false
menuFrame.Active = true
menuFrame.Parent = screenGui

local menuCorner = Instance.new("UICorner")
menuCorner.CornerRadius = UDim.new(0, 10)
menuCorner.Parent = menuFrame

local menuStroke = Instance.new("UIStroke")
menuStroke.Color = Color3.fromRGB(0, 230, 255)
menuStroke.Thickness = 2.5
menuStroke.Parent = menuFrame

makeDraggable(menuFrame)

toggleBtn.MouseButton1Click:Connect(function()
	if isLoading then return end
	if menuFrame.Visible then
		menuFrame.Visible = false
		loadingFrame.Visible = false
	else
		if not isMenuLoaded then
			isLoading = true
			loadingFrame.Position = menuFrame.Position
			loadingFrame.Visible = true
			loadLabel.TextTransparency = 0
			
			task.delay(1.2, function()
				loadingFrame.Visible = false
				menuFrame.Position = loadingFrame.Position
				menuFrame.Visible = true
				isMenuLoaded = true
				isLoading = false
			end)
		else
			menuFrame.Visible = true
		end
	end
end)

-- TAB BAR SETUP
local tabBar = Instance.new("Frame")
tabBar.Name = "TabBar"
tabBar.Size = UDim2.new(1, 0, 0, 35)
tabBar.BackgroundColor3 = Color3.fromRGB(2, 8, 16)
tabBar.Parent = menuFrame

local tabBarCorner = Instance.new("UICorner")
tabBarCorner.CornerRadius = UDim.new(0, 10)
tabBarCorner.Parent = tabBar

local function createTabBtn(text, posScale, sizeScale)
	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(sizeScale, 0, 1, 0)
	btn.Position = UDim2.new(posScale, 0, 0, 0)
	btn.Text = text
	btn.TextSize = 12
	btn.Font = Enum.Font.SourceSansBold
	btn.BackgroundColor3 = Color3.fromRGB(8, 20, 40)
	btn.TextColor3 = Color3.fromRGB(0, 180, 240)
	btn.Parent = tabBar
	
	local tStroke = Instance.new("UIStroke")
	tStroke.Color = Color3.fromRGB(0, 160, 220)
	tStroke.Thickness = 1
	tStroke.Parent = btn

	return btn
end

local tab1Btn = createTabBtn("Manipulation", 0, 0.33)
local tab2Btn = createTabBtn("Patterns", 0.33, 0.33)
local tab3Btn = createTabBtn("Utilities", 0.66, 0.34)

local function createTabContainer()
	local container = Instance.new("ScrollingFrame")
	container.Size = UDim2.new(1, 0, 1, -35)
	container.Position = UDim2.new(0, 0, 0, 35)
	container.CanvasSize = UDim2.new(0, 0, 0, 1050)
	container.BackgroundTransparency = 1
	container.ScrollBarThickness = 5
	container.ScrollBarImageColor3 = Color3.fromRGB(0, 230, 255)
	container.Visible = false
	container.Parent = menuFrame
	return container
end

local tab1 = createTabContainer()
local tab2 = createTabContainer()
local tab3 = createTabContainer()
tab1.Visible = true

local function switchTab(activeTab, activeBtn)
	tab1.Visible = false
	tab2.Visible = false
	tab3.Visible = false
	tab1Btn.TextColor3 = Color3.fromRGB(0, 140, 190)
	tab2Btn.TextColor3 = Color3.fromRGB(0, 140, 190)
	tab3Btn.TextColor3 = Color3.fromRGB(0, 140, 190)
	
	activeTab.Visible = true
	activeBtn.TextColor3 = Color3.fromRGB(0, 245, 255)
end

tab1Btn.MouseButton1Click:Connect(function() switchTab(tab1, tab1Btn) end)
tab2Btn.MouseButton1Click:Connect(function() switchTab(tab2, tab2Btn) end)
tab3Btn.MouseButton1Click:Connect(function() switchTab(tab3, tab3Btn) end)

--------------------------------------------------------------------------------
-- 4. STEPPER INPUT BUILDER
--------------------------------------------------------------------------------
local function createStepperInput(parent, labelText, defaultText, posY, step)
	step = step or 1
	
	local label = Instance.new("TextLabel")
	label.Size = UDim2.new(0, 240, 0, 14)
	label.Position = UDim2.new(0, 15, 0, posY)
	label.Text = labelText
	label.TextSize = 11
	label.Font = Enum.Font.SourceSansBold
	label.TextColor3 = Color3.fromRGB(0, 230, 255)
	label.TextXAlignment = Enum.TextXAlignment.Left
	label.BackgroundTransparency = 1
	label.Parent = parent

	local minusBtn = Instance.new("TextButton")
	minusBtn.Size = UDim2.new(0, 30, 0, 24)
	minusBtn.Position = UDim2.new(0, 15, 0, posY + 16)
	minusBtn.Text = "-"
	minusBtn.TextSize = 14
	minusBtn.Font = Enum.Font.SourceSansBold
	minusBtn.BackgroundColor3 = Color3.fromRGB(10, 30, 60)
	minusBtn.TextColor3 = Color3.fromRGB(0, 245, 255)
	minusBtn.Parent = parent

	local mCorner = Instance.new("UICorner")
	mCorner.CornerRadius = UDim.new(0, 4)
	mCorner.Parent = minusBtn

	local mStroke = Instance.new("UIStroke")
	mStroke.Color = Color3.fromRGB(0, 180, 240)
	mStroke.Thickness = 1
	mStroke.Parent = minusBtn

	local box = Instance.new("TextBox")
	box.Size = UDim2.new(0, 170, 0, 24)
	box.Position = UDim2.new(0, 50, 0, posY + 16)
	box.Text = defaultText
	box.TextSize = 12
	box.BackgroundColor3 = Color3.fromRGB(6, 18, 36)
	box.TextColor3 = Color3.fromRGB(255, 255, 255)
	box.Parent = parent

	local boxCorner = Instance.new("UICorner")
	boxCorner.CornerRadius = UDim.new(0, 4)
	boxCorner.Parent = box

	local boxStroke = Instance.new("UIStroke")
	boxStroke.Color = Color3.fromRGB(0, 200, 255)
	boxStroke.Thickness = 1.5
	boxStroke.Parent = box

	local plusBtn = Instance.new("TextButton")
	plusBtn.Size = UDim2.new(0, 30, 0, 24)
	plusBtn.Position = UDim2.new(0, 225, 0, posY + 16)
	plusBtn.Text = "+"
	plusBtn.TextSize = 14
	plusBtn.Font = Enum.Font.SourceSansBold
	plusBtn.BackgroundColor3 = Color3.fromRGB(10, 30, 60)
	plusBtn.TextColor3 = Color3.fromRGB(0, 245, 255)
	plusBtn.Parent = parent

	local pCorner = Instance.new("UICorner")
	pCorner.CornerRadius = UDim.new(0, 4)
	pCorner.Parent = plusBtn

	local pStroke = Instance.new("UIStroke")
	pStroke.Color = Color3.fromRGB(0, 180, 240)
	pStroke.Thickness = 1
	pStroke.Parent = plusBtn

	minusBtn.MouseButton1Click:Connect(function()
		local val = tonumber(box.Text) or 0
		box.Text = tostring(val - step)
	end)

	plusBtn.MouseButton1Click:Connect(function()
		local val = tonumber(box.Text) or 0
		box.Text = tostring(val + step)
	end)

	return box
end

-- TAB 1 INPUTS
local grabRadiusBox = createStepperInput(tab1, "Grab Radius (Auto-Obtain)", "100", 10, 10)
local heightBox     = createStepperInput(tab1, "Ring Height (Up/Down Offset)", "0", 55, 1)
local lrDistBox     = createStepperInput(tab1, "Left/Right Distance", "0", 100, 2)
local distanceBox   = createStepperInput(tab1, "Forward/Back Distance", "0", 145, 2)
local radiusBox     = createStepperInput(tab1, "Ring Radius (Size)", "15", 190, 2)
local speedBox      = createStepperInput(tab1, "Rotation Speed", "4", 235, 1)
local rotXBox       = createStepperInput(tab1, "Rotate X Angle", "90", 280, 15)
local rotYBox       = createStepperInput(tab1, "Rotate Y Angle", "0", 325, 15)
local rotZBox       = createStepperInput(tab1, "Rotate Z Angle", "0", 370, 15)

--------------------------------------------------------------------------------
-- 5. TAB 2 PATTERNS & EXPLOITERS RING ENGINE
--------------------------------------------------------------------------------
local selectedPattern = "Circle"
local patternList = {
	"Circle", "Wall", "Floor", "Sphere", "Square", "Triangle", 
	"Hands", "Arms", "Shield", "Infinity", "DNA", "Worm", 
	"Tornado", "6 7 Ring", "Square Box Ring", "Tsunami Ring", "Laser Beam",
	"Box", "Tower"
}

local patternHeader = Instance.new("TextLabel")
patternHeader.Size = UDim2.new(0, 240, 0, 20)
patternHeader.Position = UDim2.new(0, 15, 0, 10)
patternHeader.Text = "Pattern Mode: (Circle)"
patternHeader.Font = Enum.Font.SourceSansBold
patternHeader.TextColor3 = Color3.fromRGB(0, 245, 255)
patternHeader.BackgroundTransparency = 1
patternHeader.TextXAlignment = Enum.TextXAlignment.Left
patternHeader.Parent = tab2

local primeRingActivate

for i, pName in ipairs(patternList) do
	local pBtn = Instance.new("TextButton")
	pBtn.Size = UDim2.new(0, 115, 0, 28)
	local row = math.floor((i - 1) / 2)
	local col = (i - 1) % 2
	pBtn.Position = UDim2.new(0, 15 + (col * 125), 0, 35 + (row * 34))
	pBtn.Text = pName
	pBtn.TextSize = 11
	pBtn.Font = Enum.Font.SourceSansBold
	pBtn.BackgroundColor3 = Color3.fromRGB(10, 25, 50)
	pBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
	pBtn.Parent = tab2

	local pCorner = Instance.new("UICorner")
	pCorner.CornerRadius = UDim.new(0, 4)
	pCorner.Parent = pBtn

	local pStroke = Instance.new("UIStroke")
	pStroke.Color = Color3.fromRGB(0, 180, 240)
	pStroke.Thickness = 1
	pStroke.Parent = pBtn

	pBtn.MouseButton1Click:Connect(function()
		selectedPattern = pName
		patternHeader.Text = "Pattern Mode: (" .. pName .. ")"
		if primeRingActivate then
			primeRingActivate(true)
		end
	end)
end

local controlsYStart = 35 + (math.ceil(#patternList / 2) * 34) + 10

local blockSpinEnabled = true
local ringActive = false

local spinBtn = Instance.new("TextButton")
spinBtn.Name = "SpinButton"
spinBtn.Size = UDim2.new(0, 240, 0, 30)
spinBtn.Position = UDim2.new(0, 15, 0, controlsYStart)
spinBtn.Text = "BLOCK SPIN: ON"
spinBtn.TextSize = 10
spinBtn.Font = Enum.Font.SourceSansBold
spinBtn.BackgroundColor3 = Color3.fromRGB(0, 140, 210)
spinBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
spinBtn.Parent = tab2

local spinCorner = Instance.new("UICorner")
spinCorner.CornerRadius = UDim.new(0, 6)
spinCorner.Parent = spinBtn

local mainActivateBtn = Instance.new("TextButton")
mainActivateBtn.Name = "ActivateButton"
mainActivateBtn.Size = UDim2.new(0, 240, 0, 34)
mainActivateBtn.Position = UDim2.new(0, 15, 0, controlsYStart + 38)
mainActivateBtn.Text = "ACTIVATE RING"
mainActivateBtn.TextSize = 11
mainActivateBtn.Font = Enum.Font.SourceSansBold
mainActivateBtn.BackgroundColor3 = Color3.fromRGB(0, 190, 110)
mainActivateBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
mainActivateBtn.Parent = tab2

local actCorner = Instance.new("UICorner")
actCorner.CornerRadius = UDim.new(0, 6)
actCorner.Parent = mainActivateBtn

local ringLoop = nil
local grabbedParts = {}
local grabbedPartsSet = {}
local activeConstraints = {}

local function isPlayerPart(object)
	local character = player.Character
	if character and object:IsDescendantOf(character) then
		return true
	elseif object.Parent and (object.Parent:FindFirstChildOfClass("Humanoid") or object.Parent:IsA("Accessory")) then
		return true
	end
	return false
end

local function addSinglePartToRing(part)
	if not part or not part:IsA("BasePart") or part.Anchored or isPlayerPart(part) then return end
	if part.Name == "Terrain" or part.Name == "Baseplate" then return end
	if grabbedPartsSet[part] then return end

	pcall(function() part:SetNetworkOwner(player) end)
	pcall(function() part:Wake() end)

	grabbedPartsSet[part] = true
	table.insert(grabbedParts, part)

	part.CanCollide = false
	part.CanTouch = true
	part.Massless = true
	part.CustomPhysicalProperties = PhysicalProperties.new(0.001, 0, 0, 0, 0)

	local char = player.Character
	if char then
		for _, charPart in ipairs(char:GetDescendants()) do
			if charPart:IsA("BasePart") then
				local nc = Instance.new("NoCollisionConstraint")
				nc.Part0 = part
				nc.Part1 = charPart
				nc.Parent = part
				table.insert(activeConstraints, nc)
			end
		end
	end
end

local function scanAndGrabNearbyParts(centerPos, radius)
	local instances = Workspace:GetDescendants()
	for i = 1, #instances do
		local object = instances[i]
		if object:IsA("BasePart") and not object.Anchored and not grabbedPartsSet[object] then
			if not isPlayerPart(object) and object.Name ~= "Terrain" and object.Name ~= "Baseplate" then
				local dist = (object.Position - centerPos).Magnitude
				if dist <= radius then
					addSinglePartToRing(object)
				end
			end
		end
	end
end

local function stopRing()
	if ringLoop then
		ringLoop:Disconnect()
		ringLoop = nil
	end

	for _, constraint in ipairs(activeConstraints) do
		if constraint and constraint.Parent then constraint:Destroy() end
	end
	activeConstraints = {}

	for _, part in ipairs(grabbedParts) do
		if part and part.Parent and not part.Anchored then
			part.CanCollide = true
			part.Massless = false
			part.CustomPhysicalProperties = nil
		end
	end

	grabbedParts = {}
	grabbedPartsSet = {}
	ringActive = false
	mainActivateBtn.Text = "ACTIVATE RING"
	mainActivateBtn.BackgroundColor3 = Color3.fromRGB(0, 190, 110)
end

local digit6Points = {{0, 2}, {1, 2}, {2, 2}, {0, 1}, {0, 0}, {1, 0}, {2, 0}, {0, -1}, {2, -1}, {0, -2}, {1, -2}, {2, -2}}
local digit7Points = {{0, 2}, {1, 2}, {2, 2}, {2, 1}, {1, 0}, {1, -1}, {1, -2}}

primeRingActivate = function(keepParts)
	local character = player.Character
	if not character then return end
	local root = character:FindFirstChild("HumanoidRootPart")
	if not root then return end

	playScriptIntro("Exploiters Ring (" .. selectedPattern .. ")")

	local maxGrabDist = tonumber(grabRadiusBox.Text) or 100
	local rHeight     = tonumber(heightBox.Text) or 0
	local rLRDist     = tonumber(lrDistBox.Text) or 0
	local rDistance   = tonumber(distanceBox.Text) or 0
	local rRadius     = tonumber(radiusBox.Text) or 15
	local rSpeed      = tonumber(speedBox.Text) or 4
	local rx          = tonumber(rotXBox.Text) or 90
	local ry          = tonumber(rotYBox.Text) or 0
	local rz          = tonumber(rotZBox.Text) or 0

	if not keepParts or #grabbedParts == 0 then
		stopRing()
		scanAndGrabNearbyParts(root.Position, maxGrabDist)
	end

	if ringLoop then
		ringLoop:Disconnect()
		ringLoop = nil
	end

	ringActive = true
	mainActivateBtn.Text = "DEACTIVATE RING"
	mainActivateBtn.BackgroundColor3 = Color3.fromRGB(220, 40, 50)

	local startTime = os.clock()
	local lastScanTime = 0
	local smoothedCenterCFrame = root.CFrame

	ringLoop = RunService.PreSimulation:Connect(function(deltaTime)
		if not root or not root.Parent then
			stopRing()
			return
		end

		local now = os.clock()
		local liveGrabRadius = tonumber(grabRadiusBox.Text) or maxGrabDist
		
		if now - lastScanTime > 0.2 then
			lastScanTime = now
			scanAndGrabNearbyParts(root.Position, liveGrabRadius)
		end

		smoothedCenterCFrame = smoothedCenterCFrame:Lerp(root.CFrame, math.clamp(deltaTime * 25, 0.1, 1))

		local liveHeight   = tonumber(heightBox.Text) or rHeight
		local liveLR       = tonumber(lrDistBox.Text) or rLRDist
		local liveDistance = tonumber(distanceBox.Text) or rDistance
		local liveRadius   = tonumber(radiusBox.Text) or rRadius
		local liveSpeed    = tonumber(speedBox.Text) or rSpeed
		local liveRx       = tonumber(rotXBox.Text) or rx
		local liveRy       = tonumber(rotYBox.Text) or ry
		local liveRz       = tonumber(rotZBox.Text) or rz

		local t = (now - startTime) * liveSpeed
		local pMode = string.lower(selectedPattern)
		local rotationCFrame = CFrame.Angles(math.rad(liveRx), math.rad(liveRy), math.rad(liveRz))
		local numParts = #grabbedParts

		for i, part in ipairs(grabbedParts) do
			if part and part.Parent and not part.Anchored then
				part.CanCollide = false
				local angle = (i / math.max(numParts, 1)) * math.pi * 2
				local offset = Vector3.zero

				if pMode == "circle" then
					offset = Vector3.new(math.cos(angle + t) * liveRadius + liveLR, liveHeight, math.sin(angle + t) * liveRadius - liveDistance)
				elseif pMode == "wall" then
					local gridWidth = math.ceil(math.sqrt(numParts))
					local col = (i - 1) % gridWidth
					local row = math.floor((i - 1) / gridWidth)
					offset = Vector3.new((col - gridWidth / 2) * (liveRadius / 3) + liveLR, (row - gridWidth / 2) * (liveRadius / 3) + liveHeight, -liveDistance - 5)
				elseif pMode == "floor" then
					local gridWidth = math.ceil(math.sqrt(numParts))
					local col = (i - 1) % gridWidth
					local row = math.floor((i - 1) / gridWidth)
					offset = Vector3.new((col - gridWidth / 2) * (liveRadius / 3) + liveLR, -3 + liveHeight, (row - gridWidth / 2) * (liveRadius / 3) - liveDistance)
				elseif pMode == "sphere" then
					local phi = math.acos(-1 + (2 * i) / math.max(numParts, 1))
					local theta = math.sqrt(numParts * math.pi) * phi + t
					offset = Vector3.new(liveRadius * math.cos(theta) * math.sin(phi) + liveLR, liveRadius * math.sin(theta) * math.sin(phi) + liveHeight, liveRadius * math.cos(phi) - liveDistance)
				elseif pMode == "square" then
					local side = math.floor((i - 1) / (math.max(numParts, 1) / 4))
					local progress = ((i - 1) % (math.max(numParts, 1) / 4)) / (math.max(numParts, 1) / 4) * 2 - 1
					if side == 0 then offset = Vector3.new(progress * liveRadius + liveLR, liveHeight, liveRadius - liveDistance)
					elseif side == 1 then offset = Vector3.new(liveRadius + liveLR, liveHeight, -progress * liveRadius - liveDistance)
					elseif side == 2 then offset = Vector3.new(-progress * liveRadius + liveLR, liveHeight, -liveRadius - liveDistance)
					else offset = Vector3.new(-liveRadius + liveLR, liveHeight, progress * liveRadius - liveDistance) end
				elseif pMode == "triangle" then
					local side = math.floor((i - 1) / (math.max(numParts, 1) / 3))
					local progress = ((i - 1) % (math.max(numParts, 1) / 3)) / (math.max(numParts, 1) / 3)
					local a1 = math.pi * 2 / 3 * side
					local a2 = math.pi * 2 / 3 * (side + 1)
					local p1 = Vector3.new(math.cos(a1) * liveRadius + liveLR, liveHeight, math.sin(a1) * liveRadius - liveDistance)
					local p2 = Vector3.new(math.cos(a2) * liveRadius + liveLR, liveHeight, math.sin(a2) * liveRadius - liveDistance)
					offset = p1:Lerp(p2, progress)
				elseif pMode == "6 7 ring" then
					local isDigit6 = (i % 2 == 1)
					local pointList = isDigit6 and digit6Points or digit7Points
					local ptIndex = math.floor((i - 1) / 2) % #pointList + 1
					local pt = pointList[ptIndex]
					local xOffset = isDigit6 and (-liveRadius * 0.4) or (liveRadius * 0.4)
					offset = Vector3.new(xOffset + pt[1] * (liveRadius / 3.5) + liveLR, pt[2] * (liveRadius / 3.5) + liveHeight, -liveDistance - 4)
				else
					offset = Vector3.new(math.cos(angle + t) * liveRadius + liveLR, liveHeight, math.sin(angle + t) * liveRadius - liveDistance)
				end

				local targetCFrame = smoothedCenterCFrame * rotationCFrame * CFrame.new(offset)
				local velocityDelta = (targetCFrame.Position - part.Position)
				part.AssemblyLinearVelocity = root.AssemblyLinearVelocity + (velocityDelta * math.clamp(30 / (deltaTime * 60), 10, 80))

				if blockSpinEnabled then
					part.AssemblyAngularVelocity = Vector3.new(0, liveSpeed * 4, 0)
				else
					part.AssemblyAngularVelocity = Vector3.zero
				end
			end
		end
	end)
end

spinBtn.MouseButton1Click:Connect(function()
	blockSpinEnabled = not blockSpinEnabled
	if blockSpinEnabled then
		spinBtn.Text = "BLOCK SPIN: ON"
		spinBtn.BackgroundColor3 = Color3.fromRGB(0, 140, 210)
	else
		spinBtn.Text = "BLOCK SPIN: OFF"
		spinBtn.BackgroundColor3 = Color3.fromRGB(180, 80, 0)
	end
end)

mainActivateBtn.MouseButton1Click:Connect(function()
	if ringActive then
		stopRing()
	else
		primeRingActivate(false)
	end
end)

--------------------------------------------------------------------------------
-- 6. INSTANT PLATFORM ENGINE & ANIMATED IRON MAN NANOBOTS
--------------------------------------------------------------------------------

local function createUtilityBtn(parent, text, posY, callback)
	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(0, 240, 0, 32)
	btn.Position = UDim2.new(0, 15, 0, posY)
	btn.BackgroundColor3 = Color3.fromRGB(10, 30, 60)
	btn.Text = text
	btn.TextColor3 = Color3.fromRGB(0, 245, 255)
	btn.Font = Enum.Font.SourceSansBold
	btn.TextSize = 13
	btn.Parent = parent

	local bCorner = Instance.new("UICorner")
	bCorner.CornerRadius = UDim.new(0, 6)
	bCorner.Parent = btn

	local bStroke = Instance.new("UIStroke")
	bStroke.Color = Color3.fromRGB(0, 180, 240)
	bStroke.Thickness = 1
	bStroke.Parent = btn

	btn.MouseButton1Click:Connect(callback)
	return btn
end

local platformActive = false
local platformMode = "Normal" -- "Normal", "MicroNanobots", "Everywhere20"
local platform = nil
local assembledParts = {}
local targetY = nil

local heightStep = 10
local platformWidth = 10
local platformHeight = 1

local isUpHolding = false
local isDownHolding = false

local function playMetalClashSound(position)
	local sound = Instance.new("Sound")
	sound.SoundId = "rbxassetid://603523533"
	sound.Volume = 1.8
	sound.Pitch = math.random(90, 110) / 100
	
	local soundPart = Instance.new("Part")
	soundPart.Size = Vector3.new(0.1, 0.1, 0.1)
	soundPart.Position = position
	soundPart.Anchored = true
	soundPart.Transparency = 1
	soundPart.CanCollide = false
	soundPart.Parent = Workspace

	sound.Parent = soundPart
	sound:Play()
	
	task.delay(2, function()
		soundPart:Destroy()
	end)
end

local function destroyPlatform()
	platformActive = false
	if platform then
		platform:Destroy()
		platform = nil
	end
	for _, piece in ipairs(assembledParts) do
		if piece and piece.Parent then piece:Destroy() end
	end
	assembledParts = {}
	targetY = nil
end

local function spawnNormalPlatform(root)
	targetY = root.Position.Y - (3 + (platformHeight / 2))

	platform = Instance.new("Part")
	platform.Name = "VisualPlatform"
	platform.Size = Vector3.new(platformWidth, platformHeight, platformWidth)
	platform.CFrame = CFrame.new(root.Position.X, targetY, root.Position.Z)
	platform.Anchored = true
	platform.CanCollide = true
	platform.Material = Enum.Material.Neon
	platform.Color = Color3.fromRGB(0, 170, 255)
	platform.Transparency = 0.2
	platform.Parent = Workspace
	playMetalClashSound(platform.Position)
end

local function spawnMicroNanobotsPlatform(root)
	targetY = root.Position.Y - (3 + (platformHeight / 2))

	-- Immediate invisible collision base spawned
	platform = Instance.new("Part")
	platform.Name = "VisualPlatform"
	platform.Size = Vector3.new(platformWidth, platformHeight, platformWidth)
	platform.CFrame = CFrame.new(root.Position.X, targetY, root.Position.Z)
	platform.Anchored = true
	platform.CanCollide = true
	platform.Material = Enum.Material.Neon
	platform.Color = Color3.fromRGB(0, 230, 255)
	platform.Transparency = 0.8
	platform.Parent = Workspace

	local botCount = 80
	local animTime = 0.8

	-- Swarm Particle system streams upward live
	for i = 1, botCount do
		local nano = Instance.new("Part")
		nano.Size = Vector3.new(0.12, 0.12, 0.12)
		nano.Material = Enum.Material.Neon
		nano.Color = Color3.fromRGB(0, 255, 255)
		nano.Anchored = true
		nano.CanCollide = false

		local col = (i - 1) % 9
		local row = math.floor((i - 1) / 9)
		local gridX = ((col / 8) - 0.5) * platformWidth
		local gridZ = ((row / 8) - 0.5) * platformWidth

		nano.CFrame = CFrame.new(root.Position)
		nano.Parent = Workspace
		table.insert(assembledParts, nano)

		task.spawn(function()
			local elapsed = 0
			local spawnOffset = (i / botCount) * 0.2
			task.wait(spawnOffset)

			while elapsed < animTime and platformActive do
				local dt = RunService.RenderStepped:Wait()
				elapsed = elapsed + dt
				local prog = math.clamp(elapsed / animTime, 0, 1)

				if root and root.Parent then
					local footPos = root.Position - Vector3.new(0, 3, 0)
					local targetPos = Vector3.new(root.Position.X + gridX, targetY, root.Position.Z + gridZ)

					-- Swirling stream up into floor grid
					local angle = prog * math.pi * 8 + i
					local r = (1 - prog) * 2.5
					local px = footPos.X + (targetPos.X - footPos.X) * prog + math.cos(angle) * r
					local py = footPos.Y + (targetPos.Y - footPos.Y) * prog
					local pz = footPos.Z + (targetPos.Z - footPos.Z) * prog + math.sin(angle) * r

					nano.CFrame = CFrame.new(Vector3.new(px, py, pz))
				end
			end

			if nano and nano.Parent then
				nano.Transparency = 1
			end
		end)
	end

	task.delay(animTime + 0.2, function()
		if platformActive and platform then
			platform.Transparency = 0.2
			playMetalClashSound(platform.Position)
			for _, n in ipairs(assembledParts) do
				if n and n.Parent then n:Destroy() end
			end
			assembledParts = {}
		end
	end)
end

local function spawn20EverywherePlatform(root)
	targetY = root.Position.Y - (3 + (platformHeight / 2))

	platform = Instance.new("Part")
	platform.Name = "VisualPlatform"
	platform.Size = Vector3.new(platformWidth, platformHeight, platformWidth)
	platform.CFrame = CFrame.new(root.Position.X, targetY, root.Position.Z)
	platform.Anchored = true
	platform.CanCollide = false
	platform.Material = Enum.Material.Neon
	platform.Color = Color3.fromRGB(0, 170, 255)
	platform.Transparency = 1
	platform.Parent = Workspace

	local pieceCount = 20
	local finishedCount = 0

	for i = 1, pieceCount do
		local piece = Instance.new("Part")
		piece.Size = Vector3.new(platformWidth / 5, platformHeight, platformWidth / 4)
		piece.Material = Enum.Material.Metal
		piece.Color = Color3.fromRGB(30, 40, 50)
		piece.Anchored = true
		piece.CanCollide = false

		local fire = Instance.new("Fire")
		fire.Size = 6
		fire.Heat = 12
		fire.SecondaryColor = Color3.fromRGB(0, 220, 255)
		fire.Parent = piece

		local smoke = Instance.new("Smoke")
		smoke.Size = 2
		smoke.RiseVelocity = 5
		smoke.Color = Color3.fromRGB(100, 100, 100)
		smoke.Parent = piece

		local spawnDist = math.random(70, 120)
		local phi = math.random() * math.pi * 2
		local theta = math.random() * math.pi
		local startPos = root.Position + Vector3.new(
			spawnDist * math.sin(theta) * math.cos(phi),
			math.random(20, 80),
			spawnDist * math.sin(theta) * math.sin(phi)
		)

		piece.CFrame = CFrame.new(startPos)
		piece.Parent = Workspace
		table.insert(assembledParts, piece)

		task.spawn(function()
			local duration = 0.8 + (math.random() * 0.2)
			local elapsed = 0
			local randomSpinAxis = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)).Unit

			while elapsed < duration and platformActive do
				local dt = RunService.RenderStepped:Wait()
				elapsed = elapsed + dt
				local progress = math.clamp(elapsed / duration, 0, 1)

				if root and root.Parent then
					local col = (i - 1) % 4
					local row = math.floor((i - 1) / 4)
					local gridX = (col - 1.5) * (platformWidth / 4)
					local gridZ = (row - 2) * (platformWidth / 5)

					local targetPos = Vector3.new(root.Position.X + gridX, targetY, root.Position.Z + gridZ)
					local currentPos = startPos:Lerp(targetPos, TweenService:GetValue(progress, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out))
					
					local spinAngle = (1 - progress) * math.pi * 8
					piece.CFrame = CFrame.new(currentPos) * CFrame.fromAxisAngle(randomSpinAxis, spinAngle)
				end
			end

			if platformActive and piece and piece.Parent then
				fire:Destroy()
				smoke:Destroy()
				finishedCount = finishedCount + 1

				if finishedCount == pieceCount then
					playMetalClashSound(platform.Position)
					if platform then
						platform.CanCollide = true
						platform.Transparency = 0.2
					end
					for _, p in ipairs(assembledParts) do
						if p and p.Parent then p:Destroy() end
					end
					assembledParts = {}
				end
			end
		end)
	end
end

local function createPlatform()
	local character = player.Character
	if not character or not character:FindFirstChild("HumanoidRootPart") then return end

	destroyPlatform()
	platformActive = true
	local root = character.HumanoidRootPart

	if platformMode == "Normal" then
		spawnNormalPlatform(root)
	elseif platformMode == "MicroNanobots" then
		spawnMicroNanobotsPlatform(root)
	elseif platformMode == "Everywhere20" then
		spawn20EverywherePlatform(root)
	end
end

-- Platform Controls Panel inside Tab 3
local platformGroup = Instance.new("Frame")
platformGroup.Size = UDim2.new(0, 240, 0, 260)
platformGroup.Position = UDim2.new(0, 15, 0, 10)
platformGroup.BackgroundColor3 = Color3.fromRGB(6, 18, 36)
platformGroup.Parent = tab3

local pGroupCorner = Instance.new("UICorner")
pGroupCorner.CornerRadius = UDim.new(0, 6)
pGroupCorner.Parent = platformGroup

local modeBtn = Instance.new("TextButton")
modeBtn.Size = UDim2.new(0, 220, 0, 26)
modeBtn.Position = UDim2.new(0, 10, 0, 10)
modeBtn.BackgroundColor3 = Color3.fromRGB(15, 30, 60)
modeBtn.BorderColor3 = Color3.fromRGB(0, 180, 240)
modeBtn.Text = "MODE: NORMAL INSTANT"
modeBtn.TextColor3 = Color3.fromRGB(0, 245, 255)
modeBtn.Font = Enum.Font.GothamBold
modeBtn.TextSize = 10
modeBtn.Parent = platformGroup

modeBtn.MouseButton1Click:Connect(function()
	if platformMode == "Normal" then
		platformMode = "MicroNanobots"
		modeBtn.Text = "MODE: IRON MAN NANOBOTS"
		modeBtn.TextColor3 = Color3.fromRGB(0, 255, 180)
	elseif platformMode == "MicroNanobots" then
		platformMode = "Everywhere20"
		modeBtn.Text = "MODE: 20-PIECE FIRE/SPIN"
		modeBtn.TextColor3 = Color3.fromRGB(255, 200, 0)
	else
		platformMode = "Normal"
		modeBtn.Text = "MODE: NORMAL INSTANT"
		modeBtn.TextColor3 = Color3.fromRGB(0, 245, 255)
	end
end)

local togglePlatformBtn = Instance.new("TextButton")
togglePlatformBtn.Size = UDim2.new(0, 220, 0, 30)
togglePlatformBtn.Position = UDim2.new(0, 10, 0, 42)
togglePlatformBtn.BackgroundColor3 = Color3.fromRGB(20, 35, 60)
togglePlatformBtn.BorderColor3 = Color3.fromRGB(0, 170, 255)
togglePlatformBtn.Text = "ACTIVATE PLATFORM"
togglePlatformBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
togglePlatformBtn.Font = Enum.Font.GothamBold
togglePlatformBtn.TextSize = 11
togglePlatformBtn.Parent = platformGroup

togglePlatformBtn.MouseButton1Click:Connect(function()
	if platformActive then
		destroyPlatform()
		togglePlatformBtn.Text = "ACTIVATE PLATFORM"
		togglePlatformBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
	else
		playScriptIntro("Platform (" .. platformMode .. ")")
		createPlatform()
		togglePlatformBtn.Text = "DEACTIVATE PLATFORM"
		togglePlatformBtn.TextColor3 = Color3.fromRGB(255, 80, 80)
	end
end)

local upBtn = Instance.new("TextButton")
upBtn.Size = UDim2.new(0, 105, 0, 30)
upBtn.Position = UDim2.new(0, 10, 0, 78)
upBtn.BackgroundColor3 = Color3.fromRGB(20, 35, 60)
upBtn.BorderColor3 = Color3.fromRGB(0, 170, 255)
upBtn.Text = "UP ▲"
upBtn.TextColor3 = Color3.fromRGB(0, 200, 255)
upBtn.Font = Enum.Font.GothamBold
upBtn.TextSize = 12
upBtn.Parent = platformGroup

local downBtn = Instance.new("TextButton")
downBtn.Size = UDim2.new(0, 105, 0, 30)
downBtn.Position = UDim2.new(0, 125, 0, 78)
downBtn.BackgroundColor3 = Color3.fromRGB(20, 35, 60)
downBtn.BorderColor3 = Color3.fromRGB(0, 170, 255)
downBtn.Text = "DOWN ▼"
downBtn.TextColor3 = Color3.fromRGB(0, 200, 255)
downBtn.Font = Enum.Font.GothamBold
downBtn.TextSize = 12
downBtn.Parent = platformGroup

upBtn.MouseButton1Down:Connect(function()
	isUpHolding = true
	if targetY then targetY = targetY + heightStep end
end)
upBtn.MouseButton1Up:Connect(function() isUpHolding = false end)
upBtn.MouseLeave:Connect(function() isUpHolding = false end)

downBtn.MouseButton1Down:Connect(function()
	isDownHolding = true
	if targetY then targetY = targetY - heightStep end
end)
downBtn.MouseButton1Up:Connect(function() isDownHolding = false end)
downBtn.MouseLeave:Connect(function() isDownHolding = false end)

local heightInput = Instance.new("TextBox")
heightInput.Size = UDim2.new(0, 220, 0, 26)
heightInput.Position = UDim2.new(0, 10, 0, 116)
heightInput.BackgroundColor3 = Color3.fromRGB(15, 25, 45)
heightInput.BorderColor3 = Color3.fromRGB(0, 170, 255)
heightInput.PlaceholderText = "Step Height (Default: 10)"
heightInput.Text = "10"
heightInput.TextColor3 = Color3.fromRGB(255, 255, 255)
heightInput.Font = Enum.Font.Gotham
heightInput.TextSize = 11
heightInput.Parent = platformGroup

local widthInput = Instance.new("TextBox")
widthInput.Size = UDim2.new(0, 220, 0, 26)
widthInput.Position = UDim2.new(0, 10, 0, 148)
widthInput.BackgroundColor3 = Color3.fromRGB(15, 25, 45)
widthInput.BorderColor3 = Color3.fromRGB(0, 170, 255)
widthInput.PlaceholderText = "Platform Width (Default: 10)"
widthInput.Text = "10"
widthInput.TextColor3 = Color3.fromRGB(255, 255, 255)
widthInput.Font = Enum.Font.Gotham
widthInput.TextSize = 11
widthInput.Parent = platformGroup

local pHeightInput = Instance.new("TextBox")
pHeightInput.Size = UDim2.new(0, 220, 0, 26)
pHeightInput.Position = UDim2.new(0, 10, 0, 180)
pHeightInput.BackgroundColor3 = Color3.fromRGB(15, 25, 45)
pHeightInput.BorderColor3 = Color3.fromRGB(0, 170, 255)
pHeightInput.PlaceholderText = "Platform Thickness (Default: 1)"
pHeightInput.Text = "1"
pHeightInput.TextColor3 = Color3.fromRGB(255, 255, 255)
pHeightInput.Font = Enum.Font.Gotham
pHeightInput.TextSize = 11
pHeightInput.Parent = platformGroup

heightInput.FocusLost:Connect(function()
	local val = tonumber(heightInput.Text)
	if val and val > 0 then heightStep = val else heightInput.Text = tostring(heightStep) end
end)

widthInput.FocusLost:Connect(function()
	local val = tonumber(widthInput.Text)
	if val and val > 0 then
		platformWidth = val
		if platform then platform.Size = Vector3.new(platformWidth, platformHeight, platformWidth) end
	else
		widthInput.Text = tostring(platformWidth)
	end
end)

pHeightInput.FocusLost:Connect(function()
	local val = tonumber(pHeightInput.Text)
	if val and val > 0 then
		platformHeight = val
		if platform then platform.Size = Vector3.new(platformWidth, platformHeight, platformWidth) end
	else
		pHeightInput.Text = tostring(platformHeight)
	end
end)

RunService.RenderStepped:Connect(function(deltaTime)
	if not platformActive or not platform or not player.Character then return end
	local root = player.Character:FindFirstChild("HumanoidRootPart")
	if not root then return end

	if isUpHolding then
		targetY = targetY + (heightStep * deltaTime * 2)
	elseif isDownHolding then
		targetY = targetY - (heightStep * deltaTime * 2)
	end

	local currentPos = platform.Position
	local targetPos = Vector3.new(root.Position.X, targetY, root.Position.Z)
	platform.CFrame = CFrame.new(currentPos:Lerp(targetPos, 0.8))
end)

player.CharacterRemoving:Connect(function()
	destroyPlatform()
end)

--------------------------------------------------------------------------------
-- INTEGRATED ADVANCED TELEKINESIS ENGINE
--------------------------------------------------------------------------------
local grabDistance = 60
local holdDistance = 10
local throwSpeed = 150

local teleHeldPart = nil
local originalCanCollide = true
local teleRenderConnection = nil

local holdAttachment = nil
local partAttachment = nil
local alignPosition = nil
local alignOrientation = nil

local function isCharacterPart(part)
	if not part or not part:IsA("BasePart") then return true end
	if part:IsA("Terrain") then return true end

	for _, p in ipairs(Players:GetPlayers()) do
		if p.Character and part:IsDescendantOf(p.Character) then
			return true
		end
	end
	return false
end

local function getTargetedPart()
	local char = player.Character
	if not char or not char:FindFirstChild("HumanoidRootPart") then return nil end

	local camCFrame = camera.CFrame
	local camPos = camCFrame.Position
	local camLook = camCFrame.LookVector

	local closestPart = nil
	local closestDist = grabDistance

	for _, obj in ipairs(Workspace:GetDescendants()) do
		if obj:IsA("BasePart") and not obj.Anchored and not isCharacterPart(obj) then
			if not obj.Parent:FindFirstChildOfClass("Humanoid") then
				local toPart = obj.Position - camPos
				local dist = toPart.Magnitude

				if dist <= grabDistance then
					local dotProduct = camLook:Dot(toPart.Unit)
					if dotProduct > 0.3 then
						if dist < closestDist then
							closestDist = dist
							closestPart = obj
						end
					end
				end
			end
		end
	end

	return closestPart
end

local function cleanupPhysics()
	if teleRenderConnection then teleRenderConnection:Disconnect() teleRenderConnection = nil end
	if alignPosition then alignPosition:Destroy() alignPosition = nil end
	if alignOrientation then alignOrientation:Destroy() alignOrientation = nil end
	if holdAttachment then holdAttachment:Destroy() holdAttachment = nil end
	if partAttachment then partAttachment:Destroy() partAttachment = nil end
end

local releasePart

local function grabPart(part)
	teleHeldPart = part
	originalCanCollide = part.CanCollide
	part.CanCollide = false

	pcall(function() part:SetNetworkOwner(player) end)

	holdAttachment = Instance.new("Attachment")
	holdAttachment.Parent = Workspace.Terrain

	partAttachment = Instance.new("Attachment")
	partAttachment.Parent = part

	alignPosition = Instance.new("AlignPosition")
	alignPosition.Mode = Enum.PositionAlignmentMode.TwoAttachment
	alignPosition.Attachment0 = partAttachment
	alignPosition.Attachment1 = holdAttachment
	alignPosition.MaxForce = 50000
	alignPosition.MaxVelocity = 150
	alignPosition.Responsiveness = 40
	alignPosition.Parent = part

	alignOrientation = Instance.new("AlignOrientation")
	alignOrientation.Mode = Enum.OrientationAlignmentMode.TwoAttachment
	alignOrientation.Attachment0 = partAttachment
	alignOrientation.Attachment1 = holdAttachment
	alignOrientation.MaxTorque = 50000
	alignOrientation.Responsiveness = 40
	alignOrientation.Parent = part

	teleRenderConnection = RunService.RenderStepped:Connect(function()
		if teleHeldPart and teleHeldPart.Parent and not teleHeldPart.Anchored and not isCharacterPart(teleHeldPart) then
			if teleHeldPart.Material == Enum.Material.Water or teleHeldPart.Position.Y < Workspace.FallenPartsDestroyHeight then
				releasePart(false)
				return
			end

			local targetCFrame = camera.CFrame * CFrame.new(0, 0, -holdDistance)
			holdAttachment.WorldCFrame = targetCFrame
		else
			releasePart(false)
		end
	end)
end

releasePart = function(shouldThrow)
	cleanupPhysics()

	if teleHeldPart and teleHeldPart.Parent then
		teleHeldPart.CanCollide = originalCanCollide

		if shouldThrow then
			local throwDirection = camera.CFrame.LookVector
			teleHeldPart.AssemblyLinearVelocity = throwDirection * throwSpeed
			teleHeldPart.AssemblyAngularVelocity = Vector3.new(
				math.random(-20, 20),
				math.random(-20, 20),
				math.random(-20, 20)
			)
		end
	end

	teleHeldPart = nil
end

-- Telekinesis Menu Panel inside Tab 3
local teleGroup = Instance.new("Frame")
teleGroup.Size = UDim2.new(0, 240, 0, 180)
teleGroup.Position = UDim2.new(0, 15, 0, 280)
teleGroup.BackgroundColor3 = Color3.fromRGB(6, 18, 36)
teleGroup.Parent = tab3

local tGroupCorner = Instance.new("UICorner")
tGroupCorner.CornerRadius = UDim.new(0, 6)
tGroupCorner.Parent = teleGroup

local grabBtn = Instance.new("TextButton")
grabBtn.Size = UDim2.new(0, 220, 0, 36)
grabBtn.Position = UDim2.new(0, 10, 0, 10)
grabBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
grabBtn.Text = "GRAB / THROW PART"
grabBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
grabBtn.Font = Enum.Font.GothamBold
grabBtn.TextSize = 12
grabBtn.Parent = teleGroup

local grabCorner = Instance.new("UICorner")
grabCorner.CornerRadius = UDim.new(0, 6)
grabCorner.Parent = grabBtn

grabBtn.MouseButton1Click:Connect(function()
	if not teleHeldPart then
		local p = getTargetedPart()
		if p then
			grabPart(p)
			grabBtn.Text = "THROW PART!"
			grabBtn.BackgroundColor3 = Color3.fromRGB(255, 40, 40)
		end
	else
		releasePart(true)
		grabBtn.Text = "GRAB / THROW PART"
		grabBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
	end
end)

local speedLabel = Instance.new("TextLabel")
speedLabel.Size = UDim2.new(1, 0, 0, 16)
speedLabel.Position = UDim2.new(0, 0, 0, 52)
speedLabel.BackgroundTransparency = 1
speedLabel.Text = "Throw Speed: " .. throwSpeed
speedLabel.TextColor3 = Color3.fromRGB(0, 230, 255)
speedLabel.Font = Enum.Font.Gotham
speedLabel.TextSize = 11
speedLabel.Parent = teleGroup

local speedMinus = Instance.new("TextButton")
speedMinus.Size = UDim2.new(0, 105, 0, 26)
speedMinus.Position = UDim2.new(0, 10, 0, 72)
speedMinus.BackgroundColor3 = Color3.fromRGB(15, 30, 55)
speedMinus.Text = "- 25 Speed"
speedMinus.TextColor3 = Color3.fromRGB(255, 255, 255)
speedMinus.Font = Enum.Font.GothamBold
speedMinus.TextSize = 10
speedMinus.Parent = teleGroup

local speedPlus = Instance.new("TextButton")
speedPlus.Size = UDim2.new(0, 105, 0, 26)
speedPlus.Position = UDim2.new(0, 125, 0, 72)
speedPlus.BackgroundColor3 = Color3.fromRGB(15, 30, 55)
speedPlus.Text = "+ 25 Speed"
speedPlus.TextColor3 = Color3.fromRGB(255, 255, 255)
speedPlus.Font = Enum.Font.GothamBold
speedPlus.TextSize = 10
speedPlus.Parent = teleGroup

speedMinus.MouseButton1Click:Connect(function()
	throwSpeed = math.max(25, throwSpeed - 25)
	speedLabel.Text = "Throw Speed: " .. throwSpeed
end)

speedPlus.MouseButton1Click:Connect(function()
	throwSpeed = math.min(1000, throwSpeed + 25)
	speedLabel.Text = "Throw Speed: " .. throwSpeed
end)

local distLabel = Instance.new("TextLabel")
distLabel.Size = UDim2.new(1, 0, 0, 16)
distLabel.Position = UDim2.new(0, 0, 0, 106)
distLabel.BackgroundTransparency = 1
distLabel.Text = "Hold Distance: " .. holdDistance
distLabel.TextColor3 = Color3.fromRGB(0, 230, 255)
distLabel.Font = Enum.Font.Gotham
distLabel.TextSize = 11
distLabel.Parent = teleGroup

local distMinus = Instance.new("TextButton")
distMinus.Size = UDim2.new(0, 105, 0, 26)
distMinus.Position = UDim2.new(0, 10, 0, 126)
distMinus.BackgroundColor3 = Color3.fromRGB(15, 30, 55)
distMinus.Text = "Closer (-)"
distMinus.TextColor3 = Color3.fromRGB(255, 255, 255)
distMinus.Font = Enum.Font.GothamBold
distMinus.TextSize = 10
distMinus.Parent = teleGroup

local distPlus = Instance.new("TextButton")
distPlus.Size = UDim2.new(0, 105, 0, 26)
distPlus.Position = UDim2.new(0, 125, 0, 126)
distPlus.BackgroundColor3 = Color3.fromRGB(15, 30, 55)
distPlus.Text = "Farther (+)"
distPlus.TextColor3 = Color3.fromRGB(255, 255, 255)
distPlus.Font = Enum.Font.GothamBold
distPlus.TextSize = 10
distPlus.Parent = teleGroup

distMinus.MouseButton1Click:Connect(function()
	holdDistance = math.max(3, holdDistance - 2)
	distLabel.Text = "Hold Distance: " .. holdDistance
end)

distPlus.MouseButton1Click:Connect(function()
	holdDistance = math.min(60, holdDistance + 2)
	distLabel.Text = "Hold Distance: " .. holdDistance
end)

--------------------------------------------------------------------------------
-- NEON CROSSHAIR UTILITY
--------------------------------------------------------------------------------
createUtilityBtn(tab3, "Toggle Neon Crosshair", 470, function()
	playScriptIntro("Neon Crosshair")
	local oldX = playerGui:FindFirstChild("PrimeCrosshairGui")
	if oldX then
		oldX:Destroy()
	else
		local xGui = Instance.new("ScreenGui")
		xGui.Name = "PrimeCrosshairGui"
		xGui.ResetOnSpawn = false
		xGui.Parent = playerGui

		local center = Instance.new("Frame")
		center.Size = UDim2.new(0, 4, 0, 4)
		center.Position = UDim2.new(0.5, -2, 0.5, -2)
		center.BackgroundColor3 = Color3.fromRGB(0, 220, 255)
		center.BorderSizePixel = 0
		center.Parent = xGui

		local top = Instance.new("Frame")
		top.Size = UDim2.new(0, 2, 0, 12)
		top.Position = UDim2.new(0.5, -1, 0.5, -16)
		top.BackgroundColor3 = Color3.fromRGB(0, 220, 255)
		top.BorderSizePixel = 0
		top.Parent = xGui

		local bot = Instance.new("Frame")
		bot.Size = UDim2.new(0, 2, 0, 12)
		bot.Position = UDim2.new(0.5, -1, 0.5, 4)
		bot.BackgroundColor3 = Color3.fromRGB(0, 220, 255)
		bot.BorderSizePixel = 0
		bot.Parent = xGui

		local left = Instance.new("Frame")
		left.Size = UDim2.new(0, 12, 0, 2)
		left.Position = UDim2.new(0.5, -16, 0.5, -1)
		left.BackgroundColor3 = Color3.fromRGB(0, 220, 255)
		left.BorderSizePixel = 0
		left.Parent = xGui

		local right = Instance.new("Frame")
		right.Size = UDim2.new(0, 12, 0, 2)
		right.Position = UDim2.new(0.5, 4, 0.5, -1)
		right.BackgroundColor3 = Color3.fromRGB(0, 220, 255)
		right.BorderSizePixel = 0
		right.Parent = xGui
	end
end)

Features & Information

It 3 scirpts that kinda good. Ring scirpt. Crosshair scirpt and a telekenisis scirpt and also a platform scirpt.

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts