Introduction
Penal Engineer (PE) is not just a clone of infamous Prison Architect (developed by Introversion/Paradox) but a totally refurbished, built from scratch, game with the main focus on high extensibility and on making modding enjoyable.
Your expertise
We expect modders:
- To have basic computer literacy in working with plain text files (
.txt,.json,.xml) - To know how to work with bitmap editors (MS Paint, GIMP)
- Good to know: XML, XSD and how to define a schema (but not required).
Shortly put, nothing exceptional. The PE is crafted with modding capability in heart. No hacks, no quirks, no baking of atlases. We truly hope you'll enjoy modding our game.
Languages
The first-class citizen for modding is XML. All examples in the tutorial and in the reference documentation are always provided in XML.
JSON is secondary. Currently, every modding capability supported by XML is supported by JSON as well. At all pages, we duplicate every example in JSON accompanying an XML sample.
So, you can freely choose between those two languages to operate the Mod API. However, you should keep in mind that JSON has some natural limitations compared to XML (no namespaces, no rich documentation in schemas, no flexibility in splitting across files), which might make your mod not easily maintainable at a long distance. We seriously recommend to stick with XML: even if it shows off its monstrosity in the beginning – trust, it will pay off.
Programming?
We strive to outline everything that someone's might reasonably want to alter in declarative files (XML/JSON). So, you don't have to be a programmer.
However, sometimes you might face such a necessity, for sure.
- Lua 5.1 is what you'll use for scripting most of the time.
- Bare C# is also an option if you really want to code something at low level. PE supports
.dllplugins. But we'll not cover it in the Basics Tutorial.
Your tools
For the time being, we unfortunately don't provide any sophisticated SDK (but we have it on our roadmap).
We recommend you to use JetBrains IntelliJ IDEA for editing of JSON/XML. No-subscription mode (formerly Community Edition) should suffice with its syntax highlighting and popups with documentation extracted automatically from the schema files.