Repository navigation
Testing Custom Branches & Pull Requests in Multiplayer
Build a branch or pull request and load it into a live multiplayer lobby with !gameVersion, without merging the changes.
Tip
Prefer a video? See the video walkthrough at the bottom of this page.
flowchart LR
A["PR or branch<br/>on Beyond-All-Reason"] --> B["GitHub Actions<br/><b>Rapid build</b> workflow"]
B --> C["rapid-builder"]
C --> D[("CDN rapid tag<br/><code>byar:pr-1234</code>")]
D --> E["Autohost lobby<br/><code>!gameVersion</code>"]
Important
This flow is strictly for testing game changes intended to be releases in the main game. It's prohibited to use this functionality as a substitute for modding.
Ensure the following requirements are met before you begin:
-
You need write access to
beyond-all-reason/Beyond-All-Reasonto trigger the build. The Run workflow button in step 2 is available only to repository collaborators. -
The commit must already be pushed to that repository as a branch or an open pull request (pull requests opened from forks are supported). It is not possible to trigger the build directly from a branch that exists only on a personal fork.
-
You need at least "Game tester" access on autohosts to run
!gameVersionin a lobby. This command downloads and runs an arbitrary game build on someone else's server, so access is granted per account.Getting "Game tester" access
Access is granted by adding your account to
spads_config_bar/etc/users.confunder the#Game testers level 105section.Game tester access is the minimum required level to run
!gameVersion. If you are already on that list with a higher level, e.g. moderator, you already have all the access you need.-
Find your account ID.
Log in to server4.beyondallreason.info and open your profile. Your ID is the number at the end of the URL (
https://server4.beyondallreason.info/profile/{accountId}). -
Open a pull request.
Modify
spads_config_bar/etc/users.conflike this:#Game testers level 105, allowed to switch the room to another game version with !gameVersion. #<accountId>(<nickname>)::::::|105 +1234(YourName)::::::|105 5463(Somebody)::::::|90
-
Submit the pull request and request review from
@PtaQQ(or ping PtaQ on Discord).
After PR is merged, it might take up to 4 hours for your permissions to be available in new lobby rooms.
-
You can build any branch or open pull request in the Beyond-All-Reason repository. Note the PR number (for example, 9194) or the branch name (for example, my-fancy-new-feature). The PR does not need approval and can remain a Draft; the workflow builds the commit directly.
The workflow requires only the PR number (9194 in this example) or the branch name.
In the repository, open the Actions tab and select Rapid build in the sidebar. Click Run workflow, fill in the form, and start the run:
- Leave Use workflow from set to
master. - Enter your PR number or branch name into PR number or branch name to build.
Use workflow from: master, with 9194 in the PR/branch field.
Warning
Always leave "Use workflow from" set to master. This setting determines which workflow definition runs, not what code is built. The build service rejects dispatches from any other branch.
The resulting game version tags will look like:
- Pull requests:
byar:pr-<number>(for example,byar:pr-9194) - Branches:
byar:br-<branch-name>(for example,byar:br-my-fancy-new-feature)
You will use this tag in the game lobby.
Select the running workflow under Actions to inspect its progress. The job checks out the commit, builds the Rapid package, and publishes it to the CDN—typically in under a minute. The final log line displays the published tag and commit:
Successful build log showing the published tag and commit hash.
If you push new commits to the same branch or PR, run the workflow again to update the tag. If a lobby is already using that tag, re-running !gameVersion <tag> will cause the autohost to check for updates and download the new build (see next section).
Open the BAR client, go to Multiplayer, and join or host a room. In the battle chat, run !gameVersion {tag} with the tag from the build log, for example:
!gameVersion byar:pr-9194
The autohost confirms the command and begins downloading the build. When the download finishes, the autohost restarts and rehosts the battle with the new build, which will automatically return you to the multiplayer room list.
The autohost confirms that it is downloading the game version.
Warning
"Invalid command"? Try another lobby. The !gameVersion plugin as of 2026-09-15 might not yet be deployed across all autohosts. If an autohost reports an invalid command, that instance has not received the plugin yet. Leave the room and try another lobby. The lobbies created via !privateHost are always up to date.
Find your room in the multiplayer list and rejoin it. The room title now reflects your build tag, and the battle is marked Unranked (so custom builds do not affect player ratings):
The battle title displays [byar:pr-9194], and the chat confirms the download is complete.
Warning
Rejoin promptly (~30s limit): You have ~30 seconds to rejoin the room. After that period of inactivity, an empty autohost automatically resets to its default version. If you are unable to rejoin in time, wait for the autohost to reset and run !gameVersion again.
Join a team and ready up as usual. The client automatically downloads the build for every player who joins the room.
When testing is complete, restore the default game version by running the command without arguments:
!gameVersion
This reapplies the hosting preset's default version and rehosts the battle. An idle autohost also resets to its default version automatically once empty for 30 seconds.
This recording demonstrates the full workflow: triggering the Rapid build workflow in beyond-all-reason/Beyond-All-Reason and switching a live autohost lobby using !gameVersion.