I've made a gun with the shooting based of the ROBLOX paintball gun. A script with a touched event is added to every fired bullet. In solo it works fine but online the bullet script takes 2-3 seconds to respond.
The gun's shooting:
local bullet = game.ReplicatedStorage.Bullet:Clone() bullet.Anchored=false bullet.CFrame = CFrame.new(spawnPos, targetPos) bullet.Velocity = v * 380 local damage = Instance.new("NumberValue", bullet) damage.Name="Damage" damage.Value=(game.ReplicatedStorage.Items[thisMag.Name].Damage.Value) local force = Instance.new("BodyForce") force.force = Vector3.new(0,bullet:GetMass()*192.6,0) force.Parent = bullet local ownerTag=game.ReplicatedStorage['pvptag']:Clone() ownerTag.Value=plr ownerTag.Parent=bullet local bulletScript = game.ReplicatedStorage.Scripts['BulletScript']:Clone() bulletScript.Parent=bullet bulletScript.Disabled=false print(bullet,bullet.Parent, bulletScript,bulletScript.Parent) bullet.Parent=workspace
Script inside bullet
print("BULLET SCRIPT INIT") --takes 2-3 seconds after firing to print this script.Parent.Touched:connect(function(p) print(p:GetFullName()) end)