UnrealScript library and basis for all Acedia Framework mods
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
2.7 KiB

# Acedia for mod making
This document describes Acedia from the mod maker's perspective:
how to use it to create new mods and how it works internally.
3 years ago
It consists of a brief overview of how different components fit together and
then somewhat detailed look at each of them.
This document is not a reference documentation that lists and describes
every single class and method.
Unfortunately, such a document does not exist right now.
The closest substitute for it would be Acedia'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, 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 we cannot
recommend using it to people new to the modding anyway:
Acedia's API is not stable enough and has certain quirks that can lead to nasty,
hard-to-catch bugs.
## What the hell is all of this?
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 this development was more or less planned even before version 0.1 release.
In particular, Acedia 0.1 had already included a `Feature` class that was used
3 years ago
to pick what bug fixes should be enabled.
It would have been an overkill if bug fixing was all Acedia would ever do and
now `Feature` is one of the Acedia's main... features, that is supposed to take
the role of the `Mutator` class.
What Acedia was before is now broken into three different packages:
* AcediaCore - package that defines base classes, required for other
Acedia packages to work correctly;
* Acedia - launcher that is supposed to load both native `Mutator`s and
Acedia's `Feature`s;
* AcediaFixes - all the bug fixing `Feature`s were moved here.
The topic of this document is only AcediaCore - a base class library.
3 years ago
## Getting started
First of all, go read about [safety rules](./safety.md).
They make a good introduction and will warn you about otherwise very likely
mistakes that could lead to rather nasty consequences.
3 years ago
After you've familiarized yourself with safety rules, you can skip to reading
about any topic of interest, but we strongly recommend that you first read up on
3 years ago
the fundamental topics:
[what is API](./api.md),
at least non-advanced topics of [Acedia's objects / actors](./objects.md)
and about [signal / slot system](./events.md).
| Topics | Documentation |
| ------------- | ------------- |
| `Text`, `MutableText`, 3 types of `string`s and json support | [Link](./API/text.md) |
| Collections, `DynamicArray`, `AssociativeArray` | [Link](./API/collections.md) |
| Low-level UnrealScript functions and events | [Link](./API/unreal.md) |