Arx Fatalis tools

From Arx Libertatis Wiki
Jump to navigation Jump to search

This page lists tools created by Arx Fatalis community to help explore and mod the game.

If you are looking to create new tools you might be interested in documentation of custom file formats used in Arx.

See also https://arx-tools.github.io/

Unpackers

Main article: PAK file format.

These tools let you explore and/or unpack the .pak files containing the Arx Fatalis game data. Resource listings for all known editions of the game are available in the ArxFatalisManifests repository.

arxunpak

Arx Libertatis comes with the arxunpak command-line tool to unpack Arx Fatalis .pak archives.

You can run arxunpak without arguments (for example by double-clicking the executable) to unpack all resources to the unpacked subdirectory of the Arx Libertatis user directory, for example %USERPROFILE%\Saved Games\Arx Libertatis\unpacked on Windows or ~/.local/share/arx/unpacked on Linux. If you installed the Arx Fatalis data at a non-default location you might need the --data-dir option to point to the directory containing your .pak files.

arxunpak will only extract those resources seen by the game - for example the old scripts in data.ṗak are hidden by the patched scripts in data2.pak. To access the unpatched resources specify the archive to extract as an argument to arxunpak:

arxunpak data.pak

More information is available using the --help option and in the man page.

ArxPak

ArxPak is a GUI tool to view and extract the contents for Arx Fatalis .pak archives.

Note: When you specify a directory to extract data, the program will actually place all files in one directory above (on the same level as the specified directory).

afunpak

This program unpacks .PAK files from Arx Fatalis. Includes source code. Created by CTPAX-X Team.

Dimoks' DANAE build also comes with the afunpak command-line tool to extract Arx Fatalis .pak archives:

arx-unpacker

arx-unpacker is a small stand-alone tool to extract Arx Fatalis .pak archives.

GitHub repo

node-pkware

Node JS implementation of StormLib's Pkware compression/decompression algorithm, which is not the same as the zip pkware format that is commonly used today

It was the de-facto compression for games from around Y2K, like Arx Fatalis

GitHub repo

arx-header-size

Returns the header size for Arx Fatalis files

This is needed, because the files are partially compressed and this number can be given as an offset for node-pkware

GitHub repo

Editors

Arx Libertatis Blender plugin

Main article: Blender.

Arx Libertatis 1.2 and newer comes with plugin for Blender to import and export the model, animation and scene formats used by Arx Fatalis. Make sure to use the latest development snapshots.

DAmnable but Necessary Arx Editor (DANAE)

Main article: DAmnable but Necessary Arx Editor.

The Arx Fatalis 1.21 Source Code released by Arkane comes with the original level editor used to create the game. This editor is not available in Arx Libertatis but you can build the original source code yourself to access the editor.

A build of DANAE is also provided by Dimoks as well as some instructions (in Russian):

Arx Fatalis level generator

A tool for creating maps for the video game Arx Fatalis

GitHub repo

Arx Fatalis converter

Converts various Arx Fatalis formats (DLF, FTS, LLF, AMB and FTL) to JSON/YAML and back

GitHub repo

arx-mesh-editor

An editor for the level files of Arx Fatalis

GitHub repo

ArxLibertatisLightingCalculator

A tool for creating maps for the video game Arx Fatalis

GitHub repo

Notepad++ User Defined Language for Arx Script

User Defined Language for the Arx Fatalis script syntax. Not optimal, but adequate.

Debugging

Arx Libertatis script console

Main article: Script console.

Arx Libertatis 1.2 and newer comes with a script console that can execute any command supported by the Arx scripting language. Make sure to use the latest development snapshots.

In debug builds and development snapshots the console can be opened using a configurable hotkey (` by default).

In release builds the following cheat spell opens the console:

Aam Rune (create)Mega Rune (increase)Stregum Rune (magic)Comunicatum Rune (control)Spacium Rune (field) Aam Mega Stregum Comunicatum Spacium (create increase magic control field)

You do not need to have the runes to cast this spell. Casting the spell once unlocks the console, after which it can be opened using the normal hotkey.

Arx Libertatis debug views

Main article: Debugging.

Arx Libertatis 1.2 and newer comes with several debug information displays and views that can be cycled through with the F11 and Scroll Lock keys. Make sure to use the latest development snapshots.

arxsavetool

Arx Libertatis comes with the arxsavetool command-line utility to view, extract and modify Arx Fatalis and Arx Libertatis .sav archives. The following actions are supported:

Extract all save data to the current directory. This will create one file for each entity named after the entity ID, one lvl* file for each level (that you have visited), one player file, one pld file and one globals file. See the wiki page describing the save file format for what these binary files do.

arxsavetool extract <savefile>

Add one or more files to a .sav archive. If the file already exists in the archive it is overwritten.

arxsavetool add <savefile> <files>...

Fix save file errors (fixes problems caused by bugs in old Arx Libertatis versions - back up your saves before!):

arxsavetool fix <savefile>

Change the in-game name of a save file:

arxsavetool rename <savefile> <newname>

View save state:

arxsavetool view <savefile>
arxsavetool view <savefile> <ident>

where <ident> is pld, globals, player, lvl followed by a 3-digit level number, or an entity ID.

For all commands, <savefile> is the path to a .sav file or a directory containing a gsave.sav file.

If you installed the Arx Fatalis data at a non-default location you might need the --data-dir option to point to the directory containing your .pak files. More information is available using the --help option and in the man page.

Libraries

ArxLibertatisEditorIO

this is a library for reading and writing arx libertatis level files

it DOES NOT rely on the ArxIO.dll anymore

work in progress obviously. it also has a nuget package https://www.nuget.org/packages/ArxLibertatisEditorIO

GitHub repo