<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.tls-wiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Postlim</id>
	<title>The Last Starwiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.tls-wiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Postlim"/>
	<link rel="alternate" type="text/html" href="https://www.tls-wiki.com/wiki/Special:Contributions/Postlim"/>
	<updated>2026-06-04T02:08:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.tls-wiki.com/w/index.php?title=Modding&amp;diff=2508</id>
		<title>Modding</title>
		<link rel="alternate" type="text/html" href="https://www.tls-wiki.com/w/index.php?title=Modding&amp;diff=2508"/>
		<updated>2026-02-18T04:43:46Z</updated>

		<summary type="html">&lt;p&gt;Postlim: added explanation to edditing the recipe.txt file&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mods are packages of files that change The Last Starship in some way. These packages match the &amp;lt;code&amp;gt;[[main.dat]]&amp;lt;/code&amp;gt; file structure to overload specific files. Mods can change game textures, default ships, and adjust system interactions.&lt;br /&gt;
&lt;br /&gt;
== Using mods ==&lt;br /&gt;
&lt;br /&gt;
To install a mod, unzip the mod package into the game directory (&amp;lt;code&amp;gt;C:\Program Files (x86)\Steam\steamapps\common\The Last Starship&amp;lt;/code&amp;gt; for Steam). If done correctly, you should end up with a &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; directory containing the mod files.&lt;br /&gt;
&lt;br /&gt;
== Creating mods ==&lt;br /&gt;
&lt;br /&gt;
=== Texture packs ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039; The texture files for the game are still changing regularly. Any texture pack mods may need to be updated with each game release.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To create new textures for the game, it is recommended to create new sprite sheets and only override &amp;lt;code&amp;gt;spritebank.txt&amp;lt;/code&amp;gt;. This should allow multiple texture packs to co-exist once stronger mod tooling has been developed.&lt;br /&gt;
&lt;br /&gt;
Sprites define their textures as below:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;BEGIN Sprite     &lt;br /&gt;
    Name                 Engine  &lt;br /&gt;
    Image                sprite-bank.png  &lt;br /&gt;
    BEGIN Frames     &lt;br /&gt;
        Size                 2  &lt;br /&gt;
        BEGIN &amp;quot;[i 0]&amp;quot;      X 2160  Y 300  Width 840  Height 480  ExtendLeft 123  ExtendRight 1  ExtendUp 250  END&lt;br /&gt;
        BEGIN &amp;quot;[i 1]&amp;quot;      X 4140  Y 60  Width 840  Height 480  ExtendLeft 135  ExtendRight 1  ExtendUp 2  END&lt;br /&gt;
    END&lt;br /&gt;
    BEGIN Markers    &lt;br /&gt;
        Size                 13  &lt;br /&gt;
        BEGIN &amp;quot;[i 0]&amp;quot;      Name Activation  X 2544  Y 239  Width 198  Height 40  END&lt;br /&gt;
        BEGIN &amp;quot;[i 1]&amp;quot;      Name FuelBuffer  X 2544  Y 318  Width 201  Height 36  END&lt;br /&gt;
        BEGIN &amp;quot;[i 2]&amp;quot;      Name Terminal1  X 2963  Y 448  Width 30  Height 92  END&lt;br /&gt;
        BEGIN &amp;quot;[i 3]&amp;quot;      Name Terminal2  X 2969  Y 326  Width 19  Height 98  END&lt;br /&gt;
        BEGIN &amp;quot;[i 4]&amp;quot;      Name GlowOn1  X 2177  Y 575  Width 186  Height 164  END&lt;br /&gt;
        BEGIN &amp;quot;[i 5]&amp;quot;      Name GlowThrust3  X 2097  Y 132  Width 146  Height 356  END&lt;br /&gt;
        BEGIN &amp;quot;[i 6]&amp;quot;      Name GlowThrust1  X 2046  Y 467  Width 90  Height 145  END&lt;br /&gt;
        BEGIN &amp;quot;[i 7]&amp;quot;      Name GlowThrust2  X 2069  Y 612  Width 69  Height 70  END&lt;br /&gt;
        BEGIN &amp;quot;[i 8]&amp;quot;      Name GlowOn3  X 2524  Y 368  Width 244  Height 275  END&lt;br /&gt;
        BEGIN &amp;quot;[i 9]&amp;quot;      Name GlowOn4  X 2627  Y 156  Width 64  Height 64  END&lt;br /&gt;
        BEGIN &amp;quot;[i 10]&amp;quot;     Name GlowOn5  X 2876  Y 312  Width 34  Height 220  END&lt;br /&gt;
        BEGIN &amp;quot;[i 11]&amp;quot;     Name GlowThrust1  X 4083  Y 119  Width 141  Height 360  END&lt;br /&gt;
        BEGIN &amp;quot;[i 12]&amp;quot;     Name GlowOn1  X 4519  Y 162  Width 229  Height 293  END&lt;br /&gt;
    END&lt;br /&gt;
    BEGIN State      Frames [0]  END&lt;br /&gt;
    BEGIN State      Name Exterior  Frames [1]  END&lt;br /&gt;
END&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;code&amp;gt;sprites&amp;lt;/code&amp;gt; data folder. Frames define textures for different rotations and state the item may appear, while Markers define effects on the item.&lt;br /&gt;
&lt;br /&gt;
=== Translations ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;An existing [https://github.com/Totengeist/LastStarshipTranslations fan translation project] needs support. Please consider contributing to it instead of creating your own.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To add a new language, create a new directory in &amp;lt;code&amp;gt;data\language&amp;lt;/code&amp;gt; with the name of the language (e.g.: &amp;lt;code&amp;gt;latin&amp;lt;/code&amp;gt;). The name of the folder will be used for the selection menu in the game. Inside this folder, create the file &amp;lt;code&amp;gt;language.txt&amp;lt;/code&amp;gt; to contain all of the strings for the language.&lt;br /&gt;
&lt;br /&gt;
=== New recipes ===&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039; The recipe files for the game are still changing regularly. Any mods may need to be updated with each game release.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To create new &#039;&#039;recipe&#039;&#039; for the game, it is recommended to create new data folder and only override &amp;lt;code&amp;gt;recipes.txt&amp;lt;/code&amp;gt;. This should allow multiple mods to co-exist once stronger mod tooling has been developed.&lt;br /&gt;
&lt;br /&gt;
Recipes define their input and outputs as below:&lt;br /&gt;
 BEGIN Recipe&lt;br /&gt;
     Type                ShieldedZeleonCanister&lt;br /&gt;
     Equipment           ChemicalLab&lt;br /&gt;
     Duration            2.0&lt;br /&gt;
     NeedsUnlocking      true&lt;br /&gt;
     BEGIN Item      Type PortInput  Index 1  Resource StableZeleon  Quantity 15.0  Capacity 60.0  END&lt;br /&gt;
     BEGIN Item      Type SlotInput  Resource ShieldedCanisterComponent  Quantity 2.0  Capacity 12.0  END&lt;br /&gt;
     BEGIN Item      Type SlotOutput Index 1  Resource ShieldedZeleonCanister  Quantity 2.0 Capacity 8.0  END&lt;br /&gt;
 END&lt;br /&gt;
The Type field must match an existing item in the game. and will be used to put that name and sprite as header in the list of recipes.&lt;br /&gt;
&lt;br /&gt;
The Equipment field specifies the type of equipment used to preform the recipe. so far the Refinery, ChemicalLab, MunitionsFactory, Fabricator, Assembler, LaserInfuser have been tested as valid entries.&lt;br /&gt;
&lt;br /&gt;
The Duration field specifies the processing time of the recipe in seconds.&lt;br /&gt;
&lt;br /&gt;
The NeedsUnlocking field is optional. If set to true then the recipe has to be added to a technology in &amp;lt;code&amp;gt;techtree.txt&amp;lt;/code&amp;gt; before it can be researched and then useed.&lt;br /&gt;
&lt;br /&gt;
Each ingredient or product has to be specified by the following format:  BEGIN Item      Type [Port/Slot][Input/Output]  Index [Index number of the spot the item is loaded or pipe is connected]  Resource [Resource name]  Quantity [The amount required]  Capacity [How much can be loaded at once]  END . The amount and type of ingredients/products allowed depend on the Equipment used.&lt;/div&gt;</summary>
		<author><name>Postlim</name></author>
	</entry>
</feed>