SUDS is a plugin for Unreal Engine 5 which allows you to run dialogues in your game based on a script that you write in a text file.
Scripts look something like this:
Note: this is an image so that you can see the nice syntax highlighting provided by the SUDS VSCode plugin.
SUDS has many features, including:
- Dialogue flow is expressed in a text file for a focussed writing experience
- Multi-line speech support
- Player choices with unlimited embedded responses
- Flow control: goto, gosub, conditional branching, random lines
- Persistent variable state
- Send events back to code/blueprints with any number of arguments
- Supports all the variable substitution and formatting features in the same way Unreal does
- A convenient in-editor testing tool
- Localisation support, including adding translator comments
- Easy integration with save games (SPUD or otherwise)
SUDS was inspired by Ink and YarnSpinner, but I started from scratch and designed it specifically to integrate well with Unreal Engine. It also has a number of differences to those systems, based on my own preferences and the needs of my own project.
SUDS is very focussed on providing just a dialogue engine; integrating it with your other game systems is an exercise for the reader; there are multiple ways to do it.
However, if you'd like more of the integration done for you, including supporting making camera cuts, playing cutscenes, and animating characters, I also publish SUDS Pro on Fab. It's pre-built for the engine so you don't need a C++ project, which is also convenient for people who just want to use Blueprints.
You don't need SUDS Pro; core SUDS is a perfectly capable dialogue engine on its own and you can integrate it with the rest of your code how you like. But, if you'd like a little extra functionality pre-integrated, and also to help fund development, please consider buying SUDS Pro.
All of the code in this repository was written by humans. No LLMs were used to generate any of the code.
Pull requests generated by LLMs will be rejected. You are free to use LLMs in your own workspace to explore a problem, but any code you submit must be written by you, not the LLM. Do not submit PRs with LLM generated descriptions, they create walls of text that are mostly waffle and nonsense and a waste of everyone's time.
