Starcatcher mod hosting server

  • jacob1
    4th Aug 2016 Developer 4 Permalink
    When releasing mods, there are often a lot of difficulties getting it to work on all computers. Sometimes it will require dlls you forgot to distribute, or maybe you have no method of compiling for mac and Linux users.

    That's why I've decided to allow people to the official build process for their mods. It will compile for all platforms (win64, win32, macos, lin64), so that all TPT users are able to run the mod. The builds are compiled on GitHub and distributed straight from our site, so users can have confidence the executable matches the given source.

    In addition, it modifies the update checker to point to our server. So when you want to release an update to your mod, all players will see it when they start it up, and won't have to go manually redownload it. This feature is almost never seen in mods besides my own, so is very nice to have.

    There are only a few requirements:
    1) Your mod must be hosted in GitHub (useful guide), and you must have experience in git (enough to use a local git client instead of the github ui, to create tags). The mods will be built on GitHub using GitHub Actions.
    2) It must use a recent-ish TPT source. Most importantly it has to be newer than this commit.
    3) It must compile on all platforms. If you accidentally introduce build errors for any platform, you will have to fix them.

    If you are interested, send me a message on here. But an even better / quicker method would be on IRC, I can get it done in a much shorter time if you find me while i'm online (7PM-12 eastern, or on weekends).

    The process to release your mod is simple, and will go like this:
    1) You will be given a mod id, and put it in the file .github/mod_id.txt
    2) You will be given 3 GitHub Secrets which allow the builds to be uploaded to the Starcatcher server. You will configure these 3 values on your repository settings.
    3) Put a changelog for your release in changelog.txt. This will be shown to users in-game. You must update this for every release.
    4) Create a tag of the form "v1.0.1". Use the major / minor version numbers however you see fit, they aren't important to the process. The third number is the build number. This is very important, you must increment it by 1 for every release. My server will use this build number to decide if an update should be handed out to users or not. Creating this tag will trigger a new release automatically, with no further action from you. If anything goes wrong in the build process, please contact me.

    Mods currently using this service:
    The GoL Toy
    Subframe Mod
    Larger Canvas Space Mod
    The Realistic Physics Mod
    Cracker1000's Mod

    Update check logs are stored, but only I can view them. I can provide you with a count of users if you want (for example, TPT-Alchemy has been launched 44500 times total, including almost 20000 in the first 3 months of 2021)
    Edited 15 times by jacob1. Last: 3rd June
  • jacob1
    5th Mar 2017 Developer 0 Permalink
    I made some updates to the build server. The windows version is now built with MSVC. This provides a massive speed boost that's already present in the snapshots and will be present in the official version soon. You'll need to update to the latest source as of 2017-03-05 to make it work.

    Also, mods can now optionally have changelogs. These show before the update, just like in the official game. When you ask me to update your mod, just give me a changelog.

    SubframeIDE is now updated to version 2, it adds some new stacking related things. @mark2222 will probably post about it later, I wrote a short changelog which appears when you start version 1 of the mod.
  • DUC
    3rd Jul 2018 Member 0 Permalink

    I have a small question: what is the difference between creating an element with a simple lua script that can run on preexisting TPT and submitting it, as opposed to compiling a full mod, and adding actual element files to the source code? What would be the benefits/downsides of each?

  • jacob1
    3rd Jul 2018 Developer 0 Permalink
    @DUC (View Post)
    Lua scripts are a lot slower than actual compiled code. A Lua element with an update function can get really laggy.

    Lua scripts are far more portable though. And you don't need to release a new version every time TPT updates. For this build server, I only update mods at request. Some of the linked mods are based on older versions.
  • jacob1
    18th April Developer 0 Permalink
    Update: the mod hosting / update server has been completely revamped. It now uses Github Actions to compile builds (thanks to @LBPHacker). Taking the build step out of my server has also allowed me to completely automate the package / release process on my side. This means that mod owners can now release their own mods at any time, without needing to poke me. Updates will appear in users' games within 20 minutes.

    I hope these changes will compel more mod owners to use the service. It really helps with accessibility, preservation, and security.