AcediaCore is an UnrealScript library that is intended to provide a framework for creating mods for Killing Floor. Currently AcediaCore...
- Changes as little as possible. Despite its size, AcediaCore will only make changes that were requested from it, otherwise doing nothing and providing you with completely vanilla experience. This is a quality it will keep in all consequent releases.
- Server-side. So far AcediaCore was developed as a server-side only library. Some work on client-side feature has already started and at some point AcediaCore will support working with mods that affect clients, but this side of API is not intended to be accessed as of right now.
- Unstable API This doesn't mean that AcediaCore crashes, but that API
provided by AcediaCore (classes definitions, functions' signatures, ...)
can and will change as development goes on.
We aren't going to do it just for the hell of it and will try to preserve
the current behavior as much as is reasonable, but if providing a better API
would require us breaking compatibility, we will break it
(until version
1.0
is released).
AcediaCore is currently in the alpha with a goal to expose it to slightly wider circle of people, while finishing some yet incomplete features.
So far there's very little documentation to go by:
- For reference documentation you can check the source code: it is rather heavily documented;
- For basic usage examples you can refer to this document;
- For information about how it works internally and justifications for why things were made the way they are, read this document.
Currently AcediaCore doesn't offer much in terms of gameplay-altering features, focusing mostly on utility APIs:
- Aliases Write
$ak47
instead ofKFMod.AK47AssaultRifle
; - Commands Don't worry about parsing your
mutate
commands' input, AcediaCore will handle it for you; - Text Slower, but more functional text types. Define colored
string
s like this:This is a string with {\$red red}, {rgb(0,255,0) green} and {#0000ff blue} colors! There is also {\$pink pink with {\$gold embedded gold} color}!
; - Parsing Additional tools for making parsing whatever you want easier;
- Signals and Slots Want to handle user's
mutate
commands? Just do this:_server.unreal.mutator.OnMutate(self).connect = HandleMutate;
; - Collections Generic collections that can be converted into JSON and back;
- Features More of a pain in the ass to make than
Mutator
s, but should provide better UX (I hope); - Console output No more ugly-wrapped lines from
ClientMessage
, AcediaCore'sConsoleWriter
will auto-wrap long lines for you; - Local databases Working local databases that can store arbitrary JSON values, still require a bit of polish;
- Unit testing Built-in support for unit testing of things that can be tested within one tick;
- [WIP] External applications Exchange JSON messages with external applications, including remote JSON databases. Passed proof-of-concept stage, but still unfinished;
There is no need for installation besides copying the mod file into your
server's System/
directory, but to actually make use of AcediaCore you need
to install
AcediaLauncher.
There is a way to use AcediaCore without launcher or any other package, but we
will document it later, after polishing a few things.
Some of the projects that are still in development:
- AcediaLauncher
- for starting up AcediaCore and packages that depend on it;
- AcediaFixes
- game bug fixes have moved into this package;
- Futility
- a package that aims to make administration and mod testing easier through Admin-Plus-esque commands and non-gameplay related configuration features.