This mod adjusts all of the weights and velocities of the player weapon projectiles to be physically correct according to popular online sources. It also adjusts ammo items to match their models (e.g. 4 grenades actually give 4 grenades) and adds a few missing light sources to weapon projectiles. Just copy the pk4 file into your base directory and load a new game. Made with and tested on vanilla Doom 3.
Changed the base unit for mass to ounces (which is weird considering velocity is in m/s) after looking at a bunch of the random physics entities and monsters in the game files it seems to be the closest fit to what's already been established. I could change all of the masses and densities to be normalized around grams, but I can't find where ragdoll masses are in the script files, so it was easier to just use them as the standard. All of the bullet collision and explosion forces feel more correct now and ragdolls don't behave like they're made of paper.
The "bounce" parameter seems to have an effect on how much energy is transferred from the projectile during a collision, so they've all been set to 1.
The firing code for all of the semi auto weapon scripts has been rewritten to actually be semi-automatic and remove fire rate as a mechanic. Now they can fire as fast as their animations allow them. Also fixed a bug that caused the "low ammo" sound to be out of sync.
The plasma gun's fire rate has been changed to match historical accounts: #define PLASMAGUN_FIRERATE 0.0857 // 60 seconds / 700 shots per minute Doomwiki.org
Only explosive and plasma-based weapons gib now.
Full def change list below:
weapon_chaingun.def vs TCD3v1.1
- "bounce" "0.6"
- "mass" "1.0" // 147 gr (10 g) M80 FMJ https://en.wikipedia.org/wiki/7.62%C3%9751mm_NATO
+ "bounce" "1"
+ "mass" "0.336" // 147 gr (10 g) M80 FMJ = 0.336 oz https://en.wikipedia.org/wiki/7.62%C3%9751mm_NATO
- "impact_gib" "1"
+ "impact_gib" "0"
- "gib" "1"
+ "gib" "0"
weapon_handgrenade.def vs TCD3v1.1
- "mass" "100" // 1 kg = ~2.5 * 14 oz (400 g) https://en.wikipedia.org/wiki/M67_grenade
+ "mass" "14" // 14 oz (400 g) https://en.wikipedia.org/wiki/M67_grenade
weapon_machinegun.def vs TCD3v1.1
- "lowAmmo" "5"
+ "lowAmmo" "10"
- "gib" "1"
+ "gib" "0"
- "velocity" "38850 0 0" // 50 u/s * 777 m/s (2,550 ft/s) https://en.wikipedia.org/wiki/FN_5.7%C3%9728mm
+ "velocity" "38850 0 0" // 50 u/m * 777 m/s (2,550 ft/s) https://en.wikipedia.org/wiki/FN_5.7%C3%9728mm
- "bounce" "0.6"
- "mass" "0.17" // 27 gr (1.7 g) SS195LF JHP https://en.wikipedia.org/wiki/FN_5.7%C3%9728mm
+ "bounce" "1"
+ "mass" "0.06" // 27 gr (1.7 g) SS195LF JHP = 0.06 oz https://en.wikipedia.org/wiki/FN_5.7%C3%9728mm
- "impact_gib" "1"
+ "impact_gib" "0"
weapon_pistol.def vs TCD3v1.1
- "gib" "1"
+ "gib" "0"
- "bounce" "0.6"
- "mass" "0.745" // 7.45 g (115 gr) Federal FMJ https://en.wikipedia.org/wiki/9%C3%9719mm_Parabellum
+ "bounce" "1"
+ "mass" "0.26" // 7.45 g (115 gr) = 0.26 oz Federal FMJ https://en.wikipedia.org/wiki/9%C3%9719mm_Parabellum
- "impact_gib" "1"
+ "impact_gib" "0"
weapon_plasmagun.def vs TCD3v1.1
- "nozzleGlowRadius" "8"
+ "nozzleGlowRadius" "16"
+ "snd_lowammo" "player_machinegun_lowammo"
- "bounce" "0.6" // how much speed a projectile retains when it bounces off of objects (coefficient of restitution). 0 means no bounce.
- "mass" "100" // 1 kg at 21 m/s is enough
+ "bounce" "1" // how much speed a projectile retains when it bounces off of objects (coefficient of restitution). 0 means no bounce.
+ "mass" "21" // 21 oz at 21 m/s is enough
weapon_shotgun.def vs TCD3v1.1
- "gib" "1"
+ "gib" "0"
- "bounce" "0.6"
- "mass" "0.35" // 12-gauge #00 Buck 8 Pellets/oz (28 g) = 3.5 g https://en.wikipedia.org/wiki/Shotgun_shell
+ "bounce" "1"
+ "mass" "0.125" // 12-gauge #00 Buck 8 Pellets/oz https://en.wikipedia.org/wiki/Shotgun_shell
- "impact_gib" "1"
+ "impact_gib" "0"