Skip to content

The ITL Specification

Josh Nave edited this page Jan 1, 2021 · 4 revisions

(In progress)

.itl (Item Translation List) files are used by the core server to create mappings between objects in different subsystems. ITL is an NSS (The NSS Format) implementation.

Header

ITL defines a single extension pair to the NSS header:

  • definition
    Tells the core server to apply a definition list (The DEF Specification) to the current file. Definition lists convert human-readable values to subsystem specific internal id's. The associated value should be the relative path to a .def file, and must be terminated by .def.

The ITL type is itl, and the only available version is 1.

An basic ITL header might look like this:

{
    type:"itl"
    version:"1"
    encoding:"iso-8859-1"
    definition:"mc.def"
    definition:"factorio.def"
    definition:"mcmods/mekanism.def"
}

Sections

The ITL specification defines a single available section:

  • .map <subsystem id> <subsystem id>
    Indicates that the section defines translations between the two subsystems identified in the declaration. Translations are in the form of <name> <name>, and must use the same order that the subsystem id's were listed in, though translations go in both directions. The core server will search for each name in all linked definition lists; if found, it will instead use the id provided by the file, otherwise, the name will be assumed to be internal.

    An example .map section might look like this:
.map mc fac
    minecraft:stone 13
    minecraft:cobblestone 14

    minecraft:dirt 37

Example

An complete .itl file might look something like this:

{
    type:"itl"
    version:"1"
    encoding:"iso-8859-1"
    definition:"mc.def"
    definition:"factorio.def"
    definition:"mcmods/mekanism.def"
}

.map mc fac
    minecraft:stone 13
    minecraft:cobblestone 14

    minecraft:dirt 37

.map fac civ
    23 iron
    26 copper
    # Need to finish metal translations

    45 food

Clone this wiki locally