Feedback on new FPS gun system

Adding bullet holes + camera recoil and hopefully wallbangs soon

The only parts of the system made from scratch are the animations and scripting

Edit: Video preview might be set to 360p or lower by default, you can set it to 1080p if it’s low quality


It looks good except when

Sorry I have a bad english I don’t know how to stay that :thinking:


vos commentaires sont appréciés

(i don’t speak french)

1 Like

Hum so why do you speak in french? And how do you know I’m french? :thinking:


The flag on your character’s hat
Also I thought it would be easier for you to read
(feedback appreciated :+1:)


Haha but the flag is the United Kingdom flag, not the french flag! But I agree it’s the same colors.


Add some effects for telegraphing the gunshots,perhaps make some smoke come out of the muzzle or even a tiny spark,looks very boring.I get that you might want to go after realistic guns,but a majority of the time realism doesn’t work effectively in games.


I planned on adding a muzzle flash on the front, but smoke is another thing that could be added
Now that you point it out, it does look pretty boring. Thank you for the feedback

Looks amazing so far! Really good job.


Not much to say, there isn’t really anything to criticize, so I’ll just suggest some things:

  1. Add a muzzle flash particle
  2. Make the fire sound’s pitch random Tip: you can’t do this with math.random, do Sound.PlaybackSpeed =,1.1)
  3. Add some recoil as you said
  4. Add directional and dynamic material bullet hole particles
  5. Add weapon bobbing when you walk around
  6. Make the fire sound not cut the last sound off

That’s about all I can think of. Good job so far!


5 is already added, although it’s not displayed in the video very much
Just finished adding 1 and 3 about 5 minutes ago, and number 2 is something I had no idea was possible without sounding weird so that’s definitely a good tip

working on the server side of things right now, so next thing being added will be fixing the sound effects plus bullet holes

thank you for your feedback :+1:


Updated version


Very nice! You should still add some particles and sounds when the wall is hit, though.

1 Like

Particles and sounds where the bullets hit are both very good ideas, but there’s one issue

The particle or sound would have to only be available on the client of the person who shot the bullet (Unless I’m missing something)

I would have to make a part at the point where the bullet hits, then add a sound and particle effects to that part which can cause lag to other users when hundreds of people are shooting at the same time. Worst case scenario, an exploiter could spawn in a ton of particle effects and crash a game or use it as a lag switch

I will add this on the client, but if you have a more efficient idea to making effects without lagging the game, I’m open to ideas

I assume you probably already have a remote event for firing (because you need to fire the raycast, damage, etc.), create another one for particles and sounds, then, on the server, fire that remote to all players with all of the parameters, like position or gun name.

In a localscript, connect to OnClientEvent for that remote, then create the particles and sounds.

This is what many gun frameworks do, and it works really well.

Isn’t that the same thing as spawning a part on the server? It’s just using a remote event to individually spawn the part on each person’s client, right?

Yes, but, the server doesn’t waste resources spawning the sounds or particles.

Then the server wouldn’t lag, but the clients could lag right?

They could, but it’s very unlikely due to how optimized sounds and particles are. If they do, you can always add some optimization.

A technique could be using magnitude to see if the particle is a certain amount of studs away from the character, and if it’s higher then that value, disable it. You could also have an option in your games settings to disable all particles.

That’s true, I could just limit how many parts are able to spawned at one time. And allowing it to be disabled in settings would be a good idea.

Anyways, I’ll work on adding this. Thanks for the feedback :+1:

1 Like