loot1

More info about Lootchadors, Click here

Brief Overview of the Project

Lootchadors is a party beat 'em up multiplayer game being developed in UE4. The aim of the game is to loot fun environments and finish the match with the most money. You can throw, punch, dash and use power ups on each other to cause mayhem! Lootchadors is Saturday Morning Cartoons meets Pro Wrestling mixed with Slapstick Humour!

An example of the Oil Slip Stat Effect and the Fully Stunned Stat Effect working one after another.

The Problem

While making Lootchadors I needed a system to handle gameplay events such as combat interactions, and power ups. The goal was to create a system which allows both Gameplay effects, and visual cues, to be added to players in a simple way with scope for allowing Designers control over these effects.

An example of the weak stun being applied multiple times and then the Fully Stunned Stat Effect being applied with the drop loot Stat Effect Also being applied.

The Solution

The solution I came up with for this was a Stat Effect System that is Data Driven. This system would both handle the visual and gameplay parts of stat effects.
The different parts that make up this system are;
  • Stat Effect manager which handles adding, queuing and removing Stat Effects from the players.
  • Stat Effect which is a container for the visual and gameplay effects that are added to the player. (GameplayCFG and VisualCFG)
  • Stat Effects Gameplay Tags, tags which are used to drive gameplay. The tags are added to the player and can effect the players current state or anim state.
  • Stat Effects Visual, VFX, Sounds, Particle Systems, UI and animations that are added and removed from the player

An example of the dash ability adding the spin out stat effect to another player

Technical Breakdown

Stat Effects are comprised of a Gameplay element, and a visual element. They are both implemented as scriptable (blueprintable) objects to allow designers to build out gameplay elements that can modify gameplay for a player, and provide a visual representation of the modifier. The code/system handles lifetime management of these objects, and calls lifecycle events (OnActivate, OnUpdate, OnRemove etc)

There’s a Data Table which has a list of StatEffect configs. This gives a central location for all Stat Effects and an easy way to create Stat Effects from the configs.

That’s pretty much the workflow. The driving force of the stat effects are the Gameplay Tags. The player has a container of these and every frame the state machine reads them and changes its state based on certain tags.


An example of the weak stun being applied multiple times and then the Fully Stunned Stat Effect being applied with the drop loot Stat Effect Also being applied.