Maps and mods

Making a mod

A folder of Halo PC tag files and a mod.toml.

A mod is a folder inside mods/ (next to maps/) with a mod.toml and a tags folder:

mods/
  hd_audio/
    mod.toml
    tags/
      sound/sfx/weapons/assault rifle/fire.sound

Each file in tags replaces the tag with the same path in every map that has it. Names aren't case-sensitive. A mod can only replace tags, not add new ones.

What a mod can replace

Group Extension
Sounds, music and dialogue .sound
Textures, sprites, HUD images .bitmap
Text the game shows .unicode_string_list, .string_list
Models .gbxmodel (Halo PC) or .model (Xbox)

Other groups, such as .weapon or .scenario, are ignored. They'd change things every machine in a network game has to agree on.

mod.toml

Every key is optional:

name = "High-res audio"
id = "hd_audio"
version = "1.0"
authors = ["Someone", "Someone else"]
description = "The game's sounds at 44 kHz"
maps = ["a10", "bloodgulch"]   # leave out or [] for every map
load_after = ["hd_textures"]
load_before = ["fixes"]
incompatible = ["other_audio"]
format = 1

Building the tags

  1. Extract the tags you want to change with invader-extract, or start from the Halo Editing Kit's tags.
  2. Edit them with the Halo Editing Kit or Invader (invader-bitmap, invader-sound, invader-model). Keep each tag's name.
  3. Put them under tags/ in your mod folder, add a mod.toml, and load a map.

Type mods_reload in the console to pick up changes without reloading the map. debug.txt lists every file the game skipped and why.

Sharing it here

Zip the mod folder and upload it on the Mods page. We read mod.toml, count the tag files, and flag anything the game would skip.