Cyberpunk 2077
0 of 0

File information

Last updated

Original upload

Created by

DJ_Kovrik

Uploaded by

djkovrik

Virus scan

Safe to use

About this mod

Repeats firstEquip animation each time you equip your weapon or press a hotkey. Allows to trigger additional weapon inspection animations: IdleBreak and SafeAction. Highly configurable.

Requirements
Permissions and credits
Translations
Changelogs
Donations
Info
  • Repeats firstEquip animation each time you draw your weapon because it's just cool :) Made by request.
  • Tracks different game events to skip the animation when it should not be played (after interactions, climbing, enemy takedowns etc.)
  • Animation can be interrupted at any time with aiming.
  • Allows to trigger additional weapon inspection animations (see details below).
  • Adds new configurable custom hotkey (check pinned post in comments section if you want to change it)

Short animations demo here: https://imgur.com/a/wR3xBHc

Supported animations


firstEquip
Usually, you can see this animation when V equips any weapon for a first time.

How to trigger
Press the hotkey when your weapon sheathed to equip it with firstEquip animation. Also you will see it while equipping your weapon with a certain probability defined by FirstEquipConfig (50% by default). And finally, you can enable animation cooldown option which replaces probability based check with "play once per defined period of time" logic.

IdleBreak
Usually, you can see this animation with a certain probability when V stands still with weapon unsheathed, it looks like short weapon inspection.

How to trigger
Press the hotkey when your weapon unsheathed to run IdleBreak animation, also you will see it when V stands still with weapon unsheathed with a certain probability defined by IdleBreakConfig. Animation check runs each period, default values mean that IdleBreak check runs each 5 seconds to play the animation with 10% probability.

SafeAction
Usually, you can see this animation when you try to fire a weapon in any safe area where weapon usage is blocked, it looks like weapon chamber inspect for some revolvers, pistols and riffles or another short inspection for other weapons.

How to trigger
Hold the hotkey when your weapon unsheathed to run SafeAction animation. V will hold equipped weapon in "inspected" state while you holding the hotkey. 

How to install
  • Download all required dependencies and unpack it into the game folder
  • Download and unpack Always First Equip archive into the game folder
  • (Optional) Configure the mod with the mod settings menu

Required redscript version: 0.3.0+

How to uninstall
  • Delete Cyberpunk 2077\r6\scripts\alwaysFirstEquip.reds file
  • Delete Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks\mods\AlwaysFirstEquip folder
  • Delete Cyberpunk 2077\archive\pc\mod\AlwaysFirstEquip.archive and Cyberpunk 2077\archive\pc\mod\AlwaysFirstEquip.archive.xl files

Translation
If you want to translate the mod settings menu to your own language, then download Translation sources archive, open first-equip.json with any text editor (I would recommend Notepad++) and translate only lines with "femaleVariant" key (sample screenshot, text which you should change marked with yellow). After that check the code for your language here at the table below and send translated file back to me.

Currently supported languages:
  • English
  • Russian
  • French (credits to Unseen Unit)
  • German (credits to vorgash)
  • Simplified Chinese (credits to Alk4idin)
  • Traditional Chinese (credits to hansdofer)
  • Japanese (credits to aile1111)
  • Spanish (credits to XHisparemiX)
  • Polish (credits to george173)
  • Brazilian Portuguese (credits to ProtonWave)
  • Czech (credits to TheWolfeus)

Credits
  • jekky for the redscript compiler
  • RayNOS for the mod idea
  • psiberx for base hotkey listeners idea, archivexl and all the stuff
  • CP77 modding discord




My mods


For redscript mod developers

// Replacements
@replaceMethod(LocomotionEventsTransition)
public func OnEnter(stateContext: ref<StateContext>, scriptInterface: ref<StateGameScriptInterface>) -> Void

@replaceMethod(CarriedObjectEvents)
protected func OnEnter(stateContext: ref<StateContext>, scriptInterface: ref<StateGameScriptInterface>) -> Void

@replaceMethod(InteractiveDevice)
protected cb func OnInteractionUsed(evt: ref<InteractionChoiceEvent>) -> Bool

@replaceMethod(gamestateMachineComponent)
protected cb func OnStartTakedownEvent(startTakedownEvent: ref<StartTakedownEvent>) -> Bool

@replaceMethod(FirstEquipSystem)
public final const func HasPlayedFirstEquip(weaponID: TweakDBID) -> Bool

@replaceMethod(EquipmentBaseTransition)
protected final const func HandleWeaponEquip(scriptInterface: ref<StateGameScriptInterface>, stateContext: ref<StateContext>, stateMachineInstanceData: StateMachineInstanceData, item: ItemID) -> Void

@replaceMethod(ReadyEvents)
protected final func OnTick(timeDelta: Float, stateContext: ref<StateContext>, scriptInterface: ref<StateGameScriptInterface>) -> Void

// Added methods
@addMethod(ReadyEvents)
protected func OnDetach(const stateContext: ref<StateContext>, const scriptInterface: ref<StateGameScriptInterface>) -> Void