 File: FirstPersonShooter.cfg 

STALKER Shadow of Chernobyl normally uses an accuracy mechanism intended 
for gameplay rather than reality, as more accurate weaponry would make 
for quick fights and force the player to reload much less often. 

This configuration group can be used to modify the default accuracy of 
weapons, affecting both the player and the AI when firing upon other AI. 
(Their accuracy when firing upon you is handled separately. See below.) 

Note on "Bullet Sponges":

The game also "reduces"* the damage after your first head shot for the 
same gameplay reason, if you do not wait for a time between each 
shot (default is one second). This can make your target NPCs seem 
invulnerable while they are reeling. A tweak for that "bullet sponge" 
effect is to reduce time_to_aim for each weapon to 0.0. This tweak is 
available as a drag-and-drop file from the ZRP website. See the Guns 
section of the "What You Know That Ain't So" web page there. Warning: 
This does make the game easier.

(*Technically the game increases the damage for the first head shot, 
until the next head shot after waiting time_to_aim seconds.)


Installation

You will need to install the modified weapons.ltx file with the first 
entry.

If you see an error telling you that config\creatures\actor.ltx 
is missing when you select an entry, you can install it using Actor.cfg. 
The changes below can be made to any installed version of actor.ltx. 

The primary change to weapons.ltx is the reduction of the k_disp value 
for all the ammo. This value is a multiplier that modifies the normal 
weapon accuracy, so an ammo type using the typical k_disp value of 3.0 
widens the "cone of fire" by a factor of three. 

The modified weapons.ltx file uses 1.0 for all ammo, so the lower- and 
mid-tier weapons will have a cone of fire that subtends a circle only 
1/9th the original area. 

Other factors apply, like your stance and motion, discussed below.

Fire mode is another factor. Due to recoil, your aim will be off after 
the first shot. It will return to where you were pointing based on 
cam_relax_speed. 

That aim is also affected by time_to_aim for the weapon. After a shot, 
the cone of fire for the next shot is larger. If the value is 1.0, it 
will take one second before the accuracy will return to normal. You can 
edit the weapon files to change that to a smaller value if you wish. 

There's another important issue as well related to the firing rate. 
The first head shot (and every head shot after waiting time_to_aim 
seconds without moving) will deal five times as much damage to NPCs 
and ten times as much damage to mutants. Subsequent shots on full 
auto will deal less damage, giving you the impression your target is 
momentarily invulnerable. You will still do damage but it will be 
significantly less.  You can see this in-game by enabling debug 
mode and then using Esc X to show hit damage. See the note on 
"bullet sponges" above. 

As your weapons deteriorate, their initial accuracy is correspondingly 
reduced. 

Even after the above changes, the player is still responsible for 
accommodating bullet drop. You can change the bullet_speed in the 
weapon's configuration file if you get desperate. 

Other considerations include the varying vulnerability of the targets. 
NPCs and mutants are weaker in the head in vanilla, and other body parts 
will have different degrees of toughness. Some parts will take no 
damage; fingers and toes in NPCs, much of the body in mutants. It may be 
that you have to hit a bone. 

A specific example: The vanilla pseudodog has a default damage scale 
value of 0.3. Its neck, spine and pelvis use 1.0. Its head uses 2.0. 

And that toughness is scaled up for better armored NPCs or "stronger" 
mutants. 

Please note that a weapon's hit damage decreases in parallel with the 
gameplay difficulty setting. Here's an example for the G36/GP37:

hit_power = 0.50, 0.54, 0.57, 0.60  ;0.5 at master, 0.6 at novice

Yes, you actually do less damage on master. 

Please see the ALT1 version of actor.ltx in the Actor.cfg configuration. 
It improves the Marked One's contribution to accuracy. If you use it, 
you will likely want to adjust other values (like the carry weight) to 
be more like vanilla. 


AI Accuracy

Accuracy of AI when firing upon the player is determined by two values: 
hit_probability_max_dist and defines.ltx's hit_probability_gd_novice. 

The vanilla default for hit_probability_gd_novice is 0.20. This means 
that only 20% of the shots an NPC fires at or beyond the distance set 
by hit_probability_max_dist will strike the hitbox zone where you are. 
(Tip: Use cover anyway!) 

The odds of your hitbox being struck by an NPC's bullet mentioned above 
will decrease from 1.0 (100%) at point-blank range to the value of given 
by gamedata\config\defines.ltx's hit_probability_gd_novice setting at 
the distance set by gamedata\config\weapons\weapons.ltx's 
hit_probability_max_dist, which defaults to a mere 10 meters in vanilla. 
It apparently remains at that hit_probability_gd_novice value (only 20% 
in vanilla, as mentioned) beyond that.

Note that YOUR accuracy is not affected by these attributes.

While the default for this FPS configuration is 50 meters, for more 
challenge 100 meters is suggested. Lower the value if you want to 
increase your odds of surviving.

See the Config Notes for the Actor.cfg configuration for an explanatory 
image. Also see the Guns section of the web page mentioned in the note 
on bullet sponges, above, for more details.


Your Accuracy

As mentioned above, your accuracy has two main components, that of the 
weapon and your contribution from stance, motion, aiming, etc.

Here you can tweak how you affect aiming.

While standing and shooting from the hip, the default accuracy of the 
weapon is decreased by the player component (disp_base in actor.ltx is 
0.8). Moving and turning doubles that! Aiming helps a lot; the default 
accuracy of the weapon is reduced only an additional 5% by the player 
(vanilla disp_aim) compared to standing.

Crouching (disp_crouch_factor)/low-crouching (disp_crouch_no_acc_factor) 
also improve accuracy by reducing the player's contribution 20% (-0.2) 
and 40% (-0.4), respectively. 

The Alt1 default settings improve the initial player contribution 
offset by half for standing (disp_base is 0.4) and for crouching (-0.4 
or 40% reduction) versus vanilla, and by more than half (-0.9 or 90%) 
for low-crouching. Aiming (Alt1 disp_aim is 0.001) virtually eliminates 
the player's part.

It is strongly recommended to initially simply click the Default button 
followed by the Apply button to apply the Alt1 configuration for aiming. 
After using this setup, you can try your own tweaks if desired.

The maximum improvement is found with 0.0 for disp_base and disp_aim, 
while the maximum reduction is -1.0 for crouching/low-crouching. While 
those settings work for a pure-FPS setup, the Alt1 settings are strongly 
recommended as a guide so that aiming/low-crouching still have a 
purpose.

To view the actor component of accuracy on the HUD, you can use the ZSU 
Variable Watch utility with the following argument:

actor:accuracy()


Ammo Drops

If you use the FPS settings, you will be more accurate and less ammo 
will be wasted. This results in a relative abundance of ammo found on 
bodies, especially on novice difficulty.

To compensate for this, you should enable the Scavenger Mode and try 
playing with only half the normal ammo drop amount to start. If that is 
still too much, set the number in the ammo_quantity_factor field to a 
smaller decimal value >= 0.0. Conversely, set it higher if you keep 
running out of ammo.

Setting it to 1.0 or higher defeats the idea.


See also:

Modifier > _ZRP.cfg > Weapon Stats > Show Initial-Shot Accuracy

Modifier > Experimental.cfg > Weapons > The silencer stuff

