Skip to content

Store policy

The lists below are read from policy/ by tools/store.py, which every pull request runs. Changing one is a pull request like any other.

A plugin can’t use these ids (policy/reserved-ids.txt).

One id per line. Ids starting with “melange-” are reserved except for listings by the repo owner (checked separately by tools/store.py).

  • melange
  • thumper
  • mirage
  • oasis
  • erg
  • store
  • core
  • vanilla
  • mods
  • deep-desert
  • handshake
  • levels
  • weapons

caravan-1..caravan-9: local pack ids generated on a player’s PC by the caravan importer plugin. Never a store listing; a plugin can’t claim one of these ids.

  • caravan-1
  • caravan-2
  • caravan-3
  • caravan-4
  • caravan-5
  • caravan-6
  • caravan-7
  • caravan-8
  • caravan-9

A file that looks like a program (by extension, or by an MZ / ELF header) fails the checks unless it is listed in policy/executables.json with its plugin, path and SHA-256.

None: no plugin ships an executable.

Extensions treated as executables: .exe, .dll, .asi, .sys, .scr, .com, .bat, .cmd, .ps1, .psm1, .vbs, .wsf, .hta, .msi, .jar, .lnk, .reg.

Files in mod/ must have one of these extensions (or be named LICENSE): .lua, .json, .txt, .md, .ini, .glsl, .vert, .frag, .fx, .cg, .png, .tga, .dds, .jpg, .jpeg, .xom, .lub, .ergpatch, .wav, .ogg, .mp3, .html, .css, .js, .svg, .ttf, .otf.

Exceptions for a single file of a single plugin are listed in policy/extra-types.json:

None.

Names of stock game files. A plugin file matching one of these (case- insensitive, any directory) fails the game-content heuristic check.

No names are listed yet.

An importer recipe (mod/import.json, see import.json) may only download from these hosts (policy/import-hosts.json):

  • mod.worms.pro