Uploading Custom Gamemodes to Thunderstore - monksilly/Custom-Gamemodes GitHub Wiki

This guide will walk you through the steps to correctly prepare and upload your custom gamemode to Thunderstore, ensuring it's recognized and playable by others.

Before you start: Make sure you have already created your config.json file and placed your capsuleIcon and screenIcon images inside an Assets folder (if you're using custom levels/gamemodes then also the AssetBundle), as described in the "Making Gamemodes from in‐game or and custom levels" or "Using Premade Gamemodes (From AssetBundles)" guide.

Your custom gamemode files should look like this in your working directory:

ThePurrgatoryGamemode/               <-- Your temporary working folder for the gamemode
β”œβ”€β”€ Assets/
β”‚   β”œβ”€β”€ capsule.png              <-- Your gamemode's small capsule icon
β”‚   └── screen.png               <-- Your gamemode's larger screen image
└── config.json                  <-- Your gamemode's configuration file

Step 1: Create Your Thunderstore Package Folder

First, create a new folder that will become your Thunderstore package. This folder can be named anything, as it wont affect how it works (It's recommended to keep it simple and self-explanatory).

Example: If your gamemode is "The Purrgatory", name the folder ThePurrgatoryPackage.

ThePurrgatoryPackage/      <-- This will be your Thunderstore package folder

Step 2: Add Thunderstore Required Files

Inside your ThePurrgatoryPackage/ folder, you need to add three essential files required by Thunderstore for every mod:

  1. manifest.json: This file provides metadata about your mod (name, version, dependencies).
  2. icon.png: A square PNG image (can't be larger than 256x256 pixels) that will be your mod's icon on Thunderstore.
  3. README.md: A Markdown file containing a description of your mod.

You can create simple versions of these:

  • manifest.json example:
    {
      "name": "ThePurrgatory",
      "version_number": "1.0.0",
      "website_url": "https://example.com/your-mod-page (Optional)",
      "description": "Escape the meowing mass, with your almighty climbing skills!",
      "dependencies": [
          "MonkSilly-CustomGamemodes-0.1.1"      <-- IMPORTANT! this tells mod manager to download custom gamemodes mod. Always use the latest version.
      ]
    }
    
  • icon.png: Just place your chosen square icon image here.
  • README.md example:
    # The Purrgatory
    
    Escape the meowing mass with all the climbing power that's still left in you...
    
    **Features:**
    - 25 Custom levels
    - 4 Custom regions
    - Lot's of meowing...
    
    Enjoy!
    

After this step, your package folder should look like this:

ThePurrgatoryPackage/
β”œβ”€β”€ manifest.json
β”œβ”€β”€ icon.png
└── README.md

Step 3: Create the plugins Folder

This is the crucial step for custom gamemodes. Thunderstore expects mod content to be placed inside a folder named plugins.

Create a new folder named plugins inside your ThePurrgatoryPackage/ folder:

ThePurrgatoryPackage/
β”œβ”€β”€ manifest.json
β”œβ”€β”€ icon.png
β”œβ”€β”€ README.md
└── plugins/                  <-- New folder!

Step 4: Move Your Gamemode Files into plugins

Now, take your config.json file and your Assets folder (containing your capsule.png and screen.png) from your working directory (ThePurrgatoryGamemode/) and move them inside the plugins/ folder.

Before Moving (Your Working Directory):

ThePurrgatoryGamemode/
β”œβ”€β”€ Assets/
β”‚   β”œβ”€β”€ capsule.png
β”‚   └── screen.png
└── config.json

After Moving (Your Thunderstore Package Folder):

ThePurrgatoryPackage/
β”œβ”€β”€ manifest.json
β”œβ”€β”€ icon.png
β”œβ”€β”€ README.md
└── plugins/
    β”œβ”€β”€ config.json             <-- Your gamemode's main config file
    └── Assets/                 <-- Your gamemode's assets folder
        β”œβ”€β”€ capsule.png
        └── screen.png

This is the correct file structure for Thunderstore to recognize and load your custom gamemode's configuration and assets.

Step 5: Zip Your Package Folder

Now that your folder is perfectly structured, it's time to zip it.

  1. Navigate to the directory containing your ThePurrgatoryPackage/ folder.
  2. Go inside the ThePurrgatoryPackage/ folder.
  3. Select all the files, after selecting them, right click one of them
  4. Select "Send to" -> "Compressed (zipped) folder" on Windows, or use any other program that supports zipping.

This will create a .zip file named ThePurrgatoryPackage.zip (It's possible the .zip file will be named after the right clicked item, in that case just rename it).

Step 6: Upload to Thunderstore

Finally, go to the Thunderstore website for your game.

  1. Log in to your account.
  2. Find White Knuckle
  3. Click the "Upload" Button.
  4. Follow the instructions to select your ThePurrgatoryPackage.zip file and provide any additional information that's required.

Once uploaded, your custom gamemode will be available for others to download and enjoy!