# GameplayFramework for Unreal Engine

> An open-source Unreal Engine plugin for building replicated, data-driven games on the Gameplay Ability System. GlitchWalker and Collectors Edition are built on it.

- Tags: Games, Multiplayer, Open source
- Areas: [Multiplayer game development](https://dreamawakelabs.com/multiplayer.md), [Custom engineering](https://dreamawakelabs.com/software.md)

## What it is

Every multiplayer Unreal game rebuilds the same foundation before it can test a single idea: characters with abilities and attributes, input bound to those abilities, a replicated inventory, spawners, AI, and a UI that updates when stats change. GameplayFramework is that foundation, shared across games and configured with data rather than rewritten in code.

## What we built

A Gameplay Ability System core with data-asset ability sets, attribute sets, and default effects. Data-driven Enhanced Input that maps input actions to gameplay tags. Base characters and player state set up through data assets. Event-driven UI on CommonUI and the ModelViewViewModel plugin. A server-authoritative inventory on FFastArraySerializer with item definitions as primary data assets, equipment, item wear and repair, and save and load. Server-side item and AI spawners, a projectile system, pickups, a Collectibles module, and a seeded procedural dungeon module verified with three players in a listen-server session. Apache-2.0, published through AyaDog Games, our game label.

## How it is used

A game subclasses a few core classes and assigns abilities, attributes, and effects in data assets. GlitchWalker and Collectors Edition are each a thin layer of data and subclasses on the plugin, and features land in the plugin when one of them needs something and stay general enough for the next.

## Behind the experience

- [Interactive Experiences](https://dreamawakelabs.com/technology#platform-experiences): Games made for the places we play. Systems: [GameplayFramework](https://dreamawakelabs.com/technology#gameplay-framework)

## Our technology

- GameplayFramework: This is the plugin itself.

## Built with

Unreal Engine 5, C++, Gameplay Ability System, Enhanced Input, CommonUI, ModelViewViewModel, Replication

## Media

- Diagram of three layers: a game as a thin layer of subclasses and data assets on top; the GameplayFramework plugin in the middle with abilities and attributes, data-driven input, characters, event-driven UI, inventory, spawners, AI and projectiles, and pickups and collectibles; and Unreal Engine 5 systems at the bottom. (A game configures the plugin with data assets; the plugin builds on Unreal Engine systems.): https://dreamawakelabs.com/work/gameplay-framework/architecture.svg

## Links

- [Source on GitHub](https://github.com/AyaDogGames/GameplayFramework) (Source code)
- [GlitchWalker](https://dreamawakelabs.com/work/glitchwalker) (Page)
- [Collectors Edition](https://dreamawakelabs.com/work/collectors-edition) (Page)

## Credit

Written and maintained by Dream Awake Labs. Open source under Apache-2.0, published through AyaDog Games, our game label.

[All projects](https://dreamawakelabs.com/work.md)
