Sonic exe hammer throw aimbot
Key RequiredUniversal

Sonic exe hammer throw aimbot

Universal ScriptAmymainfanAmymainfan 2K views 3.4K executesUpdated Jan 15, 2026
Unrated
00
Lua Script•152 lines (4355 chars)
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local LocalPlayer = Players.LocalPlayer
local Remote = ReplicatedStorage:WaitForChild("remotes"):WaitForChild("abilities")

-- SETTINGS
local prediction = 0.18 -- 0.12 = short, 0.18 = normal, 0.25+ = fast games

-- GUI
local gui = Instance.new("ScreenGui")
gui.Parent = LocalPlayer:WaitForChild("PlayerGui")

local main = Instance.new("Frame", gui)
main.Size = UDim2.fromScale(0.3, 0.55)
main.Position = UDim2.fromScale(0.02, 0.2)
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.1)
title.Text = "Hammer Targeter"
title.TextScaled = true
title.BackgroundTransparency = 1
title.TextColor3 = Color3.new(1,1,1)

-- Player list
local list = Instance.new("ScrollingFrame", main)
list.Size = UDim2.fromScale(0.9, 0.5)
list.Position = UDim2.fromScale(0.05, 0.12)
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)

-- Body part selector
local partLabel = Instance.new("TextLabel", main)
partLabel.Size = UDim2.fromScale(0.4, 0.08)
partLabel.Position = UDim2.fromScale(0.05, 0.64)
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.08)
partButton.Position = UDim2.fromScale(0.5, 0.64)
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)

-- Throw button
local fireButton = Instance.new("TextButton", main)
fireButton.Size = UDim2.fromScale(0.9, 0.12)
fireButton.Position = UDim2.fromScale(0.05, 0.78)
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)

-- Logic
local selectedPlayer = nil
local selectedPart = "Head"

-- Toggle body part
partButton.MouseButton1Click:Connect(function()
	if selectedPart == "Head" then
		selectedPart = "HumanoidRootPart"
		partButton.Text = "Torso"
	else
		selectedPart = "Head"
		partButton.Text = "Head"
	end
end)

-- Refresh player list
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)

-- THROW ONCE (with prediction)
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

	-- Predict where the player will be
	local predictedPosition = part.Position + (part.AssemblyLinearVelocity * prediction)

	local args = {
		"throwHammer",
		predictedPosition
	}

	Remote:FireServer(unpack(args))
end)

Features & Information

Choose that players in the gui to aimbot then press shoot. If u wanna inf just keep spamming.
#Aimbot#Sonic exe#sonicexe#Amy#Hammer throw

Community Comments (3)

AmymainfanAmymainfanJan 15, 2026

Comment if there's any problem I will change it to the new one

miosmiosFeb 10, 2026

is there any way to pick up the hammer after throwing using this or only cus when i threw more than 1 hammer by accident it didnt let me pick up the og hammer

Replying to @mios
AmymainfanAmymainfanMar 30, 2026

@muoletta use the pick up hammer remote event

More Scripts for Universal Scripts