Skip to content

Mod Manifest (mod.json)

The manifest defines the identity, configuration, and dependencies of a mod.

{
"id": "my-mod",
"name": "My Mod",
"version": "1.0.0",
"entrypoint": "main.js",
"preload": false,
"enabled": true,
"dependencies": [],
"requiredAssetPacks": [],
"permissions": [],
"description": "What this mod does"
}
  • Type: boolean
  • Default: true
  • Purpose: Controls whether the mod should be loaded by SimpleScripting

When set to false, the mod is skipped during server startup and will not be loaded. Useful for temporarily disabling a mod without deleting it.

{
"id": "my-mod",
"enabled": false
}
  • Type: string
  • Default: "main.js"
  • Purpose: Path to the JavaScript entry file relative to the mod folder
{
"id": "my-mod",
"entrypoint": "src/index.js"
}
  • Type: boolean
  • Default: false
  • Purpose: Load this mod earlier when dependency order permits

Preload mods are loaded before non-preload mods when topological ordering allows. Useful for mods that provide APIs to other mods.

{
"id": "api-mod",
"preload": true
}
  • Type: array of strings
  • Default: []
  • Purpose: List of mod IDs that must be loaded before this mod

Ensures dependency mods are loaded first. The loader automatically orders mods based on their dependencies.

{
"id": "my-mod",
"dependencies": ["core-api", "utilities"]
}
  • Type: array of strings
  • Default: []
  • Purpose: Asset packs that must be installed for this mod to function
{
"id": "custom-items-mod",
"requiredAssetPacks": ["CustomTextures"]
}
  • Type: array of strings
  • Default: []
  • Purpose: Permission nodes that players need to use this mod’s features
{
"id": "admin-tools",
"permissions": ["admin.teleport", "admin.give"]
}
  • Type: string
  • Default: null
  • Purpose: Brief description of what the mod does
{
"id": "my-mod",
"description": "Adds custom commands for server administration"
}

A mod is rejected if:

  • Required fields are missing
  • id does not match [a-z0-9_-]+
  • version is not semver-like
  • entrypoint contains ..
  • Entrypoint file does not exist
  • Dependency names are invalid or blank
  • The mod depends on itself