
KeylessUniversal

--orbital strike cannon
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- Folder to hold spawned TNT
local ringFolder = Workspace:FindFirstChild("RingCubes") or Instance.new("Folder")
ringFolder.Name = "RingCubes"
ringFolder.Parent = Workspace
-- Function to create TNT cube
local function createTNT(position, parent)
local cube = Instance.new("Part")
cube.Size = Vector3.new(4,4,4)
cube.Material = Enum.Material.Plastic
cube.Color = Color3.fromRGB(200,0,0)
cube.Anchored = true
cube.Position = position
cube.Parent = parent
local stripe = Instance.new("Part")
stripe.Size = Vector3.new(4.1,1.3,4.1)
stripe.Anchored = true
stripe.Material = Enum.Material.Plastic
stripe.Color = Color3.fromRGB(255,255,255)
stripe.CFrame = cube.CFrame
stripe.Parent = cube
for _, face in pairs({"Front","Back","Left","Right"}) do
local surface = Instance.new("SurfaceGui")
surface.Face = Enum.NormalId[face]
surface.Adornee = stripe
surface.AlwaysOnTop = false
surface.Parent = stripe
local label = Instance.new("TextLabel")
label.Size = UDim2.fromScale(1,1)
label.BackgroundTransparency = 1
label.Text = "TNT"
label.TextColor3 = Color3.fromRGB(0,0,0)
label.TextStrokeColor3 = Color3.fromRGB(255,255,255)
label.TextStrokeTransparency = 0
label.TextScaled = true
label.Font = Enum.Font.Bodoni
label.Parent = surface
end
return cube, stripe
end
--------------------------------------------
-- CREATE TOOLS
--------------------------------------------
local function createTools()
--------------------------------------------
-- ORBITAL STRIKE CANNON
--------------------------------------------
local orbitalTool = Instance.new("Tool")
orbitalTool.Name = "Orbital Strike Cannon"
orbitalTool.RequiresHandle = false
orbitalTool.CanBeDropped = false
orbitalTool.Parent = player.Backpack
local orbitalCanFire = false
orbitalTool.Equipped:Connect(function()
orbitalCanFire = false
task.delay(0.2, function()
orbitalCanFire = true
end)
end)
orbitalTool.Activated:Connect(function()
if not orbitalCanFire then return end
if not player.Character then return end
local startPos = mouse.Hit.Position + Vector3.new(0,80,0) -- higher spawn
local ringCount = 7
local cubesPerRing = 25
local radiusStep = 16
local fallSpeed = 1.5
for r = 1, ringCount do
local radius = r * radiusStep + 10
for i = 1, cubesPerRing do
local angle = (2*math.pi / cubesPerRing) * i
local cube, stripe = createTNT(
startPos + Vector3.new(math.cos(angle)*radius, 0, math.sin(angle)*radius),
ringFolder
)
-- falling
task.spawn(function()
local pos = cube.Position
while cube.Parent do
pos -= Vector3.new(0, fallSpeed, 0)
cube.CFrame = CFrame.new(pos)
stripe.CFrame = cube.CFrame
local hit = Workspace:Raycast(pos, Vector3.new(0,-1,0))
if hit then
task.delay(2, function()
if cube.Parent then
local explosion = Instance.new("Explosion")
explosion.Position = cube.Position
explosion.BlastRadius = 25
explosion.BlastPressure = 0
explosion.DestroyJointRadiusPercent = 0
explosion.Parent = Workspace
cube:Destroy()
end
end)
break
end
RunService.RenderStepped:Wait()
end
end)
end
end
end)
-- Stabshot Tool
local stabTool = Instance.new("Tool")
stabTool.Name = "Stabshot"
stabTool.RequiresHandle = false
stabTool.CanBeDropped = false
stabTool.Parent = player.Backpack
local stabCanFire = false
stabTool.Equipped:Connect(function()
stabCanFire = false
task.delay(0.2, function() stabCanFire = true end)
end)
stabTool.Activated:Connect(function()
if not stabCanFire then return end
if not player.Character then return end
local spawnPos = mouse.Hit.Position
local beamHeight = 40
for h = 0, beamHeight-1 do
createTNT(spawnPos + Vector3.new(0,h*4,0), ringFolder)
end
task.delay(0.2, function()
for _, part in pairs(ringFolder:GetChildren()) do
if part.Position.Y >= spawnPos.Y and part.Position.Y <= spawnPos.Y + beamHeight*4 then
local explosion = Instance.new("Explosion")
explosion.Position = part.Position
explosion.BlastRadius = 10
explosion.BlastPressure = 0
explosion.DestroyJointRadiusPercent = 0
explosion.Parent = Workspace
part:Destroy()
end
end
end)
end)
end
-- Give tools on respawn
local function giveTools()
if player.Backpack then
createTools()
end
end
player.CharacterAdded:Connect(function()
task.wait(0.1) -- small wait to let Backpack exist
giveTools()
end)
-- Give tools immediately on first load
giveTools()



what games is it FE in?
Не работает на других(