This wiki is archived from 2021-09-05

Creating Your First Planetary Annihilation Mod

From Planetary Annihilation: TITANS and Classic PA Wiki
Revision as of 01:48, 17 February 2018 by Admin (talk | contribs)
Jump to navigation Jump to search

File:Titans-icon.png Creating Your First Planetary Annihilation Mod

Released mods are typically installed and downloaded automatically using in-game using Community Mods.

During mod development and testing local filesystem mods are used.

File:Platinum-rank-icon.png Mod Identifiers

Every mod must have a unique identifier.

The required format is lowercase reverse domain name notation.

eg com.palobby.some-mod-name

If you don't have your own domain or prefer to use your forum / game handle then prefix with com.pa.handle.some-mod-name

eg com.pa.mikeyh.some-mod-name

My personal preference is dashes (-) over underscores (_) for readability.

To avoid conflicts with your released version use a different identifier for your development or test versions. eg com.pa.mikeyh-some-mod-name-dev

File:Platinum-rank-icon.png Mod Directory Structure

Local filesystem mods are installed in the Planetary Annihilation Data Directory based on the type of mod:

  • Client Mods: client_mods (might be mods on very old installs from alpha / beta)
  • Server Mods: server_mods

Every mod must be contained in a single top level directory with a modinfo.json JSON file as documented in Mod Structure.


PLEASE DO NO ADD EXTRA PROPERTIES THAT YOU SEE IN DOWNLOADED ZIPS.


A new game lobby UI client mod would be installed as a filesystem client mod using:

File:Gold-rank-icon.png Testing Your Mod

Filesystem mods with a valid modinfo.json installed in the filesystem mod directories will automatically appear in the installed tab of Community Mods in PA.

If your mod does not appear check the following:

  • modinfo.json is valid JSON with all mandatory properties as documented in Mod Structure (no extra properties)
  • mod directory is in the correct mod directory for its context

You can edit modinfo.json then reload file system mods to update your mod info without restating PA.

Other file changes typically require a restart of PA.

File:Gold-rank-icon.png Example Mods

Here is a list of example mods to get you started:

Submitting Your Mod

Before submitting your mod ensure that it is not outputting any errors to either the game's client or server logs.

You must create a forum post in the appropriate forum and link it in your modinfo file:

For released mods please create a post on steam discussions with prefix [MOD]:

The Community Mods server requires a downloadable URL to a ZIP archive of your top level directory containing your modinfo.json and mod files.

A new game lobby UI client mod would be submitted as a downloadable URL to:

  • com.pa.mikeyh.some-mod-name.zip
    • modinfo.json
      • ui
        • mods
          • com.pa.mikeyh.some-mod-name
            • new_game.js

GitHub projects with static download links to a release branch are preferred for auto updating.

eg https://github.com/user/com.pa.mod/archive/release.zip

You can exclude files from the zip using .gitattributes:

.gitattributes export-ignore
.gitignore export-ignore

If using Dropbox links they must end with dl=1 to be downloadable.

Check the status of your mod at: https://palobby.com/community-mods/

Updating Your Mod

Existing mods will update automatically if you update the existing zip without changing the URL or mod identifier. GitHub will do that automatically.

When changing your mod please remember to update the date and version.

For each update of your mod please post a new comment to your forum and steam discussions posts with any changes then update your original posts.

Check the status of your mod at: https://palobby.com/community-mods/

New Mod Submission

Join the official discord: https://discord.gg/pa and ask to be added to the #mod-submissions channel.

Post the URL to your zip mod in the #mod-submissions channel.

This can't be a link to a download page, it must be a direct link to the zip file.

Existing mods will update automatically if you update the existing zip without changing the URL or mod identifier.

Links to GitHub are preferred.