Artificial intelligence for screeps
Clone or download
Latest commit c44bb45 Aug 29, 2018
Failed to load latest commit information.
.circleci Improve integration tests Jun 24, 2018
doc Remove alliance, rename channel to tooangels Oct 28, 2017
grafana/main/db Dashboards update & upgrade Aug 28, 2017
src Merge pull request #531 from mschultheiss83/feature/tombstones Aug 29, 2018
test-server Update dependencies Jul 31, 2018
utils BaseCostmatrix for misplacedSpawn Jul 13, 2018
.codeclimate.yml fix gruntfile Sep 23, 2017
.eslintignore Add Configuration for Code Climate Analysis Jan 9, 2017
.eslintrc eslint improvement Sep 6, 2017
.eslintrc-base eslint improvement Sep 6, 2017
.eslintrc-codeclimate fix code-climate eslint Sep 9, 2017
.gitattributes working draft #1 Oct 25, 2017
.gitignore fix private run a bit Sep 25, 2017
.jshintrc refactor .jshintrc and all missed globals Aug 28, 2017
.screepsrc Transfer to private server check to nodejs Oct 3, 2017
.screepsrc.example fix private run a bit Sep 25, 2017
.tern-project -getPartConfig structure changed Feb 7, 2017 Create Jul 8, 2017 Rename and improve Jul 8, 2017
Gruntfile.js Remove jscs Jul 17, 2018
LICENSE Initial commit Oct 25, 2016 Remove alliance, rename channel to tooangels Oct 28, 2017
_config.yml Set theme jekyll-theme-time-machine Jan 17, 2017 sample file update Jan 2, 2017
config_local.js.example improve Stats => Grafana #61 Aug 16, 2017
package-lock.json Update dependencies Jul 31, 2018
package.json Update dependencies Jul 31, 2018

TooAngel Artificial intelligence for screeps

Codacy Badge CircleCI Code Climate npm version gitter slack

See rendered version:

For in game room visitors:

Happy to see you visiting one of our rooms. Visit FAQ to find answers


This is the AI I'm using for screeps. I managed to reach Top 10 from November 2015 - March 2016. Main Goal is to automate everything, no manual interaction needed.

The AI is deployable on a private screeps server, follow the information on Steam or npm install screeps-bot-tooangel and bots.spawn('screeps-bot-tooangel', ROOMNAME)


This is not a good example for code quality or structure, most LOCs written while fighting or other occasions which needed quick fixes or in the ingame editor (getting better :-)). But I think there are a couple of funny ideas. Every contribution is welcome.



Add a src/friends.js with player names to ignore them from all attack considerations.

E.g.: module.exports = ['TooAngel'];

Add a src/config_local.js to overwrite configuration values. Copy config_local.js.example to src/config_local.js as an example. src/config.js has the default values.


install dependencies

npm install

add your account credentials


To deploy to the live server provide the credentials.

via env

export email=EMAIL
export password=PASSWORD

via git ignored file

echo "module.exports = { email: 'your-email@here.tld', password: 'your-secret' };" >

or edit and rename to

And deploy to the server:


to private server

Create a .localSync.js file with content:

module.exports = [{
  cwd: 'src',
  src: [
  dest: '$HOME/.config/Screeps/scripts/SERVER/default',
grunt local


grunt dev


Releasing to npm is done automatically by increasing the version and merging to master.

npm version 10.0.1
git push --follow-tags

Every deploy to master is automatically deployed to the live tooangel account.


More details of the AI design