additional info on sharing mods and maps

This commit is contained in:
Ell 2023-05-25 14:40:01 +02:00
parent f30fee230b
commit 85a5a303d8
5 changed files with 19 additions and 9 deletions

View file

@ -37,5 +37,5 @@ You can open up the game's cheat menu by pressing the `F1` key. Here is a list o
- Pressing the up, down, left and right keys moves the current action spot's position and holding shift moves the spot's visual position instead - Pressing the up, down, left and right keys moves the current action spot's position and holding shift moves the spot's visual position instead
- Pressing the page up and page down keys moves the spot's y offset. - Pressing the page up and page down keys moves the spot's y offset.
- The resulting values are printed to the console every time a modification is made, so you can copy them and paste them into your action spot code. - The resulting values are printed to the console every time a modification is made, so you can copy them and paste them into your action spot code.
- `DumpTexture` saves the game's texture packer's entire texture into the Tiny Life directory (which can be accessed through the options menu) as `_Packed.png`. - `DumpTexture` saves the game's texture packer's entire texture into the Tiny Life folder (which can be accessed through the options menu) as `_Packed.png`.
- There are various cheats that print organized debug information to the console, which can be useful for debugging and balancing mods. These include `TalkActions`, `AverageTalkActions`, `ActionPriorities`, `AverageActionPriorities`, `NeedStats`, `HouseholdStats`, `SkillStats`, and `ActionStats`. - There are various cheats that print organized debug information to the console, which can be useful for debugging and balancing mods. These include `TalkActions`, `AverageTalkActions`, `ActionPriorities`, `AverageActionPriorities`, `NeedStats`, `HouseholdStats`, `SkillStats`, and `ActionStats`.

View file

@ -27,14 +27,20 @@ There's a few cheats not listed in the [cheats article](cheats.md) that are usef
- `MoveMap [x section amount] [y section amount]` moves the map and all of its contents by a given amount of sections. This is useful if you want to add content beyond the top or left borders of the map where resizing doesn't add any additional space. - `MoveMap [x section amount] [y section amount]` moves the map and all of its contents by a given amount of sections. This is useful if you want to add content beyond the top or left borders of the map where resizing doesn't add any additional space.
## Exporting Your Map ## Exporting Your Map
To export your custom map, simply execute the `ExportCustomMap` cheat. This will reset some of the map's properties to default values, which includes normalization the skill level progress and relationships of everyone on the map. You can find your exported map in the [game directory's](game_dir.md) `Custom Maps` folder. To export your custom map, simply execute the `ExportCustomMap` cheat. This will reset some of the map's properties to default values, which includes normalization the skill level progress and relationships of everyone on the map. You can find your exported map in the [game folder's](game_dir.md) `Custom Maps` folder.
Before sharing your map with the community, there are some additional files that are required to make the map work in-game: To complete your map's export, there are some additional files that are required to make the map work in-game:
- `MyMapName.txt` contains the description of your map which will be displayed when creating a new save file in the game. - `MyMapName.txt` contains the description of your map which will be displayed when creating a new save file in the game.
- `MyMapName.png` contains a screenshot of a prominent part of your map (or any other image) which will be displayed when creating a new save file. The game expects this file to have 4:1 aspect ratio, with the default maps' size being 512x128 pixels. - `MyMapName.png` contains a screenshot of a prominent part of your map (or any other image) which will be displayed when creating a new save file. The game expects this file to have 4:1 aspect ratio, with the default maps' size being 512x128 pixels.
- Optionally `MyMapNameSteamThumbnail.png`, which will be used as the preview image displayed in the Steam Workshop if you decide to share your map there. The restrictions for this seem somewhat arbitrary, but it's best to keep the file size under 1 MB and the image size around 256x256 pixels. - Optionally `MyMapNameSteamThumbnail.png`, which will be used as the preview image displayed in the Steam Workshop if you decide to share your map there. The restrictions for this seem somewhat arbitrary, but it's best to keep the file size under 1 MB and the image size around 256x256 pixels.
Optionally, you can put the three (or four) files into a `zip` archive to share with the community. The archive can then be put into the game's `Custom Maps` folder as-is, and the map will be available to select in-game. Optionally, you can put the three (or four) files into a `zip` archive to share, which is required to share your map with the community. The archive can then be put into the game's `Custom Maps` folder as-is, and the map will be available to select in-game.
## Sharing Your Map
To share your map on [the Steam workshop](https://steamcommunity.com/app/1651490/workshop/), make sure that Steam is open in the background, and that your map's `zip` archive is in the `Custom Maps` folder. Then, go to the rightmost tab in the game's Options menu and select "Share Custom World on Steam Workshop", and then follow the instructions there.
It's recommended that, in addition to Steam workshop, you also publish your map elsewhere, like on [the itch community](https://itch.io/board/1032686/mods), as not every player has access to Steam workshop.
## Editing or Updating Your Map ## Editing or Updating Your Map
If you want to update your map, either by adding additional content to it, or by fixing issues that you noticed, like incomplete roads or misplaced decorations, you can simply create a new save file and select your map's export. If you want to update your map, either by adding additional content to it, or by fixing issues that you noticed, like incomplete roads or misplaced decorations, you can simply create a new save file and select your map's export.

View file

@ -20,7 +20,7 @@ On Windows, you can simply open a file explorer window and paste the following t
This should automatically cause the explorer to navigate to the appropriate folder. This should automatically cause the explorer to navigate to the appropriate folder.
### Linux ### Linux
On Linux, you have to navigate to your home directory (also known as `~`) first. This is usually `/home/username`. From there, you can navigate to `.local/share/Tiny Life`. On Linux, you have to navigate to your home folder (also known as `~`) first. This is usually `/home/username`. From there, you can navigate to `.local/share/Tiny Life`.
Since `.local` is usually a hidden folder, you might have to configure your file explorer to display hidden files as well. Since `.local` is usually a hidden folder, you might have to configure your file explorer to display hidden files as well.
@ -30,7 +30,7 @@ cd ~/.local/share/Tiny Life
``` ```
### Mac ### Mac
On Mac, you have to navigate to your home directory (also known as `~`) first. This is usually `Macintosh HD/Users/username`. From there, you can navigate to `.local/share/Tiny Life`. On Mac, you have to navigate to your home folder (also known as `~`) first. This is usually `Macintosh HD/Users/username`. From there, you can navigate to `.local/share/Tiny Life`.
Since `.local` is usually a hidden folder, you might have to configure your finder to display hidden files by pressing `Cmd + Shift + .` together. Since `.local` is usually a hidden folder, you might have to configure your finder to display hidden files by pressing `Cmd + Shift + .` together.

View file

@ -22,7 +22,7 @@ The following list contains a few bits of additional information that you should
*For example, in `You can rotate furniture by pressing <k Rotate>.`, the formatting code will be replaced with the key value of the keybind to rotate furniture and other objects. If the word `Rotate` in it was changed (or translated), the link to the keybind would be broken.* *For example, in `You can rotate furniture by pressing <k Rotate>.`, the formatting code will be replaced with the key value of the keybind to rotate furniture and other objects. If the word `Rotate` in it was changed (or translated), the link to the keybind would be broken.*
- The proper noun for a person in the game is "a Tiny", with the English plural being "Tinies". This term can be slightly or heavily varied based on the language, as long as it's kept consistent. *For example, German words adapted from English usually don't use `ie` instead of `y` for plural, so the German plural is "Tinys".* - The proper noun for a person in the game is "a Tiny", with the English plural being "Tinies". This term can be slightly or heavily varied based on the language, as long as it's kept consistent. *For example, German words adapted from English usually don't use `ie` instead of `y` for plural, so the German plural is "Tinys".*
- To get started translating, simply select the "Review" section in the left sidebar of the project, and then select the language you're working on from the dropdown at the top. All the strings that are either untranslated, or whose English versions have changed, will be listed here. Once you're happy with a string's translation, you can press the green checkmark button to mark it as completed. - To get started translating, simply select the "Review" section in the left sidebar of the project, and then select the language you're working on from the dropdown at the top. All the strings that are either untranslated, or whose English versions have changed, will be listed here. Once you're happy with a string's translation, you can press the green checkmark button to mark it as completed.
- To test your translation, you can export it and put it into the game. To export it, head to the "Files" section in the left sidebar, and then press the `Localization.json` file's export button, which looks like a little cardboard box. In the menu that comes up, select the language you're working on from the dropdown, and leave everything else the same. Now, you can put the exported file into the `Content/Localization` directory of the game's installation. If it's not part of it already, its name also has to be added to the `LanguageNames.json` file. Starting the game with the `-v` argument will cause it to output some additional information about errors in your localization to the [log file](game_dir.md) as well. - To test your translation, you can export it and put it into the game. To export it, head to the "Files" section in the left sidebar, and then press the `Localization.json` file's export button, which looks like a little cardboard box. In the menu that comes up, select the language you're working on from the dropdown, and leave everything else the same. Now, you can put the exported file into the `Content/Localization` folder of the game's installation. If it's not part of it already, its name also has to be added to the `LanguageNames.json` file. Starting the game with the `-v` argument will cause it to output some additional information about errors in your localization to the [log file](game_dir.md) as well.
- You don't need to finish the translation to your language, by any means! Since you're doing this for free, I don't expect you to, either. An incomplete translation means that some in-game text will be translated, and it also means that anyone who comes along after you will have less work to do! - You don't need to finish the translation to your language, by any means! Since you're doing this for free, I don't expect you to, either. An incomplete translation means that some in-game text will be translated, and it also means that anyone who comes along after you will have less work to do!
## Language Overrides ## Language Overrides

View file

@ -6,14 +6,18 @@ Tiny Life mods are created using the .NET platform and the C# programming langua
To create a mod, all you have to do is create a repository [from this template](https://github.com/Ellpeck/TinyLifeExampleMod) by pressing the green "Use this template" button. Then, you can open the project contained in it using Visual Studio, Rider or any other kind of C# IDE. The code that is already there contains some examples. Once you're done checking them out, you can just delete them and start fresh. To create a mod, all you have to do is create a repository [from this template](https://github.com/Ellpeck/TinyLifeExampleMod) by pressing the green "Use this template" button. Then, you can open the project contained in it using Visual Studio, Rider or any other kind of C# IDE. The code that is already there contains some examples. Once you're done checking them out, you can just delete them and start fresh.
To run and publish your mods, you can use the included [Cake](https://cakebuild.net/) script, which includes tasks to build, run and publish your mod. To install the required dependencies, you have to run `dotnet tool restore` in the directory that your mod's project file is in. Then, you can run `dotnet cake --target Run` to build your mod, copy it to Tiny Life's mods directory, and run the game, all in one simple command. To run and publish your mods, you can use the included [Cake](https://cakebuild.net/) script, which includes tasks to build, run and publish your mod. To install the required dependencies, you have to run `dotnet tool restore` in the folder that your mod's project file is in. Then, you can run `dotnet cake --target Run` to build your mod, copy it to Tiny Life's mods folder, and run the game, all in one simple command.
The game's API is **fully documented**. The documentation is easily accessible by opening any of the API's files in your IDE. The most updated version can be found on this site as well. The game's API is **fully documented**. The documentation is easily accessible by opening any of the API's files in your IDE. The most updated version can be found on this site as well.
If you have any questions, don't hesitate to [ask on the Discord](https://link.tinylifegame.com/discord) or [start a discussion](https://github.com/Ellpeck/TinyLifeExampleMod/discussions) about it. If you have any questions, don't hesitate to [ask on the Discord](https://link.tinylifegame.com/discord) or [start a discussion](https://github.com/Ellpeck/TinyLifeExampleMod/discussions) about it.
## Distributing mods ## Distributing mods
To distribute your mod to other people, you can simply run `dotnet cake --target Publish`. This task will automatically create a `zip` archive that you can share. If you want other players to try out your mod, you can also post it to [the community](https://itch.io/board/1032686/mods). To distribute your mod to other people, you can simply run `dotnet cake --target Publish`. This task will automatically create a `zip` archive that you can share.
If you want other players to try out your mod, you can also share it on [the Steam workshop](https://steamcommunity.com/app/1651490/workshop/). To do so, make sure you have Steam open in the background, and make sure that your mod's `zip` archive is in the game's `Mods` folder. Then, go to the rightmost tab in the game's Options menu and select "Share Mod on Steam Workshop", and then follow the instructions there.
It's recommended that, in addition to Steam workshop, you also publish your mod elsewhere, like on GitHub releases or [the itch community](https://itch.io/board/1032686/mods), as not every player has access to Steam workshop.
## Updating mods ## Updating mods
To change the version of Tiny Life that your mod is compiled against, simply go into [the project file](https://github.com/Ellpeck/TinyLifeExampleMod/blob/main/ExampleMod.csproj) and change the `TinyLifeApi` version. Note that some other dependencies might also have been updated, which needs to be [taken into account](#dependency-version-history). To change the version of Tiny Life that your mod is compiled against, simply go into [the project file](https://github.com/Ellpeck/TinyLifeExampleMod/blob/main/ExampleMod.csproj) and change the `TinyLifeApi` version. Note that some other dependencies might also have been updated, which needs to be [taken into account](#dependency-version-history).