
KeylessUniversal

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
-- Throw settings (default values)
local throwForce = 50
local throwUpForce = 10
-- GUI variables
local gui = nil
local frame = nil
-- Tool logic
local grabTool = Instance.new("Tool")
grabTool.Name = "Grab"
grabTool.RequiresHandle = false
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Size = Vector3.new(0.5, 0.5, 0.5)
handle.Transparency = 1
handle.CanCollide = false
handle.Parent = grabTool
-- GUI creation function
local function createGUI()
if gui then gui:Destroy() end
gui = Instance.new("ScreenGui")
gui.Name = "GrabToolGUI"
gui.ResetOnSpawn = false
gui.Parent = player.PlayerGui
frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 200, 0, 120)
frame.Position = UDim2.new(0, 10, 1, -130) -- Bottom left corner with padding
frame.AnchorPoint = Vector2.new(0, 1)
frame.BackgroundTransparency = 0.7
frame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
frame.Parent = gui
local title = Instance.new("TextLabel")
title.Text = "Throw Settings"
title.Size = UDim2.new(1, 0, 0, 30)
title.BackgroundTransparency = 1
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Parent = frame
-- Horizontal force slider
local forceLabel = Instance.new("TextLabel")
forceLabel.Text = "Throw Force: "..throwForce
forceLabel.Size = UDim2.new(1, 0, 0, 20)
forceLabel.Position = UDim2.new(0, 0, 0, 30)
forceLabel.BackgroundTransparency = 1
forceLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
forceLabel.Parent = frame
local forceSlider = Instance.new("TextBox")
forceSlider.Size = UDim2.new(0.9, 0, 0, 20)
forceSlider.Position = UDim2.new(0.05, 0, 0, 50)
forceSlider.Text = tostring(throwForce)
forceSlider.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
forceSlider.TextColor3 = Color3.fromRGB(255, 255, 255)
forceSlider.Parent = frame
-- Vertical force slider
local upForceLabel = Instance.new("TextLabel")
upForceLabel.Text = "Upward Force: "..throwUpForce
upForceLabel.Size = UDim2.new(1, 0, 0, 20)
upForceLabel.Position = UDim2.new(0, 0, 0, 70)
upForceLabel.BackgroundTransparency = 1
upForceLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
upForceLabel.Parent = frame
local upForceSlider = Instance.new("TextBox")
upForceSlider.Size = UDim2.new(0.9, 0, 0, 20)
upForceSlider.Position = UDim2.new(0.05, 0, 0, 90)
upForceSlider.Text = tostring(throwUpForce)
upForceSlider.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
upForceSlider.TextColor3 = Color3.fromRGB(255, 255, 255)
upForceSlider.Parent = frame
-- Value change handlers
forceSlider.FocusLost:Connect(function(enterPressed)
local newValue = tonumber(forceSlider.Text)
if newValue and newValue >= 0 and newValue <= 500 then
throwForce = newValue
forceLabel.Text = "Throw Force: "..throwForce
else
forceSlider.Text = tostring(throwForce)
end
end)
upForceSlider.FocusLost:Connect(function(enterPressed)
local newValue = tonumber(upForceSlider.Text)
if newValue and newValue >= 0 and newValue <= 100 then
throwUpForce = newValue
upForceLabel.Text = "Upward Force: "..throwUpForce
else
upForceSlider.Text = tostring(throwUpForce)
end
end)
end
-- Tool equip/unequip handlers
grabTool.Equipped:Connect(function()
createGUI()
end)
grabTool.Unequipped:Connect(function()
if gui then
gui:Destroy()
gui = nil
end
end)
-- Add tool to inventory
grabTool.Parent = player.Backpack
-- Rest of the tool logic remains the same
local mouse = player:GetMouse()
local heldModel = nil
local originalCollisions = {}
local bodyVelocity = nil
local function disableModelCollisions(model)
originalCollisions = {}
for _, part in ipairs(model:GetDescendants()) do
if part:IsA("BasePart") then
originalCollisions[part] = part.CanCollide
part.CanCollide = false
end
end
end
local function restoreModelCollisions()
for part, canCollide in pairs(originalCollisions) do
if part and part.Parent then
part.CanCollide = canCollide
end
end
originalCollisions = {}
end
local function pullItem(target)
if heldModel then return end
heldModel = target:FindFirstAncestorOfClass("Model") or target
disableModelCollisions(heldModel)
local primaryPart = heldModel.PrimaryPart or heldModel:FindFirstChildWhichIsA("BasePart")
if not primaryPart then return end
bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.Velocity = Vector3.new(0, 0, 0)
bodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bodyVelocity.Parent = primaryPart
game:GetService("RunService").Heartbeat:Connect(function()
if not heldModel or not bodyVelocity then return end
local handlePos = grabTool.Handle.Position
local partPos = primaryPart.Position
local direction = (handlePos - partPos).Unit * 50
bodyVelocity.Velocity = direction
end)
end
local function throwItem()
if not heldModel then return end
local primaryPart = heldModel.PrimaryPart or heldModel:FindFirstChildWhichIsA("BasePart")
if not primaryPart then return end
restoreModelCollisions()
if bodyVelocity then
bodyVelocity:Destroy()
bodyVelocity = nil
end
local camera = workspace.CurrentCamera
local throwDirection = (mouse.Hit.Position - camera.CFrame.Position).Unit
local throwVelocity = Instance.new("BodyVelocity")
throwVelocity.Velocity = throwDirection * throwForce + Vector3.new(0, throwUpForce, 0)
throwVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
throwVelocity.Parent = primaryPart
game:GetService("Debris"):AddItem(throwVelocity, 0.5)
heldModel = nil
end
grabTool.Activated:Connect(function()
if not grabTool.Parent:IsA("Model") then return end
if heldModel then
throwItem()
return
end
local target = mouse.Target
if target and not target.Anchored and not target:IsDescendantOf(character) then
pullItem(target)
end
end)
![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)


works with xeno but i cant get it to work in game which game does it work in?
@NuculearBomb24 The own creator it's me, this script is now patched and deleted for some errors, we can say the error occurred due to an unsuccessful translation, There will be an update soon