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)