Compiling the Mod from Source - Say the Spire Documentation

# For Developers

If you are looking to work on adding additional functionality to the mod, this section details how to compile the mod. if you are looking to localize the mod, go here.

## Compilation

### Mod Requirements

SayTheSpire requires both ModTheSpire and BaseMod in order to run. As a result it needs these jars to compile.

- ModTheSpire
- BaseMod

Paste modTheSpire.jar and BaseMod.jar into the lib folder at the root of this repository. If one does not exist it is safe to create one.

### Setting up Screen Reader Libs

In order to use screen reader output, you need Output libraries for all supported operating systems. These are required for the mod to compile.

#### Windows

For screen reader output on windows, the Tolk library is required. You can find Tolk here. Clone this repository and compile the .jar.

You need to set up the Tolk.jar as a maven dependency. To do so, run this command from the repository's root, substituting in the correct path for your Tolk.jar and leaving the other parameters unchanged:

    mvn install:install-file -Dfile=path/to/Tolk.jar -DgroupId=com.davykager.tolk -DartifactId=Tolk -Dversion=unknown -Dpackaging=jar

If you want screen reader dlls to automatically extract at runtime, download the release from the Tolk github page (Latest build from AppVeyor). Paste the x86 and x64 directories in src/main/resources/tolk/, so you should have a directory structure resembling this.

- src/main/resources/
  - tolk/
    - x86/
    - x64/

Note that if you do not add these files to resources, you will have to manually place the correct dlls in your root SlayTheSpire game directory.

#### Linux

For screen reader output on Linux, speech dispatcher via the speechd library is used. Clone the speechd github repository and use ant to compile it.

You will then need to set up the package as a Maven dependency. To do this, use this command, substituting in the correct path to speechd.jar while leaving the other parameters unchanged:

    mvn install:install-file -Dfile=path/to/speechd.jar -DgroupId=speechd -DartifactId=speechd -Dversion=unknown -Dpackaging=jar

### Packaging and Setup

To compile the mod, run

    mvn package

This should compile the mod and bundle all needed screenreader library files and other dependencies into the main .jar file. After that, copy mods/sayTheSpire.jar to your Slay the Spire mods directory.