Fallout 2 mod Fairer game experience

Discussion in 'Fallout General Modding' started by Timez, Nov 6, 2021.

Tags:
  1. Timez

    Timez First time out of the vault

    67
    Feb 12, 2019
    What is wrong with them? I believe they are already viewed in FO as easier to hit (multiple pellets) but short ranged and not AP weapons. All shotguns are accurate (+20%). Vanilla 12ga shells also had -10% AC mod but this was removed in my mod.

    I sure can add special treatment for them if you think this is not enough.
     
  2. Zorchar

    Zorchar Look, Ma! Two Heads!

    323
    Jun 18, 2018
    I was only curious about the way you would handle it, if you would want to. I personally think shotguns should have a bit of a niche spot in the guns category - short ranged, fairly high powered small gun, which fires a single shot (or alternatively, a very fast burst of smaller projectiles). So I think adding some kinda distance modifier should be used with shotguns. One that takes into account that fewer projectiles should hit, the farther you are from the target (like burst, I guess). Alternatively, one can nerf the shotgun shells, give more rounds per ammo cartridge, and turn shotguns into burst weapons. Though, the animation will be confusing (burst animation for a shotgun). I suppose, btw, there is a way to script the animation to a single shot.
    Just wondering :)
     
  3. Timez

    Timez First time out of the vault

    67
    Feb 12, 2019
    You are right from realism perspective. However, game mechanics is not and should not be that complicated. There are two major parameters: accuracy and damage (plus maybe armor piercing). Manipulate them to your liking to put them in niche you think they should be in.

    As I pointed out, they already occupy a niche in vanilla. They are accurate so it is easier to hit with them even with low skill. They are not AP, though. So clearly - early game, low skill, crude but effective to hit weapon. Not working well in mid game against even moderate armor. Except EcCo slug ammo addition that may prolong their life a little bit.

    I can explicitly emphasize this even more to give them edge over assault riffle, for example.
     
  4. Timez

    Timez First time out of the vault

    67
    Feb 12, 2019
  5. Zorchar

    Zorchar Look, Ma! Two Heads!

    323
    Jun 18, 2018
  6. Zorchar

    Zorchar Look, Ma! Two Heads!

    323
    Jun 18, 2018
    You inspired me to do my own little mod.

    Code:
    #define SFALL_SC_EVALUATION   (true)  // short-circuit evaluation
    /* Include Files */
    //#include "define.h"
    //#include "command.h"
    #include "..\headers\define.h"
    #include "..\headers\define_extra.h"
    #include "..\headers\command.h"
    #include "..\headers\sfall.h"
    /* Standard Script Procedures */
    procedure start;
    procedure combatdamage_handler;
    /* Defines */
    #define HOOK_COMBATDAMAGE                 (5)
    /*******************************************************************
       Local Variables which are saved.
       All Local Variables need to be prepended by LVAR_
    *******************************************************************/
    /*******************************************************************
       Imported variables from the Map scripts. These should only be
       pointers and variables that need not be saved. If a variable
       Needs to be saved, make it a map variable (MVAR_)
    *******************************************************************/
    /*******************************************************************
       Local variables which do not need to be saved between map changes.
    *******************************************************************/
    variable the_item;
    variable dest_obj;
    /*******************************************************************
    *                          PROCEDURES                              *
    *******************************************************************/
    procedure start begin
       if (game_loaded)  then begin
          register_hook_proc(HOOK_COMBATDAMAGE, combatdamage_handler);
       end
    end
    
    procedure combatdamage_handler begin
    
       variable target;
       variable attacker;
       variable damage_to_target;
       variable damage_to_attacker;
       variable se_target;
       variable se_attacker;
       variable weapon_used;
       variable damage_to_target_after;
       variable body_part_hit;
       variable damage_multiplier;
       variable distance_att_tar;
       variable bullets_hit;
       variable knockback_amount;
       variable attack_type;
       variable computed_data;
       variable knockback_amount_after;
    
       target := get_sfall_arg;
       attacker := get_sfall_arg;
       damage_to_target := get_sfall_arg;
       damage_to_attacker := get_sfall_arg;
       se_target := get_sfall_arg;
       se_attacker := get_sfall_arg;
       weapon_used := get_sfall_arg;
       body_part_hit := get_sfall_arg;
       damage_multiplier := get_sfall_arg;
       bullets_hit := get_sfall_arg;
       knockback_amount := get_sfall_arg;
       attack_type := get_sfall_arg;
       computed_data := get_sfall_arg;
    
       // get distance between attacker and target
    
       distance_att_tar = tile_distance_objs(target, attacker);
    
       // add knockback, according to distance
    
       if (tile_distance_objs(target, attacker) <= 2) then
          knockback_amount_after++;
       if (tile_distance_objs(target, attacker) <= 4) then
          knockback_amount_after++;
       if (tile_distance_objs(target, attacker) <= 6) then
          knockback_amount_after++;
    
       // if shotgun
    
       if (get_proto_data(obj_pid(weapon_used), PROTO_WP_CALIBER) == CALIBER_12_GAUGE) then begin
    
          script_overrides;
    
          // keep track of damage after changes - multiplier is vanilla
    
          damage_to_target_after = damage_to_target * damage_multiplier / 2;
    
          //remove 10% damage for each hex of distance, starting from 2
    
          variable i;
          for (i=2;i <= distance_att_tar;i++)
             damage_to_target_after *= 0.9;
    
          // return modified damage
    
          set_sfall_return(floor(damage_to_target_after));
    
          //return other sfall args
    
          set_sfall_return(0);
          set_sfall_return(se_target);
          set_sfall_return(se_attacker);
    
          // return modified knockback
    
          set_sfall_return(knockback_amount_after);
    
       end
    end
    
     
    • [Rad] [Rad] x 1
  7. dudejo001

    dudejo001 It Wandered In From the Wastes

    171
    Mar 6, 2010
    In real life, buckshot shells are more accurate than you'd think. Even the most inaccurate loads spread about 1 inch : 1 yard and can go as tight as 1/2 inch : 1 yard.

    They would definitely get a full torso hit within Fallout's typical combat ranges.
     
  8. Zorchar

    Zorchar Look, Ma! Two Heads!

    323
    Jun 18, 2018
    Still, I think it it quite significant.
    Assuming a regular torso hit most likely doesn't mean a dead center torso hit, but a general torso hit (side of the rib hit).
    Also, assuming an average torso is about 3 - 4 inches wide from center to side -> Means that even 1/2 inch per yard can be significant over only a few yards. Even if you hit dead center on torso; in 16 yards, half of your buckshots will miss. And that is the ideal situation, not the average.
     
  9. Timez

    Timez First time out of the vault

    67
    Feb 12, 2019
    If this is the case then why they are given more accuracy (+20% for the weapon, -10 AC mod for the ammo) in the game? They usually don't even have any decent aiming devices attached so if anything their aim should be worse.

    And if you don't agree that it is easier to hit with them what other niche should they occupy in the game?
     
  10. dudejo001

    dudejo001 It Wandered In From the Wastes

    171
    Mar 6, 2010
    I'd just like to amend your calculation, there. It would indeed be a near 50% hit rate against a 3 inch radius target because the 1/2 inch-per-yard buckshot, with an 8-inch diameter at 16 yards, would have a 4 inch radius.

    For clearer context, half of your buckshot would hit someone in the head within 16 yards and would absolutely all land within the target's chest area. Of course, those numbers require a choked shotgun barrel, which I assume Fallout's weapons don't have. So worst case scenario, you'd be getting those hit rates within 8 yards.

    I can't speak for the original designers' logic behind their numbers, only my own observations.

    Generally, shot shells work best when going after moving targets. You'll see a lot of those in clay shooting, bird hunting or game pursuit. But since the individual pellets themselves don't have a lot of energy, your ability to kill drops off pretty quick.

    EDIT : Shotguns do indeed have very basic sights because accurate sights are slow, and shotguns need to be fast.

    Given that Fallout's game engine doesn't feature damage drop-off, it won't be possible to simulate that aspect. However, I don't know many guns in Fallout that specialize in close quarters so you could probably slot shotguns in there. I'd want to look into the projectile bonuses as well, maybe make them into an exaggerated JHP.
     
    Last edited: Nov 21, 2021
  11. Velizar

    Velizar First time out of the vault

    35
    Jul 17, 2019
    Nice, did that work the way I described it or did you have to do something else?
     
  12. Zorchar

    Zorchar Look, Ma! Two Heads!

    323
    Jun 18, 2018
    Thanks for correcting me. I thought 1/2 inch-per-yard means the distance from where you were suppose to hit, as oppose to the distance between the farthest two hits(which is twice as much).

    I might modify the numbers for my script a bit.

    EDIT: BTW, I couldn't understand if you took what I said about not hitting dead center into account (please rephrase if you can.). With a regular pistol, a torso hit is a torso hit even if you hit the side of the ribs.
    If you have perfect aim, and shoot with a shotgun shell to the side of the rib, than only half of the buckshots would hit, no? At close-range, at least. Please correct me if needed. I appreciate it.

    Can you rephrase? Half in the head and absolutly all in the chest? Honestly, this entire paragraph went by me.
     
    Last edited: Nov 21, 2021
  13. dudejo001

    dudejo001 It Wandered In From the Wastes

    171
    Mar 6, 2010
    I based my hit rates on a dead-center aim point. But yeah, in theory, aiming at the side would probably mean that half of your pellets miss the torso. Although, depending on your vertical aim, some might still hit the arms or something.

    Still, in real life, getting shot with pretty much anything will incapacitate you in some way so you're still highly likely to disable someone even if your aim is off.

    Again, I'm assuming dead-center aim points. I used the head as a practical example of what a 3 inch radius target would look like. The torso is a stand-in for anything larger.
     
    • [Rad] [Rad] x 1
  14. Timez

    Timez First time out of the vault

    67
    Feb 12, 2019
    Just perks.ini as sfall proposed.
     
  15. Timez

    Timez First time out of the vault

    67
    Feb 12, 2019
    Interesting discussion, gentlemen. I agree with most of what you mentioned. Let's see if we need to implement something like that in FO mod if at all.

    The standard FO paradigm is divided into aiming and damage assuming target get full damage if it is hit. Vanilla does not have concept of separable ammunition that may hit partially.

    What can be done about shotguns in light of separable ammunition?
    I assume FO2Tweaks damage mod which uses DR mod to multiply DT, DR, damage by the same amount.
    • Remove weapon accurate perk: aim is no better than pistols at the same range.
    • Explicitly drop damage with range (0.9 per tile?).
    • Shells get hefty negative AC mod: better at hitting moving targets (that is what AC means originally) than single bullet weapons.
    • Shells get significant negative DR mod (= much bigger damage multiplier at unarmored, damage drops significantly against armor).
      • Buckshot Shell: 60 DR mod.
      • Shotgun Shell: 40 DR mod.
      • Shotgun Slug: 20 DR mod.
    This would make them close range weapon, easy to hit, increased damage, but badly performing against armor. Good enough?
     
  16. dudejo001

    dudejo001 It Wandered In From the Wastes

    171
    Mar 6, 2010
    I don't quite understand your ammunition types...what exactly is a "Shotgun Shell" as an ammo type? I know what Buckshot and Slug are but not that one.
     
  17. Zorchar

    Zorchar Look, Ma! Two Heads!

    323
    Jun 18, 2018
    I like these four points you mentioned. It's probably the way I would do it myself. The actual numbers might be altered, but in general.. me like:)

    EDIT: Though I love the elegance of the use of AC bonus, if I had the time and want, I'd do that the penalty you get from distance to target will be lowered, instead. So if at point blank you have 90% chance to hit, and at point blank +1 you have 85%, than I think it should be maybe half the penalty only (2.5%).
     
  18. Timez

    Timez First time out of the vault

    67
    Feb 12, 2019
    Err. Standard vanilla shotgun ammunition.?https://fallout.fandom.com/wiki/12_gauge_shotgun_shell_(Fallout)

    EcCo also introduces Buckshot Shells and Shotgun Slugs.
     
  19. dudejo001

    dudejo001 It Wandered In From the Wastes

    171
    Mar 6, 2010
    I had a look at EcCo's files.

    The item description specifies "Heavy" pellets. Also, the stats are mostly the same as the vanilla shells, only providing a bit of added damage with otherwise the same behavior.

    This leads me to believe they're both buckshot, with the vanilla simply being a low-performance variant. Also, in popular culture, shotguns always use buckshot by default, perhaps explaining why the original designers never specified the shells were buckshot.
     
  20. Timez

    Timez First time out of the vault

    67
    Feb 12, 2019
    Thinking on how to implement it with least invasive way. I'd like to avoid fractions if possible. I'd like to avoid accuracy or damage algorithm override if possible. Otherwise, this may lead to confusion and user questions. So needed to be described somewhere additionally.

    Both accuracy and damage are essentially multipliers to weapon effectiveness (damage rate per round). Rewording desired shotgun usage niche in term of such effectiveness would read something like: more effective at short range and less effective at long one. I am thinking to give it a role of a crude tool that offsets low skill level early game but sucks at long range combat and less useful against armor.

    With that in mind. Here is what can be done without rewriting algorithms too much. After all we are not looking for utmost algorithm precision but just to give them some flavor.
    • They are pretty strong already. No need to change that. Low level shotguns are 50% more damaging than low level riffles and pistols (assault, FN FAL, desert eagle).
    • Reduce their range to be no more than 20 hexes for best models.
    • Optional AP bonus. Make them as fast as pistols (4 AP) due to their basic snapshot use. That instantly gives them 25% in effectiveness comparing to riffles.
    • Optional accuracy penalty. They do not use aiming due to their snapshot use. Therefore, they don't have weapon effective range where they maintain accuracy. Their accuracy start to drop with distance right away.
    • Optional extra accuracy bonus/penalty. Give them accuracy bonus not necessarily same as weapon accurate. Say 16%. But their accuracy would then drop much faster with distance. Say 8% a hex. This will make them more effective up to 4 hexes and less beyond that.
    • Optional extra damage penalty. Same as we discussed before. Personally, I like this the least. There is no damage reduction mechanics in game. It will be pretty obscure and would need explaining. Fractional operations will mess out weapon balance and may be incompatible with mods introducing weapons.
    Out of the above, I think AP bonus and disabling weapon effective range are most visually clear and understandable for user as both values are clearly visible in UI.
    The extra accuracy bonus could be used if the above is not enough but it would also need explaining why shotguns are suddenly more accurate than skill level.

    I am also thinking to give their ammo more damage but proportionally less penetration. That would probably give them extra damage early game and solve all the above problem in single modification.
     
    Last edited: Nov 22, 2021