github ProjectReclaimer/project-reclaimer-releases v0.9.5

2 hours ago

New features

Forge devices and power channels

The multiplayer maps' gates, doors, bridges and fans, and the switches that work them, can now be placed in Forge on any map (under Scenery). Give a switch and the devices it should work the same Channel in Properties: in a game, using the switch opens them all, and using it again closes them. Switches can't be picked up; Move Here brings one to you and Yaw, Pitch and Roll turn it.

Choose the game types a Forge object appears in

Aim at an object (or hold it), open the Forge menu with 1 and set Game types on the Properties tab: All, or any mix of Capture the Flag, Slayer, Oddball, King of the Hill, Juggernaut, Territories, Assault, VIP and Infection. Forge still shows everything; a game on your map creates only the objects of its own game type, frozen objects included.

Forge maps can change gravity

In Forge, open the menu with 1, go to the Map tab and set Gravity (10% to 300% of Halo 3's). The map saves it, and every game on the map plays with it.

Kill volumes can destroy vehicles and count as the Guardians

A kill volume's Properties tab has two new rows: Vehicles (Spared, or Destroyed so vehicles inside blow up) and Killed by (Died, or The Guardians, so its kills read "killed by the Guardians" like the map's own kill zones).

Forge lights

Place a Light (in Goals, or type "light") to light up what is around it, in Forge and in every game on the map. Its Properties set whether it is a point light or a spot light, its colour (24 to choose from), brightness, reach, a spot light's cone, and whether it shines steadily, pulses or flickers. Turn a spot light's marker to aim it.

Forge map atmosphere

The Forge Map tab can now give a map its own atmosphere: a Look over the whole map (Warm, Cold, Sepia, Black and white, Night, Golden and more) with its strength, the camera's Exposure, whether the map's Fog shows, and the Sky height, to lift another map's sky clear of the walls. The map saves them, so every game on it looks the way its author set it. A game's own Exposure and fog options still take precedence.

Forge screen effects

Place a Screen Effect (in Goals, or type "screen") to give everyone whose view is inside it a look: Warm, Cold, Sepia, Black and white, Vivid, Gloomy, Night, Blood, Toxic, Golden, Bright, Dark, Dream or Washed out. Its Properties set the look, its strength, who sees it and its size. It works while editing and in every game on the map.

Forge selection, group moves, copies in a row, prefabs, magnets and Clear map

ElDewrito's Forge tools come to Project Reclaimer:

  • Select objects with Q (hold and sweep the crosshair to select many); Z clears the selection. Pick up a selected object to carry the whole selection, frozen objects included. Delete and C on a selected object delete or copy the whole selection.
  • The Forge menu's new Tools tab selects every object of a kind or of a primitive's material, all, the inverse or what is nearby, places rows of copies (Copies and Spacing), and deletes the selection. In Properties, Apply to N selected gives every selected object the rows you changed.
  • Prefabs: name a selection and save it; place it again, on any map that has its objects, from the Tools tab. Prefabs are files in your Prefabs folder, so they can be shared.
  • Magnets (M): a held object's corners, edges and faces snap onto the objects beside it when you let go.
  • Clear map removes every object but the spawning ones, for a blank canvas.
  • Fly through walls: the host can let every monitor fly through walls, floors and objects.

Players who joined a Forge session need this version to use them.

Forge team barriers

An object players walk through can now let only one team through: set Players to Pass through, then choose the team under Players of. The other teams' players are stopped by it as by any wall. In games without teams, and in Forge, everyone passes.

Forge teleporters take vehicles

Teleporters have two new rows in Properties: Takes players and Takes vehicles. Turn vehicles on at both ends (the sender and its receiver) to teleport vehicles with their driver and passengers, or turn players off for a teleporter only vehicles use. Teleporters link through their Teleporter channel, as before. Imported ElDewrito maps keep their vehicle teleporters.

Undo and redo in Forge

In monitor mode, Ctrl+Z undoes the last change to the map and Ctrl+Y redoes it: placements, moves, property edits, deletions, freezes, even a whole Clear map. The Forge menu's Tools tab has Undo and Redo buttons too.

All of Halo 3's menu music, plus Another Walk and Roll Call

The menus now play all of Halo 3's main menu music instead of Unforgotten alone: Opening Monks, Unforgotten, Choose Wisely, Movement, Enough Dead Heroes and Monks and Effects. Another Walk from Sierra 117 and Roll Call from the end credits join them. They play in a new random order each time you start the game, and after a match the menus go on to the next song.

To choose for yourself, open Settings > Audio. Under Menu music, set Song order to Your order and move songs up or down with the arrows beside them, or switch songs off to leave them out. Your choice is kept for next time. While the menu music plays, the play button beside a song starts it straight away.

Changes

  • Forge controller layout follows Halo: Reach. On a controller, Forge now uses Halo: Reach's buttons: B opens the Forge menu on its Tools tab (selection, copies, prefabs, magnets), X opens it on the objects or on the properties of what you aim at, and the rest stays as before (A grabs, Y deletes, RT turns and pushes, RB and LB fly up and down, LT flies faster, the right stick zooms). Every button can still be changed in Settings, Controller.
  • The remote console takes 4 tools at once, plus one spot for the server's own machine. A dedicated server's remote console now lets at most 4 tools sign in at the same time. One more spot is kept for dedicated rcon on the server's own machine, so the host can always run commands, however many tools are connected. A fifth tool is told the console is full and disconnected; this does not count as a wrong password. Tools that open a new connection for every command free their spot as they disconnect, but are best kept to one connection for commands and events (see the remote console guide).
  • Everyone in a game needs 0.9.5. Servers now admit only players on exactly their own version of Project Reclaimer, and players on 0.9.5 can't play with those on older versions. The server browser has a new Version column: a server on another version than yours shows it in red, is marked OTHER VERSION and can't be joined, and its card says which side needs to update. A refused join says the same. Update dedicated servers and players together.

Bug fixes

  • Big games no longer crash as they start when players came and went. In big games, a player's game (and the server's) could crash the moment a new game started, typically after joining a busy lobby just before the start, or when several players left and others took their places during the load. The game keeps track of every player's arrival, departure and change of place in a list that only had room for a 16-player game's worth; it now has room for every player.

  • Big servers and co-op games stay up. Busy dedicated servers could close in the middle of a game and start again, dropping every player, and co-op games hosted from the game could close the host's game. Several causes are fixed:

    • A problem the server could recover from closed it instead. A playlist game that didn't start within a minute, a map that couldn't be prepared after a vote, a player whose game briefly showed up twice while rejoining, and a few rarer hiccups each ended the whole server (or a host's game). The server now notes the problem in its log and carries on, and a playlist that can't start a game votes on another one.
    • Games with very many objects (60 players on a big map) could corrupt the game's memory once Halo 3's table of objects shared with players filled up. New objects now wait until there is room again.
    • Big games' network memory was still sized for 16 players. It now has four times the room, outside the memory maps load into.
    • Co-op with more than four players: every shot and hit of the fifth and later players wrote outside the HUD's four-player table on everyone's game, and a message such as "joined the game" right after the mission went back to a checkpoint could be written outside the HUD's message list and close the host's game.
    • Capture the Flag, Assault, Territories and VIP variants with teams turned off are played in teams: without teams, players past the eighth wrote outside the game's team tables.
    • A server that stops running (hung for five minutes) now closes so it starts again, instead of holding its players in a frozen game.

    When a server does stop, its log now says why and where in more cases, which helps us fix what is left: send us server.log if one of your servers restarts.

  • Joining a co-op game in progress no longer sticks at 100%. A player joining a co-op campaign game in progress over the internet could stay on the loading screen at 100% for good when part of the game's progress got lost on the way. The joining game now asks for the missing part again, and the host sends the progress at a pace the connection keeps up with. A join that still can't catch up returns to the main menu with a notice after 30 seconds instead of waiting forever.

  • Leaving and rejoining a co-op game in progress works again. Several ways a rejoin could go wrong are fixed:

    • A player who joined a co-op mission after someone else had left could be handed an outdated copy of the game and stay on "Joining the game in progress". They now get the game as it is.
    • A player who leaves and rejoins within seconds, from the same PC, now gets a fresh copy of the game too.
    • A player who still hasn't caught up 90 seconds after starting goes back to the menu, so the players joining after them aren't kept waiting.
    • The host's game could freeze when a player who started the mission from the lobby left and quickly rejoined. It no longer does.
    • After a revert to a checkpoint (from the pause menu, or when the whole team dies), a player who had left and rejoined since could be stuck on a white screen, spawn as someone else, or not spawn at all. They now come back as themselves.

    Thanks to TwistedFlog for finding and fixing these.

  • Co-op games no longer end after a revert that follows an out-of-step player. When a player's game went out of step with the host's, it was brought back in step, but its saved checkpoint stayed out of step. The next revert to a checkpoint then put it out of step again, and after a few times the game ended for everyone with an out-of-sync error. The host's latest checkpoint now comes along whenever a player is brought back in step.

  • Co-op games no longer pause or end for everyone when one player's game falls out of step. Halo 3 ends a co-op game for everyone when one player's game falls out of step with the host's. The host already brought such a player back in step, but the whole game paused for everyone each time (for several seconds over a slow connection), and when it kept happening, or the player couldn't be brought back in time, the game still ended for everyone with an out-of-sync error.

    Now only that player is affected. Their game takes the host's game as it is at that moment and catches up on its own behind a short "Getting back in step with the host" screen, usually in under a second, while everyone else plays on without a pause. Nobody goes back to a checkpoint.

    A player whose game falls out of step five times within five minutes while everyone else's stays in step (catching up doesn't keep their game in step) is removed, and a player whose game can't be brought back leaves by itself. Either way they are told why and can join again straight away. When several players fall out of step at the same moment, the cause is the game they share, so nobody is removed: they all catch up together. At most one player is removed every two minutes.

  • Faster loading of large maps on dedicated servers. Fixed a long pause near the end of loading large maps on dedicated servers. Hugegrass loaded about four times faster in local testing, while retaining the server's texture memory savings.

  • Vehicles with Fixed physics stay where you put them. A vehicle set to Fixed or Phased physics while you held it, such as a Pelican or Phantom placed as scenery, fell as soon as you let go of it. It now stays where you let go of it, in Forge and in games on the map.

  • Kill and garbage volumes placed by players who joined a Forge session now work. A kill or garbage volume placed by a player who had joined a Forge session (on a dedicated server, say) stayed a King of the Hill hill or a Juggernaut destination instead of becoming a volume, and changing a zone's size from a joined player's menu said the change was not confirmed.

  • Forge settings work for players who join. Objects that were already on the map when a player joined, including every object of a saved map played in a game, lost their Forge settings on that player's PC: walls set to let players through stopped them, team barriers and teleporter settings were ignored, and a joined editor's Properties tab showed the default settings for those objects. The host now sends every object's settings to its players.

  • Forge magnets work and are on by default. Magnets now snap a block onto its neighbour when you let go of it. Before, the block was usually frozen where you dropped it before the snap could happen, so magnets seemed to do nothing. Magnets are now on from the start (M or the Tools tab turns them off), and the two points meet exactly.

    Players who joined a Forge session now also see objects move when a magnet snaps them, when a selection is carried, and when a switch is moved with Move Here; before, those objects only moved for the host.

  • Objects moved in shared Forge stay where they were put for everyone. In a shared Forge session, an object with Fixed or Phased physics that was moved and let go of without freezing stayed, for the players who had joined, where it had been picked up: maps they saved put it back there. The host now sends every object's new place once it is let go.

  • Joining a game in progress no longer closes the game after a minute. A player joining a server whose game had already started had to get the map ready before playing, and when that took longer than a minute (a big map on a slower disk) the game closed as if it had crashed. The game now waits for the map as long as it keeps getting ready, and the lobby shows how far along it is (GETTING THE MAP READY). If getting the map ready stops for a minute and a half, the game leaves the server and says why.

  • Keep the connection while large multiplayer maps load. Large mod maps such as Hugegrass no longer disconnect players merely because the server takes longer than the normal network timeout to load the map. Multiplayer starts allow up to three minutes for loading before applying that inactivity timeout. Normal disconnect handling resumes when gameplay starts.

  • Playlists find the installed mod for shared Forge maps. Playlists and dedicated servers now find their own copy of a mod when using a Forge map saved on another PC or while playing on another server. Before, the same saved map could work in Select map but refuse in a playlist with "Install the base map first", even with the mod installed. Add lobby game also recognizes these shared saves. For Forge maps saved as .json, name the variant in map without adding base_map.

  • Picking a Workshop map no longer sends everyone to the menu. When a dedicated server's next game was picked with the remote console (nextmap, map, mode or load) instead of a playlist vote, or a host picked another map in Host Game while friends were already in the lobby, and that map came from a Workshop mod, every player could leave the game at once the moment it started: their games had not been told to get that map ready. Every player's game now gets the map ready first, as after a playlist vote, and the lobby changes to it once everyone has it, usually within a second. Until then the host's START GAME waits and new players are asked to join again in a moment. A player whose game cannot get the map ready in time is removed so the others can play.

    Players joining a dedicated server without a playlist after its game was changed from the remote console now get that game's map, not the one it started with.

  • Servers hold up against people trying to disrupt them. Dedicated servers and games hosted from the game are harder to disrupt on purpose:

    • One player can no longer drown out everyone else. A player sending a server far more than a game does no longer delays or drops the other players' traffic. Only their own is held back.
    • Joining can't be blocked from outside. Floods of connection attempts, and players who are admitted but never join, could fill the places for joining players and make a server show as full or offline. Those places now free up quickly, and one address can hold only a few at a time.
    • Forge and co-op requests are paced. A player can no longer queue so much Forge editing, teleporting or co-op catch-up work that the server stalls for everyone. Normal editing and joining aren't affected.
    • An unexpected error while handling a player's message now costs that one message instead of closing the server.
    • Server logs no longer fill up from repeated refusals, and a long-running dedicated server starts a new server.log once it gets large, keeping the previous one as server.log.old.
  • Dedicated servers say why SteamCMD could not download a Workshop mod. When SteamCMD failed to download a Workshop item, the server always said to sign in to SteamCMD, even when it was signed in. It now says what Steam answered: the sign-in failed or expired (with the command to sign in again), the account does not own MCC (Steam sends the item only to accounts that own the game), or another download error to try again later.

    SteamCMD remembers MCC's Workshop key once an account owning MCC has downloaded a mod, and then downloads mods for any account, even one without MCC. After SteamCMD is reinstalled or moved, such an account is refused. If downloads that used to work stop, set [workshop] username to an account that owns MCC and sign in to SteamCMD with it once.

  • Teams start at their own respawn points. On a map whose starting points are only free-for-all ones, a team with no starting points of its own now starts the round at its own respawn points, at its base, instead of at the free-for-all starting points anywhere on the map.

  • Mods downloaded to join a server are recognised, and come from Steam Workshop when they can. Downloading the mods a server needs works better:

    • Players with many Steam Workshop maps (most Halo 3 maps ship hundreds of sound files) had mods missed when Reclaimer looked at their mods: those downloaded to join a server, and newer Workshop maps they were subscribed to. The download finished, yet the server's mods "did not match", and downloading again changed nothing.
    • A server busy sending mod files to other players no longer sends a player to download a mod from it when Steam Workshop has it: the player waits a moment for the server's answer and then downloads from Steam. Servers answer which mods they need even while every download place is taken, and a player waiting on a busy server is told so.
    • Steam Workshop downloads for a join go ahead of Steam's other downloads, and Steam gets more time to start one before the server is asked instead.
    • When Steam is offline (offline mode, or signed out because the account signed in on another PC), the download says so instead of "Steam refused the Workshop download".
    • When Steam Workshop has another version of a mod than a server that does not share its files, the message says the server's host has to update it.

Install

The game client requires Halo: The Master Chief Collection with Halo 3 installed; no game files are included.

Double-click project-reclaimer-v0.9.5.exe to start the game. It finds Halo 3 in any Steam library and opens without a console window; its log is Documents\My Games\Project Reclaimer\Logs\client.log.

For remote server administration, double-click reclaimer-rcon-v0.9.5.exe, enter the host, RCON port and password, and connect. The RCON client needs no game installation. See the attached RCON.md for setup and commands.

Don't miss a new project-reclaimer-releases release

NewReleases is sending notifications on new releases.