Documentation
Readme
View as plain text
ME2 Weaponry tweaks
- General description;
- Edit description;
- Weaponry Loadouts;
- Weaponry general description;
- Weapon template;
- Global properties;
- Specialized properties;
- Additional properties;
[++++++++++++++++++++ General description ++++++++++++++++++++]
All game settings are stored in Coalesced.ini file:
Mass Effect 2\BioGame\Config\PC\Cooked\
Programs required:
Notepad++ and ME2IniFixer
https://notepad-plus-plus.org/download/v6.9.1.html
https://www.nexusmods.com/masseffect2/mods/116/?
Edit DLC Bio.ini files: doesn't required to use ME2IniFixer;
Main game weapons properties are stored in Coalesced.ini;
DLC weapons properties are stored in BIOWeapon.ini (in each DLC folder);
All information about mod's weapon stats (properties) described in tables (.xls files):
Infinite ammo system - ME2 WT IA;
Heat/thermal clips system - ME2 WT HT;
[++++++++++++++++++++ Edit description ++++++++++++++++++++]
Download Notepad++; DO NOT USE Word, Wordpad or Notepad - this will break game files;
- go to: Mass Effect 2\BioGame\Config\PC\Cooked\ and open Coalesced.ini file;
- right-click on file > Edit with Notepad++
// How to compare two files in Notepad++ ? //
In Notepad++ add plugin "Compare":
main panel > plugins > plugin manager > show plugin manager > find plugin Compare > Install >
> (if program asks if you would like to update manager? - Yes, only once) >
> Open two Coalesced.ini-s > main panel > plugins > Compare > select one of two files > Set as first to compare >
> switch to second file > main panel > plugins > Compare > Compare
Differences between two files will be highlighted;
Commenting code: comment prevent game engine from reading and executing commands in string.
[< ; >] semicolon before string: ;Variable=Value
If you want to use several Coalesced.ini mods, create merged file:
- copy your current moded file from: Mass Effect 2\BioGame\Config\PC\Cooked\ to any folder (as backup);
- download mod > compare mod file and your file in Notepad++: use Compare plugin > find differences > copy code from mod file to your file (ignore iniversion strings);
- Launch ME2IniFixer;
> if mod is require specific code to run properly - that code takes priority over the others mods code;
> if mod adds new stuff > use mod values instead of yours;
> if some setting has greater/lesser value in compare to your file > read mod description about this value > choose one variant (not both);
EDIT FILE > LAUNCH ME2IniFixer > LAUNCH GAME
^ Definitions:
String/line - Variable=Value
AI - Artificial Intelligence - game engine code that supervise squadmates and enemies behavior;
there are several setting that assigned separately for squad and enemies:
AI = Enemies and Squadmates - by default, if not specified; (all non-player values);
Squad = Squadmember = Squadmate = Hench = Henchman; (separate values);
- squad is squadmember only, not including Shep;
RateOfFire = Firerate;
Crosshair = Scope = Sight;
Magazine = Clip;
Shots = Bullets = Rounds = Projectiles;
^ Description structure:
[SFXGame.SFXWeapon] - section in file;
Damage= - variable;
1.0 - value;
~= - approximately equal (exact value property is unknown);
^ Numerical values:
Integer: Y=80; (min=0; max=unlimited, (recomended=999));
Boolean: true / false; (true=yes/on/use; false=no/off/don't use);
Float type1: 0.7; (min=0.0/0; max=unlimited, (recomended=99.0));
Float type2: 0.7f; (min=0.0f; max=unlimited, (recomended=99.0f)); (f=float);
> if value = 0/0.0/0.0f than it will be disabled (unused);
^ Examples:
RateOfFire=(X=850,Y=850); (where always X=Y);
CrosshairRange=(X=35,Y=80); (where X= min value; Y= max value (from X to Y));
bInfiniteAmmo=true; (true=yes/false=no); (b=boolean);
BurstRefireTime=0.1 (result will be in %-s 0.7f=70%, where 1.0f=100%(max));
DamageAI=0.7f; (result will be in %-s 0.7f=70%, 1.3f=130%; where 1.0f=100%);
^ Formulas:
Damage=(X=100.0,Y=100.0) // of gun, used by player //
1.0f = 100%
DamageAI=0.7f = 70%
100 * 0,7 = 70
DamageAI=(X=70.0,Y=70.0) // of gun, used by AI //
> AR - Assault Rifles; SG - ShotGuns; SR - Sniper Rifles; HP - Heavy Pistols; AP - Auto Pistols; HW - Heavy Weapons;
[++++++++++++++++++++ Weaponry Loadouts ++++++++++++++++++++]
[SFXGame.SFXPlayerSquadLoadoutData]
- Shepard and squad weapons classes usage settings - weapon types they can use in missions;
Types of weapons/weapon classes:
LoadoutWeapons_ ...
AssaultRifles, AutoPistols, HeavyPistols, Shotguns, SniperRifles, HeavyWeapons;
Shepard's classes:
PlayerLoadoutInfo=(ClassName=SFXPawn_PlayerSoldier,WeaponClasses=(LoadoutWeapons_ ...))
Squad:
HenchLoadoutInfo=(ClassName=SFXPawn_Garrus,WeaponClasses=(LoadoutWeapons_ ...))
DLC squadmates: Kasumi, Zaeed and Liara:
Kasumi: Mass Effect 2\BioGame\DLC\DLC_HEN_MT\CookedPC\BIOGame.ini
Zaeed: Mass Effect 2\BioGame\DLC\DLC_HEN_VT\CookedPC\BIOGame.ini
Liara: Mass Effect 2\BioGame\DLC\DLC_EXP_Part01\CookedPC\BIOGame.ini
ME2IniFixer don't needed when you edit dlc files;
> Shepard is able to use: maximum 5, minimum 2 weapon types;
> Squadmate is able to use: only 2 weapon types - min/max;
- if you set more than max number, last weapon type will be invisible in weapon locker/weapon selection screen - choose wisely);
- you can give HeavyWeapons to your squadmates - lot of fun guaranteed!
[++++++++++++++++++++ Weaponry general description ++++++++++++++++++++]
======== Weapons structure hierarchy ========
XWeapon.pcc files stored weapon: construction materials/forms, projectile patterns and count, handling animation (firing, reloading, etc) - in short words, visuals;
> those files can be edited only by special programs (developers tools), none of them are available for users, for now on;
Coalesced.ini controls the gun direct behavior - i.e. how to shoot, how fast, what damage amount deal to the enemy, etc - in short words, mechanics;
DLC BIOWeapon.ini work as extension, by adding (loading) specific weapon to the resulted Coalesced file stucture
(not directly, DLC weapons are inherit only several global values from it);
======== Types of properties ========
Weapon behavior determines by two types of properties - global and specialized:
> properties = damage, firerate, accuracy, etc;
-------------------------- Global --------------------------
Effect on all weapons, stored in many different sections throughout Coalesced.ini;
- Shepard's, squadmate's, enemy weapons;
[SFXGame.SFXWeapon] - base weapon model - all guns inherit their properties from it:
- Logic - if for specific weapon some variable (setting) not set (missing), than it will be inherited from SFXWeapon -
specific weapon will use setting, that is set in SFXWeapon;
> for example, auto aiming parameters - only sniper rifles use them, and they have own valuse per each SR;
other weapon classes will use values, that is set in SFXWeapon;
- DO NOT change values in [SFXGame.SFXWeapon], that present in specific weapon section - just copy them for gun, in which you want to use them;
> for example, don't change SFXWeapon > damage, firerate, accuracy, etc, because those values are used for enemy weapons stats calculation;
- You can override SFXWeapon values by adding them to specific weapon model (section):
> for example, you want to increase damage you deal at very long range (Range_Long=2000.f) by M-98 Widow:
// copy line //
DamageMod_VeryLongRange=1.0f
// from //
[SFXGame.SFXWeapon]
// add line to //
[SFXGameContent_Inventory.SFXWeapon_MassCannon]
// set value //
DamageMod_VeryLongRange=1.5f
- in result, Widow will deal +50% damage at very long range;
> Any string from [SFXGame.SFXWeapon] can be added to any weapon model;
Other weapon-related settings (outside out [SFXGame.SFXWeapon]), cannot be set for specific weapon:
> for example, bAimAssistEnabled=true cannot be added from [SFXGame.SFXGameConfig], as it will be applied for all weapons at once;
-------------------------- Specialized --------------------------
Specific properties for each weapon are initialized/described in its section in Coalesced and BIOWeapon:
[SFXGameContent_Inventory.SFXWeapon ... ]
> You can change/add any setting, that described in "Weapon template" below;
> Specific weapon sections names - full information in weapons tables;
! Important note: for SHOTGUNS, projectiles (pellets) count and spread are capped to: х8 for all shotguns, for "Geth plasma shotgun": x3;
----------------------------------------------------
In result, each time when you launch the game, all properties for all weapons will be recalculated and set based on current string values;
[++++++++++++++++++++ Weapon template ++++++++++++++++++++]
- Strings, defining the mechanics of weapons;
// Settings description schema - each value is set to "0" as an example for each string - set your when edit //;
================= Global ==================
======== Heat system =========
WeaponsUseHeat=true
HeatDissipationRate=0.0f
======== Global damage =========
PlayerCoverDamageMultiplier=0.0f
PlayerCoverLeanDamageMultiplier=0.0f
PlayerStormDamageMultiplier=0.0f
======== Global Ammo =========
bCanDropAmmo=true
PctChanceToDrop=0.0
PctAmmoGiven=0.0
======== Shep's Accuracy =========
Base_Acc_Standing=0.0
Base_Acc_Zoom=0.0
AccMod_Move=0.0
AccMod_ViewTurn=0.0
AccMod_Crouched=0.0
AccMod_MouseMultiplier=0.0
AccMod_MaxCameraLoss=0.0
Base_Interp_Speed=0.0f
InterpMod_Move=0.0f
InterpMul_ViewTurn=0.0f
======== Squad Accuracy =========
m_fStartThreshold_pistol=0.0
m_fStopThreshold_pistol=0.0
m_fDriftRadius_pistol=0.0
m_fStartThreshold_Shotgun=0.0
m_fStopThreshold_Shotgun=0.0
m_fDriftRadius_Shotgun=0.0
m_fStartThreshold_Assult=0.0
m_fStopThreshold_Assult=0.0
m_fDriftRadius_Assult=0.0
m_fStartThreshold_Sniper=0.0
m_fStopThreshold_Sniper=0.0
m_fDriftRadius_Sniper=0.0
m_fCrosshairAccuracyModifier=0.0
======== Global Aiming assistance/Auto aiming =========
bAimAssistEnabled=true
GlobalFrictionFactor=0.0f;
GlobalAimCorrectionFactor=0.0f;
GlobalAdhesionFactor=(X=0.0,Y=0.0);
EnemyMovementAdhesionFactor=0.0;
================= Specialized ==================
======== Damage =========
Damage=(X=0.0,Y=0.0)
DamageAI=0.0f
DamageHench=0.0f
======== Firerate =========
RateOfFire=(X=0,Y=0)
RateOfFireAI=0.0f
======== Fire types =========
bIsAutomatic=true
BurstRounds=0
BurstRefireTime=0.0
======== Ammo ========
bInfiniteAmmo=true
MagSize=(X=0,Y=0)
InitialMagazines=0
MaxSpareAmmo=(X=0,Y=0)
AmmoPerShot=0
fAmmoMultiplier=0
LowAmmoSoundThreshold=0
NoAmmoFireSoundDelay=0.0
SteamSoundThreshold=0
LastBulletStrongerPercent=0.0f
======== Accuracy ========
MinAimError=(X=0.0,Y=0.0)
MinZoomAimError=(X=0.0,Y=0.0)
MaxAimError=(X=0.0,Y=0.0)
MaxZoomAimError=(X=0.0,Y=0.0)
AccFirePenalty=0.0f
ZoomAccFirePenalty=0.0f
AccFireInterpSpeed=0.0f
ZoomAccFireInterpSpeed=0.0f
======== Sight ========
CrosshairRange=(X=0.0,Y=0.0)
ZoomCrosshairRange=(X=0.0,Y=0.0)
bUseSniperCam=true
ZoomFOV=0
======== Recoil =========
Recoil=(X=0.0,Y=0.0)
ZoomRecoil=(X=0.0,Y=0.0)
RecoilCap=0.0f
ZoomRecoilCap=0.0f
RecoilInterpSpeed=0.0f
RecoilFadeSpeed=0.0f
RecoilZoomFadeSpeed=0.0f
RecoilYawScale=0.0f
RecoilYawBias=0.0f
RecoilYawFrequency=0.0f
RecoilPitchFrequncy=0.0f
RecoilMinFadePitch=0.0f
RecoilMinFadeYaw=0.0f
RecoilPitchOscillation=0.0f
======== Reload speed ========
ReloadSuccessDuration=0.0
ReloadFailureDuration=0.0
EjectShellCasingTimeRatio=0.0
======== Tracer projectiles ========
TracerSpawnOffset=0.0
TraceRange=0
ShowTracerDistance=0
======== Fire range & ranged damage ========
Range_Melee=0.0f
Range_Short=0.0f
Range_Medium=0.0f
Range_Long=0.0f
DamageMod_MeleeRange=0.0f
DamageMod_ShortRange=0.0f
DamageMod_MediumRange=0.0f
DamageMod_LongRange=0.0f
DamageMod_VeryLongRange=0.0f
ImpactRelevanceDistance=0
======== Aiming assistance/Auto aiming ========
MagneticCorrectionThresholdAngle=0
MaxMagneticCorrectionAngle=0
[++++++++++++++++++++ Global properties ++++++++++++++++++++]
======== Weapon heat model ========
WeaponsUseHeat=true
- All non-Heavy weapons can use heat system - ammo in magazine will start to restore after certain time (HeatDissipationRate),
just like in ME1 - in result, you'll get semi heat/thermal clip system:
> while you fire from gun, ammo will decrease, if you spend entire magazine, gun will be reloaded
and ammo for current magazine will be resupplied from spare ammo stock;
> if you'll stop firing, ammo will start to regenerate (no ammo will be spend from spare ammo stock);
> weapon cannot be reloaded during ammo regeneration - it will be auto reloaded after entire magazine will be drained;
! - if this value set to true, it will override bInfiniteAmmo parameter for all weapons;
> thermal clips and heavy weapon ammo boxes would work as usual - spare ammo stock will be resuplied when you'll pick them;
> I think this is how developers supposed to implement their "thermal clips idea" - give players a choice: restore ammo in magazine or spend spare ammo!
HeatDissipationRate=0.0f
- Percent of ammo for current magazine (MagSize) that would be restored in heat mode;
min=0.01f; max=1.0f; // in %-s //;
======== Global damage =========
PlayerCoverDamageMultiplier=0.0f
PlayerCoverLeanDamageMultiplier=0.0f
PlayerStormDamageMultiplier=0.0f
- Damage multipliers when Shep shoots from cover and while sprinting;
min=0.01f; max=unlimited; // in %-s, as (Damage=) multiplier //; (1.0f=100%)
- All values =1.0f - the weapon will deal same (static) amount of damage, no matter the the situation;
======== Global ammo ========
bCanDropAmmo=true
- Enemy can drop ammo when Shep kills them;
true=yes; false=no;
PctChanceToDrop=0.0
- Enemy ammo drop chance;
min=0.0; max=1.0; // in %-s //; (1.0=100%);
0.0 = enemy ammo drop disabled;
PctAmmoGiven=0.0
- Ammo amount given (granted) when Shep picks thermal clip, including heavy weapons ammo boxes;
min=0.0; max=1.0; // in %-s //; (1.0=100%);
0.0 = ammo won't be resupplied;
======== Shep's accuracy ========
Base_Acc_Standing=0.0
Base_Acc_Zoom=0.0
- Base accuracy loss when Shep stand and aim;
min=0.0; max=unlimited; // in %-s //; (1.0=100%);
0.0 = no accuracy losses;
AccMod_Move=0.0
AccMod_ViewTurn=0.0
AccMod_Crouched=0.0
- Accuracy loss when you: move, turn, in cover;
min=0.0; max=unlimited; // in %-s //; (1.0=100%);
0.0 = no accuracy losses;
AccMod_MouseMultiplier=0.0
AccMod_MaxCameraLoss=0.0
- Accuracy loss when you turn mouse;
min=0.0; max=unlimited; // in %-s //; (1.0=100%);
0.0 = no accuracy losses;
Base_Interp_Speed=0.0f
InterpMod_Move=0.0f
InterpMul_ViewTurn=0.0f
- Base accuracy modifiers for how quickly accuracy parameters approximate their maximal values per shot when Shep: stand, move, turn;
min=0.01; max=100.0;
m_fCrosshairAccuracyModifier=-17.0
- Determines weapon scope size increase/per shot (CrosshairRange=(X=0.0,Y=0.0) + this value/per shot // X=min; Y=max //);
======== Squad accuracy ========
m_fStartThreshold_pistol=0.0
m_fStopThreshold_pistol=0.0
m_fDriftRadius_pistol=0.0
m_fStartThreshold_Shotgun=0.0
m_fStopThreshold_Shotgun=0.0
m_fDriftRadius_Shotgun=0.0
m_fStartThreshold_Assult=0.0
m_fStopThreshold_Assult=0.0
m_fDriftRadius_Assult=0.0
m_fStartThreshold_Sniper=0.0
m_fStopThreshold_Sniper=0.0
m_fDriftRadius_Sniper=0.0
- Base values for bullet spread/aim error (cone of bullets calculation per shot) for squadmates;
min=0.001; max=99.0; // in %-s //; // as +% from base values of specific weapon //;
// all "0" values = accuracy=100% //;
- nearly impossible to test, set any values;
======== Global Aiming assistance/Auto aiming ========
> This option generaly used in consoles - it helps player to aim more accurate via auto-aiming;
bAimAssistEnabled=true
- Auto aiming, works like homing-sticky projectiles;
true = on; false = off;
GlobalAimCorrectionFactor=0.0f;
AimCorrectionAmount=0.0
- Ballistics: converts all projectiles to homing-sticky type (how close from enemy you need to shoot, that projectile can stick to enemy);
GlobalFrictionFactor=0.0f;
- Ballistics: wiki: the force resisting the relative motion of solid surfaces, fluid layers, and material elements sliding against each other;
when you shot mised the target (when you shot nearly reach target, but missed for 1-2 cm), the projectile converts to homing-sticky type,
and still can reach target (but for very close distance from it) - defined by multiple friction values for specific weapon;
by default, used by SR and SG to help player hit targets when they missed;
GlobalAdhesionFactor=(X=0.0,Y=0.0);
EnemyMovementAdhesionFactor=0.0;
- Ballistics: wiki: tendency of dissimilar particles or surfaces to cling to one another
(cohesion refers to the tendency of similar or identical particles/surfaces to cling to one another).
- mathematical graph of bullet spread (cone of bullets calculation when you shoot);
[++++++++++++++++++++ Specialized properties ++++++++++++++++++++]
> Described strings from [SFXGame.SFXWeapon], that can be set for specific weapon;
======== Damage =========
> Keep in mind, that weapon damage is increase by bonus values: Shep's and squadmate's class skills, armor and gear, research upgrades;
Damage=(X=0.0,Y=0.0)
- Base damage of the gun without bonuses, each bonus will increase this value on certain %t:
Damage=(X=100.0,Y=100.0)
+ 10% = 0.10
Damage=(X=110.0,Y=110.0)
DamageAI=0.0f
- Damage multiplier for enemies, in relation to Damage=(X=0.0,Y=0.0) value;
Damage=(X=100.0,Y=100.0) = Damage=1.0f (=100%);
DamageAI=1.3f = Damage=(X=130.0,Y=130.0) (=130%);
DamageHench=0.0f
- Damage multiplier for squad, in relation to Damage=(X=0.0,Y=0.0) value;
Damage=(X=100.0,Y=100.0) = Damage=1.0f (= 100%);
DamageHench=1.0f = Damage = equals Shep's damage;
======== Firerate =========
RateOfFire=(X=0,Y=0)
- projectiles count released by weapon when fire trigger is pressed - how fast weapon can fire;
- for weapon, used by Shep;
min=10; max=9999; // X always equals Y //;
100 = 1 shot/second;
RateOfFireAI=0.0f
- Rate of fire for enemy and henchmen weapon, in relation to RateOfFire=(X=0,Y=0) value;
min=0.01f; max=unlimited; // in %-s //; (1.0f=100%);
RateOfFire=(X=100.0,Y=100.0) = RateOfFire=1.0f (=100%);
RateOfFireAI=0.9f = RateOfFireAI=(X=90.0,Y=90.0) (=90%);
======== Fire types =========
> All fire types consider RateOfFire parameter;
// full auto //
bIsAutomatic=true
- Weapon doesn't require to rearrange the trigger to keep firing;
true=on; false=off;
- Sets full-auto firetype;
- Disables/overrides burst-fire type;
// semi-auto/single/burst //
BurstRounds=0
- Number of projectiles per burst;
min=0; max=MagSize;
- if max value is used, entire magazine will be relinquished with one button press;
- set =0 or =1 for burst fire type weapon to convert it to full auto;
MagSize=(X=30,Y=30)
BurstRounds=3
(MagSize)/(BurstRounds) = (MagSize=10);
- you'll be able to shoot 10 times with 3 bullets per shot;
BurstRefireTime=0.0
- Delay before next burst;
min=0.0; max=1.0; // in seconds //; (1.0=1 second);
- Sets semi-auto/single/burst-fire firetypes (depends of RateOfFire);
- Disables/overrides full-auto firetype;
// charge //
- weapon charged projectile mechanic is stored in XWeapon.pcc files - for now, they can't be edited;
Charge fyre type cannot be effectively overridden by .ini file values:
- can be converted to semi-auto;
- cannon be converted to full-auto;
But if you realy-realy want to set it anyway, in that case, bIsAutomatic=true will work this way:
when you press fire button, weapon will continue firing untill entire magazine/ammunition stock (for heavy weapon) will be empty;
firing can be stopped (canceled) by pressing fire button again;
> for example: set bIsAutomatic=true for M-622 Avalanche - [SFXGameContent_Inventory.SFXHeavyWeapon_FreezeGun]
and admire the unstoppable blizzard ;)
------------- Fire types construction -------------
> not included - string could be not present in weapon section;
// Full-auto // simple;
bIsAutomatic=true
RateOfFire= more than 100;
-------------
// Semi-auto // simple;
bIsAutomatic=false (or not included);
RateOfFire= less than 100;
-------------
// Single // simple;
bIsAutomatic=false;
RateOfFire= less than 90;
-------------
// Full-auto // with more delay between shots;
bIsAutomatic=true
RateOfFire= more than 100;
BurstRounds=1
BurstRefireTime= from 0.6 to 0.9
-------------
// Semi-auto // with more delay between shots;
bIsAutomatic=false (or not included);
RateOfFire= any, more than 500;
BurstRounds=1
BurstRefireTime= from 0.1 to 0.9
-------------
// Single // with more delay between shots
bIsAutomatic any true/false (or not included);
RateOfFire= less than 80;
BurstRounds=1
BurstRefireTime= from 0.9 to 1.0
-------------
// Burst //
bIsAutomatic=false
RateOfFire= any, more than 200;
BurstRounds= min=2; max=MagSize;
BurstRefireTime= from 0.1 to 0.5
-------------
// Full-auto Burst //
(example: M-15 Vindicator custom model);
bIsAutomatic=false
RateOfFire=(X=600,Y=600)
BurstRounds=3
BurstRefireTime=0.3f
MinRefireTime=0.3f
------------- AI weapons -------------
// X=min; Y=max //;
AI_BurstFireCount=(X=0,Y=0)
- Amount of bursts (shots) enemies and henchmen will shoot (during several seconds ~=7 seconds);
min=1; max=MagSize;
AI_BurstFireDelay=(X=0.0f,Y=0.0f)
- Time enemies and henchmen wait between firing bursts (AI_BurstFireCount) from cover;
min=0.01f; max=unlimited;
AI_BurstFireMovingDelay=(X=0.0f,Y=0.0f)
- Time enemies and henchmen wait between firing bursts (AI_BurstFireCount) out of cover;
min=0.01f; max=unlimited;
======== Ammo ========
> Keep in mind, that ammo capacity is increase by bonus values: armor and gear, research upgrades;
bInfiniteAmmo=true
- All weapons can use infinite ammo system - ammo in magazine will be decreased on firing,
and after weapon reloading, the spare ammo stock won't be decreased;
- You can reload weapon anytime; Thermal clips now irrelevant - you'll never run out of ammo;
true=on; false=off;
MagSize=(X=0,Y=0)
- Number of rounds (projectiles) in gun's current magazine;
min=1; max=9999; // X always equals Y //;
InitialMagazines=0
- Number of spare magazines;
min=1; max~=99;
MaxSpareAmmo=(X=0,Y=0)
- Number of total spare ammo; stock
MaxSpareAmmo= (MagSize)*(InitialMagazines); // X always equals Y //;
// For single-shot weapons types, such as Widow, set custom number - for example, 40 //;
AmmoPerShot=0
- Amount of ammo spent per shot;
min=0; max=MagSize;
// min=0; = infinite ammo without reloading (ammo in current magazine won't be decreased at all) //;
// warning!: if you set this value to M-3 Predator - you won't be able to pass tutorial level (Lazarus station),
as weapon needs to be reloaded there to open the door //;
fAmmoMultiplier=0.5
- Ammo consumption coefficient;
min=0.1; max=1.0; // in %-s //;
// used in Nuke launcher (Cain) - its ammunition counts as %-t of charge //;
LowAmmoSoundThreshold=0
- Low ammo warning - starts, when (this value) rounds in current magazine left;
min=0; max=MagSize-1;
NoAmmoFireSoundDelay=0.0
- Delay before pulling the trigger and playing "click" sound for weapon without ammo;
min=0.0; max=99.0; // in seconds //;
SteamSoundThreshold=0
- Amount of ammo to be left in clip before playing "running low" sound along with normal shooting sound;
min=0.0; max=99.0; // in seconds //;
LastBulletStrongerPercent=0.0f
- Last bullet from magazine will deal more damage;
min=0.0f; max=99.0f; // in %-s //; (1.0f=100%)
======== Accuracy ========
> Counts as increasing value: lesser values = more accuracy;
0.1 ~= 1 cm;
// all "0" values = accuracy=100% //;
MinAimError=(X=0.0,Y=0.0)
MaxAimError=(X=0.0,Y=0.0)
- Bullet drift per shoot from the hip (without aiming);
MinZoomAimError=(X=0.0,Y=0.0)
MaxZoomAimError=(X=0.0,Y=0.0)
- Bullet drift per shoot while aiming;
> SHOTGUNS:projectiles pattern and count are capped;
- AimError will calculate accuracy for each pellet;
AccFirePenalty=0.0f
ZoomAccFirePenalty=0.0f
- Determines cone of fire increase per shot from the hip/zoom;
AccFireInterpSpeed=0.0f
ZoomAccFireInterpSpeed=0.0f
- Determines how quick accuracy parameters approximate their maximal values per shot from the hip/zoom;
- Bigger values = greater speed;
~ MaxAimError > AccFireInterpSpeed - AccFirePenalty > MinAimError;
------------- AI weapons -------------
// X=min; Y=max //;
AI_AccCone_Max=(X=0.0,Y=0.0)
- Maximal accuracy cone for AI;
AI_AccCone_Min=(X=0.0,Y=0.0)
- Minimal accuracy cone for AI;
AI_AimDelay=(X=0.0,Y=0.0)
- Aiming time;
min=0.0; max~=99.0;
- Accuracy values recalculated separately for enemies and squadmates;
i.e. increased/decreased cone of bullets spead on firing;
======== Sight ========
> Don't affect on accuracy - just on player's HUD;
> Counts as dynamic values: greater values = bigger scope;
10 ~= 1 cm;
// X=min; Y=max //;
CrosshairRange=(X=0.0,Y=0.0)
- Scope/crosshair unscoped;
ZoomCrosshairRange=(X=0.0,Y=0.0)
- Scope/crosshair size scoped (aiming);
min=15; max=99;
// recomended: min=25; max=60; in =99 disappear completely //;
// synchronize Accuracy and CrosshairRange: 0.1=20 //;
bUseSniperCam=true
- Sniper scope usage for a weapon;
true=used; false=unused;
// actulaly sniper scope only appeares on sniper rifles, for other weapons it only allows to aim from 1-st person view //;
ZoomFOV=0
- Sniper scope Field Of View - magnification (bigger number=smaller zoom);
min~=10; max~=100;
======== Recoil =========
> Not weapon firing animation (knock back-s), just a gun barrel and crosshair sway from one side to another on firing;
Recoil=(X=0.0,Y=0.0)
- Recoil hip fire;
ZoomRecoil=(X=0.0,Y=0.0)
- Recoil aim fire;
RecoilCap=0.0f
- Max recoil hip fire;
ZoomRecoilCap=0.0f
- Max recoil aim fire;
RecoilInterpSpeed=0.0f
- Shakiness of the screen when firing;
RecoilFadeSpeed=0.0f
- Rate of recoil fade hip fire;
RecoilZoomFadeSpeed=0.0f
- Rate of recoil fade aim fire;
RecoilYawScale=0.0f
- Shakiness angle (up/down) when firing;
RecoilYawBias=0.0f
- Shakiness angle (left/right) when firing;
RecoilYawFrequency=0.0f
- Shakiness angle (top-right > middle-right) when firing;
RecoilPitchFrequncy=0.0f
- Shakiness angle (top-left > middle-left) when firing;
RecoilPitchOscillation=0.0f
- Shakiness angle (round random order) when firing;
RecoilMinFadePitch=0.0f
RecoilMinFadeYaw=0.0f
- Rate of recoil fade;
======== Reload speed ========
ReloadSuccessDuration=0.0
ReloadFailureDuration=0.0
- Values are identical - set equals;
min~=0.1; max=unlimited; // in seconds //;
EjectShellCasingTimeRatio=0.0
- Thermal clip removal animation time;
min=0.0; max=unlimited; // in seconds //;
======== Tracer projectiles ========
TracerSpawnOffset=0.0
- Frequency of tracers - visible projectiles and trails;
min=0.0; max=MagSize;
- if max value is used, every bullet in magazine will be tracer-type;
TraceRange=0
- Max tracer travel distance;
// must be equal or less than ImpactRelevanceDistance value //;
ShowTracerDistance=0
- Max tracer visibility distance;
// must be equal or less than ImpactRelevanceDistance value //;
======== Fire range & ranged damage ========
Range_Melee=300.f
Range_Short=800.f
Range_Medium=1500.f
Range_Long=2000.f
- Max relevant damage on hit distances;
min=10.0f; max=ImpactRelevanceDistance; // in meters, as distance multiplier //;
- Multipliers for DamageMod_-s - what damage amount would be dealt depending of Range_;
DamageMod_MeleeRange=0.0f
DamageMod_ShortRange=0.0f
DamageMod_MediumRange=0.0f
DamageMod_LongRange=0.0f
DamageMod_VeryLongRange=0.0f
- Damage multipliers for projectiles travel distances;
min=0.01f; max=unlimited; // in %-s, as (Damage=) multiplier //; (1.0f=100%)
- All values =1.0f - the weapon will deal same (static) amount of damage, no matter the distance;
ImpactRelevanceDistance=8000
- Max target hit range;
min=10; max=41000; // in meters //;
(max= m_fVehicleInCombatMaxRange=41000; as ~max combat range in the game);
> Ballistics: when projectile travels in a range of distance (Range_), it will deal damage (DamageMod_);
======== Aiming assistance/Auto aiming ========
> See description in Global Aiming assistance/Auto aiming readme section;
> Most values counts as degrees:
1 ~= 10°; (where 36~=360°);
min~=0.01; max~=36;
> If you set greater values to min/max AimError, min/max AccFirePenalty and enable Auto aiming (add and increase values) -
you'll can convert your weapons into "Zorg ZF-1 Pod Weapon System" from "5th Element" movie ;)
------------- Magnetic correction -------------
AimCorrectionAmount=0.0
MagneticCorrectionThresholdAngle=0
MaxMagneticCorrectionAngle=0
- The maximum amount of correction - how close you must be to your target; // in degrees //;
- This values (used by sniper rifles by-default), converting all bullets to homing-sticky type;
------------- Friction -------------
bFrictionEnabled=true
MinFrictionDistance=0.f
MaxFrictionDistance=5000.f
PeakFrictionDistance=2000.f
FrictionMultiplierRange=(X=0.28f,Y=0.28f)
bFrictionDistanceScalingEnabled=false
PeakFrictionRadiusScale=1.25f
PeakFrictionHeightScale=0.4f
FrictionTargetOffset=(Z=22.f)
------------- Adhesion -------------
bAdhesionEnabled=true
MinAdhesionDistance=100.f
MaxAdhesionDistance=6000.f
MinAdhesionVelocity=80.f
CamInputAdhesionDamping=0.4f
bAdhesionDuringCam=true
MaxLateralAdhesionDist=125.f
AdhesionRot=(X=0.f,Y=1.f)
[++++++++++++++++++++ Additional properties ++++++++++++++++++++]
bUpgradesBasicWeapon=true
- Probably replaces Avenger, Shuriken, ... with new picked up weapon for squad, when you recruit someone;
======== Enemy hit/death reactions ========
[SFXGameContent_Inventory.SFXDamageType_...] - for each gun;
Penetration=PenetrationType_Light
- Determines weapon penetration type on enemy hit;
available types: _VeryLight _Light _Medium _Heavy;
bCausesPhysicsImpact=true
- Allow physical damage on target: yes/no;
bCausesRagdoll=false
- Enemy corpse ragdoll can be spawn: yes/no;
fChanceofRagdoll=0.005
- Result will be in %-s 0.7=70%, where 1.0=100%(max) / per shot;
fPhysicsReactionTimeScale=0.3
- Target physical damage reaction time;
HitReactions=(BodyPart="Head" ... ;
- Determines enemy's various reactions for damage on hit;
[++++++++++++++++++++ Notes ++++++++++++++++++++]
https://en.wikipedia.org/wiki/Physics_of_firearms