# AcediaCore alpha 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](https://insultplayers.ru/killingfloor/acedia/howto/); * For information about how it works internally and justifications for why things were made the way they are, read [this document](https://insultplayers.ru/killingfloor/acedia/docs/). ## Why should I be interested in it? Currently AcediaCore doesn't offer much in terms of gameplay-altering features, focusing mostly on utility APIs: * **Aliases** Write `$ak47` instead of `KFMod.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's `ConsoleWriter` 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; ## Installation 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 [AcediaLanucher](https://www.insultplayers.ru/git/AcediaFramework/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.