• Stars
    star
    119
  • Rank 297,930 (Top 6 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 6 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Launcher for the Screeps Private Server

A better launcher for Screeps private servers

CircleCI

Why?

  • The steam private server has a few limitations, one being that getting non-workshop mods to work is a huge headache.
  • The npm version is much better, but requires care in installing everything correctly.

Therefore, the goal of this is to simplify the entire process making it much easier to use. No need to manually npm install anything, its handled automatically

Guides

If installing on ubuntu 18.04 or on a Pi with raspbian, theres also a guide on reddit here that does a step-by-step setup including mongo, redis, and auto start.

Usage

  1. Download a release from the Releases Page
  2. Drop into an empty folder or your PATH
  3. Get your Steam API key
  4. Create config.yml (All fields are optional! You can pass STEAM_KEY as an environment variable)
steamKey: keyFromStep3
mods: # Recommended mods
- screepsmod-auth
- screepsmod-admin-utils
- screepsmod-mongo  # You must install and start `mongodb` and `redis` before this mod will work
bots:
  simplebot: screepsbot-zeswarm
serverConfig: # This section requires screepsmod-admin-utils to work
  welcomeText:  |
    <h1 style="text-align: center;">My Cool Server</h1>
  constants: # Used to override screeps constants
    TEST_CONSTANT: 123
  tickRate: 1000  # In milliseconds. This is a lower bound. Users reported problems when set too low.
  1. Open a shell to folder
  2. Run screeps-launcher
  3. If you installed screepsmod-mongo, run screeps-launcher cli in another shell, and run system.resetAllData() to init the DB. It completes instantly, restart the server after.
  4. Done!

You can use screeps-launcher cli in the same folder for CLI access

Other options

There are several extra arguments that can be used to manage the install:

  • screeps-launcher apply Applies the current config.yml without starting the server.
  • screeps-launcher upgrade Upgrades all packages (screeps, mods, bots, etc)
  • screeps-launcher cli Launch a screeps cli
  • screeps-launcher backup <file> Creates a backup
  • screeps-launcher restore <file> Restores a backup (Warning: Completely replaces existing data)

docker-compose

There is also an example docker-compose.yml that starts a server + mongo. This is the easiest way to get a private server working on windows and using mongo + redis.

  1. Install docker (look on the left to find the correct platform).
  2. You might have to fiddle with the docker advanced settings to allow enough CPU to run the server smoothly.
  3. Create an empty folder with both a config.yml (don't forget to add screepsmod-mongo!) and a docker-compose.yml (see examples). The docker-compose.yml example can be used as-is, but the config.yml requires some customization. Remove environments (line 2-5) in config.yml, since they are defined in docker-compose.yml.
  4. Open a terminal in that folder. Run docker-compose up to start the services. Wait until it is done starting the docker images and settle on mongo status messages.
  5. Open another terminal in that folder. Run docker-compose exec screeps screeps-launcher cli. This is a command-line interface to control your new private server.
  6. In the CLI, run system.resetAllData() to initialize the database. Unless you want to poke around, use Ctrl-d to exit the cli.
  7. Run docker-compose restart screeps to reboot the private server.

Your server should be up and running! Connect to it using the steam client:

Choose the Private Server tab and connect using those options:

  • Host: localhost
  • Port: 21025
  • Server password: <leave blank, unless configured otherwise>

Docker

Docker builds are published to Dockerhub as screepers/screeps-launcher Quickstart:

  1. Create config file in an empty folder (/srv/screeps is used for this example)
  2. Run docker run --restart=unless-stopped --name MyScreepsServer -v /srv/screeps:/screeps -p 21025:21025 screepers/screeps-launcher
  3. Done!

Mods

You can easily install mods by adding their names to the config.yml file. The screeps-launcher takes care of downloading them for you. Mods can be found in the ScreepsMods github repository.

A few mods of interests:

  • screepsmod-mongo (needed to actually use mongo+redis!)
  • screepsmod-auth (use it to change your password by going to [http://localhost:21025/authmod/password])
  • screepsmod-admin-utils
  • screepsmod-map-tool
  • screepsmod-history
  • screepsmod-market

See each of their documentation on the ScreepsMods github repository.

Bots

You can add bots to spawn in by adding either their names or path to the code on your file system in the config.yml file. See config.sample.yml for an example.

More Repositories

1

screeps-typescript-starter

Starter kit for TypeScript-based Screeps AI codes.
TypeScript
440
star
2

screeps-profiler

This is a profiler designed for use in the game of screeps.
JavaScript
193
star
3

typed-screeps

Strong TypeScript declarations for the game Screeps.
TypeScript
173
star
4

screeps-multimeter

The most useful tool on your screeps workbench.
JavaScript
89
star
5

python-screeps

Unofficial client for the Screeps Unofficial API
Python
82
star
6

screeps-snippets

This repository is for saving pinned snippets from the screeps slack for posterity
JavaScript
74
star
7

Screeps-Typescript-Declarations

The repository for *Screeps's* TypeScript type definitions.
TypeScript
69
star
8

node-screeps-api

Node.js API For screeps
JavaScript
64
star
9

screeps-arena-typescript-starter

JavaScript
58
star
10

screeps_console

Standalone Interactive Screeps Console
Python
57
star
11

cppreeps

WASM C++ Screeps API and utilities pack (beta, proof-of-concepts)
C++
55
star
12

screeps-server-mockup

Private server package for unit tests
TypeScript
51
star
13

RoomVisual

JavaScript
39
star
14

screeps-typescript-profiler

A light-weight TypeScript profiler for tagging classes and methods
TypeScript
38
star
15

screeps-stats

Access Screeps Console, Performance, and Statistics Data via Kibana and ElasticSearch
Python
38
star
16

screeps-visual

Chrome Extension that adds a Visual API to screeps
JavaScript
26
star
17

typed-screeps-arena

JavaScript
26
star
18

screeps_notify

Send messages (SMS, Slack) from inside Screeps Scripts
Python
23
star
19

screeps-ConsoleStats

Output stats directly to the screeps console
JavaScript
18
star
20

creeptalk

Giving Creeps Social Skills Since 2016
JavaScript
17
star
21

POSIS

Portable Operating System Interface for Screeps
12
star
22

screepers-standards

12
star
23

utf15

Library (codec generator) for packing integers to JavaScript UTF-16 strings
JavaScript
11
star
24

go-screeps

Go
10
star
25

ScreepsOS

Screeps/Serializable Operation System (SOS)
JavaScript
9
star
26

screeps-regenerator

Use generators in Screeps
JavaScript
8
star
27

screeps-backup

Backups for Screeps
Python
7
star
28

screeps-tools

Tools to help players of the Programming MMO Screeps
TypeScript
7
star
29

ScreepsPerformanceServer

Ready to run server with performance checks
JavaScript
7
star
30

Screeps-Script-Downloader

Download all your Screeps scripts without the need to copy-paste each individual file.
Java
6
star
31

screeps-drawing

JavaScript
2
star
32

screeps-closure-compiler-externs

Screeps externs for use with Closure Compiler.
JavaScript
2
star
33

screeps-server-test

JavaScript
2
star
34

screeps-arena-javascript-starter

JavaScript
2
star
35

ErrorExporter

An error exporter instead of email
JavaScript
2
star
36

snippets-logging

Long term safe keeping for snippets from the #logging slack channel
JavaScript
2
star
37

screeps-jconsole

Node based console for Screeps MMORTS based on screeps-console by stargateur
JavaScript
1
star
38

ScreepsDiplomacyExtensions

A universal verb and framing protocol built on ScreepsDiplomacy
1
star
39

screeps_slack_bot

Slack Bot for providing information about the Screeps world
JavaScript
1
star
40

ScreepsUserTracker

JavaScript
1
star
41

screeps-stats-lib

A client-side library to enhance the output of screeps-stats statistics.
JavaScript
1
star
42

simpleAllies

Allows for simple communication between allies using a public segment
TypeScript
1
star