
KeylessUniversal

-- made by gaming (recommend some games may not support but its a version of no perma-death, good luck!)
local ORBIT_RADIUS = 6
local ORBIT_HEIGHT = 3
local ORBIT_SPEED = 14
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local LocalPlayer = Players.LocalPlayer
local ORBIT_START_POS = nil
repeat task.wait() until LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
ORBIT_START_POS = LocalPlayer.Character.HumanoidRootPart.CFrame
local gui = Instance.new("ScreenGui", game.CoreGui)
gui.Name = "OrbitGui"
gui.ResetOnSpawn = false
local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0, 200, 0, 100)
frame.Position = UDim2.new(0, 20, 0.5, -50)
frame.BackgroundColor3 = Color3.new(0, 0, 0)
frame.BackgroundTransparency = 0.3
frame.Draggable = true
frame.Active = true
local radiusLabel = Instance.new("TextLabel", frame)
radiusLabel.Size = UDim2.new(1, 0, 0, 20)
radiusLabel.Text = "Radius"
radiusLabel.TextColor3 = Color3.new(1, 1, 1)
radiusLabel.BackgroundTransparency = 1
local radiusBox = Instance.new("TextBox", frame)
radiusBox.Position = UDim2.new(0, 0, 0, 20)
radiusBox.Size = UDim2.new(1, 0, 0, 20)
radiusBox.Text = tostring(ORBIT_RADIUS)
local speedLabel = Instance.new("TextLabel", frame)
speedLabel.Position = UDim2.new(0, 0, 0, 40)
speedLabel.Size = UDim2.new(1, 0, 0, 20)
speedLabel.Text = "Speed"
speedLabel.TextColor3 = Color3.new(1, 1, 1)
speedLabel.BackgroundTransparency = 1
local speedBox = Instance.new("TextBox", frame)
speedBox.Position = UDim2.new(0, 0, 0, 60)
speedBox.Size = UDim2.new(1, 0, 0, 20)
speedBox.Text = tostring(ORBIT_SPEED)
radiusBox.FocusLost:Connect(function()
local val = tonumber(radiusBox.Text)
if val then ORBIT_RADIUS = val end
end)
speedBox.FocusLost:Connect(function()
local val = tonumber(speedBox.Text)
if val then ORBIT_SPEED = val end
end)
local blocks = {}
local orbitTick = 0
local torso = nil
local character = nil
local function getTorso()
character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
torso = character:FindFirstChild("UpperTorso") or character:FindFirstChild("Torso") or character:FindFirstChild("HumanoidRootPart")
end
local function createBlock(pos)
local part = Instance.new("Part")
part.Size = Vector3.new(2, 2, 2)
part.Anchored = false
part.CanCollide = false
part.Transparency = 1
part.BrickColor = BrickColor.new("Really red")
part.Position = pos
part.Material = Enum.Material.Neon
part:SetAttribute("AllowSleep", false)
part.CustomPhysicalProperties = PhysicalProperties.new(0.3, 0.3, 0.3)
part.Parent = Workspace
return part
end
local function attachBlockToHat(block, hatHandle)
for _, v in ipairs(hatHandle:GetChildren()) do
if v:IsA("Attachment") or v:IsA("AlignPosition") or v:IsA("AlignOrientation") then
v:Destroy()
end
end
for _, v in ipairs(block:GetChildren()) do
if v:IsA("Attachment") then
v:Destroy()
end
end
local att1 = Instance.new("Attachment", block)
local att2 = Instance.new("Attachment", hatHandle)
local alignPos = Instance.new("AlignPosition", hatHandle)
alignPos.Attachment0 = att2
alignPos.Attachment1 = att1
alignPos.MaxForce = 1e9
alignPos.Responsiveness = 200
alignPos.RigidityEnabled = false
local alignOri = Instance.new("AlignOrientation", hatHandle)
alignOri.Attachment0 = att2
alignOri.Attachment1 = att1
alignOri.MaxTorque = 1e9
alignOri.Responsiveness = 200
alignOri.RigidityEnabled = false
local bv = Instance.new("BodyVelocity", block)
bv.MaxForce = Vector3.new(1e9, 1e9, 1e9)
bv.Velocity = Vector3.zero
end
local function refreshOrbit()
for _, b in ipairs(blocks) do
if b.block then b.block:Destroy() end
end
blocks = {}
getTorso()
local accessories = {}
for _, v in ipairs(character:GetChildren()) do
if v:IsA("Accessory") and v:FindFirstChild("Handle") then
table.insert(accessories, v)
end
end
for i, acc in ipairs(accessories) do
local handle = acc:FindFirstChild("Handle")
local block = createBlock(handle.Position)
attachBlockToHat(block, handle)
blocks[i] = {block = block, handle = handle, index = i, total = #accessories}
end
end
getTorso()
refreshOrbit()
local hum = character:FindFirstChildOfClass("Humanoid")
if hum then hum.Health = 0 end
RunService.Heartbeat:Connect(function(dt)
if not torso then return end
orbitTick += dt
for _, b in ipairs(blocks) do
local i, total = b.index, b.total
local angle = (2 * math.pi / total) * i + orbitTick * ORBIT_SPEED
local offset = Vector3.new(math.cos(angle) * ORBIT_RADIUS, ORBIT_HEIGHT, math.sin(angle) * ORBIT_RADIUS)
local goalPos = torso.Position + offset
local block = b.block
local bv = block:FindFirstChildOfClass("BodyVelocity")
if bv then
local dir = (goalPos - block.Position)
if dir.Magnitude > 0.1 then
bv.Velocity = dir.Unit * 35
else
bv.Velocity = Vector3.zero
end
end
end
end)
task.spawn(function()
while true do
for _, b in pairs(blocks) do
local block = b.block
local handle = b.handle
if block and handle then
for _, v in ipairs(handle:GetChildren()) do
if v:IsA("AlignPosition") or v:IsA("AlignOrientation") then v:Destroy() end
end
for _, v in ipairs(block:GetChildren()) do
if v:IsA("Attachment") then v:Destroy() end
end
local att1 = Instance.new("Attachment", block)
local att2 = Instance.new("Attachment", handle)
local alignPos = Instance.new("AlignPosition", handle)
alignPos.Attachment0 = att2
alignPos.Attachment1 = att1
alignPos.MaxForce = 1e9
alignPos.Responsiveness = 200
alignPos.RigidityEnabled = false
local alignOri = Instance.new("AlignOrientation", handle)
alignOri.Attachment0 = att2
alignOri.Attachment1 = att1
alignOri.MaxTorque = 1e9
alignOri.Responsiveness = 200
alignOri.RigidityEnabled = false
end
end
task.wait(0.3)
end
end)
LocalPlayer.CharacterAdded:Connect(function(char)
character = char
local hum = char:WaitForChild("Humanoid", 5)
local hrp = nil
repeat task.wait()
hrp = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso")
until hum and hrp and hum.Health > 0
task.wait(0.3)
if ORBIT_START_POS then
hrp.CFrame = ORBIT_START_POS
end
task.wait(0.5)
hum.Health = 0
task.wait(0.5)
refreshOrbit()
end)
local camPart = Instance.new("Part", Workspace)
camPart.Anchored = true
camPart.CanCollide = false
camPart.Size = Vector3.new(1, 1, 1)
camPart.CFrame = ORBIT_START_POS
camPart.Transparency = 1
camPart.BrickColor = BrickColor.new("Lime green")
Workspace.CurrentCamera.CameraSubject = camPart
Workspace.CurrentCamera.CameraType = Enum.CameraType.Attach
local playerLabel = Instance.new("TextLabel", frame)
playerLabel.Position = UDim2.new(0, 0, 1, 0)
playerLabel.Size = UDim2.new(1, 0, 0, 20)
playerLabel.Text = "Select Player"
playerLabel.TextColor3 = Color3.new(1, 1, 1)
playerLabel.BackgroundTransparency = 1
local playerDropdown = Instance.new("TextButton", frame)
playerDropdown.Position = UDim2.new(0, 0, 1, 20)
playerDropdown.Size = UDim2.new(1, 0, 0, 20)
playerDropdown.Text = LocalPlayer.Name
playerDropdown.TextColor3 = Color3.new(1, 1, 1)
playerDropdown.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
local selectedPlayer = LocalPlayer
local dropdownOpen = false
local menu
local function createDropdownMenu()
if menu then menu:Destroy() end
menu = Instance.new("ScrollingFrame", frame)
menu.Name = "DropdownMenu"
menu.Position = UDim2.new(0, 0, 1, 40)
menu.Size = UDim2.new(1, 0, 0, 120)
menu.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
menu.BorderSizePixel = 0
menu.CanvasSize = UDim2.new(0, 0, 0, 20 * #Players:GetPlayers())
menu.ScrollBarThickness = 6
menu.VerticalScrollBarInset = Enum.ScrollBarInset.Always
local layout = Instance.new("UIListLayout", menu)
layout.SortOrder = Enum.SortOrder.LayoutOrder
for i, p in ipairs(Players:GetPlayers()) do
local btn = Instance.new("TextButton", menu)
btn.Size = UDim2.new(1, 0, 0, 20)
btn.Text = p.Name
btn.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
btn.TextColor3 = Color3.new(1, 1, 1)
btn.BorderSizePixel = 0
btn.MouseButton1Click:Connect(function()
selectedPlayer = p
playerDropdown.Text = p.Name
menu:Destroy()
dropdownOpen = false
end)
end
end
playerDropdown.MouseButton1Click:Connect(function()
if dropdownOpen then
if menu then menu:Destroy() end
dropdownOpen = false
else
createDropdownMenu()
dropdownOpen = true
end
end)
-- Modified attachBlockToHat with extreme force & no shake
local function attachBlockToHat(block, hatHandle)
for _, v in ipairs(hatHandle:GetChildren()) do
if v:IsA("Attachment") or v:IsA("AlignPosition") or v:IsA("AlignOrientation") then
v:Destroy()
end
end
for _, v in ipairs(block:GetChildren()) do
if v:IsA("Attachment") then
v:Destroy()
end
end
local att1 = Instance.new("Attachment", block)
local att2 = Instance.new("Attachment", hatHandle)
local alignPos = Instance.new("AlignPosition", hatHandle)
alignPos.Attachment0 = att2
alignPos.Attachment1 = att1
alignPos.MaxForce = 1e12 -- insane force
alignPos.Responsiveness = math.huge -- instant snap
alignPos.RigidityEnabled = true -- no shake
local alignOri = Instance.new("AlignOrientation", hatHandle)
alignOri.Attachment0 = att2
alignOri.Attachment1 = att1
alignOri.MaxTorque = 1e12 -- insane torque
alignOri.Responsiveness = math.huge -- instant snap
alignOri.RigidityEnabled = true -- no shake
if block:FindFirstChild("BodyVelocity") then
block.BodyVelocity:Destroy()
end
local bv = Instance.new("BodyVelocity", block)
bv.MaxForce = Vector3.new(1e12, 1e12, 1e12) -- extreme force velocity
bv.Velocity = Vector3.zero
end
-- Orbit update follows selected player
RunService.Heartbeat:Connect(function(dt)
if not selectedPlayer.Character or not selectedPlayer.Character:FindFirstChild("HumanoidRootPart") then return end
torso = selectedPlayer.Character:FindFirstChild("UpperTorso") or selectedPlayer.Character:FindFirstChild("Torso") or selectedPlayer.Character:FindFirstChild("HumanoidRootPart")
if not torso then return end
orbitTick += dt
for _, b in ipairs(blocks) do
local i, total = b.index, b.total
local angle = (2 * math.pi / total) * i + orbitTick * ORBIT_SPEED
local offset = Vector3.new(math.cos(angle) * ORBIT_RADIUS, ORBIT_HEIGHT, math.sin(angle) * ORBIT_RADIUS)
local goalPos = torso.Position + offset
local block = b.block
local bv = block:FindFirstChildOfClass("BodyVelocity")
if bv then
local dir = (goalPos - block.Position)
if dir.Magnitude > 0.1 then
bv.Velocity = dir.Unit * 35
else
bv.Velocity = Vector3.zero
end
end
end
end)No comments yet for this script.



