Modding

Revision as of 13:13, 27 July 2024 by Totengeist (talk | contribs) (Initial page content)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Mods are packages of files that change The Last Starship in some way. These packages match the `main.dat` file structure to overload specific files. Mods can change game textures, default ships, and adjust system interactions.

Using mods

To install a mod, unzip the mod package into the game directory (C:\Program Files (x86)\Steam\steamapps\common\The Last Starship for Steam). If done correctly, you should end up with a data directory containing the mod files.

Creating mods

Texture packs

The texture files for the game are still changing regularly. Any texture pack mods may need to be updated with each game release.

To create new textures for the game, it is recommended to create new sprite sheets and only override spitebank.txt. This should allow multiple texture packs to co-exist once stronger mod tooling has been developed.

Sprites define their textures as below:

BEGIN Sprite     
    Name                 Engine  
    Image                sprite-bank.png  
    BEGIN Frames     
        Size                 2  
        BEGIN "[i 0]"      X 2160  Y 300  Width 840  Height 480  ExtendLeft 123  ExtendRight 1  ExtendUp 250  END
        BEGIN "[i 1]"      X 4140  Y 60  Width 840  Height 480  ExtendLeft 135  ExtendRight 1  ExtendUp 2  END
    END
    BEGIN Markers    
        Size                 13  
        BEGIN "[i 0]"      Name Activation  X 2544  Y 239  Width 198  Height 40  END
        BEGIN "[i 1]"      Name FuelBuffer  X 2544  Y 318  Width 201  Height 36  END
        BEGIN "[i 2]"      Name Terminal1  X 2963  Y 448  Width 30  Height 92  END
        BEGIN "[i 3]"      Name Terminal2  X 2969  Y 326  Width 19  Height 98  END
        BEGIN "[i 4]"      Name GlowOn1  X 2177  Y 575  Width 186  Height 164  END
        BEGIN "[i 5]"      Name GlowThrust3  X 2097  Y 132  Width 146  Height 356  END
        BEGIN "[i 6]"      Name GlowThrust1  X 2046  Y 467  Width 90  Height 145  END
        BEGIN "[i 7]"      Name GlowThrust2  X 2069  Y 612  Width 69  Height 70  END
        BEGIN "[i 8]"      Name GlowOn3  X 2524  Y 368  Width 244  Height 275  END
        BEGIN "[i 9]"      Name GlowOn4  X 2627  Y 156  Width 64  Height 64  END
        BEGIN "[i 10]"     Name GlowOn5  X 2876  Y 312  Width 34  Height 220  END
        BEGIN "[i 11]"     Name GlowThrust1  X 4083  Y 119  Width 141  Height 360  END
        BEGIN "[i 12]"     Name GlowOn1  X 4519  Y 162  Width 229  Height 293  END
    END
    BEGIN State      Frames [0]  END
    BEGIN State      Name Exterior  Frames [1]  END
END

The Name field of the sprite must match the name of the item used in the game. The Image field must be an image inside the sprites data folder. Frames define textures for different rotations and state the item may appear, while Markers define effects on the item.

Translations

An existing fan translation project needs support. Please consider contributing to it instead of creating your own.

To add a new language, create a new directory in data\language with the name of the language (e.g.: latin). The name of the folder will be used for the selection menu in the game. Inside this folder, create the file language.txt to contain all of the strings for the language.