Writing an FPS framework, part 2 (2020)

In the fps script you have the canFire, firing, reloading and ammo variables. Should the server keep track of this data as well to determine a shot’s validity?

your choice, ammo should stay synced between the 2 sides though

I don’t understand what the bullet IDs are intended to be used for.

IDs are intended to keep track of the bullet’s original stats to compare them against where the client/server hits the shot after casting it, stated below in my quoted message

The server can keep it’s own track of ammo data based on fire and reload requests from the client.
In the diagram you have indicated client to server communication when the bullet reaches it’s destination. What is it for? Isn’t the server’s hit detection enough?

it’s not. clients are often desynced between what the server and individual players see so for good hitreg you need to let the client deal damage sometimes, hence the communication

edit: looking at your understanding, the “only generates a visual effect upon hit” seems to be the only incorrect thing, the original person firing also sends a request to damage a humanoid if it hits one (passed through server verification as stated in the diagram and above)

2 Likes