Remappable Keybinds

Summary

ArkFrame introduces a system that allows for user remappable keybindings. These keybindings actually exist as individual objects attached to the player controller. This means that each keybinding has its own graphs and variables, allowing for easily extendable custom logic.

Keybinding objects replicate by default allowing you to implement them as a mediator with UIs and the server or with player actions. they also by default hook into the keybind remapping interface for players. Filling in the preferred keybinding and an action string is all that is required for the keybinding to automatically be included in the menu.

Setting up a new keybind

To create a new keybind class open your ModData BP and add a new element to the KeybindDefinitions and create a new blueprint.

_images/keybind_newclass1.png

In the defaults of your new keybind blueprint locate the ArkFrame section. This contains the only fields that need to be filled in for the ArkFrame system.

_images/keybind_newclass2.png

Keybind Action String

This string acts as the displayable string for the keybind in the keybind interface and it acts as half of a 2-piece identifier for seperating your keybind object from any others when applying user keymapping profiles

Preferred Keybind

This struct defines the default keybinding for the object, this can be overriden by users.

PrimaryKey

This is the core key for the mapping without any modifiers. The variables accepts any key defined in UE4 however not all keys are defined as valid keys to the users. it is best to refer to the keymap dictionary for a liting of the valid keys.:

Keymap Dictionary: /Game/Mods/ArkFrame/Core/Data/ConstArkFrame_Keymapping

Modifier bools

These bools act as modifiers to the PrimaryKey:

Bool Effect
bIsReleased Defines wether or not Event Key Pressed should fire when the PrimaryKey is initially pressed or when it is released
bCtrlIsDown CTRL will be used as a cumulative modifier to the PrimaryKey
bAltIsDown ALT will be used as a cumulative modifier to the PrimaryKey
bShiftIsDown SHIFT will be used as a cumulative modifier to the PrimaryKey
bCmdIsDown CMD will be used as a cumulative modifier to the PrimaryKey

Graph Events

The keybind class only adds two events that mod authors need to be worried about. Event Keybind Pressed & Event Recieved Player Command

Additionally, The keybind class does replicate by default so Run on Server and Run on Client events can be used as well.

Event Keybind Pressed

_images/keybind_EventKeybindPressed.png

This event fires anytime the user pressed the valid assigned keybind.

Event Recieved Player Command

_images/keybind_EventRecievedPlayerCommand.png

This event fires anytime the player uses a PlayerCommand in the console.:

Syntax: AdminCheat PlayerCommand <CommandString>

The Command string is passed through the event for evaluation.