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