Introduction

This "book" describes AcediaCore from the mod maker's perspective and is meant to give broad picture about AcediaCore's design and innerworkings, while also providing reasoning and motivations for why things are the way they are.

This document is not:

  • A tutorial that provides quick and simple introduction into how to start using AcediaCore to create new mods;
  • A collection of recipes for how to do certain specific things;
  • A reference documentation that lists and describes every single class and method. The closest substitute for that would be AcediaCore's source code - most of the methods and classes are given brief descriptions in the comments. They might somewhat lack in quality, since having a peer review for them would not have been viable so far, but that is all we can offer. Any corrections to them are always welcome.

We assume that our audience is at least familiar with UnrealScript and right now we cannot recommend using AcediaCore to people new to the modding anyway: AcediaCore's API is not stable enough and has certain quirks that are unusual for a scripting language and can lead to some nasty, hard-to-catch bugs.

What the hell is Acedia Framework?

Acedia Framework is a set of packages that aims to augment what Killing Floor is from both gameplay and modding perspective. The ideal vision we're striving for is to create a framework that will be able to provide an ultimate Killing Floor experience, while doing only what server's admin wants: anything from a purely vanilla gameplay with some optional bug fixes to configuring the gameplay to the point of total conversion.

Acedia 0.1 was a small mutator that fixed game-breaking bugs and what Acedia is now might seem like a huge departure from that, but Acedia 0.1 was simply the first step in what we want to achieve. Still, we will take great care to ensure that people who only want critical vanilla bug fixes on top of otherwise untouched vanilla can still get exactly that with Acedia.

What Acedia was before is now broken into three different packages:

  • AcediaCore - package can provides base Acedia classes and functionality, usable as a standalone library for other mods;
  • AcediaLauncher - launcher that is supposed to load both native Mutators and Acedia's Features. This is a soft dependency for using AcediaCore - highly recommended, but not absolutely necessary. It can also potentially be replaced by a custom launcher of your own making.
  • AcediaFixes - all the bug fixing Features were moved here.
  • Futility - package that provides rich set of server commands and Features to help with server administration. Actually direct gameplay changes will go into a separate package.

The topic of this document is only AcediaCore - a base class library, but other packages might be referenced as examples.