local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local player = Players.LocalPlayer -- Create the RemoteEvent if your game doesn't already have one local shootEvent = ReplicatedStorage:FindFirstChild("ShootBall") if not shootEvent then shootEvent = Instance.new("RemoteEvent") shootEvent.Name = "ShootBall" shootEvent.Parent = ReplicatedStorage end -- Shooting settings local PERFECT_WINDOW = 0.15 local SHOT_POWER = 70 local function shoot() -- Simulate perfect timing local releaseTime = 0 if math.abs(releaseTime) <= PERFECT_WINDOW then shootEvent:FireServer("Perfect", SHOT_POWER) else shootEvent:FireServer("Normal", SHOT_POWER) end end -- Example: press E to shoot game:GetService("UserInputService").InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.E then shoot() end end)