Skip to content

InsultingPros/AcediaCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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;
  • For information about how it works internally and justifications for why things were made the way they are, read this document.

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 strings 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 Mutators, 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 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.

Related projects

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.