📄 General
🎨 Creating Visuals
⚙️ Custom Mechanics
📩 Mod Distribution
<aside> ⚠️ Advanced Guide: This guide assumes you have prior Unreal Engine experience and have followed the Unreal Engine installation in Getting Started.
</aside>
<aside> 💡
This guide assumes you are using Horologium Core, but everything will work regardless of how you load your mod
</aside>
This section will show you how to create a basic jump mod
The very first thing you will need is a place for all of your mods assets to go, I place all my mods in ModData/[Mod Name] to keep everything in the same place. In this case ModData/JumpMod, inside of this directory you will right click and select Blueprint Class and then select actor. Name this actor BP_JumpMod.
Next you will need this blueprint to load, to do this create the directory HorologiumMods/Gameplay. Inside of this directory create a new blueprint which is a child of BP_JumpMod, to do this right click and select Blueprint Class and then search for JumpMod, or whatever you have named your mod.

The “Pick Parent Class” selection box with “BP_JumpMod” in the search field
Select BP_JumpMod and name the new actor BP_HorologiumMod_111, you can replace 111 with any number between 1-255. You wont need to do anything in this new actor, this is only here so your main actor BP_JumpMod loads.
Next, in your original blueprint, BP_JumpMod, you will need to enable input. After the node Event BeginPlay add the node EnableInput then connect the nodes GetGameInstance > GetDBDGameInstance > GetLocalPlayerController and connect each node and finally connect GetLocalPlayerController to the PlayerController pin on the EnableInput node. The Target pin will stay unconnected as it will default to self since it is inside of the actor you want to enable input on.
Example of how to enable input
Example of how to enable input
<aside> 💡
If you don’t see an Event BeginPlay node, you can right click in the node graph and search for BeginPlay
</aside>
Next, you’ll want to update the jump height or JumpMaxHoldTime variable, to do this add the node GetDBDGameMode, then add and connect it to the node GetLocallyControlledCharacter. Then drag from the return value pin on GetLocallyControlledCharacter and search for JumpMaxHoldTime, add the Set JumpMaxHoldTime node. Change the default value from 0.0 to whatever you want, Eg 0.4. Connect the Set JumpMaxHoldTime nodes execution pin to the EnableInput node from earlier.
Example of the Set JumpMaxHoldTime node
Example of the Set JumpMaxHoldTime node
Next, right click on the node graph and search for Anykey and add the Any key node. Then click on the node and over in the details panel, under input, click the keyboard button in the Input Key section and then press the key you want players to use to jump. Alternatively, where it says Any Key with the downward chevron, click to open a drop down that will allow you to search for any button.

The details panel with keyboard button highlighted in red
I would also recommend unticking Consume Input and Override Parent Binding.
Next, add the Node GetDBDGameMode, then add and connect it to the node “GetLocallyControlledCharacter”. Then drag from the ReturnValue pin on the GetLocallyControlledCharacter node and search for Jump, add both Jump and Stop Jumping. Connect the Jump node to the Pressed execution pin on your key input node and Stop Jumping to the Released node. Make sure both Jump And Stop Jumping nodes are connected to the ReturnValue pin for GetLocallyControlledCharacter.
Example of the Jump nodes
At this point the mod is pretty much done, now just go to File > Cook Content for windows, it should cook and return no errors.

