make a variable in client Ammo = 0 and every time you fire Server make the variable also go up by one and then check if its <=30 so it cant fire Server if ammo is > 30 and once it reaches 30 just reset it
Example:
local ammo = 0
local remote = ???
if ammo <= 30 then
remote:FireServer(??)
ammo += 1
end
if ammo >= 30 then
ammo = 0
end