Hi there
This may (or may not) be of interest to some of the modders here. I have recently been messing around with a suppression mechanic in Battlefield 2.
I spawn an invisible sphere whenever a bullet hits the ground. I give the bullet a detonation, which has an effect. The effect has a spawner, which spawns in the invisible sphere.
The sphere has a material defintion with "Material.penetrationDeviation 0.07". This bends the bullets slightly which means you miss more when shooting through the sphere.
As far as I know there is no way to effect the aim of a player except when that player moves as defined in the SoldierDeviationComp of the weapon tweak file. The method described above indirectly changes the soldiers deviation instead.
A demo video of the method is here:
https://www.youtube.com/watch?v=28YwTN8qCr4
The TOW objects in the first part are just to show how many spheres are being spawned. Read the video description for more information.
Suppression effect using material bullet deviation
- Mats391
- PR:BF2 Lead Developer
- Posts: 7643
- Joined: 2010-08-06 18:06
Re: Suppression effect using material bullet deviation
This is a real interesting concept for implementing deviation from suppression with vanilla bf2 coding. However, I fear there might be some issues with it.

- I assume you use impact effects to spawn the spheres? This would mean this concept does not work as effects do not exist on dedicated server. As such this only works on local
- Even if you could spawn the spheres on dedicated, one sphere per impact would quickly deteriorate the performance of the server. Instead of spawning one per impact, it would be better to have one per player, around the player
- Overlapping sphere, aka lots of bullets hitting, would stack up the deviation. This might be intended to have lots of bullets suppress more, but with something like MG3 shooting at you, there would be so many spheres your shots would go anywhere but where you aim
- We are actually investigating to trigger suppression by bullets flying near and past you, not just those impacting near you. That would also not work with this

Mineral: TIL that Wire-guided missiles actually use wire
-
staylor18
- Posts: 15
- Joined: 2020-03-04 18:27
Re: Suppression effect using material bullet deviation
Hi Mats391
In answer to your statements:
1. I have had this working in a LAN game. The spawner is from an effect. Are you saying that if somebody deletes the effect from their _client then they will not get the effect, so will not be suppressed?
2. I did have the problem of 1 sphere per impact, which was crazy on a 600rpm gun. That is 10 spheres per second. By creating a random length on the effect I got the spheres to average out about 1 every second.
3. By having only 1 sphere per second (on average) the spheres do not stack too much. Also, when the sphere disappears it "explodes" with a damage that only hurts other spheres, also reducing the stacking effect.
4. Yes, you are correct there. This relies on an impact near the player. The radius of the sphere is about 1.6m (3.2 metres diameter).
There is a previous video where some of the above issues are fixed here:
https://www.youtube.com/watch?v=P96jdyTADq0
Would there be a way to make the sphere work on a dedicated server? That is, how else do I trigger the spawner?
How are you planning to do your suppression system? It is a shame there was no mechanism to have deviation change other than soldier movement.
Could you perhaps make damage create a very small fake "player input", like moving backwards for 0.01 seconds that would cause the deviation to change?
In answer to your statements:
1. I have had this working in a LAN game. The spawner is from an effect. Are you saying that if somebody deletes the effect from their _client then they will not get the effect, so will not be suppressed?
2. I did have the problem of 1 sphere per impact, which was crazy on a 600rpm gun. That is 10 spheres per second. By creating a random length on the effect I got the spheres to average out about 1 every second.
3. By having only 1 sphere per second (on average) the spheres do not stack too much. Also, when the sphere disappears it "explodes" with a damage that only hurts other spheres, also reducing the stacking effect.
4. Yes, you are correct there. This relies on an impact near the player. The radius of the sphere is about 1.6m (3.2 metres diameter).
There is a previous video where some of the above issues are fixed here:
https://www.youtube.com/watch?v=P96jdyTADq0
Would there be a way to make the sphere work on a dedicated server? That is, how else do I trigger the spawner?
How are you planning to do your suppression system? It is a shame there was no mechanism to have deviation change other than soldier movement.
Could you perhaps make damage create a very small fake "player input", like moving backwards for 0.01 seconds that would cause the deviation to change?
-
Grump/Gump.45
- Posts: 637
- Joined: 2018-12-15 21:35
Re: Suppression effect using material bullet deviation
Can we put every single suppression whoosh noise on YouTube under a DEV or the Project Reality channel? Just heard a whoosh past my head in game, maybe the refinement of suppression is to make it have more noises that get you moving, shake you up nervously, frustratedly. It already does, but make it even more, harsher snaps.
1 Man per piece of cover, Move cover to cover. In view of each other to save each other by shooting, distraction, division of enemy attention and ammo. 1 man hit per RPG/tank shell/mortar spread formation full time. Edge of cap zone. Use camouflage, police up each others exposure, no man seen sticking out. Scan aggressively with eyes and ears for anything suspect, even for birds disturbed to fly out of trees
-
Grump/Gump.45
- Posts: 637
- Joined: 2018-12-15 21:35
Re: Suppression effect using material bullet deviation
Like focus on the sound design to make people panic, jump in their real life bodies, instantly tense up, heart rate, make them not want to peek again. It already happens, but needs to be a sharper noise.
Maybe, BIG maybe because while realistic might not be good for game increasing wounded.
Shrapnel from explosions make noise, but also bullets that impact within 1 meter of you tend to send small bits of shrapnel. Could make it 1% health per impact within 1 meter or it could justify doing .01% health so you get red edges on screen without losing 1% health until 100 bullets have impacted within 1 meter of you on hard surfaces that don't absorb bullets.
If you want that to be 50 bullets to 1% health make it cost .02% per close impact up so it adds up.
Adding bullet shrapnel effect from close impact suppression on certain hard materials like concrete, metal and rocks with the correct shrapnel momentum angles.
Think of fragment spalling on plain metal ballistic vest plates without the fragment catch plate sleeve. Anything that hits your chest sends shrapnel into your chin and neck.
1% health per impact bullet breaking apart within 1 meter on ricochet shrapnel angles which you already have sounds for ricochet on the correct angle already.
Video on youtube by the "Slow Motion Ballisitics" channel on the measured protractor angle for ricochet angle threshold to make the noise and effect, about 60 degree angle to the wall surface if I remember which the more direct angles break the bullet apart, the more parrallel the rifle barrel becomes with the surface to less the bullet breaks apart and less momentum loss to farther it goes.
Shrapnel should only come from bullets momentum direction impact angle along the surface, how the bullet breaks apart and skips then sends shrapnel. For direct straight hits on hard surface 1 meter bullet fragment splash in 360 degrees and 35 degrees angle off the wall the wall before losing momentum creating an even 360 umbrella.
Any angle shots to the surface from above, below, left and right should change the shape and shrapnel momentum directions, still at 35-45 degrees meaning due to ricochets you want to stay 1 meter, 1 big step away from walls and cover, not hugging your cover so any bullets that hit coming at you that hit the cover and break apart into shrapnel, multiple pieces lose momentum over that 1 meter.
Maybe, BIG maybe because while realistic might not be good for game increasing wounded.
Shrapnel from explosions make noise, but also bullets that impact within 1 meter of you tend to send small bits of shrapnel. Could make it 1% health per impact within 1 meter or it could justify doing .01% health so you get red edges on screen without losing 1% health until 100 bullets have impacted within 1 meter of you on hard surfaces that don't absorb bullets.
If you want that to be 50 bullets to 1% health make it cost .02% per close impact up so it adds up.
Adding bullet shrapnel effect from close impact suppression on certain hard materials like concrete, metal and rocks with the correct shrapnel momentum angles.
Think of fragment spalling on plain metal ballistic vest plates without the fragment catch plate sleeve. Anything that hits your chest sends shrapnel into your chin and neck.
1% health per impact bullet breaking apart within 1 meter on ricochet shrapnel angles which you already have sounds for ricochet on the correct angle already.
Video on youtube by the "Slow Motion Ballisitics" channel on the measured protractor angle for ricochet angle threshold to make the noise and effect, about 60 degree angle to the wall surface if I remember which the more direct angles break the bullet apart, the more parrallel the rifle barrel becomes with the surface to less the bullet breaks apart and less momentum loss to farther it goes.
Shrapnel should only come from bullets momentum direction impact angle along the surface, how the bullet breaks apart and skips then sends shrapnel. For direct straight hits on hard surface 1 meter bullet fragment splash in 360 degrees and 35 degrees angle off the wall the wall before losing momentum creating an even 360 umbrella.
Any angle shots to the surface from above, below, left and right should change the shape and shrapnel momentum directions, still at 35-45 degrees meaning due to ricochets you want to stay 1 meter, 1 big step away from walls and cover, not hugging your cover so any bullets that hit coming at you that hit the cover and break apart into shrapnel, multiple pieces lose momentum over that 1 meter.
1 Man per piece of cover, Move cover to cover. In view of each other to save each other by shooting, distraction, division of enemy attention and ammo. 1 man hit per RPG/tank shell/mortar spread formation full time. Edge of cap zone. Use camouflage, police up each others exposure, no man seen sticking out. Scan aggressively with eyes and ears for anything suspect, even for birds disturbed to fly out of trees
-
staylor18
- Posts: 15
- Joined: 2020-03-04 18:27
Re: Suppression effect using material bullet deviation
I have not tried a big multiplayer game with these spheres getting spawned in. Because each bullet does not always make a sphere then if each player on the map is shooting they will on average create 1 sphere.
So, if there were 64 players all shooting this would mean 64 spheres on the map at once. I am hoping it would not hinder performance much. It would be very rare to have all the players shooting at once for a start. Also the spheres are invisible, so it is only creating a very simple model with few polygons. The sphere complexity could be reduced further to say a 20 or 10 sided object no problem.
I have tried it with 64 bots. There is no noticeable performance difference.
So, if there were 64 players all shooting this would mean 64 spheres on the map at once. I am hoping it would not hinder performance much. It would be very rare to have all the players shooting at once for a start. Also the spheres are invisible, so it is only creating a very simple model with few polygons. The sphere complexity could be reduced further to say a 20 or 10 sided object no problem.
I have tried it with 64 bots. There is no noticeable performance difference.
- Mats391
- PR:BF2 Lead Developer
- Posts: 7643
- Joined: 2010-08-06 18:06
Re: Suppression effect using material bullet deviation
I think, that the impact effect and thus the spawner does not play on the dedicated server. You will see it locally on your client, but it does not actually exist on the server. In same way you will probably see bullets being affected by deviation on your client, but that will only be the predicted projectiles. The projectiles on server will be unaffected, since the sphere wont exist. That is something that needs to be tested and sadly bots might not be the best testing partners for that, they simply dont know how to shoot straight in first placestaylor18 wrote: 2025-07-01 20:40
1. I have had this working in a LAN game. The spawner is from an effect. Are you saying that if somebody deletes the effect from their _client then they will not get the effect, so will not be suppressed?

Mineral: TIL that Wire-guided missiles actually use wire
