beyond-all-reason/Beyond-All-Reason
beyond-all-reason/Beyond-All-Reason has 4,346 GitHub stars and 698 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-06 17:23 UTC. Last push 2026-11-02.
Main game repository for Beyond All Reason.
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalBeyond-All-Reason
Open source RTS game built on top of the Recoil RTS Engine
Where to download
https://www.beyondallreason.info/download
How to play
https://www.beyondallreason.info/guides
Development Quick Start
Beyond All Reason (BAR), consists of 2 primary components, the lobby (Chobby - https://github.com/beyond-all-reason/BYAR-Chobby) and the game code itself (this repository).
The game runs on top of the Recoil engine https://github.com/beyond-all-reason/RecoilEngine.
In order to develop the game (this repository) you first need a working install of the lobby/launcher. There are 2 ways to do this:
Download the full BAR application from the website and run it. This is probably what you will have done if you have previously installed and played the game.
OR if you want to develop the lobby client, follow the guide in the Chobby README. First download a release of Chobby and then launch Chobby, this will automatically download and install the engine and other dependencies.
Once you have a working install of BAR you need a local development copy of the game code to work with. This code will live in the BAR install directory.
To find the BAR install directory simply open the launcher (not full game) and click the "Open install directory" button. This is one of the 3 buttons (
Toggle logandUpload logare the other 2). For Windows installs this might be your user'sAppData/Local/Programs/Beyond-All-Reason/datadirectory, for Linux it might be your user's.local/state/Beyond All Reason/directory.In the BAR install directory create the empty file
devmode.txt. E.g:AppData/Local/Programs/Beyond-All-Reason/data/devmode.txtor.local/state/Beyond All Reason/devmode.txt.In the BAR install directory (inside the
datafolder on Windows) in thegamessub-directory (creategamesif it doesn't exist) clone the code for this repository into a directory with a name ending in.sdd. For example:
git clone --recurse-submodules https://github.com/beyond-all-reason/Beyond-All-Reason.git BAR.sdd
Ensure that you have the correct path by looking for the file Beyond-All-Reason/data/games/BAR.sdd/modinfo.lua on Windows, or .local/state/Beyond All Reason/games/BAR.sdd/modinfo.lua on Linux.
Now you have the game code launch the full game from the launcher as normal. Then go to
Settings > Developer > Singleplayerand selectBeyond All Reason Dev.Now you can launch a match normally through the game UI. This match will use the development copy of the Lua code in the
BAR.sdddirectory you cloned in step 3.If developing Chobby also clone the code into the
gamesdirectory. Follow the guide in the Chobby README.(Optional, Advanced) If you want to run automated integration tests, see the testing documentation
More on the .sdd directory to run raw LUA and the structure expected by Spring Engine is documented here.
Automated Testing
Prereqs
Lua 5.1
debian/linux
sudo apt install -y lua5.1
windows (MSYS2 UCRT64)
pacman -S --needed mingw-w64-ucrt-x86_64-lua51
macOS
brew install [email protected]
Lux Package Manager Follow the Lux Getting Started Guide.
Or follow the Cargo instructions to manually build on the Lux Github
Install Project Packages
From the repo root (where lux.toml lives):
lux --max-jobs=2 update
Note: in my testing --max-jobs was super specific to my machine and anything above that number would sometimes cause deadlocks.
Running Tests
Run the full suite (via Busted):
# preferred for predictable CLI behavior
busted
Filter by tag:
busted -t focus
Optionally, run through Lux’s wrapper:
lx test
# run the emmylua type check
lx check
# or to drop into a shell so you can run `busted` manually
lx shell --test
busted
8 successes / 0 failures / 0 errors / 0 pending : 0.246881 seconds
See Lux Guides for more information.
Inspect objects inline while debugging:
print(VFS.Include("inspect.lua")(someObject))
VS Code Test Switcher (optional)
This handy plugin lets you switch between the test and the code-being-tested just by tapping Cmd+Shift+Y.
VSCode Plugin: https://marketplace.visualstudio.com/items?itemName=bmalehorn.test-switcher
Then open User Settings (JSON) and add:
"test-switcher.rules": [
{
"pattern": "spec/(.*)_spec\\.lua",
"replacement": "$1.lua"
},
{
"pattern": "spec/builder_specs/(.*)_spec\\.lua",
"replacement": "spec/builders/$1.lua"
},
{
"pattern": "spec/builders/(.*)\\.lua",
"replacement": "spec/builder_specs/$1_spec.lua"
},
{
"pattern": "(luarules|common|luaui|gamedata)/(.*)\\.lua",
"replacement": "spec/$1/$2_spec.lua"
}
],
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,491 starspublic-apis/public-apis
A collective list of free APIs
496,796 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
438,576 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,089 stars