0.10.3 improves frame pacing, keeps parties together in and out of games, and adds more ways to inspect frame times.
Server browsers show the players on a server, and dedicated servers get fixes for hosts.
Forge gains campaign canvases across the classic games, the Reclaimer Kit supports more Editing Kit tags and levels, and this release includes further Halo 2 campaign, cross-game object, sound and Theater fixes.
Changes since v0.10.2.
What's new
-
Forge on campaign areas of Halo: CE, Halo 2 and Halo: Reach. Every area of every mission of Halo: CE, Halo 2 and Halo: Reach is now an empty map you can build on in Forge, as the areas of Halo 3's and ODST's missions already were. In Host Game's map picker, choose the game, then the Campaign tab: each mission's areas are listed as "Mission · area (Campaign Canvas)". Pick one, choose Forge and start.
- A canvas plays as a map of its own game: its players, HUD and rules,
and that game's objects in Forge's palette (on CE's and Halo 2's, the mission's own vehicles, weapons, equipment and scenery). - It starts empty: nothing of the mission is placed, and Forge enters at
the area's start. Place spawn points and save the map to play other game types on it. - Friends can join a game on a canvas when they have the same game
installed. - Halo 2's canvases play by Halo 3's game rules for now, and Reach's show
no picture in the picker or on the loading screen yet.
- A canvas plays as a map of its own game: its players, HUD and rules,
-
Your name in Customize opens your Service Record. Your card at the top right of the main menu opens Customize; press the same card again in Customize to see your Service Record. Back returns to Customize. The nameplate settings stay in Customize's list.
-
Record debug info: two minutes, a sign in the top right, and opt-in device lines in the log. Record debug info (a key you can bind under Communication and interface, and a switch under Show frame graph) records two minutes of every frame and your graphics devices, then stops by itself; press it again to stop sooner. While it records, DEBUG ENABLED shows in the top right with the time left and the key that stops it. It saves a frame-times CSV, a summary and a device list in a dated debug folder under Logs, on your PC only, with no names or folder paths in them. New, off by default: Add graphics device information to the log now and then.
-
Extra spot lights can be turned off. Settings > Quality has a new Extra spot lights switch. On (the default) keeps drawing the spot lights that Halo 3 dropped once a surface already had eight lights. Off drops them again, as Halo 3 shipped, which lightens the load on older graphics cards in busy firefights. The change applies at once, in the middle of a game too.
-
Record frame times for 30 seconds, in PresentMon's format. A new key, Record frame times (Communication and interface, no key until you pick one), records every frame of the next 30 seconds: the frame time, the time spent in the present call, the render and game threads' work, the frame limit's wait and the GPU's busy time. At the end it writes a CSV that CapFrameX and similar tools open, and a short summary (average, median, 1 % and 0.1 % lows, 99th percentile, the GPU's busy share, which part set the pace, frames over twice the median) to the Logs folder. Nothing is written while it records.
-
Each part of the frame graph can be turned off. Game Options has a switch for each part of the frame graph under "Show frame graph": CPU threads, GPU, storage, memory and network, all on by default and greyed while the graph itself is off. A part that is off takes no room on the graph and is not measured.
-
The frame graph shows disk and memory activity. Under the frame graph a strip now shows how much the game reads from and writes to storage each second, with a red tick at every moment something was written and an orange one when memory had to be read back from disk or swap. A row of figures gives the MB read and written a second, those page-ins, the memory the game holds and how much of it is in swap; Settings' help for the graph says exactly what each one counts on Windows, Linux and macOS.
-
Frame graph: five views on one key, under every menu. Show frame graph now has a Frame graph view choice, and the Next frame graph view key goes round every view and off: Summary (the default), Bars (each thread's and graphics device's share of every frame, the limit marked), Frame lanes (the last frames as lanes: who works, who waits), Detailed (the frame times as lines, with every figure), Frame history (the last frames as bars, with each thread's share as text), then off, and the next press shows the Summary again. The graph is drawn over the game's picture and under everything else: the game menu, Settings and every other page, dialogs, the scoreboard, chat, votes and notices cover it. Switches turn the summary's figures, limit sentence, plot, guide lines and 200 FPS target line on and off, show lows as FPS or milliseconds, and set the plot to 5, 10, 20 or 30 seconds.
-
FRIENDS opens PLAYER DETAILS for players in your game. In FRIENDS, a party member, friend or recent player who is in your lobby or game now offers PLAYER DETAILS first: the same card the scoreboard and the lobby open, with their Service Record, mute and the rest.
-
Grass and foliage distance: a setting of its own. Settings, Advanced graphics (and the Reclaimer Kit's preferences) have a new row, Grass and foliage distance: how far from you grass, plants and ground clutter are drawn, the same distance on every map of every game: Off, 25 m, 50 m, 100 m, 200 m, 400 m (the default, about what the highest draw distance drew before), 800 m or Unlimited. Draw distance now sets scenery and objects only. Your profile starts at the step nearest what it drew before. Lower it for more frames in wide grassy views.
-
Keys to accept or decline friend requests and invites. Settings > Controls has Accept request or invite ([ and F5) and Decline request or invite (] and F6). They answer the newest friend request, party invite or game invite while its notice shows, and the notice names the keys. While a vote is on screen, F5 and F6 vote as before. A join that would leave the game you are playing asks first.
-
Decal edits on Halo: CE levels are saved to the scenario file. Saving a Halo: CE Editing Kit scenario in the Reclaimer Kit now writes the level's decals as you left them (moved, turned, removed or added), so the change is kept in the scenario file.
-
Halo: CE missions open in the Reclaimer Kit from their Editing Kit tags. A mission scenario of the Halo: CE Editing Kit that no installed map holds now builds from its tags and opens as a level, as multiplayer scenarios already did. Its placements and decals are listed and can be edited and saved to the scenario file.
Not yet as the game's own maps: its scripts are the ones the scenario file already holds, and the cutscene scenarios a mission refers to are not merged into it.
-
Reclaimer Kit: a Halo: CE Editing Kit scenario no installed map holds opens as a level. A multiplayer scenario of Halo: CE's Editing Kit that no installed map was built from now opens in the Kit as Halo 3's do: its level is built from the kit's tags into a working map in the Mods folder, rebuilt when its scenario, structure BSPs or lightmaps change (or with File › Rebuild Level). The scenario file stays the document: Save writes it alone, and the working map can be deleted at any time.
-
Reclaimer Kit: a Halo: CE mission built from tags has its cutscenes and compiled scripts. A Halo: CE mission the Kit builds from the Editing Kit's tags now gets what Halo: CE's own tool gives a map: its cutscene scenarios merged in (their characters, encounters, cameras and flags), and its scripts compiled from their source files, the cutscenes' with the mission's.
- Scripts are read from the Editing Kit's
data\levels\<level>\scripts
folder when it holds them, otherwise from the scenario tag. - A script that does not compile is left out and named in the Kit's
report, as the original tool does.
- Scripts are read from the Editing Kit's
-
Reclaimer Kit: Halo: CE's and Halo 2's Editing Kits' scenarios open as levels. With the Halo: CE or Halo 2 Editing Kit's tags folder named in Edit › Preferences, its scenarios are listed in File › Open Scenario and on the start screen. One an installed map of its game was built from opens on that map, with the scenario's differences as edits, and File › Save Scenario writes the placements back into the scenario file. A Halo 2 scenario no longer opens a Halo 3 map of the same name.
-
The Reclaimer Kit works with every game's Editing Kit tags. Link each game's Editing Kit tags folder in Edit › Preferences and the Kit now does more with all of them:
- File › Open Tag searches every linked tags folder at once, and each result has an Import button that brings the tag into the open map with what it needs.
- Import takes objects from the Halo 2, Halo 3: ODST and Halo: Reach Editing Kits as well as Halo 3's and Halo: CE's, onto a map of any game.
- File › Open Scenario lists the scenarios of the ODST, Reach, Halo: CE and Halo 2 Editing Kits. One opens on its game's installed map, and Save writes your placements back into the scenario file.
- A Halo: CE multiplayer scenario that no installed map holds is built from its tags as it opens, as Halo 3's are.
- Opening another game's map from Open Tag now lists its tags.
Still to come: Halo 2, ODST and Reach levels that no installed map holds, Halo: CE missions built from tags, and Halo 2's own shader building (imported Halo 2 objects use the shaders of the installed maps).
-
A copied Halo 2 scenario opens in the Reclaimer Kit. A Halo 2 Editing Kit scenario saved under a new name (a copy of an existing level's scenario, edited) now opens on the installed Halo 2 map that holds its level, with its differences as your edits. Before, only a scenario with the same name as an installed map opened. A level with new geometry that no installed map holds is still not built from its tags.
-
Reclaimer Kit: Import Tags takes Halo 2 Editing Kit weapons and vehicles. With Halo 2's Editing Kit tags folder linked in Preferences, File > Import Tags (and Open Tag's Import button) now makes an H2EK weapon or vehicle into the open map: it appears in the object browser under Imported as
NAME (H2EK). Halo 2 must be installed in MCC. Shaders the installed maps do not hold are drawn by a stand-in, and the log says which. -
Reclaimer Kit: a Halo 2 Editing Kit level with new geometry opens. A Halo 2 Editing Kit scenario whose level no installed map holds used to be refused. The Kit now builds the level from the kit's tags, keeps it as a working map and opens it, as it does for Halo 3 and Halo: CE.
- The level's sound and weather settings per area are not built yet, so
such a level has no ambient sound or weather until they are.
- The level's sound and weather settings per area are not built yet, so
-
Reclaimer Kit: your own Halo 2 shaders draw with their own textures and colours. A Halo 2 Editing Kit shader that no installed map holds (your own, or a copy of a stock shader with another texture or colour) used to be drawn by a plain stand-in when imported or built into a level, and an edit to a stock shader's texture or colour was not seen at all. The Kit now makes such a shader after a stock shader of the same template, with your shader's own textures, colours and scales.
- The log says which stock shader a shader was made after and which of
its settings could not be placed and stay the stock shader's. - A shader animated unlike any stock shader of its template is still
drawn by the stand-in, and a new shader template cannot be made.
- The log says which stock shader a shader was made after and which of
-
Reclaimer Kit: objects import from Halo: Reach's Editing Kit's tags. File › Import Tags and Open Tag's Import button take objects from the Halo: Reach tags folder named in Preferences (a weapon, vehicle, scenery, crate, machine, equipment and more). Each is brought in as Reach's own objects are, with the values edited in its tag, and is listed in the object browser under Imported as
name (HREK). Halo: Reach must be installed: an object's model, textures, animations and sounds come from its maps. -
Decal edits on Halo: CE and Halo 2 levels are kept in compiled maps. A map compiled in the Reclaimer Kit from a Halo: CE or Halo 2 level now keeps the level's decals as you left them: a decal you moved, turned, removed or added shows that way when the compiled map is played.
-
Reclaimer Kit: Import Tags takes Halo 3: ODST's Editing Kit's tags. File › Import Tags and Open Tag's Import now take tags of Halo 3: ODST's Editing Kit (H3ODSTEK, named in Edit › Preferences) on a Halo 3 map, and Halo 3's (H3EK) on an ODST map. They are built under a folder of their own, so they never replace the map's own tags of the same name, and are listed in the object browser under Imported with their kit's name. On an ODST map, H3ODSTEK's tags are placed by ODST's own maps. Experimental: not every tag builds yet.
-
Reclaimer Kit: ODST's Editing Kit's scenarios are listed and open on ODST's missions. With ODST's Editing Kit's tags folder named in Edit › Preferences, File › Open Scenario has a Halo 3: ODST Editing Kit section and the start screen lists its scenarios after Halo 3's, each marked H3ODSTEK, whatever map is open. A mission's scenario opens on that mission of ODST's with the scenario's differences as edits, and Save writes its placements back into the scenario file. The Halo 3 Editing Kit's list stays Halo 3's while a map of ODST's is open. A scenario of ODST's kit that no map of ODST's was built from says so instead of opening on a Halo 3 map of the same name.
-
Reclaimer Kit: search every linked tags folder and import from the results. Open Tag now searches all the Editing Kit tags folders named in Preferences at once (Halo 3, ODST, Reach, Halo: CE and Halo 2), with each result showing which folder it comes from. Click a result to open and edit the tag file, or, with a map open, press Import beside it to bring the tag into the map without browsing for it. Import is greyed for folders whose tags can't be imported into the open map yet.
-
A Halo: Reach Editing Kit scenario with no installed map opens as a level. A scenario of the Halo: Reach Editing Kit whose level no installed Reach map holds is now built from its tags as it opens, as Halo 3's are, instead of being refused. The first build takes a couple of minutes while the Kit learns where Reach's fields go; later opens reuse the built level until its tags change.
It is drawn by Halo 3's renderer, without Reach's own shader templates, and has only been tried on the kit's small test level so far.
-
A Reach Editing Kit scenario opened in the Kit takes its own settings, not only its placements. A scenario of Halo: Reach's Editing Kit opened as a level is converted over its map's own scenario as the map loads, so what it changes besides object placements shows in the Kit. Fields that Reach's Tool computes stay as the map has them.
-
Reclaimer Kit: a Reach scenario saved under a new name opens on the map that holds its level. A scenario of Halo: Reach's Editing Kit that no installed map is named for (a copy of Sword Base's under a name of your own) opens on the installed map of Reach's that holds its structure BSPs, with the scenario's own placements, and saves them back into its file.
-
Reclaimer Kit: scenarios of Halo: Reach's Editing Kit open on Reach's maps. With Reach's Editing Kit's tags folder named in Edit › Preferences, File › Open Scenario and the start screen list its scenarios too, marked HREK. One an installed map of Reach's was built from (Sword Base, Forge World, a mission, a Firefight map) opens on that map with the scenario's own placements, and Save writes the session's placements back into the
.scenariofile. -
LAN games in the server browser. Host Settings' Network now has LAN between Local and Online: the game is open to players on your network, who find it in their server browser and join it there, while nothing is listed online and your router is left alone. The lobby's Network row steps through all three.
The server browser also finds more of what is on your network: dedicated servers and games on any game port (hosts answer on UDP 44329 as well, so allow it through the host's firewall with the game port), and games on every network adapter of your PC, including virtual LANs such as Radmin, ZeroTier and Hamachi. A server on your network says so on its card.
-
Linux: the renderer can run its graphics calls on a thread of its own. The game's render thread can hand its graphics calls to a thread of its own, which runs them on the graphics device, so the work is spread over two processor cores instead of one. It is off by default while it is being measured. The picture is the same either way.
-
Master servers can block addresses. A master server's operator can now keep hosts off the server list by address. Start the master with
--block FILE, a text file with one IPv4 or IPv6 address or network a line (203.0.113.7,198.51.100.0/24),#for comments. The master ignores everything from those addresses and lists no server at one. Edit the file while the master runs: it is read again within a few seconds. -
Master servers can keep servers off the list by name. A master server's operator can now block servers by what they call themselves. Start the master with
--block-words FILE, a text file with one rule a line: a word (slur), a combination of words that must all appear (free nitro), a phrase in quotes ("official server"), or part of a word between stars (*casino*). The master no longer lists servers whose name, host name, map or mode names match a rule. Edit the file while the master runs: it is read again within a few seconds. The rules stay private to the master and the masters it syncs with. -
Master servers of one operator stay in sync. Master servers run by the same operator can now share their blocked addresses and their player counts. Start each with
--sync URLfor every other one (--sync http://198.51.100.7:44340). An address blocked on one master is then blocked on all of them within seconds, and every master shows the same player count for a server even when a player's game reached only one of them. Only the masters you name are believed. -
Party members can leave a game and stay in the party. In a party you don't lead, the game menu offers LEAVE GAME and LEAVE PARTY in place of LEAVE SERVER. LEAVE GAME takes you back to the menus and keeps you in the party: a map change or the next game on the same server leaves you there, and your party leader's next game (another server, a new lobby, a match) takes you along again. REJOIN PARTY LEADER, on the main menu and on the leader's row in FRIENDS, joins the leader's game whenever you want. LEAVE PARTY leaves the party and keeps you in the game. Every game menu now lists END GAME below the leave rows, and only the host sees it.
-
Promote a party member to party leader from their player details. The party's leader finds PROMOTE TO PARTY LEADER on a member's PLAYER DETAILS (above BOOT FROM PARTY) and on FRIENDS, which used to say MAKE PARTY LEADER. It asks first, with CANCEL lit. A member who hosts a game with other players in it is now asked FOLLOW YOUR PARTY? before following the leader elsewhere, and can stay.
-
Drones, Sentinels and Engineers fly, and UNSC vs Covenant: Reach grows. A player in a flying body now flies it: jump climbs and crouch descends. The Sentinel and Reach's Engineer move where you look and can change their height; the Drones (Halo 3's and Reach's) take wing when you hold jump, hover and fly at their own speeds, and walk again once you bring them down. Before, a Sentinel could not climb or descend and a Drone never left the ground.
UNSC vs Covenant: Reach has six new classes: a Forerunner Sentinel beside the UNSC (where Halo 3's campaign is installed), and for the Covenant two Drones, an Engineer, a Brute Chieftain with a gravity hammer and a Gúta (for open ground: it is five metres tall). Modes of your own can name them too:
reach_drone,reach_engineer,reach_brute_chieftainandreach_guta. -
The scoreboard marks your party. On the in-game scoreboard, the players in your party carry the party icon, and your party's leader the leader's, as the lobby and the party card show them.
-
Dedicated servers keep what a frozen server was doing. When a server stops answering and is started again, the server's folder now keeps a report of what it was doing (its last status and, on Linux, what each of its threads was waiting on) and a copy of its log up to the freeze, the newest three of each. Its log also says where its main loop is stuck once it has not turned for 30 seconds.
-
Master servers can show a server's own player count where they counted nobody. A master server counts the players on each server from the players' own games, and the browser shows no more than it counted. Run a master with
--trust-unwitnessedand a server it counted nobody on is listed with the count the server itself reports, instead of 0. It is meant for a time when players' games cannot reach the master servers: those counts are then the servers' own word again. A server with at least one counted player keeps the counted number.
Changed
-
New Advanced graphics defaults that suit lower-end PCs. The Advanced graphics settings now start lighter, so the game runs better on older PCs out of the box, and this update's one-time reset puts everyone on them. Under Settings, Advanced graphics: the one-player Preset is Medium (the Xbox 360's own detail) instead of High, Motion blur is now off by default, Extra spot lights is off (as Halo 3 shipped), and Grass and foliage distance is 100 m instead of 400 m. Everything else on the page starts as before.
To get the earlier look back, set Preset to High; turn Motion blur and Extra spot lights on and raise the grass distance to 400 m if you want those too.
-
Advanced graphics settings are reset once to this update's defaults. The first time you start this update, the settings under Settings, Advanced graphics go back to their defaults, and a message in the menus tells you so once. Nothing else is touched: your display mode, resolution, frame-rate limit, HDR, field of view, HUD, sound, controls, key bindings, looks and progress stay as you left them. Set the Advanced graphics the way you like them again and they stay. The Reclaimer Kit's own graphics, in its Preferences, are not reset.
-
Slow machines keep normal game speed. Under 30 frames a second with cheap ticks the game now plays the ticks its clock asks for (up to four a frame) instead of running in slow motion.
-
Loading: Forge with Halo 2 or Halo: CE objects loads a few seconds faster: each of their maps is prepared only for the objects the palette takes from it.
-
Loading: maps that use Halo 2 or Halo: CE objects load faster: a saved map played outside Forge prepares only the maps whose objects it places, the rest are prepared on several cores at once, and a first start no longer prepares them three times over.
-
Big games: other players' body poses use spare cores from 24 players in a player's own game. A player's own game (a client or a listen host) now builds other players' body poses on its spare cores from 24 living players on a Halo 3 or ODST map, where servers start at 48: in a 59-player game the living players were often under 48, so the spare cores were rarely used. The poses are byte for byte what the game's own thread builds.
-
Big multiplayer games: other players' bodies are posed on spare CPU cores. In a game of 48 to 96 players on a Halo 3 or ODST map, your game now builds the other players' body poses on up to four spare CPU threads instead of only on the game's own thread, which limits the frame rate in big lobbies. The result is the same, byte for byte. To turn it off, set
{"networking": {"node_threads": 1}}inengine-settings.json. -
Record debug info: the recording says what it was. A debug recording's devices.txt now starts, at its start and its end, with the build, the time in UTC with the local offset, the game type and map, the server (or hosting, solo), the game tick, and the graphics settings in force (display, quality rows, fields of view, Panini, the frame graph's view). Recordings from different testers can be compared without asking for these.
-
Grass and plants are drawn to one distance from you on every map. How far grass and plants are drawn no longer differs from plant to plant and map to map, or with the field of view, a zoom or split screen: everything within the chosen Grass and foliage distance of your view is drawn, fading out at its edge. At the default 400 m the games' own maps look as they did with the highest draw distance, except that the few kinds that were drawn further (up to 750 m on Valhalla) now end at 400 m and those that ended sooner reach it.
-
Frame captures: a column for the world time each frame drew. Frame time recordings (Record frame times, Record debug info) gain a last column, DrawnWorldTicks: the game tick and the fraction between ticks each frame showed. A frame that shows an earlier moment than the one before ("flickering back and forth") stands out as a lower value, and the summary counts such frames when there are any. Nothing is noted while no recording runs.
-
Frame graph keys: F7 goes round the graph's views, F9 records debug info. Next frame graph view is on F7 and Record debug info on F9 by default. While a server poll is on screen, F7 and F9 still pick its third and fifth answers, and the graph is left alone. Players who chose other keys for either keep them.
-
Frame graph summary names each GPU at work and the cores in use. With more than one graphics device at work the summary shows a figure for each and its sentence can name the device that limits the frames; it also shows how many cores' worth of CPU time the game uses of the machine's threads.
-
Frame graph GPU rows show memory in use on Windows too. On the Windows build the graphics device rows read memory in use from DXGI.
-
The frame graph keeps still and names each kind of work the same everywhere. The figures over the graph now sit in a fixed grid of three rows, one place for each kind of work (Game, Render, Commands, Submit, Shaders, Workers, Loading, Audio, Main loop, Other), with a dash where nothing ran, so the graph never jumps when a thread starts or stops. Digits keep a fixed width. The same work has the same name on Windows, Linux and macOS, graphics card names are shortened, and Settings explains exactly what each label measures in the "Show frame graph" help.
-
The frame graph's labels no longer sit under its lines. The guide lines' labels (16.7 ms · 60, 8.3 ms · 120, the display's) and the scale now stand in a margin left of the plot, level with their lines and never touching each other, so no line crosses them; the margin is as wide as the widest label can be, so the plot never moves. A verdict too long for its row gets smaller, then is cut short, instead of running into the frame rate.
-
The frame graph tells the game's memory from the machine's, and no longer shows a false zero under Proton. A Memory row now reads the game's own memory in RAM and in swap, then the whole machine's RAM in use of its total and its swap in use; the GPU rows say the card's size as "in use - of N MB" instead of a bare size that read like a reading. The Windows build under Wine or Proton on Linux reads Linux's own storage, page-in and memory figures (Wine reported no reads or writes at all, which showed as a confident 0.0); under Wine elsewhere those show a dash. The graph also allocates nothing in a frame and copies its frame history only at the fuller detail.
-
The frame graph names its lines in plain words and lets the game show through. Its lines now say what each kind of work is: Game (the world, AI and your input each tick), Render, Render jobs, Loading, Audio, Controller input, Network, Vulkan commands and so on, with a short key under the header for the less obvious ones. The game's own helper threads share one "Game workers" line instead of filling the graph with numbered "guest thread" lines. The panel's background is now 7% black, mostly see-through, and its text and lines carry a dark outline so they stay readable over a bright scene.
-
The frame graph's figures hold still and show the slow frames. Every figure over the graph is now its average over the last 7 seconds, redone twice a second, while the lines stay live. Beside FRAME the graph shows the 1% and 0.1% lows, the worst frame and how many frames took over twice the usual time, each in milliseconds with the frame rate it makes; when frames come unevenly the top line says so ("Uneven: 37 frames in the last 7.0 s took over 9.6 ms") instead of "Can't tell", and "Can't tell" now says what is missing. The graph's guide lines read in milliseconds with the frame rate beside them.
-
The frame graph opens on a summary. Show frame graph now opens on a summary that reads at a glance: your frames a second in large type, one sentence naming what limits them (the render thread, the game thread, the GPU, or a cap, with what is under the cap), four figures (frame time, 1 % low in frames a second, the GPU's busy time, the game and render threads' busy share of each frame) and one plot of the frame time over the GPU's busy time and both threads for the last ten seconds, all from each frame's own record. Frame graph: detailed view brings back the full grid. The GPU rows show memory in use where the driver reports it.
-
Frame graph summary plot fits fast frames and marks the 200 fps target. The summary plot scales to the frames shown down to 6 ms, so a fast game's lines fill it, and a guide marks 5 ms, the 200 frames a second target.
-
Frame graph names the file the game writes most. With the storage section on, the detailed view names the file the game wrote most to over the last half second and how fast (its folder and name, never a whole path), once it writes 64 KB a second or more.
-
A party's Last server on FRIENDS shows the server's name. It showed the server's address. It now shows the name the server goes by (from a friend's status, an invite, the server browser or your own game), and the address only when no name is known.
-
FRIENDS shows your party first, and marks the friends who are in it. The party's members are listed at the top of FRIENDS under PARTY with its count, above your friends, so they never sit below a long list. A friend who is in your party reads "In Your Party" (the leader "Party Leader") on their own row in your party color, before where they are.
-
Logs: graphics device lines are on by default. "Add graphics device information to the log now and then" is now on by default, so a log sent with a report names the graphics devices: one short line per device when a game starts, when a device loses its picture or nears its video memory budget, at most once a minute and 24 times a session (about 11 KB at most). Players who turn it off keep it off.
-
A new graphics card takes effect when you apply it. Choosing another graphics card in Settings › Graphics no longer waits for the next time you start the game: applying it starts the game again on that card and brings you back to the same Settings row. During a game or a lobby you are never dropped out: the row says the card takes over once you leave, and the game starts again on it when you are back on the main menu. If the card can't show the game, the next start falls back to Automatic as before.
-
Grass and plants draw as far at every resolution. On Halo 3's and Halo 3: ODST's maps, how far away grass, plants and ground clutter stay drawn no longer grows with the render resolution. At 1080p and above they now end sooner than before (at two thirds of the distance at 1080p, half at 1440p, a third at 2160p), and wide views full of them cost the processor far less at high resolutions.
-
One pair of controls climbs and descends every VTOL, on a controller too. Ascend (VTOL) and Descend (VTOL) now fly every VTOL of every game: the Hornet, the Falcon and modded ones. They are A and LB on a controller and Space and Left Ctrl on the keyboard, and both can be changed under Settings → Controller or Keyboard & Mouse → Vehicles.
- Hornet on a controller. It climbs and descends with the buttons, as
in MCC. Until now a controller could only climb by aiming up and descend by aiming well down. To keep that, turn on Aim to climb (Hornet) in the controller settings. - Modded VTOLs. Some, such as Hugegrass's Albatross and Vulture, were
built for the buttons and could not descend, or barely climb, by aiming. They now fly with a controller. - Falcon. Ascend (Reach) and Descend (Reach) are gone: the
Falcon uses the shared pair, so its climb moves from LT to A on a controller. Altitude lock moves from A to X. Buttons you had chosen for the two Reach actions no longer apply; set the shared pair instead.
- Hornet on a controller. It climbs and descends with the buttons, as
-
Host migration says so in Halo 3's own words. When a game's host or server is replaced while you play (another player taking over, or a dedicated server's standby taking the game over), the loading screen over the wait no longer reads WAITING FOR THE HOST: it says SELECTING NEW HOST... until the new host takes the game, then CONNECTING TO NEW HOST... until play goes on, as Halo 3 did, in the game's text language where the menus can show it.
-
Friend request and invite notices name one key for each answer, F5 accepts and F6 declines by default (or the keys you bound there). [ and ] still answer; they are no longer listed.
-
Lightmap filtering changes at once, on the map you are playing. Changing Lightmap filtering in Settings takes effect on the map being played as soon as you apply it, with no need to load a map again. The first change to a filtering on a map takes a second or two to come in; after that switching is immediate.
With Original chosen, the page warns under the row that it is very expensive on mod maps that filter their lightmaps by hand, with almost no visible difference.
-
The selected server's player count stays live. The server browser now keeps the player count of the server you have selected up to date as players join and leave, without refreshing the whole list.
-
The lobby's NETWORK row flicks through Local, LAN and Online without a hitch. Each step shows at once, and the lobby is set up once, 300 ms after your last change, with the choice you stopped on. START uses your latest choice.
-
The game sizes its helper threads from the processor's real layout. Helper threads (occlusion drawing, other players' body poses) are now sized from the processor's physical performance cores, leaving a core each for the game, render and graphics driver threads, and share one budget so they never crowd those threads out. On processors with efficiency cores, the helper threads stay on the performance cores. The game logs the layout it found at the start of the first drawn view (
[machine] ...). -
Party and friend marker colors default to purple and bright green. With party and friend colors turned on (Settings > Game options > PLAYER TAGS AND NAMES; still off by default), party members' markers are purple (#BA4BFF) and friends' bright green (#4AFF6A) unless you picked your own. A profile that turned the colors on and kept the old pink and green gets the new ones; a color you chose stays.
-
Mod maps with hand-filtered lightmaps draw many times faster. Some mod maps (Hugegrass, Permafrost and the Ultimate Firefight Series' maps among them) blend their baked lighting from sixteen lightmap texels a layer in every pixel, which took most of the graphics card's time for a frame. The game now draws that same soft blend from a quarter of the samples: the lighting looks the same and its cost falls to a small fraction.
A new graphics quality setting, Lightmap filtering, picks how these maps are drawn: Smooth (the default), Fast (the plain filtering of the games' own maps, lighter still) or Original (the map's shaders exactly as they were made). It applies from the next map you load. The games' own maps were never affected and are not changed.
-
Nameplate icons sit at the end of a player's row, the input icon after the name. In the lobby, the scoreboard, player details and the carnage report, the controller or keyboard-and-mouse icon now follows the player's name, and their nameplate icons (role on the server, staff or earned icon) sit at the end of the row. Customize's PLAYER ICON row is now NAMEPLATE, and the Settings section is Nameplates.
-
One nameplate per name, in tiers the player chooses. A player's name shows one plate at the end of its row: their staff plate (Developer or Moderator), else their role on the server (Admin, Mod or VIP), else the Host's crown, else the first custom plate they leave checked (Forerunner). Customize › Player › Nameplate has a checkbox for each plate a player holds (Show staff plate, Show my server role, one per custom plate); the Host's crown can't be hidden. Viewers can no longer hide other players' plates, party marks show only in the party list, and SWAT stays locked.
-
Node threads: big games pose on the worker threads again. In a game with more than 96 players, or more than 96 bipeds and vehicles to pose, a player's game now poses them on its worker threads too (servers keep their limit), with the same result.
-
Occlusion culling costs less on older and smaller processors. Working out what the level's walls hide takes up to a fifth less processor time on every PC, and about half as much on processors without AVX2 (Intel Core processors before 2013, Pentiums and Celerons until 2022, AMD processors before 2015). PCs with four cores or fewer gain the most, since they have few spare threads to share that work. What is drawn does not change.
-
Input icons show on your own row too. With Show players' input icons on, your own row (and each split-screen player's) shows the controller or keyboard and mouse you last used, as everyone else's does.
-
Party member questions say LEAVE. The button that goes on in LEAVE THE GAME? and LEAVE PARTY? reads LEAVE, as the party's other member question does.
-
Busy games spend less of each frame looking up names. Checks the game makes for every object many times a frame (which game a map belongs to, whether a vehicle is a Halo: CE one, a map's named parts) now remember their answer for the loaded map instead of reading names again, with the same results.
-
Large games spend less of each frame preparing the picture. On busy maps the game copies its state for drawing every frame; that copy is now written by several processor cores at once instead of one, with the same result.
-
The required mods window checks the server's own mods first. Joining a server that uses mods no longer waits on "Checking…" while the game checks every mod on your PC for the first time (a new profile, the first start, or after Steam updates your Workshop items). The window first checks only the mods that server needs and lets you join; the check of your whole library finishes in the background.
-
Loading: a custom game on a saved Forge map loads much faster (about 15 seconds on a map with other games' objects): it prepares only the objects the map places. Scripted modes (Megalo, Reclaimer modes, Halo: Reach game variants, Firefight) still get every Forge object, as they may create any of them.
-
Dedicated servers write far less to disk. An idle server no longer rewrites its
status.jsonevery 2 seconds or repeats the same status lines inserver.log: the status file is now written when what it says changes (players, phase, game, queue) and at least once a minute, and the log only gets status, chat and voice summary lines that changed. A server also keeps no recent-players list or recent-games history of its own (nobody reads them there), and saves players' playtime at each game's end and every 15 minutes instead of every 5.For hosts' own tools:
status.json'supdatedis now up to 60 seconds old on a running server, so treat a status as stale after 90 seconds (it was 30). Itshealthfigures are as fresh as the last write; ask RCONhealthor themetrics_httpendpoint for live ones. The supervisor still restarts a hung server within 90 seconds. -
The command-line server lists (
--find-lan,--list-servers) name the mods a server's players need, beside the games it needs. -
Big vehicle games run their wheels' ground checks on spare cores. Each tick every vehicle checks the ground under each wheel. In games with many vehicles these checks now run together at the start of the tick on the helper threads, and each vehicle uses the answer when nothing it depends on has changed since; the results are the same as before.
-
Linux renderer: a little less work for every draw. The Vulkan renderer no longer takes and drops shared references for every draw, pass and dispatch, which saves time on the render thread in busy scenes such as large Forge maps.
-
Linux renderer: the graphics driver's work runs on a thread of its own. On the Vulkan renderer (Linux, and Windows or macOS when chosen), recording the graphics driver's commands, writing their bindings, submitting each frame and presenting it now happen on a thread named "Vulkan encoder", beside the render thread, as the Metal renderer already does on macOS. The render thread does less per frame, so busy scenes such as large Forge maps draw faster where the render thread was the limit. The frame graph lists the new thread.
-
Server browser: servers with many mods or players are listed in full. A server's answer to the browser used to be held to the size of the browser's question, so a server with many mods listed only a few of them, and its players' names made way for its mods. A server now answers a browser that has proved its address with everything: every required mod with its maps, and every player's name, on the server's row and card without opening VIEW MODS. Both the server and the player need this version; with an older one on either side the browser lists what fits, as before, and VIEW MODS still asks the server for the rest.
-
The server browser reads only updated master servers. Master servers now tell the browser that they list only servers which answered them from their own address. The browser leaves out a master on the internet that does not say so yet, and reads it again by itself once it is updated: nothing to set, and no new game version needed.
- While only some of the public masters are updated, the browser may
report fewer masters responding. Every server still reports to all of them, so an updated one lists them all. - Master server operators: update your master to 0.10.3. Until then
players' browsers leave its list out; servers are still joined by address and found through the updated masters. - A master on your own PC or network is always read.
- While only some of the public masters are updated, the browser may
-
Master servers list only servers that answer. A master server now asks every server it is told about, and lists it once the server itself has answered from the address it gave. A server that is not really there is never shown in the server browser. A new server appears a couple of seconds after it first reports. A server the master cannot reach, directly or through its rendezvous, is not listed; a master placed where it cannot reach its players' servers can turn this off with
--unverified. A server machine's own master lists its servers without asking. -
Master servers take a server only from its own address. A master server now lists a server only when the report came from the server's own IP address, so nobody can announce servers at somebody else's address. Master servers that sync with each other still pass servers on. A server that does not answer the master's check is dropped and not looked at again for two minutes. The master's rendezvous also registers at most four servers per address (more for the addresses in
--allow-many). If your server lists a public address that is not the one its connections leave from, the master will not list it. -
Master servers list at most four servers per address. A master server now lists at most four servers at one IP address, and takes at most four listings from one sender, so nobody can fill the server list with servers that are not there. Hosts behind one public address share its four. An operator who runs more servers on one address asks the master's operator to be allowed: start the master with
--allow-many FILE, a text file with one address or network a line (the format of--block). Edit it while the master runs: it is read again within a few seconds, and masters that sync share it. A server machine's own master still lists all of its servers.
Fixed
-
A lobby's players come along when its host joins a server. When the host of a lobby picked a server in the browser (or by Direct Connect, or a friend's game), the players in the lobby were left behind: the lobby closed under them or passed to one of them, alone. As on the Xbox 360, the host is now asked BRING PARTY or JOIN ALONE. With BRING PARTY every player in the lobby is told where the host went and follows after a short countdown, in lobby order; each can choose STAY instead. A full or locked server, missing mods or a join queue tell them so the way any join does.
-
A lobby that queues for a full server waits and goes in together. When the host of a lobby queued for a full server, only the host waited in line; when its turn came the lobby's players were left behind. The host is now asked BRING PARTY? as it queues: the lobby waits in the server's queue as one group, each player sees the place in line and can leave the group, and the group goes in together once there is room for all of it.
-
A party leader hosting a lobby isn't asked twice to join a server. A FRIENDS party's leader who hosted a lobby and joined a server was asked JOIN THIS SERVER? a second time as the party's own move came back, and stayed behind until they answered it. After BRING PARTY or JOIN ALONE the join goes ahead.
-
Dedicated servers no longer keep each map's loading picture. A dedicated server prepared the loading screen's picture of every map it changed to and kept every one of them, about 8 MiB a map change, as nothing on a server ever showed them. It now keeps only the pictures in use.
-
Dedicated servers no longer grow in memory with every match. A dedicated server kept a copy of every texture of every map it loaded, so its memory grew with each match (about 85 MiB a match on Guardian, more on bigger maps and campaign missions) until the host stopped it. It now lets go of them as soon as they are loaded, and its memory stays level from match to match. Thanks to oqz for the measurements that pinned it down.
-
Test bots: fleet vehicles spread over the map, one pilot a vehicle. The test fleet made every vehicle around the players, so at a game's start they piled up on the spawn points (and players could not respawn there), and pilots were thrown at the few vehicles left. Vehicles are now made at clear places found around the map's own vehicles and spawn points, apart from each other and away from real players and spawn points, flyers only under open sky; a map with too few places makes fewer and says so. A vehicle someone drives or was just given to a pilot is not taken by another.
-
Server browser: a server is listed once, however many ways it was found. A game found at several addresses (this PC, each of its network connections, IPv6, a master's listing) showed as one row for each, so a game hosted on the same PC could appear three or four times. Each server now has one row, with a tag saying where it was found (THIS PC, LAN or INTERNET); pointing at the tag, or the server's card, lists every way it was found. Joining tries the best way first (this PC, then the LAN, then the internet) and moves on to the next by itself when one does not answer. Pointing at a row's coloured dot now names its status.
-
Carnage report: chat stays in the left column. Chat lines shown over the carnage report reached past the report's left column and were drawn across the players' rows. They now wrap within the column.
-
Halo: Combat Evolved's weapons held on Halo 3's maps show the Spartan's or Elite's arms: they were drawn without hands, hanging low.
-
Halo: CE explosions and impacts play whole on other games' maps. A Halo: CE rocket fired on a Halo 3 map exploded without its blast, smoke and sound, and most parts of its weapons' impacts were missing. They now play as on Halo: CE's own maps.
-
Halo: CE's fuel rod gun shows in first person on Halo 3 maps. Held by a Spartan on a Halo 3 map, the Halo: CE fuel rod gun showed only the hand. The weapon is drawn again.
-
Halo: CE shots on other games' maps take the surface's parent material's impact. A Halo: CE shot striking a surface whose material Halo: CE lacks now plays the impact of that material's parent kind (thin metal for any thin metal) rather than of a more specific relative (a Spartan's armour).
-
Halo: CE vehicles' cameras sit right on other games' maps. Driving a Halo: CE Warthog placed on a Halo 3 map (Valhalla) put the camera low inside the vehicle. The camera now follows it as on its own maps.
-
Halo: CE weapons are held and drawn on ODST canvases. A Halo: CE weapon picked up on an ODST Forge canvas showed neither the weapon nor the arms in first person. It is now held in the canvas's own arms.
-
Halo: CE weapons are held in the Reach Spartan's and Elite's arms on Reach maps. A Halo: CE weapon picked up on a Reach map was hidden behind the player's own arms, drawn unposed over the view. It is now held in them.
-
Halo: CE weapons on Reach maps: held by the graphs made for Halo 3's arms. Fitting Halo: CE's animations to Reach's own arms covered the view; the weapons are held there by the graphs fitted to Halo 3's arms, which show the weapon in hand.
-
Joining: a host whose Forge library was built during the same start now loads the same map as its joiners on a saved map with Halo 2 or Halo: CE objects (they could differ, with a warning on the joiner).
-
Objects of Halo: Combat Evolved and Halo 2 taken from several of their maps all have their sounds on another game's map: only the sounds of the one map that gave the most objects were found.
-
CE's and Halo 2's weapons held on other games' maps sit where they do in their own game: they were drawn through Halo 3's narrower weapon camera, low and tilted, with Halo 2's hands below the screen.
-
Halo: CE weapons keep their own effects on other games' maps. A Halo: CE weapon placed on a Halo 3, ODST or Reach map now shows its own muzzle flash, impact sparks, particles and explosions, as on its own maps. The marks its shots leave (bullet holes, scorch marks) are the map's own game's, by the surface struck.
-
Linux, Windows and macOS packages: the game's package can no longer ship the server's build. A package step now refuses a game program without sound output or without the code that writes client.log (the dedicated server's build has neither, and on Linux its program has the game's name). The game's log also starts by naming the build's features and system, and says so plainly when the server's build is started as a game.
-
Games started from the command line are named correctly. A game started with command-line options (a map, a game type or a saved game) now shows its own map and game type on the scoreboard's heading and in your status. Before, it was always called Custom Slayer on Guardian. Games started from the menus were already named correctly.
-
Controllers keep working after the pause menu or scoreboard closes. After a menu closed, the game waited for every key and button on every keyboard, mouse and controller to be let go before it took any input again. One key or button that stayed down (a stuck key, another device, a program sending key presses for the controller) left the controller with no input until the player switched to another window and back. Now only what was actually held as the menu closed is kept from the game, each key or button until it is let go; everything else plays at once.
-
Co-op missions count every player, not only the first four. With more than four players, some mission steps only reacted to the first four: Sierra 117 did not end when a later player took the Pelican's seat, and the same held for ONI Alpha Site's Pelican, vehicle and Warthog-seat steps on several missions, and the Spartan Laser on Halo. Any player now counts.
-
Co-op players whose map loads differently from the host's are told so. A player joining a co-op mission (or Firefight) of Halo 3: ODST, Halo: Reach, Halo: CE or Halo 2 whose game files load the map differently from the host's now returns to the main menu with a message saying why, instead of playing on and falling out of step with the host's game.
-
Co-op servers no longer repeat the start countdown while a player joins. A co-op campaign server counted a player toward
min_playersas soon as their game began joining its session, like other servers did. Over a slow connection the countdown could start, stop and start again with every join try. It now starts once the player is in the session. -
ODST's objects on a Halo 3 map are heard by players who join too: a joiner's game found ODST's sound banks only for a host.
-
Objects taken from other games and mods are no longer silent on another map. A mod's objects on a map outside the mod (Forge with the mod turned on, a saved map placing them), Halo 3: ODST's, Halo: Combat Evolved's and Halo 2's objects on Halo 3's and Reach's maps played without sound: their weapons, vehicles and impacts found no sound bank. Each now plays from its own game's or mod's banks, for hosts, joiners and films.
-
Escape opens the game menu, not the last player card you looked at. Opening a player's card from the scoreboard and going back to play left the card behind: the next Escape (or Start) showed that player's details instead of the game menu. The card now closes with the scoreboard.
-
Failover reaches players who joined through the server's router. When a dedicated server failed over to its standby, players who had joined at the server's public address (from the internet, or from the server's own network through its router) were left on WAITING FOR THE HOST while the standby played on without them. The server now tells each player where it reaches the standby (its public address for players on the internet), and the standby finds players whose router shows them at another address. Players need no update. A standby on another machine should be started with its own public address (
public_address). -
Big games no longer stutter every ten seconds while recording a film. Every 600 ticks (10 seconds at 60 ticks a second) each machine that records a film took a lock that waited for the frame the renderer was drawing, 10 to 60 ms in a 100-player game, before Halo 3 rebuilt its physics world. A machine that does not write that keyframe now rebuilds the physics world at the same moment without waiting for the renderer; films and Theater are unchanged.
-
A joined Forge map's placed objects are there when the game appears. Joining a game on a map with many placed walls, floors and blocks could show the map before they were all there: they appeared over the first moments of play, or later still. They are now made while the loading screen is up, and the game appears once they are all in place.
-
Doors, gates and other devices placed in Forge move again. Devices from other maps in the Forge palette (Standoff's doors, Last Resort's and High Ground's gates and the rest) only played their sounds when a switch on their channel was used: the models stood still. They now open and close as they do on their own maps. A placed door or gate can also be picked up and moved like any other object, instead of staying where it was made until coordinates were typed in.
-
Frame graph: Next frame graph view and Record frame times work from a controller button. Either key, put on a controller button in Settings, now acts on that button during play, as it does on its keyboard key.
-
Settings: applying a change no longer switches the frame graph. Applying any Settings change (Panini, lightmap filtering, any row) could put the frame graph back to the view it had when Settings was first opened, or turn it on or off, after the Next frame graph view key had changed it. Settings now keeps the graph as the key left it unless one of the graph's own rows was changed, and shows its rows as they are when it opens.
-
Halo 2: every cutscene of a back-to-back opening can be skipped. In The Arbiter only the first cutscene of the opening could be skipped: the next one ignored Space and its hint went away. Each cutscene now skips with one press.
-
Halo: CE campaign and Workshop map fixes. A large round of fixes for Halo: CE, most of them from a community pull request:
- Enemies and allies: AI gunners fire from vehicle turrets, AI weapons keep
Halo: CE's firing rates and bursts, stealth Elites have no shields, Elites wear their rank colours, and enemies steer round scenery. - Weapons and damage: grenades fly as Halo: CE's and leave the hand without
the thrower's own speed, the grenade count shows on the HUD past one grenade, explosions no longer deal their blast twice, and running someone over no longer adds a second hit. - Vehicles: riders lean as the vehicle moves, an overturned vehicle puts its
riders out, a destroyed vehicle takes its riders with it, seats turn and aim at their own rates, and the camera no longer shakes for riders at high frame rates. - The world: scenery and devices that should break now break, breakable
glass breaks pane by pane, dropped weapons come to rest, characters no longer trip over items, bodies the level places dead lie as they should, and a Jackal's shield goes when it dies. - Missions: the Silent Cartographer's waypoint appears after the landing,
the Pillar of Autumn's door lock lights show, and missions keep their right order and names when extra maps are installed. - Rendering: first-person weapons and effects no longer flicker, grates and
fences on the Pillar of Autumn are cut out properly, one-sided glass and holograms are drawn from the right side, and characters from other games are lit by the level. - Workshop maps: maps with their own bitmaps, very large models, BC7
textures, 32-bit lightmaps and names with spaces or dots now load.
- Enemies and allies: AI gunners fire from vehicle turrets, AI weapons keep
-
Halo 2 campaign fixes. A large round of fixes for Halo 2, most of them from a community pull request:
- Enemies and allies: over a hundred characters that stood invisible at
their starting places now appear, squads follow their orders' styles and scripts, Marines move between their goal areas, turret gunners man their guns, Drones take off from where they start, Brutes and others roar when they go berserk, and characters speak in their own voices. - Difficulty: enemy health, shields and accuracy follow Halo 2's own
difficulty scales. - Weapons and items: weapons and grenades rest on the ground as Halo 2 lays
them, a carried turret can be set down by the story's scripts, you can trade weapons with allies, and plasma shots fly at Halo 2's speeds. - The world: multiplayer maps show only the scenery of the game type being
played, lifts and doors behave as machines should, and far objects fade out at Halo 2's distances. - Rendering: struck shields flare, the sniper rifle's scope screen shows the
view, bullet holes are cut to walls and instanced geometry, the white dots along edges are gone, first-person weapons no longer flicker, Outskirts has its sky, and other games' characters cast shadows. - Your own characters: they hold cutscene props in their hands, wear the
right HUD and flashlight, and keep their colours.
- Enemies and allies: over a hundred characters that stood invisible at
-
Halo 2's vehicles placed on other games' maps have their engine sounds: a Ghost, Warthog, Banshee, Wraith or Spectre from Forge's Halo 2 shelf drove without its engine loop.
-
Halo 2 shots leave the map's own marks on other games' maps. A Halo 2 weapon fired on a Halo 3 map leaves that map's game's bullet holes and scorch marks under its own sparks, as Halo: CE's weapons do.
-
Halo 2 levels show their decals. The signs, warning stripes, scorch marks and blood stains placed in Halo 2's levels were missing (122 on Desolation, 474 on Cairo Station). They are drawn now, and the Reclaimer Kit lists them under Decals, where they can be selected and edited like Halo: CE's.
-
Halo 2 weapons keep their own effects on other games' maps. A Halo 2 weapon placed on a Halo 3, ODST, Reach or Halo: CE map now shows its own muzzle flash, impact sparks, particles and explosions, as on its own maps.
-
The Host crown stays on the host's own screen when they hide their server role.
-
A host plays every tick of a joiner's input. When a joiner's input arrived in bunches, the host kept only the newest of two arrivals and lost a press that lasted one tick: a joiner spamming crouch was seen crouching at other times than they did, and short jumps or melees could go missing on the host. The host now plays each of a joiner's ticks in order, merging presses when it falls behind instead of dropping them. Works with joiners of older builds.
-
Joining a game in progress on a mod map no longer crashes after an earlier game. A player who had already played a game in the same session (another server's game, or the same server's previous map) and then joined a game in progress on a mod map with its own shared files (Ultimate Forge's sandbox maps, with a saved map on top) crashed as the map finished loading. The same happened to players asked to join again after a server's map change. The earlier game's settings went over the joined game's and left out the mod's own shared files, so the map could not load. The joined game's mod map is now played with its own files.
-
Joining a game whose mod you have in another version now says so ("Different version on this PC", "this PC's copy is a different version from the host's") instead of treating the mod as missing; mods turned off are named too.
-
Joining a server that uses no mods no longer waits on "Reading the mods on this PC". Every join used to read the whole mods and Workshop folder before it went on, and showed "Reading the mods on this PC" while a large library was read, even for a server whose game needs no mod. A join now waits for that only when the server's game uses mods or customization characters; the read still starts at once beside reaching the server, so those joins are no slower. Checking for mods also no longer rewrites the saved list of mod checksums when nothing in it changed.
-
A kicked player sees the KICKED notice with the wait once, for a few seconds, instead of every second until they may rejoin.
-
Staff can kick from a dedicated server's scoreboard and player details again. On a dedicated server, KICK on a player's details and on the scoreboard did nothing for admins and moderators: the question closed by itself before it could be answered. It now stays up, and the server's answer shows in chat.
-
Reclaimer Kit: a weapon you add no longer vanishes and comes back every half minute. On a multiplayer map, a weapon added in the Kit was removed by the game's clean-up of weapons left lying after 30 seconds and then made again by the Kit, over and over, each time as a new object. Nothing is cleaned up while the Kit edits a level now. Playing a map is unchanged.
-
Reclaimer Kit: a Halo: CE mission built from tags loads its next area when you walk into it. A Halo: CE mission built from the Editing Kit's tags lacked the trigger volumes that switch between the level's areas, which the original tool makes from the volumes named
bspN,M. They are made now. -
Reclaimer Kit: a Halo: CE mission built from tags has its cutscenes' objects. A Halo: CE mission the Kit built from the Editing Kit's tags lacked what its cutscene scenarios place: their characters, vehicles, scenery, camera points, flags and recorded animations. They are now merged into the mission as Halo: CE's own tool merges them.
- The mission's scripts are still the ones its tag holds: the cutscenes'
scripts are not compiled into it yet.
- The mission's scripts are still the ones its tag holds: the cutscenes'
-
Decals on Halo: CE maps can be selected and edited in the Reclaimer Kit. A Halo: CE map's decals (the bases' painted symbols, signs and marks) were drawn in the view but missing from the hierarchy, so they could not be selected. They are now listed under Decals, can be selected, moved and turned with the change seen at once, and are saved with a Kit scenario.
Not yet: a compiled map keeps the level's original decals, and Save does not write them into the Editing Kit's scenario file.
-
Reclaimer Kit: a compiled Halo: CE or Halo 2 map reopens with its decals. Opening a map the Kit compiled from a Halo: CE or Halo 2 level listed no decals at all, though the compile had kept your decal edits. The decals are listed again as the compile left them, and can be edited further.
-
Reclaimer Kit: the compile report lists another game's kit's imports as the tags folder's. An object imported from H3ODSTEK onto a Halo 3 map (or from H3EK onto an ODST map) was listed in Compile Map's report as coming from another map.
-
The Reclaimer Kit's Discord status names the map you edit. Discord and your friends' lists said "Slayer on Guardian" whatever map the Reclaimer Kit had open. They now say what the Kit is doing: "Editing Crevasse", "Playtesting Crevasse" while you play it, or "In the Reclaimer Kit" with no map open.
-
Reclaimer Kit: an imported Halo 2 Ghost and Shadow have their real physics. A Ghost imported from the Halo 2 Editing Kit's tags had its centre of mass in the wrong place, and vehicles with detailed collision such as the Shadow could not be made at all. Both now get the physics Halo 2's own maps give them.
-
Reclaimer Kit: a Halo 2 level built from tags has its structure physics. A Halo 2 Editing Kit level built from tags lacked the physics table that says which of its instanced pieces collide as a whole. It is now built, naming the same surfaces and pieces Halo 2's own maps name.
-
Reclaimer Kit: a Halo 2 level built from tags has its ambient sound, reverb and weather. A Halo 2 Editing Kit level the Kit builds from tags now carries what its scenario paints on each area: the background sounds, sound environments and weather, and each surface's material for footsteps and impacts.
-
Reclaimer Kit: your own Halo 2 particles and unusually animated shaders draw too. A Halo 2 Editing Kit particle that no installed map holds now draws with its own textures and colours, as shaders already did. A shader animated unlike any stock shader of its template is no longer replaced by a plain stand-in: it is made after the closest stock shader, and the log says it animates as that one does.
-
Reclaimer Kit: a compiled map's objects imported from Halo: Reach's tags play as Reach's. A map compiled with weapons or vehicles imported from Halo: Reach's Editing Kit now gives them Reach's own handling when it is played (a weapon's functions, triggers and tracking, a vehicle's controls), taken from the installed Reach object each was made from, the same on every PC. Before, such objects played by Halo 3's rules alone outside the Kit.
-
Reclaimer Kit: an object a map holds but never loads can be imported and placed. Importing an Editing Kit object that the open map already holds in a stripped, never-loaded form (the Mongoose on ODST's Crater) left it "Not placeable". Such an object is now imported whole beside the map's own and appears in the object browser marked with its kit.
-
An ODST Editing Kit scenario with no installed map is refused instead of crashing. Opening a scenario of the Halo 3: ODST Editing Kit whose level no installed ODST map holds now says that such a level is not built from its tags yet. Scenarios of installed ODST missions and maps open and save as before.
-
An ODST Editing Kit scenario with no installed map opens as a level without crashing. Opening a scenario of the Halo 3: ODST Editing Kit whose level no installed ODST map holds builds the level from its tags and opens it in the Reclaimer Kit. It crashed a few seconds after opening before: the level's visibility data lacked a part the game reads on every frame. Levels built by an earlier version are built again the first time they open.
-
Reclaimer Kit: Open Tag reaches the tags of other games' maps. Choosing a Halo: CE, Halo 2, Halo: Reach or ODST map in Open Tag listed nothing and gave no reason. It now explains that the map's tags exist once the map is opened, and offers to open it: the map loads with its level and the Tags workspace shows its tags to edit. Open Tag lists them from then on.
-
Reclaimer Kit: opening a map with many mods no longer runs out of memory. With many mod packs installed, the Kit merged every pack's objects into the map it opened and could run out of memory while loading, which closed it. The Kit now checks the memory your PC has free first. When it is too little, the map opens with the games' own objects and without the mods', and the status bar says so and how much memory was needed.
- Close other programs or turn some mods off to get the mods' objects.
- If the game does run out of memory, its log now says how much it asked
for and how much the PC had free.
-
Reclaimer Kit: edits to imported Halo: Reach weapons and vehicles survive Compile Map. An object imported from the Halo: Reach Editing Kit played by your edited tags inside the Kit, but a compiled map gave it the stock object's weapon behaviour (heat, rate of fire, triggers, tracking) or vehicle controller. Compile Map now keeps what your tags make, and the game uses it.
- Recompile a map compiled before 0.10.3 to pick up such edits.
-
A decal moved or removed in the Reclaimer Kit on a Halo: Reach map no longer stays where it was. Reach draws a level's decals from the level's own geometry, so a decal the Kit moved or deleted went on showing in its old place. Those are now left out, and the moved decal is shown where it stands.
-
Reach Editing Kit scenarios no longer show their objective markers as changed. Opening a Halo: Reach Editing Kit scenario in the Kit no longer counts its labelled hill markers, flag stands and plates as other objects than the map's game-type goals made of them.
-
Reclaimer Kit: a Reach scenario's long object names are no longer taken as renames. A scenario of Halo: Reach's Editing Kit opened on its map listed each script name longer than 31 characters as a name that could not be applied. Such a name is the scenario's own, cut by the map, and a save keeps the scenario's full name.
-
The party leader is no longer asked to follow their own party. A leader hosting a game could be asked "FOLLOW YOUR PARTY?" and offered to leave for the server the party had played on before. A game that lost the party's server kept asking its way back there for 90 seconds, even after its player had gone on to host or join another game, and that way back reached the leader as if the party had moved. Now a game that has gone on to another game stops going back, and the leader is only ever moved by their own join.
-
Linux: the dedicated server's download can no longer be taken for the game. The dedicated server's Linux tarball unpacks into a folder of its own (
project-reclaimer-dedicated-v0.10.3-linux-<arch>) with no desktop entry or icon. Started with no options, it says what it is and which download players want (in its terminal, or in the desktop's dialog when started from a file manager), or runs the servers of adedicated.tomlbeside it, instead of starting a game without sound. -
On Linux and macOS, a game started from a desktop shortcut or from Steam writes its log file. A game started from a desktop shortcut, from Steam (on a Steam Deck too) or by any launcher that reads its output wrote no
Logs/client.logand kept no crash logs, so there was nothing to send with a bug report: its log went only to the system journal or to Steam's console log. It now writesclient.logas a start from Finder or a file manager does, and the journal or Steam still get every line. A start from a terminal, or with its output sent to a file, is unchanged. The log file stops at 64 MB a start, so a runaway message can't fill the disk. -
Servers no longer advertise players whose game never joined. A dedicated server's player count in the server browser counted every connection's split-screen places from the moment it connected, whether or not its game ever joined. Connections that said they bring four players and then sat idle made a server list as nearly full with nobody in it. The advertised count (the server browser, the health figures and
GET /health) now counts the players in the game, and a joiner's places for only 30 seconds after it connects. Admission is unchanged: a joiner's split-screen guests keep their places while their game loads. RCONstatusshows both, for example 12/40 players (4 in the game).A server someone has modified can still advertise any number it likes.
-
Megalo: set_velocity moves joined players' bodies. A script's
set_velocity(and Reach'spush_upward) on a player's body only moved the host's own player; a joined player stayed where they stood. The push now reaches every player, so a held-button jetpack lifts whoever holds the button. -
Scripted game types no longer recompile their Megalo script every tick on the host to read their declared team names and colours.
-
A game you take over when its host leaves stays online. When a game's host left and your game took it over, the first time you opened the pause menu moved the game to "This PC only": it was taken off the server list, players outside your PC could no longer reach it, its name became your own lobby's, and the pause menu stopped answering for several seconds while that happened. It also said you were playing your own last lobby's game (Custom Slayer on Guardian) instead of the one under way, such as Forge on Blood Gulch. The game now keeps its network, its name and its game until you change them in Host settings.
-
ODST and Reach mods play their own sounds. Mods for Halo 3: ODST and Halo: Reach that bring sound banks of their own (a rebuilt copy of the game's banks, or new banks added beside them) played every sound they added silent: the game opened only the installed game's banks for them. Their own banks are now opened first, file by file, with the installed ones for anything the mod does not bring.
- This applies to mods from the Steam Workshop and from a mods folder,
for campaigns, multiplayer and Firefight. - A Reach mod no longer has to bring a whole rebuilt effects bank for its
other banks to be used. - Players who join a host get an ODST mod's sound banks with its map.
- This applies to mods from the Steam Workshop and from a mods folder,
-
Script game modes: a player who leaves and comes back into the same game is taken in again. A player who left a running game and joined it again kept their old place in the game, so a scripted mode never heard them leave or join. In Conquest and the other class modes, a player who left while alive came back with their last class already spent and no class menu: they stood unspawned until they gave up. Such a player now leaves and joins the mode again, gets the class menu and deploys. Their score and the team scores stay as they were.
-
Two identical graphics cards are both offered, and Ryzen PRO graphics read as built in. A PC with two of the same graphics card now lists both in Settings › Graphics › Graphics card (the second as "(2)"), so either can be chosen; before, the second was hidden. AMD's built-in graphics whose names hold words such as PRO, R7 or RX ("Ryzen 7 PRO 7840U", "Radeon R7 Graphics", "Radeon RX Vega 11 Graphics") are no longer taken for separate cards.
-
Hugegrass and other maps without their own visibility data draw far less again. Occlusion culling follows its setting on every game's maps again (on by default), not on Halo: Reach's alone: what a level's walls and terrain hide is left undrawn. On busy custom maps such as Hugegrass the game draws a third as much from inside buildings and runs much faster there. Maps where it would save nothing now skip the work, so they no longer pay for it.
-
ODST's weapons and vehicles placed on Halo 3's maps draw their explosions, trails and tracers as ODST does: a rocket's explosion was a cloud of blue puffs.
-
A party leader is never asked to follow their own game. When a friend joined the party of a leader who was hosting a game, the leader could be asked FOLLOW YOUR PARTY? about their own game. A party move that names the game you are already in now does nothing.
-
A party member in a game follows its leader at once. When the party leader took the party to another server, a member who was playing, had the game menu open or was reading the carnage report stayed until that game ended, then followed late. The member now follows right away. A member hosting a game with others in it, or playing alone, is asked first (FOLLOW YOUR PARTY?), and the question opens over the game.
-
A friend who accepts your party invite after you joined a game is pulled in. Invite a friend, join a server, and have them accept a moment later: they used to stay in the menus with no way to reach you. The party is now taken to your game as soon as it has the new member, and their FRIENDS page offers REJOIN PARTY LEADER on your row while you play somewhere they are not.
-
Party member questions stay up until answered. LEAVE GAME and LEAVE PARTY asked their question for one frame only: it now stays until CANCEL or the button is chosen.
-
Halo: Reach armor abilities show their effects while used. Armor lock's ring of plasma on the ground and its light, and the jet pack's jets, lights, flare and wash, were missing for the player using them. They now play for as long as the ability is used.
-
UNSC vs Covenant: Reach: weapons in hand and a camera that fits each body. Reach's troopers, Grunts, Jackals and Skirmishers fought with their hands shaped round nothing: the weapon their class gave them was there, but never shown. It is now. The third-person camera of a game mode's characters stands at each body's own shoulder, where it stood over a trooper's head, inside a Grunt's tank or in a Hunter's back. A class whose body cannot hold its weapon no longer stops the game mode: the class deploys without it.
-
Breakpoint's Invasion bomb can be taken and planted. In Invasion on Breakpoint, Elites can now pick the bomb up from its plate; before, it had to be knocked off with an explosion first. Planting it now works too: the bomb arms, counts down and blows the vault doors open. Before, the announcer said the bomb was armed and nothing followed. Other Halo: Reach game types that plant a carried weapon the same way gain the same fix.
-
Destroying some modded ships no longer crashes the game. Killing or wrecking a ship whose destruction sets off a delayed explosion on itself (Slipspace's Paris-class frigate, and the corvette its wreck hit) crashed the game. The explosion now plays once and the wreck goes on.
-
Halo: Reach armor abilities dropped at death look like pickups again. An armor ability left behind when its holder dies shows its floating pickup icon, like one placed on the map.
-
Broadside guns on Reach vehicles fire at the crosshair. Guns whose barrels point away from the nose (Slipspace's SDV plasma cannons fire from its sides) sent their shots far off the crosshair. A shot now turns toward the crosshair as far as its weapon allows, as in Reach.
-
Halo: Reach armor abilities show on the body that holds them. A held armor ability was invisible: the pack was missing from the Spartan's or Elite's body. Under Halo: Reach's rules it now rides on its holder as in Halo: Reach, and comes off when dropped, swapped or when its holder dies.
-
Halo: Reach armor abilities are worn as each species wears them. A held armor ability takes its Spartan or Elite shape on the body, and a dropped one turns back into the pickup with its floating icon.
-
Halo: Reach loadouts give their own grenades. A Halo: Reach loadout now starts you with the grenades it names: Invasion's Elites spawn with plasma grenades instead of frag grenades, and game types that set a number of grenades give that number.
-
The Needler supercombines on Halo: Reach maps. Halo: Reach's Needler and needle rifle now supercombine: once enough needles are stuck in an unshielded target they go off together. Before, needles only ever dealt their own small impact damage, however many hit.
-
Invasion's clock starts again for each phase. In Halo: Reach game types the round clock now follows the game type's own timer: Invasion's clock goes back to its full time when a phase is completed, stops during its cinematics, and the round no longer ends on the first phase's time while a later phase is being played. Sudden death and the grace period run as the game type sets them.
-
Halo: Reach game types switch sides between rounds. In Invasion and other Halo: Reach game types played over several rounds, the two teams now trade sides each round, as in Halo: Reach: the team that defended as Spartans attacks as Elites in the next round, with that side's loadouts, spawn points and objectives. Players keep their team, its colour and its score for the whole game. A round a Halo: Reach game type ends now goes to the team that leads it instead of to nobody.
-
Invasion's Elites and Spartans wear your own armour. When a Halo: Reach game type makes you the species you did not pick, you now wear your own saved look of that species. Split-screen guests do too: a second player's Elite no longer spawns in random armour pieces.
-
Nothing falls on Reach maps without gravity. On maps whose space has no gravity (Slipspace's), ships, objectives and crates placed by a map variant fell, and ships set to appear later fell away before anyone reached them. Every object now feels its map's gravity, as players already did.
-
Reach truck beds' wheels sit level. A parked or cruising Reach truck's attached bed now rests its wheels level on their suspension, like the cab's rear wheels, instead of hanging them at full droop and tilted outward.
-
Reach truck beds turn their wheels. A Reach truck's attached bed now turns its wheels as the truck drives, and its suspension follows the ground where the bed comes down onto it; before, its wheels never turned and never moved on their suspension.
-
Ship and vehicle weapons on Reach maps lock onto their targets. The tracking weapons of a vehicle's pilot (Slipspace's ships' cannons and launchers) showed a lock on the HUD but never locked, so their shots never homed. They now lock while the pilot's aim is on a target their weapon tracks, and the shots home on it. The game no longer crashes when a weapon's lock sound is not a looping sound (Slipspace's SDV plasma cannons).
-
Vehicles can be destroyed in Halo: Reach game types. In every Halo: Reach game type (Slayer, Capture the Flag, Invasion and the rest), vehicles took no damage at all: the game type's map options were read in the wrong order, which switched "indestructible vehicles" on and "grenades on map" off. Vehicles now take damage and blow up, and grenades lie on the map again. Race, Rally and Rocket Race keep their indestructible vehicles, and SWAT and Grifball still have no grenades on the map, as in Halo: Reach.
-
Reach game types mark objectives in their team's colours. Objective markers a Reach game type gives a team (Slipspace's Fleet Invasion: the attackers' markers over each objective) showed grey, and to both teams. They now show only to the players the game type names, red to the attackers and blue to the defenders.
-
Reach weapons: functions that read a weapon's venting, a held shot's tether or the target locator's airstrike state now receive their values (they read zero before).
-
A command-line join (
--connect) that is refused for the host's mods or games leaves the server at once; it stayed listed among a dedicated server's players until it timed out. -
No more crash when an object is lit as a new area loads. The game could crash while drawing as a level switched areas, most often right after skipping a cutscene (Halo 2's The Arbiter crashed about one time in five as its opening was skipped). Fixed in every game.
-
Server browser: VIEW MODS names every mod of a server with many mods. A server whose rotation needs many mods (ten map packs, for one) has no room for them all in the answer it gives the browser, so VIEW MODS listed three nameless mods as "Installed". The window now asks the server for its whole list: every mod by its title, with where you have it or what it takes to download. Mods you already have show their pictures too, and the browser marks such a server's mod count with a "+" until the window has asked.
-
Moving objects no longer flicker back and forth when a slow frame catches up. A frame that played more than two ticks (the real-time catch-up under 30 frames a second) wrote over the interpolation buffers the renderer was still drawing from, so players and vehicles could jump forward and back between frames. Such a frame now keeps its middle ticks in one buffer.
-
Scripted modes (Megalo, Reclaimer modes, Firefight) started from a lobby on a saved Forge map now get every Forge object too, as the same game started another way does.
-
Dedicated servers no longer repeat the start countdown while a player joins. A server counted a player toward
min_playersas soon as their game began joining its session, before the join was complete. Over a slow connection the join takes a while and may be tried several times, so a server waiting for its last player started the countdown, stopped it ("Not enough players: the countdown stopped") and started it again with every try, filling the chat. The countdown now starts once the player is in the session. -
Dedicated servers: a server restarted after a hang goes on with its playlist. A server that froze while getting its next map ready, and was started again, began with the game its players had just finished, and counted its games from 1 again. It now starts with the game it was getting ready (or the one after it, if it froze on that game twice running), and its log's game numbers carry on.
-
Dedicated servers: overshield and active camouflage work in stock game types. A server playlist entry that names a stock game type (Slayer with a time limit, for example) now plays the powerups every other game type gets: the overshield charges the shields and the active camouflage hides its player. Before, picking either up on such a server took it off the map and did nothing. An entry's own powerup options still apply over them.
-
Settings: applying a change no longer puts back the mouse sensitivity the Sensitivity keys saved, or any other setting a key saved while Settings was closed.
-
Campaign carries your characters and mods from mission to mission. - Winning a Halo: CE or Halo 2 mission keeps your own characters and their
mods for the next one, alone and in co-op.- Saved games of Halo: CE mod campaigns continue in the right campaign.
- A save with a long list of mods can be loaded again.
- Sounds of a map's own bank play right after a restart or a map change.
- Fixed a crash when a script cleared a placement that named no object.
- Fixed a crash on a loading screen after leaving a Halo: CE map for a
Halo 2 one.
-
Slipspace's Covenant ships make their slipspace jump. The jump (Space with a direction) played its animation but left the ship where it was. The ship now jumps ahead as in MCC. Teleporters on Reach maps also keep which vehicles they let through and how far their zone reaches below them, and send whatever their team.
-
Reach game types spawn each team at its own spawns. On Slipspace's Invasion maps (Fleet Invasion on Defiance and others) the red team started at blue's starting points, and players who died came back on asteroids or at the map's middle instead of their team's respawn zones. Each team now starts and respawns on its own side, as the game type sets it; Reach's Infection variants keep their survivors and zombies on the sides they were made for.
-
Split screen: the scoreboard shows on the dead player's own view. In split screen, the scoreboard that appears while a player waits to respawn (or holds their scoreboard button) now covers that player's own part of the screen. Before, it always covered the top of the window, over the first player's view, whoever had died. When every local player is waiting, or a round or the game ends, it covers the whole window as before.
-
Moving a player to another team asks at once. During a game, MOVE TO TEAM on a player's card (opened from the scoreboard) and a switch of your own team set up their question, but it only appeared after the game menu was opened with Escape: until then nothing showed and the game took no input. The question now appears the moment the button is pressed, over whichever page it was pressed on.
-
Uplift Reserve ends with more than four players. In a co-op game of more than four players, Uplift Reserve could not be finished when the fifth player or a later one was the first off the end of the road: the mission played on and everyone fell to their death again and again. Whoever arrives first now ends the mission.
-
No tooltip left over the joining screen. Switching servers (following your party, a join link, the server browser over a game) could leave a tooltip of the page you left floating over the joining screen. Nothing beneath the joining screen is pointed at now.
-
Linux: the graphics cache is no longer rewritten every 30 seconds while you play. The Vulkan pipeline cache file (87 MB on a large graphics card) was written whole every 30 seconds of play whenever any new effect had been drawn, about 2 MB/s of disk writes on a busy map, and the save ran on the drawing thread. It is now written only at quiet moments: a minute after a game starts, when a game ends and when the game closes (and in a very long game at most every ten minutes, when it grew by a twentieth), on a thread of its own, and still only when its contents changed.
-
Linux: the graphics cache file is not written again when nothing in it changed. The Vulkan pipeline cache file (several megabytes) was written again even when the driver had nothing new in it. It is now written only when its contents differ from the file.
-
Windows: dedicated commands end when their output is piped.
dedicated init,check,contentandmodsprinted everything and then never ended when their output went to a pipe (a server panel,| more). -
Controller rumble no longer stutters the game on Windows. On Windows the game waited for the controller every time a rumble changed, which is many times a second while a weapon fires. With a wireless, Bluetooth or emulated controller that wait could take long enough to make the game stutter when shooting or taking damage. Rumble is now sent beside the game instead, so the game never waits for it.
-
The server browser's rows and joins hold up against servers that name another server's key. - A server from your favorites or recent servers that answers with another server's key stays a row of its own address: it can no longer take that server's row or show its own name and player count there. Favorites and recent servers that no master lists go by their address (ip:port).
- A row a master lists always shows that listing's answer, whatever else answered with its key.
- A join that reaches another machine at one of a server's addresses goes on to the next address instead of ending with "the peer's key is not the one announced".
- A listed server that is also on your network or this PC now shows
LANorTHIS PC, and its join tries that address first, then the internet. - Two games of one host on different ports are two rows again.
- The browser's status counts servers as its rows do ("3 servers found, 5 of 6 addresses answered").
- A dedicated server's player count in the browser no longer flips between two figures while a player's game is joining.
-
Halo: CE and Halo 2: decals no longer flicker where they are cut at an edge. Bullet holes and scorch marks flickered and broke up where they met a wall's corner or a curb, mostly on Halo 2's maps and after explosions. They now lie cleanly on the surface all the way to the edge.
-
A failed film no longer leaves its "Film Error" alert for the next game. When a film's playback failed (it went out of step with its recording, or its map was another version), Halo 3's Film Error alert was posted over the stopped film, where the menus never let you answer it. It then waited and popped up over the next game's screens: a campaign mission's start, or a live game. Every new map now takes the film alerts down as it begins, so the Theater says why a film stopped and the next game starts clean.
-
Recording a film no longer stalls the picture every ten seconds. While a game records its film, every ten seconds the game waited for the frame being drawn and held the next one back while it prepared the film's rewind point. On a full server this showed as a short hitch, longer the slower the frames were. The game now prepares that point without waiting for or holding the picture. Films recorded before play as they did, and new films play on earlier builds too.
-
Rewinding works in films of big games. In the Theater, going back in a film of a game that more than 17 machines took part in (a full server and its players, for one) stopped the film with "The film couldn't go back to that moment". Such films now rewind and restart like any other, including the ones already recorded.
-
Forge: vehicles, weapons and crates no longer multiply on big maps. On a Forge map with more than about 500 vehicles, weapons, equipment and movable blocks, an object that had respawned could be made again and again on its own spawn: one Chopper, Warthog or crate became dozens, and deleting it removed only one of them. Each spawn now keeps to its one object.
-
Halo 2: allies walk off wrecks and other objects' floors. On Outskirts, Sergeant Johnson and a Marine stayed at the crashed Pelican instead of taking their positions with the others. Characters standing on an object's floor, such as a wreck or a stairway, now find their way off it onto the level's ground.
-
Halo 2: scripted scenes between characters play, so The Arbiter goes on past its airlock. Missions that wait for characters to play a short scene never saw it happen. On The Arbiter this left your allies waiting in the first airlock for good.
Checkpoints saved by earlier builds may not load.
-
Halo 2: the Arbiter holds his weapons in first person, and his sword strikes. On the Arbiter's missions no weapon was drawn in first person and melee attacks, the energy sword's among them, hit nothing. His weapons now show and his blows land.
-
Halo 2: High Charity and Quarantine Zone no longer strand you between areas. In High Charity the next area vanished after the first gravity lift, and in Quarantine Zone the area with the gondola never appeared: the player was left standing in nothing, unable to move. Both missions now carry you into the next area as Halo 2 does.
-
Halo 2: Elites and other AI characters walk again instead of turning on the spot. In Halo 2's missions, Elites stood still and turned left and right on the spot. Marines, Grunts and Jackals spent most of their time doing the same. On The Arbiter, your allies never went into the facility, and on Oracle the heretics and the Heretic leader never moved. A standing character now turns only when it faces well away from where it is going, as in Halo 2, and then walks.
-
Halo 2: Metropolis's opening cutscene no longer crashes. The game could crash a few seconds into Metropolis's opening when the cutscene was left to play.
-
Halo 2: Cairo Station's airlock door and Metropolis's Scarab are solid where they are. On Cairo Station an invisible wall blocked the open door at the foot of the diagonal elevator, and on Metropolis you fell through the Scarab while it walked. The collision of these moving machines stayed where the mission began; it now moves with them.
-
Halo 2: Oracle's Heretic leader runs to his hiding spot. Shield platforms that stand open blocked the AI's paths, so the Heretic leader never left the control room's doorway. He now runs behind his shield, as in Halo 2.
-
Halo 2: Regret's gondola rides on, and Metropolis's Scarab has its crew. Regret's first gondola stopped for good at its halfway point, and the Scarab at the end of Metropolis never got the crew you must kill to finish the mission. The areas these missions watch for the player now travel with the gondola and the Scarab, as in Halo 2.
-
Halo 2: the Arbiter's energy sword cuts Oracle's cables. Melee blows on Halo 2's objects landed on parts that ignore damage, so the cable room's cables could only be shot. They now land as they did in Halo 2.
-
Halo: CE and Halo 2: characters from packs take their mission's seats. On Halo: CE's and Halo 2's missions, a character from a customizable character pack could not take the seats the mission puts its player in. On The Silent Cartographer it was left on the beach instead of riding the Pelican in, died at once and the mission could not go on. Every own character now rides, drives and holds weapons there as the mission's own player does, and an Elite grips a turret or a wheel with its own hands.
-
Halo: Reach maps: Halo 3's characters, weapons and vehicles are no longer too shiny. On Halo: Reach's maps, Halo 3's Spartans, Elites, weapons and vehicles reflected their surroundings many times too brightly, so their armour and metal looked blown out. They now reflect the same light Reach's own characters do.
-
Big Forge maps: every vehicle, weapon and movable block respawns. Only the first 512 vehicles, weapons, equipment and movable blocks of a map were watched for respawning. On a bigger map the rest never came back once destroyed, and never returned to their spawn when left elsewhere, until a new round. Every placed object is watched now, up to the map's 9,999.
-
Split-screen players swap teams in one press. In a local lobby, a player's PLAYER DETAILS row now offers the teams other players are on first, so moving someone from Blue to Red is one press instead of a walk through every empty team. Left and Right on the row pick any other team. A split-screen guest's details also show their own emblem and service tag instead of the first player's.
-
The Mods page says how far its first look at your mods is, and why one failed. Settings > Mods no longer shows only "Looking at your mods…" while the game reads every mod map on your PC for the first time (minutes for a large Steam Workshop library): it counts the maps read, such as "14 of 238 maps read". Later looks read only the maps that changed.
If the game can't read your mods at all, the Mods page and the required mods window now say so, with the reason, instead of waiting on "Looking…" or "Checking…" forever. The game keeps the list it read before and tries again by itself, a little later each time.
-
The required mods window no longer says "You have them all" before it knows. While the game was still checking the mods on your PC, the window joining a server said "You have them all." above mods that read "Checking…". It now says it is checking, and if your mods can't be read it says so in red instead of showing a green tick.
-
Follow-up fixes to the security work, from its review. A game state from another PC keeps its own data: only addresses of the game's own code are moved to where they are on this PC, instead of being replaced. glTF and FBX models with ./ paths import again, a scenario's relative paths can be allowed in the Kit, --film takes a relative path, and a game restarted after an old-style join link starts again.
-
Joining a server no longer gives up while your PC is still making its map. Joining a server that plays with customization characters (or other games' characters) has your PC build the server's map first, which can take half a minute or more. The join counted that as "nothing happening" and ended itself after 30 seconds, sometimes a moment before the map was ready, with "Nothing happened for 30 s at: Checking the mods on this PC". Building the map now counts as progress for as long as it takes, and the waiting panel says "Making the server's map on this PC".
Leaving such a join now leaves the server at once: joining again right away used to fail with "no answer from the host" until the first attempt had finished in the background. The panel's button reads STOP JOINING unless you really are in a server's join queue.
-
Mod downloads show their progress, speed and time left, and mods their pictures. The required mods window showed a moving bar only while a Steam Workshop mod's files were verified: during Steam's own download the bar stood still and no speed or time left appeared. The window now follows Steam's download too, with the mod's bar, the downloaded size, the speed and the estimated time left, as it does for a download from the server. A mod's picture is back in the window before you choose to download, when the server shares the mod.
-
Server browser shows the players on internet servers again. Every server on the internet list showed 0 players, however many played on it. A playing game tells the master servers which server it is on, and it told them all from a connection that only reaches a master on the same PC, so the public master servers never heard it and counted nobody. Players' games now reach them, and the counts return once the players on a server have this update.
-
Scoreboard always lists you and your team. After joining a game, the scoreboard could show only the other team, with your own row and team missing for minutes or the whole game. It now lists everyone playing, on their current team, as soon as they are in the game; a player's kills, deaths and assists fill in once the host has sent them. Hosts and servers also no longer skip score updates to a player whose connection is busy, for example with a download.
Install
Project Reclaimer needs Halo: The Master Chief Collection with Halo 3 installed. ODST, Halo: Reach, Halo: Combat Evolved and Halo 2 show in the game once they're installed in MCC too. No game files or game code are included: the game finds MCC in your Steam libraries, or asks where it is, and prepares the engine from your own copy the first time it starts.
- Windows: run
project-reclaimer-client-v0.10.3.exe. An installation of 0.9 offers this update itself. - macOS (Apple Silicon): unzip
project-reclaimer-client-v0.10.3-macos-aarch64.zip, move Project Reclaimer.app to Applications and open it. Apple hasn't checked these apps, so macOS blocks each one the first time: close the message, open System Settings > Privacy & Security, choose Open Anyway under Security and enter your password. Updates don't ask again. If macOS says an app is damaged, or Open Anyway doesn't appear, runxattr -dr com.apple.quarantine "/Applications/Project Reclaimer.app"in Terminal, with that app's name. - Linux: unpack
project-reclaimer-client-v0.10.3-linux-x86_64.tar.gz(-linux-aarch64on ARM64) and runproject-reclaimer; its README says how to add it to your applications. - Dedicated servers:
project-reclaimer-dedicated-v0.10.3.exeon Windows,project-reclaimer-dedicated-v0.10.3-macos-aarch64.zipon macOS,project-reclaimer-dedicated-v0.10.3-linux-x86_64.tar.gz(or-linux-aarch64) on Linux, or the Docker imageghcr.io/projectreclaimer/project-reclaimer-dedicated:0.10.3. macOS blocks a server downloaded in a browser too: runxattr -dr com.apple.quarantineon the unzipped folder in Terminal, once, before its first start. - Tools: each is a download of its own and needs nothing else from this page, so get only the one you want. The remote console is
reclaimer-rcon-v0.10.3, withRCON.mdfor setup and commands, customization mods usereclaimer-customization-editor-v0.10.3, and the Reclaimer Kit isreclaimer-kit-v0.10.3, which needs only MCC and updates itself as the game does. A bot for a dedicated server's chat and voice isreclaimer-bot-v0.10.3, withBOT.mdfor setup. Each comes as.exefor Windows,-macos-aarch64.zipfor macOS (each app opens the first time as the game does, and the bot needs the samexattrcommand as a server) and-linux-x86_64.tar.gz(or-linux-aarch64) for Linux.
The game's log is Logs/client.log in its player folder: %LOCALAPPDATA%\ProjectReclaimer on Windows, ~/Library/Application Support/ProjectReclaimer on macOS, ~/.local/share/ProjectReclaimer on Linux.