New features
Player colors in chat and on the voice indicator
Names in chat now sit on the player's color: their team's in a team game, or the primary color of their armor otherwise. A line keeps the color its sender had when they sent it, so earlier lines still show who was on which team after players switch. Light colors are darkened just enough to keep the white names readable.
The voice indicator in game shows the same color on each talking player's strip, with their emblem behind the level bars, and a gold border around your own.
Thanks to Maximumgame for adding the colors.
More dynamic lights at once, and an Ultra level for them
Halo 3 could only weigh up the first 50 lights it saw and draw 8 of the plain ones at a time, whatever a map asked for. Maps with many lights now pick from all of the lights in view, and spot lights such as headlights are drawn past those 8, as many as the map and your settings allow.
Settings > Advanced graphics > Dynamic lights gains Ultra, which draws twice as many as High. The Ultra preset uses it.
Round point lights, such as Forge's point lights, still stop at 8 in view: the game's graphics code holds 8 of them. Map makers who need more can use spot lights, or lights with "allow shadows and gels".
Big games keep their effects, light volumes and particles
Halo 3 holds only so many effects at once, and in a crowded fight the players' own muzzle flashes, explosions and impacts used that room up. After that, new effects simply didn't appear: a map's light volumes, beams and particle effects among them, with as few as 96 light volumes or beams on screen. Every effect, particle, light volume, beam and contrail now has four times the room, and up to 4,096 see-through things are drawn each frame instead of 1,024.
Map makers can still mark an effect's priority as high or essential in the editing kit to keep it ahead of the rest when even this fills up.
This also fixes a fault where part of the game's memory for drawing effects overlapped memory the game itself uses, which could change it in games with many players or many beams at once.
Invert look for the mouse
Settings → Keyboard & Mouse now has an Invert look option: turn it on and choose Apply changes, and moving the mouse up looks down, as it already could on a controller. Flying vehicles keep following Invert flight, so the two can be set either way. Split-screen players with their own keyboard and mouse settings get their own Invert look too.
Script modes can have up to 64 teams, with their own team names and colours
A Megalo script can now declare up to 64 teams with declare team_count = 64 (Halo 3 itself stops at eight), for modes such as battle royale squads, in Slayer, Oddball, King of the Hill, VIP and Territories. team[0] through team[63] work like Halo 3's teams: teammates can't hurt each other, the scoreboard, game-over screen and carnage report group and score them, and team chat and team voice follow them. In VIP every team has its own VIP, and in Territories any team captures and holds territories. Two new script calls rename and recolour any team: team[3].set_name("Squad %n", 4) and team[3].set_color(255, 140, 0). Players wear their team's colour, and the score display, menus and team chat use the new name. Teams 9 to 64 are "Team 9" to "Team 64" until a script names them, each with a distinct colour. In Forge, spawn points, team barriers and AI spawners can belong to any of the 64 teams, and game.set_ai_team("label", team[5]) moves the AI of the spawners with a Forge label to another team. See More teams, names and colours in the Megalo guide, whose battle royale example deals players into squads of two and ends the round when one squad is left.
Big games keep showing what the server spawns
Halo 3 shares at most 1,024 things between a server and its players: players, vehicles, weapons on the ground and in hand, grenades, a map's moving parts and everything a map or Forge spawns. In big games that room ran out, and anything spawned after that was on the server but never appeared for players, such as a map's spawned machines and doors. There is now room for 2,048.
When many things appear at once, or a player joins a game full of them, they now reach players far sooner. Anything still waiting to appear after a second goes ahead of routine updates, as a long-overdue update already did, and a server with time to spare sends extra packets until it has caught up. In a 64-player test, 1,200 objects spawned at once reached players within two seconds, where they used to take up to half a minute.
Scripts can set a character's health and shields, and keep it out of vehicles or turrets
Megalo scripts can now give any character more or less health and shields than Halo 3 does: current_player.biped.max_health = 200 doubles a body's health, max_shields = 50 halves its shields (only characters with shields have any to change), and health = 50 or shields = 150 sets how much is left right now, overshield included. set_vehicle_use(false) keeps a character out of every vehicle seat, a Warthog's gun included, and set_turret_use(false) out of the stand-alone turrets and the Shade: the player sees Halo 3's "can't use" prompt, AI stops choosing those seats, and a character already in one gets out. Set on a player's body, or with the player's own set_max_health, set_max_shields, set_vehicle_use and set_turret_use, the values stay with the player for every life; on an AI's body, they belong to that AI. The UNSC vs Covenant example uses them per class: tougher ODSTs, Grunts and Jackals that man turrets but never drive, stronger shields for Brute and Elite leaders, and Hunters with twice the health that fit in no seat.
Changes
- Campaign saves from older versions may not continue. The extra room for effects changes how campaign checkpoints are laid out, so a checkpoint saved by an earlier version may no longer appear under CONTINUE. Finished missions and difficulty progress are kept; choose the mission again to replay it.
- Everyone in a game needs 0.9.17. Servers admit only players on exactly their own version, so players and servers on 0.9.17 can't play with those on 0.9.16 or older. The server browser's Version column shows a server on another version in red. Update dedicated servers and players together.
Bug fixes
-
Dedicated servers use far less CPU while empty or between games. An empty server, especially one that had not hosted a game since it started, kept checking its map files many times a second, and a lobby with players in it kept a whole processor core busy while they joined, voted and counted down. Under Wine (the Docker image) the checks cost the system even more, so a host running many servers could run out of CPU and lag the servers players were on. Empty servers now idle at a small fraction of what they used, lobbies run at the game's own pace, and players' games do less of the same work while loading maps.
-
Frozen objects stay where they were when unfrozen and frozen again. Unfreezing an object with Unfreeze on its Properties moved it and turned it, big blocks by more than 20 units. It now becomes a placement again exactly where it stands, turned as it was. When the map has no placement left for it, it stays frozen instead.
Letting go of an object no longer turns it by about a degree, and no longer shifts it slightly when it wasn't moved. Letting go of a frozen object you picked up freezes it exactly where it was, so freezing and unfreezing the same object over and over leaves it in place.
-
Resized and duplicated Forge objects stand where they should. Changing a primitive's size moved the new size away from where the old one stood, big blocks by more than 20 units, and turned it slightly. It now stands exactly where the old one stood, turned the same way. A held primitive stays held in its new size.
Duplicate on an object's Properties now makes the copy turned exactly like the original. Before, other players saw the copy unturned while it was held, and it turned only once let go of.
-
Typed rotations turn held Forge objects exactly. Yaw, Pitch and Roll typed on a held object's Properties, Upright and the reset rotation key left the object about half a degree off the typed angles once it was let go of. It now stands exactly at the typed angles, where it stood, for everyone.
-
The server browser still finds servers while the main master servers are down. Since 0.9.2 the server browser had stopped remembering the community's other master servers, so a player who started playing after that, or hadn't refreshed for 30 days, would have seen no servers at all if both main master servers went down. The browser now keeps a list of master servers that answer, and finds servers through them during an outage. A game you host while the main master servers are down is also listed through the master servers your PC remembers, instead of nowhere.
-
Helmet fire shows on more modded maps. Helmet fire was missing on Workshop maps whose Spartans use a body of their own, such as Hugegrass, Permafrost, Ultimate Forge 2.0 and Digsite Halo 3 Maps. Normal and blue fire now show there as on Halo 3's own maps. Maps that leave out Halo 3's helmet fire altogether, such as those with ODST or their own Spartan characters, still show none.
-
Teleporters on modded maps have their channel and options again. On some modded maps, such as Hugegrass, Permafrost and the Forge World remakes, the Forge properties of a teleporter showed no Teleporter channel, Takes players, Takes vehicles or zone rows, so every teleporter stayed on the default channel. These maps list their teleporters under Scenery and their scenery under Teleporters, and the properties followed the list instead of the object. Teleporters now always have their channel and options wherever a map lists them, and that scenery no longer shows teleporter rows. Goals and spawn points listed under another heading keep their own rows too, and weapons listed elsewhere their spare clips.
-
No campaign hints in multiplayer on some Workshop maps. On Hugegrass, Permafrost and a few other Workshop maps, Halo 3's campaign hints showed in multiplayer: a "take cover" warning when your shields ran low, and hints about jumping, grenades and looking around. Those maps switch the hints on for multiplayer; they now stay out of multiplayer as on Halo 3's own maps.
-
Mods' movies no longer close the game. Campaign mods and maps that play a movie (a Bink video) in a cutscene closed the game the moment the movie started. Movies now play from the mod's own files, as in MCC, and come with the mod when you download it from a server instead of the Workshop. A movie a mod names but does not include is skipped, and dedicated servers skip movies without needing any extra files.
-
Button symbols in prompts sit on the text line. In prompts such as "Hold (X) to pick up", controller buttons, mouse buttons and the Esc key were drawn lower than the words around them. They now sit on the same line, as in Halo 3.
-
Full servers no longer flood their players with appearance updates. A server sent every player's developer helmet settings to every player each time anyone's game repeated their own, many times a second: on a full server that was most of its upload (28 MB/s for 120 players) and slowed its frames. Servers now send each player everyone's armor, colors and helmets once when they join, and after that only what changes and who left, with a full copy every 30 seconds in case something was lost.
-
Fixed a crash after joining a server or when a game restarts. Players could crash a moment after their game had loaded, most often right after joining a Forge server, when the game was set up again on the same map. Co-op servers could crash the same way when everyone went back to a checkpoint. The copies of the helmet flame's effects that blue developer flames add confused Halo 3's armor skins setup, which runs again whenever a game is set up. The setup now leaves them out, on players' PCs and servers.
Install
The game client requires Halo: The Master Chief Collection with Halo 3 installed; no game files are included.
Double-click project-reclaimer-v0.9.17.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.9.17.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.