Framework for weapon mods. Enable specific weapons to swap firemodes at the press of a keybind, audio fixes for all triggermodes and silencers, SecondaryDependantStatModifier, triggermode Prereqs, and more
Other user's assetsSome assets in this file belong to other authors. You will need to seek permission from these authors before you can use their assets
Upload permissionYou are not allowed to upload this file to other sites under any circumstances
Modification permissionYou must get permission from me before you are allowed to modify my files to improve it
Conversion permissionYou are not allowed to convert this file to work on other games under any circumstances
Asset use permissionYou must get permission from me before you are allowed to use any of the assets in this file
Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are not allowed to earn Donation Points for your mods if they use my assets
Author notes
This author has not provided any additional notes regarding file permissions
File credits
rfuzzo for revealing this could be done and writing its first iteraction psiberx for most of the resources and Codeware support
Please log in to find out whether this mod is receiving Donation Points
Changelogs
Version 2.7.2
Charged attack selection will now keep BaseStats.ChargeReadyPercentage value in consideration
Version 2.7.1a
Optimization
Hardened handling of unconventional records
Version 2.7.0
Support for same-trigger automatic swapping
Version 2.6.0
Added optional (global) override for unslowable charge time
Version 2.5.1
Added UnslowableCharge tag functionality
Overwatch's audioset will be unaffected by equipped silencing attachments
Version 2.5.0
Added GradualChargeDecay tag functionality
Added ResetChargeOnSwap tag functionality
Renamed PartialChargeDecay tag into PartialChargeFire (for clarity)
Renamed ForceInstantDischarge tag into ForceInstantDischargePrimary (for consistency)
Version 2.4.0
Realtime Mod Settings configuration
Resources consolidation
Version 2.3.0
Added PartialChargeDecay tag functionality
Added ForceInstantDischarge tag functionality
Version 2.2.7
Fixed a typo
Version 2.2.6
Added Brazilian localization (by yRaven)
Version 2.2.5
Added RemoveAuto tags
Version 2.2.4
Added Czech translation (by starfis)
Version 2.2.3
Added ConstantAttackPackage tag functionality
Version 2.2.2
Added NoAutoReload tag functionality
Fixed compatibility between ForceAuto tags and "Internal Clock - Perk Rework" mod (no fullauto bolt spam)
Version 2.2.1
Added support for different Burst stats on double Burst triggers
Version 2.2.0
Added streamlined support for firemode-related prereqRecords
Version 2.1.4
Fixed minor glitch
Version 2.1.3
More audio fixes
Version 2.1.2
More audio fixes
Version 2.1.1
Fixed firing sounds on all combinations of firemodes
Added a quiet charging sound on audio packages that didn't have one
Version 2.1.0
Added Codeware requirement
Added missing audio sounds for silencers, in audio packages that don't nativelly support them
Version 2.0.0
TriggerBoundAttacks is now folded into ManualTriggerSwap's base functionality and no longer needed. It's opposite can be used if desired: AimingBoundAttacks
Added ForceAutoPrimary and ForceAutoSecondary (plus Mod Settings option for forced auto override)
Added TweakDB presets for silencers that don't mess with weapon sound
Better UI hint selection (to account for forced auto override)
Version 1.2.0
Added support for tdb StatModifiers tied to firemode
Added TweakXL requirement
Version 1.1.1
Improved vehicle combat support
Version 1.1.0
Added support for different attacks on identical triggers
Completed Preem Weaponsmith interface (custom guns can manually swap)
Increased swap responsiveness
Optimization
Version 1.0.5
Accounted for a few more possible inconsistencies in the game files
Version 1.0.4
Refined the checks added in previous version
Moved trigger swap override for Tech weapons in a separate Mod Settings option
Version 1.0.3
Added a fix for Hercules' shenanigans
Version 1.0.2
Preem Weaponsmith compatibility
Version 1.0.1
Redone the logic to check for tags on the weapon
Added attack selection as an optional second tag, that can work together or separately
Added support for vehicle combat
Provided several keybind options
Added Mod Setting option, to force manual control on all guns with multiple triggermodes
Framework for Cyberpunk2077, to enable specific weapons to swap firemodes at the press of a keybind while leaving all other weapons unaffected.
Credits to rfuzzo, that showed everyone this could be done by writing the initial version.
a Mod Settings option is provided, to allow users to force the new functionalities on all applicable guns, but this is mainly meant as a resource for modders to make/modify weapons for you. If you aren't happy with how a weapon behaves once you flip that switch on, then mod it. If you want to add a second trigger type where there was only one, mod it. The documentation can help, but If you need assistance you'll find it on the Modding Community Discord (we have a merchants-of-death channel)
To make a weapon change firemode manually, instead of the automatic swap that the base game does when changing aiming state, just add the ManualTriggerSwap tag to the record of the weapon in question: tags: - !append ManualTriggerSwap
More tags on the wiki (ForceAuto, RemoveAuto, NoAutomaticReload, ProtectedAttackPackage, AimingBoundAttacks,...)
Audio fixes Passively adds proper shooting sounds to audiosets that didn't natively incorporate silenced sounds, charging sound, or sounds for different trigger modes.
TweakDB resources
You can now use $base: BaseStats.SecondaryDependantStatModifier to make StatModifiers that only apply to the secondary firemode, regardless of if it's triggered manually or automatically on aim. For example: $base: BaseStats.SecondaryDependantStatModifier statType: BaseStats.CycleTimeBonus modifierType: Additive value: 2.0 will result in slower firerate only while using its secondary firemode.
Prereqs.IsPrimaryTrigger and Prereqs.IsSecondaryTrigger are new prereqRecords for effectors, to check application according to desired firemode.
The following records are copies of the native silencers that won't change firing sounds (gameplay effects untouched). You can have them pre-slotted in your gun or use them as a $base for your own custom silencer: