This mod adjusts all of the weights and velocities of the player weapon projectiles to be physically correct according to popular online sources. Testing seemed to show that a static velocity of "100" was roughly equal to 1 m/s so everything is based around that assumption. Damage values are roughly based on a scale from the pistol (15, high roll in doom 1) to the rocket launcher (170, default doom 3) and approximated according to the different calibers. The ballistics for the rocket launcher are left unchanged because I couldn't figure out how to get thrust working (leave a comment if you know how please). Below is a full list of all changes.
If none of this makes any sense just unzip the contents into your "Doom 3\base" folder and see if the combat feels any different (requires a fresh game).
ammo.def vs pak005
ammo_clip_large
- "inv_ammo_clip" "45"
+ "inv_ammo_clip" "60"
ammo_grenade_small
- "inv_ammo_grenades" "5"
+ "inv_ammo_grenades" "4"
ammo_rockets_small
- "inv_ammo_rockets" "5"
+ "inv_ammo_rockets" "4"
ammo_rockets_large
- "inv_ammo_rockets" "10"
+ "inv_ammo_rockets" "8"
player.def vs pak000
- "max_ammo_grenades" "50"
+ "max_ammo_grenades" "48"
- "ammo_bullets" "48"
+ "ammo_bullets" "0"
weapon_chaingun.def vs pak000
- "spread" "5"
+ "spread" "2"
- "velocity" "2000 0 0" // .38 Special 600 fps. Source: Petzal, David E. "How fast is a speeding bullet." Field and Stream. 97 (1992): 23
+ "velocity" "85000 0 0" // 2,800 ft/s (850 m/s) https://en.wikipedia.org/wiki/7.62%C3%9751mm_NATO
- "mass" "8"
- "push" "2000"
+ "mass" "0.1" // 147 gr (10 g) M80 FMJ https://en.wikipedia.org/wiki/7.62%C3%9751mm_NATO
+ "push" "0" // extra physics impulse not needed with correct mass and velocity
- "damage" "20"
+ "damage" "25"
weapon_handgrenade.def vs pak000
- "inv_ammo_grenades" "5"
+ "inv_ammo_grenades" "4"
- "health" "0" // amount of damage projectile can take if damaged (0 means it can't be destroyed)
- "velocity" "300 0 40" // how fast the projectile leaves the gun (or distance if fuse is 0)
+ "health" "5" // same as rocket, allows grenades to detonate each other
+ "velocity" "500 0 50" // doomguy can throw
- "contact_friction" "0.1"
- "bounce" "0.9" // how much speed a projectile retains when it bounces off of objects (coefficient of restitution). 0 means no bounce.
- "mass" "10"
- "gravity" "1066" // how much gravity affects the trajectory. gravity direction is same as the entity that fired it.
- "fuse" "3" // how long before the projectile is removed or self-detonates. Use 0 for beam weapons (velocity == distance).
+ "contact_friction" "0.5" // appropriate levels of friction
+ "bounce" "0.5" // appropriate levels of bounce
+ "mass" "10" // 1 kg = ~2.5 * 14 oz (400 g) https://en.wikipedia.org/wiki/M67_grenade
+ "gravity" "980" // 9.8 m/s?
+ "fuse" "4.5" // "between 4 and 5 seconds" https://en.wikipedia.org/wiki/M67_grenade
- "detonate_on_death" "0" // whether projectile should detonate when it's "killed" (health runs out)
+ "detonate_on_death" "1" // whether projectile should detonate when it's "killed" (health runs out)
- "detonate_on_actor" "1" // whether projectile should detonate when it hits a character in the game
- "detonate_on_trigger" "1" // whether projectile should detonate when triggered by a character in the game
+ "detonate_on_actor" "0" // whether projectile should detonate when it hits a character in the game
+ "detonate_on_trigger" "0" // whether projectile should detonate when triggered by a character in the game
- "smoke_fly" "grenadetrail.prt" // particle effect while in the air
+ "smoke_fly" "" // particle effect while in the air
- "mtr_light_shader" ""
- "light_color" ""
- "light_radius" ""
- "light_offset" ""
+ "mtr_light_shader" "lights/roundfire"
+ "light_color" "1 0.5 0.1"
+ "light_radius" "150"
+ "light_offset" "0 0 15"
weapon_machinegun.def vs pak000
- "inv_ammo_clip" "10"
+ "inv_ammo_clip" "15"
- "clipSize" "60"
- "lowAmmo" "10"
+ "clipSize" "30"
+ "lowAmmo" "5"
- "damage" "9"
+ "damage" "12"
- "velocity" "7200 0 0" // .38 Special 600 fps. Source: Petzal, David E. "How fast is a speeding bullet." Field and Stream. 97 (1992): 23
+ "velocity" "77700 0 0" // 777 m/s (2,550 ft/s) https://en.wikipedia.org/wiki/FN_5.7%C3%9728mm
- "mass" "1"
+ "mass" "0.017" // 27 gr (1.7 g) SS195LF JHP https://en.wikipedia.org/wiki/FN_5.7%C3%9728mm
weapon_pistol.def vs pak000
- "inv_ammo_bullets" "12"
+ "inv_ammo_bullets" "6"
- "damage" "14"
+ "damage" "15"
- "velocity" "7200 0 0" // .38 Special 600 fps. Source: Petzal, David E. "How fast is a speeding bullet." Field and Stream. 97 (1992): 23
+ "velocity" "36000 0 0" // 1,180 ft/s (360 m/s) https://en.wikipedia.org/wiki/9%C3%9719mm_Parabellum
- "mass" "2"
+ "mass" "0.0745" // 7.45 g (115 gr) Federal FMJ https://en.wikipedia.org/wiki/9%C3%9719mm_Parabellum
weapon_plasmagun.def vs pak000
- "inv_ammo_cells" "50"
+ "inv_ammo_cells" "25"
- "damage" "16"
+ "damage" "40"
- "velocity" "700 0 0" // how fast the projectile leaves the gun (or distance if fuse is 0)
+ "velocity" "2187.5 0 0" // 875 map units per second / ~40 units per meter = 21.875 m/s https://doomwiki.org/wiki/Plasma_gun
- "mass" "50"
- "push" "4000" // additional impulse when projectile collides
+ "mass" "10" // 1 kg at 21 m/s is enough
+ "push" "0" // additional impulse when projectile collides
-// "mtr_light_shader" ""
-// "light_color" "0 0 0.8"
-// "light_radius" "160"
-// "light_offset" "-8 0 0"
+ "mtr_light_shader" "lights/plasmaglow"
+ "light_color" "0.18 0.70 0.82"
+ "light_radius" "160"
+ "light_offset" "0 0 0"
weapon_rocketlauncher.def vs pak000
- "inv_ammo_rockets" "5"
+ "inv_ammo_rockets" "2"
- "clipSize" "5"
+ "clipSize" "4"
- "mtr_light_shader" ""
+ "mtr_light_shader" "lights/impflash"
weapon_shotgun.def vs pak000
- "spread" "22"
+ "spread" "3"
- "damage" "14"
+ "damage" "13"
- "velocity" "7200 0 0" // .38 Special 600 fps. Source: Petzal, David E. "How fast is a speeding bullet." Field and Stream. 97 (1992): 23
+ "velocity" "48000 0 0" // 12-gauge 1 oz slug ~ 1,560 ft/s (480 m/s) https://en.wikipedia.org/wiki/Shotgun_slug
- "mass" "1.0"
+ "mass" "0.035" // 12-gauge #00 Buck 8 Pellets/oz (28 g) = 3.5 g https://en.wikipedia.org/wiki/Shotgun_shell
lights.mtr vs pak000
lights/plasmaglow
- noshadows
weapon_shotgun.script vs pak006
-#define SHOTGUN_RELOADRATE 2
-#define SHOTGUN_NUMPROJECTILES 13
+#define SHOTGUN_RELOADRATE 1
+#define SHOTGUN_NUMPROJECTILES 8