Skip to content

ScreepsQuorum/screeps-quorum

Repository files navigation

screeps-quorum

Screeps Quorum is a completely automated project centered around the game Screeps.

JavaScript Style Guide License Version Downloads CircleCI

npm

While there are other Screeps code bases which focus on automation, this is the first codebase which has automated its own management and deployment. The Quorum project does not have a single specific user behind it, but is completely independent.

All Pull Requests are done by volunteers, and the entire project is open source.

How does it work?

  • Anyone can make a pull request. Developers can then vote on the pull requests using reactions (:+1:, :-1:, or :confused:). Pull requests which meet the consensus rules and pass all tests will be merged using Gitconsensus.

  • Any code that gets merged into master will automatically be uploaded to the Screeps main world under the user Quorum. Code is also deployed automatically once a day.

  • If the Quorum user is no longer spawned in the game it will be relaunched using the ScreepsAutoSpawner. The AutoSpawner fork used by this project has its own conensus rules and is also automatically kept up to date.

  • All of the Quorum data is public using ScreepsDashboard and hosted at quorum.tedivm.com. This includes full console output, all memory and segment data, and wallet history (with more feature being developed as needed).

Resources

Join the discussion on slack at #quorum, available on the Screeps Slack Network.

View the Quorum Dashboard for all the information on the currently running instance.

Contributing

This project does everything but code itself- that part comes from community pull requests.

The developer wiki should be the first stop before diving into the code. Like the project itself this is completely community run, and documentation contributions are always appreciated.

Not sure where to get started? The github project has a list of needed features specifically to give people a jumping off point for getting into the project.

Please take a moment to read the contributors guide to get an understanding of how the project works and how contributions will be looked at by the community.

Deploying

This codebase uses Gulp to deploy to the screeps server. It uses a configuration file, .screeps.json, which can save multiple configurations.

{
  "main" : {
    "username": "Quorum",
    "password": "random123",
    "branch": "main"
  },
  "127.0.0.1" : {
    "username": "Quorum",
    "password": "random123"
  },
  "myserver.example.com" : {
    "username": "Quorum",
    "password": "random123",
    "ssl": true
  }
}

By default Gulp will deploy to the main server, but this can be changed with the server flag.

gulp --server=127.0.0.1

By default gulp will push to the default branch. This can be changed in the configuration file or by passing the branch option to gulp.