New features
Build objective modes with world objects, teams, traits and HUD meters
Custom mode scripts can now control named world objects, query objective zones, change live player traits and teams, display personal HUD counters and meters, and end rounds. Shared/player/team/object state, simulation timers, conditional blocks, bounded iteration and reusable functions support more complex rules. Existing custom modes keep working.
The optional ReachVariantTool source path adds typed references, integer and timer semantics, aliases, enums and reusable functions. mode-compile turns supported source into a playable preset and reports unavailable Halo 3 engine operations before hosting. This is partial source support, not full Megalo or compiled Reach/Halo 4 variant compatibility.
Source scripts can enumerate live objects, create weapons and map templates, retain object references and labels, attach and detach objects, copy rotation, set velocity, hide objects, control damage protection and automatic cleanup, and query vitality, carriers and distance. Object overrides reach joining clients through bounded snapshots. A standalone source example demonstrates creation, attachments and timed release.
Choose Host Game → Game type → Slayer → Zone Control to try the included example: hold the zone around the first spawn alone to score. Its distance display helps you find the hill. Tune declared script options under Game options → Slayer rules → Custom mode options and save your own variant.
See each server's map and game variants and who is playing in the server browser
The server browser's Map and Game type columns and each server's card now name the map variant and game variant a server is playing, such as Guardian Towers and Team Snipers, instead of the base map and game type. A game on a map as it ships still shows the map's own name.
To see who is on a server, select it: its card lists the players' names, and View players opens the full list, where Join game joins the server. You can also point at a server's player count to see the names, or type a player's name into the search box to find the server they are on.
Servers need this update to send their variants and players. Servers on older versions show the base map and game type and don't list their players.
Play campaign mods, alone or in co-op lobbies
Campaign mods made with MCC's mod tools now show on the Campaign page. Put the mod in your Mods folder (or subscribe to it on Steam's Workshop), and it gets a tab at the top of the page, beside HALO 3: one click swaps between the two. A mod's missions, pictures, starts and your progress through it are its own. PLAY SOLO, CONTINUE and HOST CO-OP work as for Halo 3's campaign, for mods that change Halo 3's missions and for mods with missions of their own.
Players who join a co-op lobby of a campaign mod they don't have get it the same way as a multiplayer mod: from Steam's Workshop, or from the host when Host Settings → Share mod files is on. They download the whole campaign once, so the lobby can go on to the next mission. While players are in your lobby, its MISSION page changes the mission but not the campaign.
Automatic dedicated server updates
Hosts can opt in with auto_update = true in dedicated.toml, or RECLAIMER_DEDICATED_AUTO_UPDATE=true in Docker's .env. Servers check stable releases on startup and hourly, verify downloads and restart automatically to run the new version. Updates interrupt current games. Docker keeps the updated executable across container recreation; MCC files and container images still update separately. Off by default.
ElDewrito maps and game variants convert themselves
Put ElDewrito's Forge maps (sandbox.map) or game variants (variant.slayer, variant.zombiez and so on) in your Maps or Game Modes folder; either one works. When the game starts, or when you click Refresh in Host Game, each becomes a Forge map or a game type of its own name, and the ElDewrito file is deleted so it is converted only once. Maps keep their reforge pieces and objects, with spawn points, flags, bombs, hills, territories and teleporters for the same game types and teams, and their kill and garbage volumes keep working; pieces and scenery that never move are frozen in place, leaving the placements to objects that move. Game types keep their mode, scoring, rounds, respawning, traits and powerups. A file that cannot be converted (its base map is not installed, it needs an ElDewrito mod, or it has more objects that move than its base map has room for) stays, and the game's log says why.
Change the Forge monitor's speed and teleport it
While flying as the monitor, hold Move faster (Shift by default) and turn the mouse wheel to make the monitor faster or slower, from a quarter of its normal speed up to 16 times it; the middle of the screen shows the new speed for a moment. Move faster's own boost still adds to it.
To get somewhere far away, open the Forge menu's Map tab, which now shows where your monitor is: type X, Y and Z and select Teleport (or press Enter). Here fills in where you are now. In a game someone else hosts, the host needs this version too.
Hemispheres, half cylinders and equilateral triangles in Forge
Forge's Primitives gain three shapes: a Hemisphere (a dome on a flat base), a Half Cylinder (lying on its flat side) and an Equilateral Triangle. Like the Block, Cylinder and Triangle, they come in every size from 0.25 to 16 world units and take any of the map's materials and textures.
Every primitive also comes in the sizes of ElDewrito's reforge pieces (0.09, 0.45, 0.9, 1.8, 2.7, 3.6, 4.5, 9 and 18 world units), including oval domes and flattened half cylinders. A size row lists every size a shape comes in; picking one that does not go with the other sizes takes the nearest piece that has it. The first game after updating rebuilds the asset library once.
Modded playlists and automatic Workshop installation
Playlists can include Halo 3 mod maps, selected in the playlist editor or named in JSON without entering the game. Use workshop:<item ID>/<map file stem> to select a particular Workshop package, or an unambiguous installed map name. Connected players prepare each selected map before the countdown; everyone needs this version to rotate maps together.
Modded matches return to the lobby using the retail background scene's caches, and their loading screens use the selected mod map's identity.
Dedicated servers download Workshop IDs from their map selections and playlists before starting. Configure [workshop] items and run dedicated mods to install items and list their map references. Downloads use the local Steam client, or SteamCMD with a cached login on a separate server. Mod packages no longer need to be copied to the server manually. See the dedicated-server guide for setup.
Linux Docker operators can keep Steam's cached session in a separate native SteamCMD service. Sign in directly through SteamCMD; Reclaimer receives only item IDs, status and mod data, with no access to passwords, Guard codes or the login cache. The optional Compose overlay documents installation and login.
Playlist weights and random ballots
Playlist votes now offer three games drawn at random from the whole playlist instead of the next three from the top, and the game just played sits out the next vote. None of the above brings up games that haven't been turned down yet.
Give a game a weight to make it come up more often. In Host Game → Playlists → Edit, select a game and drag Weight (1 to 100, default 1). A game with weight 2 comes up twice as often as one with weight 1. Next to the weight you can see the game's share of the playlist's total weight. In a playlist file, add "weight": 2 to a game's line, for example { "map": "Guardian", "game": "Slayer", "weight": 2 }. If nobody votes, the first offered game starts, so a quiet server plays games in proportion to their weights.
Run the game from RCON: maps, modes, votes and live player stats
RCON can now change what the server plays: map, mode and load end the current game and start the chosen map and mode in the next lobby, and nextmap sets the next game without ending this one (maps and modes list what you can name). servername and password rename the server and set or clear its join password until it restarts. teamcount and shuffle spread players over teams, and startvote, passvote and cancelvote run votes (end round, end game, shuffle, kick, playlist ballot).
players now reports each player's service tag, whether they are alive, their health and shields, and how long ago they last died, and the event stream sends a kill event for every death. The desktop RCON client has Maps, Modes, Next game and Votes views and a Manage menu that prepares these commands.
Game mode scripts can put players in other bodies
A mode's script can spawn a Marine, Grunt, Jackal, Brute, Elite, Hunter or Spartan and hand a player's control over to it with player.set_biped(body), so modes like "everyone is a Grunt" or a Hunter boss round are possible. The characters' files load with the map; stock maps need nothing extra.
Changes
- Joining a co-op mission no longer pauses everyone else. A player joining a campaign mission in progress now waits on their own loading screen while their game catches up; everyone already playing keeps playing, with no pause and no loading screen. If the newcomer's game can't catch up, only they go back to the menu, and the others never notice. The host and every player need this update.
- Co-op players leaving no longer interrupt the game. When a player leaves a campaign mission, everyone else plays on where they are, without a pause and without going back to the last checkpoint. A player whose game freezes or crashes no longer freezes everyone else while the host waits for them: after a second the others play on, and a player whose game recovers catches up and carries on.
- Hosted games show your nickname as the host. Games hosted with Host Game now list your nickname as the host in the server browser and the lobby, instead of "Anonymous host". To show another name, such as your community's, set Host Game → Host Settings → Host name; clear it to go back to your nickname. Dedicated servers keep the host name from their configuration.
- Joining by address downloads mods without asking too. With Settings → Mods → Download without asking on, joining a server by its address (Direct Connect or a join link) that needs mods now starts their download at once, as joining from the server browser does. Mods whose own sound banks are larger than Halo 3's now share them with players too, so those players hear the mod's sounds.
- The scoreboard shows ping like the server browser. The scoreboard's PING column now has the server browser's signal bars and colors. In both places, a good ping (under 110 ms) is green instead of blue, under 180 ms gold, and slower red.
Bug fixes
-
Reverting to a checkpoint after someone joined a co-op mission no longer ends the game. After a player joined a campaign mission in progress, a revert to the last checkpoint (everyone died, or Revert in the pause menu) could end the game for everyone. The checkpoint now takes in the players who joined, who respawn next to the others.
-
Co-op games no longer end when someone joins or leaves a busy mission. In 0.8.13, a player joining a campaign mission in progress while other guests were already playing could end the game for everyone a few seconds later (engine error 7), and a player who joined could crash if everyone reverted to a checkpoint soon after. Every player's game now takes players in and out at the same moment, and in the rare case one still falls out of step, it takes the host's game for a moment and the game goes on.
-
More community Forge maps load, and skipped ones say why. Compressed Halo 3 map variant files, such as the "legacy_" maps in the HaloCustoms Halo 3 Megapack, were skipped with "Invalid content chunk size". They now load the way MCC loads them. Seven more Megapack maps (INF Zombolation, MINI Frogger, MINI Ice Castle, MINI Smearogon, MINI Space, MINI SpookyTown and RACE Lipan Conj) and RACE Rawr also load now. Their files say their map data is a byte or two longer than it is.
A file that still can't be loaded now gives the reason for the kind of variant its name or folder says it is, such as "Damaged compressed variant data", instead of the reason it isn't the other kind. 30 compressed maps in the Megapack had their data overwritten by the tool that renamed them, so neither MCC nor Project Reclaimer can read them.
-
Frozen primitives show in games on maps that place none. A Forge map whose primitives were all frozen, with no primitive or other map's object left as a placement, lost those primitives outside Forge: they stood in Forge but were missing in Slayer, CTF and every other game type. Such maps now bring their frozen primitives into every game.
-
Join servers whose mod map your copy numbers differently. Joining a server could stop with "Missing matching map" even though the Required Mods window said you had every mod, typically right after the game downloaded the mod from Steam Workshop or the server. Your copy of the map could get a different map number than the server's, for example when the server's copy came with a map description file that the server does not share. A join now finds the server's map by its files and plays it under the server's map number.
-
Skip mods for other Halo games during discovery. Mods whose
ModInfo.jsonnames another Halo game's engine are now skipped before their files are scanned. This avoids unnecessary scanning and misleading "Map needs matching .mapinfo metadata" messages for those packages. Halo 3 packages and loose maps remain supported. -
Start on PCs that left no memory free near the game. On some PCs the game closed right after starting, with "no memory free near the game" in the log, and reported that maps without a map ID were unavailable. The game's patches need memory close to Halo 3 in the address space, and other software (such as the graphics driver) could take all of it before the game asked. The game now sets that memory aside as soon as Halo 3 loads and also looks on the other side of it.
-
Chat keeps going after a game ends, and keeps what you typed. When a game ended, the carnage report closed the chat, threw away the line you were typing and let nobody chat until the next map. Now a line you are typing stays open over the carnage report and goes on with you through the lobby, the next map's loading screen and into the next game. Press T or Y on the carnage report to chat there too; while you type, Enter sends your line instead of closing the report.
A line the chat box closes on without sending, such as after a click elsewhere, now waits for you: press T or Y and it is still there. Only Enter (sending it) and Escape clear it.
-
The lobby and its vote show again after a game. Players who were in a game when it ended were left on the loading screen of the map they had just played, showing "Synchronizing players", instead of the lobby. They could not vote or leave, and once the vote timer ran out they were taken into whichever game it picked. The lobby and its vote now show after every game, as they do when you first join.
-
Dedicated servers play mod maps from games saved on another PC. A game type saved with a mod map, such as a Steam Workshop map, keeps the full path that map had on the PC that saved it. A dedicated server given that file stopped at start with "The system cannot find the file specified" unless its host edited the path by hand. The server now plays its own copy of the map from
content/Mods, anddedicated checknames the mod map when the server has no matching copy. -
Custom visor colors show in games. Visors kept their original gold in games, whatever visor color a player chose in Customize. Other players now see the color you chose, in multiplayer and in co-op campaign games where players play as their own characters. In those campaign games, custom armor light colors were missing too and now show. The armor lights on the Elite's raptor helmet also take their custom color now.
The host or server passes these colors on, so a game hosted on a version before 0.8.13 still shows everyone's original visor.
Install
The game client requires Halo: The Master Chief Collection with Halo 3 installed; no game files are included.
Double-click project-reclaimer-v0.8.14.exe to start the game. It finds Halo 3 in any Steam library and opens without a console window; its log is Documents\My Games\Project Reclaimer\Logs\client.log.
For remote server administration, double-click reclaimer-rcon-v0.8.14.exe, enter the host, RCON port and password, and connect. The RCON client needs no game installation. See the attached RCON.md for setup and commands.