Enhanced Input System: when are input actions set to be executed

By using the reference viewer in the Unreal Editor, I discovered a hard reference to the IA_Shoot_Left input action in the VRTemplateMap. I removed some custom Blueprints from the level and then added them back, which eliminated the hard reference. I believe this hard reference was the reason why the IA_Shoot_Left input action was being loaded prematurely.

My reasoning was way off here. It had nothing to do with the input mapping context. The function I wanted to execute was a server RPC. As long as the pistol was not grabbed, it had no owner, and as a result, the server RPC could not be executed. In the Output Log, I also received the following warnings:

LogNet: Warning: UNetDriver::ProcessRemoteFunction: No owning connection for actor CustomPistol_0. Function ServerShootLeft will not be processed.
LogNet: Warning: UNetDriver::ProcessRemoteFunction: No owning connection for actor CustomPistol_1. Function ServerShootLeft will not be processed.
LogNet: Warning: UNetDriver::ProcessRemoteFunction: No owning connection for actor CustomPistol_0. Function ServerShootRight will not be processed.
LogNet: Warning: UNetDriver::ProcessRemoteFunction: No owning connection for actor CustomPistol_1. Function ServerShootRight will not be processed.

Additionally, the Input Mapping Contexts were applied immediately when the EI subsystem was ready. This was because the “Add Immediately” option was checked under Project Settings > Engine > Enhanced Input > Default Mapping Contexts.

I didn’t find the exact answer I was looking for; however, some suggestions are provided in this post. For now, I still use separate functions for each input action.