
Key RequiredUniversal

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer
local Remote = ReplicatedStorage:WaitForChild("remotes"):WaitForChild("abilities")
local projectileSpeed = 250
local gravity = workspace.Gravity
local gui = Instance.new("ScreenGui")
gui.Parent = LocalPlayer:WaitForChild("PlayerGui")
local main = Instance.new("Frame", gui)
main.Size = UDim2.fromScale(0.3, 0.62)
main.Position = UDim2.fromScale(0.02, 0.18)
main.BackgroundColor3 = Color3.fromRGB(25,25,25)
main.Active = true
main.Draggable = true
local corner = Instance.new("UICorner", main)
corner.CornerRadius = UDim.new(0,12)
local title = Instance.new("TextLabel", main)
title.Size = UDim2.fromScale(1, 0.08)
title.Text = "Amy Hammer Aimer"
title.TextScaled = true
title.BackgroundTransparency = 1
title.TextColor3 = Color3.new(1,1,1)
local list = Instance.new("ScrollingFrame", main)
list.Size = UDim2.fromScale(0.9, 0.45)
list.Position = UDim2.fromScale(0.05, 0.1)
list.AutomaticCanvasSize = Enum.AutomaticSize.Y
list.CanvasSize = UDim2.new(0,0,0,0)
list.ScrollBarImageTransparency = 0
list.BackgroundColor3 = Color3.fromRGB(30,30,30)
list.BorderSizePixel = 0
local listCorner = Instance.new("UICorner", list)
listCorner.CornerRadius = UDim.new(0,10)
local layout = Instance.new("UIListLayout", list)
layout.Padding = UDim.new(0,8)
local partLabel = Instance.new("TextLabel", main)
partLabel.Size = UDim2.fromScale(0.4, 0.07)
partLabel.Position = UDim2.fromScale(0.05, 0.57)
partLabel.Text = "Target Part:"
partLabel.TextScaled = true
partLabel.BackgroundTransparency = 1
partLabel.TextColor3 = Color3.new(1,1,1)
local partButton = Instance.new("TextButton", main)
partButton.Size = UDim2.fromScale(0.45, 0.07)
partButton.Position = UDim2.fromScale(0.5, 0.57)
partButton.Text = "Head"
partButton.TextScaled = true
partButton.BackgroundColor3 = Color3.fromRGB(70,70,70)
partButton.TextColor3 = Color3.new(1,1,1)
local partCorner = Instance.new("UICorner", partButton)
partCorner.CornerRadius = UDim.new(0,10)
local speedLabel = Instance.new("TextLabel", main)
speedLabel.Size = UDim2.fromScale(0.4, 0.07)
speedLabel.Position = UDim2.fromScale(0.05, 0.66)
speedLabel.Text = "Speed:"
speedLabel.TextScaled = true
speedLabel.BackgroundTransparency = 1
speedLabel.TextColor3 = Color3.new(1,1,1)
local speedBox = Instance.new("TextBox", main)
speedBox.Size = UDim2.fromScale(0.45, 0.07)
speedBox.Position = UDim2.fromScale(0.5, 0.66)
speedBox.Text = tostring(projectileSpeed)
speedBox.PlaceholderText = "Enter speed"
speedBox.TextScaled = true
speedBox.BackgroundColor3 = Color3.fromRGB(50,50,50)
speedBox.TextColor3 = Color3.new(1,1,1)
local speedCorner = Instance.new("UICorner", speedBox)
speedCorner.CornerRadius = UDim.new(0,10)
local fireButton = Instance.new("TextButton", main)
fireButton.Size = UDim2.fromScale(0.9, 0.1)
fireButton.Position = UDim2.fromScale(0.05, 0.85)
fireButton.Text = "THROW"
fireButton.TextScaled = true
fireButton.BackgroundColor3 = Color3.fromRGB(60,160,60)
fireButton.TextColor3 = Color3.new(1,1,1)
local btnCorner = Instance.new("UICorner", fireButton)
btnCorner.CornerRadius = UDim.new(0,12)
local selectedPlayer = nil
local selectedPart = "Head"
partButton.MouseButton1Click:Connect(function()
if selectedPart == "Head" then
selectedPart = "HumanoidRootPart"
partButton.Text = "Torso"
else
selectedPart = "Head"
partButton.Text = "Head"
end
end)
speedBox.FocusLost:Connect(function()
local val = tonumber(speedBox.Text)
if val and val > 0 then
projectileSpeed = val
else
speedBox.Text = tostring(projectileSpeed)
end
end)
local function refreshList()
for _, child in ipairs(list:GetChildren()) do
if child:IsA("TextButton") then
child:Destroy()
end
end
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LocalPlayer then
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -10, 0, 40)
btn.Text = plr.DisplayName .. " (" .. plr.Name .. ")"
btn.TextScaled = true
btn.BackgroundColor3 = Color3.fromRGB(40,40,40)
btn.TextColor3 = Color3.new(1,1,1)
btn.Parent = list
local c = Instance.new("UICorner", btn)
c.CornerRadius = UDim.new(0,8)
btn.MouseButton1Click:Connect(function()
selectedPlayer = plr
for _, child in ipairs(list:GetChildren()) do
if child:IsA("TextButton") then
child.BackgroundColor3 = Color3.fromRGB(40,40,40)
end
end
btn.BackgroundColor3 = Color3.fromRGB(80,140,200)
end)
end
end
end
refreshList()
Players.PlayerAdded:Connect(refreshList)
Players.PlayerRemoving:Connect(refreshList)
fireButton.MouseButton1Click:Connect(function()
if not selectedPlayer then return end
if not selectedPlayer.Character then return end
local char = selectedPlayer.Character
local part = char:FindFirstChild(selectedPart)
if not part then return end
local targetPos = part.Position
local targetVel = part.AssemblyLinearVelocity
local origin = workspace.CurrentCamera.CFrame.Position
local distance = (targetPos - origin).Magnitude
local time = distance / projectileSpeed
local predictedPosition =
targetPos +
(targetVel * time) +
Vector3.new(0, (gravity * time * time) / 2, 0)
local args = {
"amyhammerThrow",
"active",
"amyHammerThrowCooldown",
predictedPosition
}
Remote:FireServer(unpack(args))
end)No comments yet for this script.



