There are several categories of modding available to you in LEAP. We’ll cover a few of the most common use cases in order to help get you started.
I want to create a new weapon for my mod
In order to create a new weapon, you would create a new blueprint and inherit from the WeaponInstance class.
Once you have created your weapon, you can edit its properties to configure it. The weapon instance is well documented and every property will reveal a tooltip explaining its use when hovered.
The quickest way to create a weapon is to duplicate an existing one and then modify it to your liking. LEAP’s weapons are found in the Content->Blueprints->Weapons folder. The Assault Rifle is a very good weapon to base your new ones off of. The properties window of the weapon contains nearly 100% of the weapon’s functionality parameterized. It should only take a matter of minutes tweaking settings to get a completely different feeling weapon.
There are a number of ways to equip your custom weapon to a character. We will go over your options:
You can make a new character and replace it’s loadout with your custom weapons, then use the mutator’s checkreplacement feature to replace the game’s default character with your custom loadout character. This option works well but doesn’t stack with other mods because if another mod wants to replace the character as well, only one mod would get to do so.
The video here: https://youtu.be/Zu01hSG1sUk covers this method.
You can add a mutator (how to make a mutator: https://youtu.be/W28k9ADIcTc) and use the “modify actor” field to add your weapons to the character inventory when spawned. This is a compatible “mod stacking”. Meaning if a server owner wanted to install 2 mods that both added weapons this way, they would both get to add their weapons and the mods could co-exist peacefully.
In this example, if we’re the assault character (pathfinder), we’re removing the assault rifle and equipping the incendiary rifle to the primary slot.
What are afflictions and how do I use them?
Afflictions are basically a system of buffs or debuffs that can be applied to a character. If you are making a new damage type for your weapon, you can optionally add an affliction instance which will be applied on the character when they take damage from that weapon. Afflictions are used in our Asset(VIP) game mode in order to make the Assets stronger when they spawn.
To create an affliction, make a new blueprint and inherit from AfflicitonInstance.
There are many different types of affliction instances that can be made. In most cases the base object is good enough. The AfflictionInstanceFloat is very useful because it allows for a buff/debuff to be applied in many different ways, be it stacking, override, multiplicative when copies of the same affliction are applied. This can create interesting results, such as the stinger’s latent damage explosion, which can be found in the stinger’s damage affliction (Blueprints/Weapons/Afflictions/BP_StingerDamageAffliction)
Some afflictions you can inherit from a class and simply configure like so:
Others, you may wish to configure more manually using the affliction’s start and end events in the event graph. In this example, we deal damage to a character every 0.5s
There are many examples for you to follow in the blueprints folder, particularly in Weapons/Afflicitons.
There are many ways to add afflictions to characters, and it depends on your use case.
You could add an affliction the moment a weapon is equipped:
You could add the affliction in a mutator when the player is spawned via modify actor:
You can add the affliction to the weapon’s damage type so that it is applied to enemies when shot:
Afflictions can be applied and removed when a player enters a volume:
I want to create my own game within LEAP
Well aren’t you ambitious! Technically the LEAP project is UE4 under the hood so there are some powerful tools available to you. All you really need to do is make a new map, make your own game mode and start creating your game logic. LEAP’s base game mode is the ProjectXGameMode. You would instead want to inherit from GameMode or GameModeBase.
Publish your map with a custom game mode and it could be anything from an rpg, top down shooter or turret defence. Feel free to leverage leap environments and character assets in your completely unique game mode.
Where can I find the character classes?
Everything is in the Blueprints folder. Character classes are specifically in the Blueprints/Gameplay/PlayerClasses folder. You’ll find there’s a few that are not named as expected so I’ll translate for you:
BP_ProjectXCharacter - > Base character used for all AI and player classes
BP_ProjectXCharacter_Assault - >Pathfinder
BP_ProjectXCharacter_Explosive- - >TechOps
BP_ProjectXCharacter_SpecOps - >Wraith
BP_ProjectXCharacter_Heavy - >Titan
BP_DisplayCharacter- > Preview character for the main menu and other scenes
How do I change the HUD?
BP_ProjectXHUD contains most of our HUD instantiation. To change this. Make a child class and override beginplay to spawn specifically which widgets you would like. W_HUD is the default hud. Since BP_ProjectXHUD is an actor, you can use a Mutator with “ModifyActor” or with “checkreplacement” to sub in your custom hud elements game-wide.
Are there any other common classes to be aware of?
ProjectXCharacter - the base class for all characters LEAP Documentation: AProjectXCharacter Class Reference (blueislestudios.com)
ProjectXCharacter->WeaponComponent - A component on the player which allows addition and removal of weapons
ProjectXCharacter->AfflictionComponent - A component for adding and removing afflictions from a character
WeaponInstance - Base class for all weapons LEAP Documentation: UWeaponInstance Class Reference (blueislestudios.com) There are many different types of weapon instances, and you may want to choose a different base class depending on function. For example the ability which spawns a turret is WeaponInstanceDeployable. The ability that spawns an airstrike is WeaponInstanceDesignator. You can learn more about this by perusing existing game weapons in the Blueprints/Weapons folder
Deployables - Turrets, Healtent etc LEAP Documentation: ADeployable Class Reference (blueislestudios.com)
AfflictionInstance - Responsable for all buffs/debuffs LEAP Documentation: UAfflictionInstanceFloat Class Reference (blueislestudios.com)
ProjectXVehicle - Base class for vehicles in LEAP LEAP Documentation: AProjectXVehicle Class Reference (blueislestudios.com)
How do I know what team an actor belongs to?
Any actor that can have a team inherits from the TeamInterface, which means it has a number of functions that can be called:
How do I know what an actor’s health is?
Any actor with health inherits from the HealthInterface, it’s functions are listed here: