Difference between revisions of "Private Server"

From Screeps Wiki
Jump to navigation Jump to search
m
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Private Server]]
 
[[Category:Private Server]]
[[Category:Stubs]]
 
{{Stub}}
 
   
  +
The Screeps private server is a distributed, standalone game server that allows you to launch your own game world on a local computer or dedicated server on the Internet.
= Info =
 
[[Category:Stubs]]
 
{{Stub}}
 
<br>
 
The Screeps private server is a private server created by the devs and highly modifiable by the community.<br>
 
   
  +
== Modules ==
It consists of several segmented modules detailed below. And you can access their source codes at the bottom of this page.<br>
 
  +
The modules are as follows:<br>
 
  +
The private server consists of several modules that work together to provide the game environment.
   
 
=== Launcher ===
 
=== Launcher ===
launcher launches the rest of the processes, and it includes the server control GUI.<br>
 
It is also an optional modules as any user can write their own launcher or launch modules manually.<br>
 
Doing the latter gives far more control regarding the server operations.<br>
 
   
  +
The server launch process consists of multiple parallel processes linked to each other. There are different types of launchers available:
=== Storage ===
 
storage contains a LokiJS-based database, a key-value storage, and a Pub/Sub mechanism.<br>
 
The rest of the processes connect to storage to exchange data.<br>
 
It is where your servers game lives including map data, player data, etc...<br>
 
   
  +
* '''GUI Launcher''': This launcher comes with the standard version of the game on Steam. It provides a GUI for managing the server, viewing server logs, and a CLI interface to control the server. However, it can be cumbersome to modify and update and is not the preferred way to manage a server.
=== Backend ===
 
backend contains an HTTP server accessed by clients and a CLI server for administration.<br>
 
This allows for server administrators to execute commands and also the primary way to interact with mods if they have an intractable element.<br>
 
   
  +
* '''Console Launcher''': Allows launching the server from a command line without the GUI. Prerequisites include Node 10, Python 2, and build tools.
=== Engine ===
 
engine is the game core. It executes game scripts and interacts with game world objects.<br>
 
   
  +
* '''Custom Launchers''': Users can create their own launchers to manage server processes.
=== Driver ===
 
driver is a link between the environment-independent engine (that is shared for the official server, standalone server, and in-browser simulation) and the immediate environment that hosts the game engine.<br>
 
You can replace this module with your own one, if you wish to use another method of storing and handling data.<br>
 
   
  +
These are the community preferred solutions for hosting a private server:
=== Common ===
 
common is a shared code base with useful utilities.<br>
 
   
  +
* [https://github.com/screepers/screeps-launcher Screepers Launcher]: developed by the community to streamline the launch process and offer additional features for managing the private server.
= Links =
 
   
  +
* [https://github.com/Jomik/screeps-server Jomik's Screeps Server]: focuses on ease of use and simplicity. It leverages Docker to provide a containerized environment, simplifying deployment and administration.
[[Private Server Installation|Installation]]
 
   
 
=== Storage ===
[[Private Server Common Tasks|Common Tasks]]
 
   
 
Contains a LokiJS-based database, a key-value storage, and a Pub/Sub mechanism. It stores game data, including map and player data.
[[Public Private Servers|Public Servers]]
 
   
== Server mods ==
+
=== Backend ===
  +
-Mods tracked by devs: https://github.com/ScreepsMods<br>
 
  +
Includes an HTTP server for client access and a CLI server for administration. Administrators can execute commands and interact with mods.
-DeathTech's mods: https://github.com/DeathTech154/screepsMods<br>
 
  +
More to be added when more links get published.<br>
 
 
=== Engine ===
<br>
 
  +
!Notice! <br>
 
 
The game core responsible for executing game scripts and interacting with game world objects.
DeathTech's version of GCL to CPU made by iKlem is not the official one.<br>
 
  +
For the official version of GCLtoCPU please refer to iKlem's github page (or you can find it in the devs tracked repositories displayed above.)<br>
 
 
=== Driver ===
Please use "https://github.com/ScreepsMods/screepsmod-gcltocpu" for gcltocpu. Unless you want deathtech's chronjob version.<br>
 
  +
  +
Acts as a link between the environment-independent engine and the immediate hosting environment. Users can replace this module for customized data handling.
  +
 
=== Common ===
   
 
A shared code base with useful utilities.
   
== Source Code ==
+
=== Source code ===
 
{|
 
{|
| https://GitHub.com/screeps/screeps || Main Repo, mostly a meta-package and wrapper for the rest.
+
| https://github.com/screeps/screeps || Main repo, mostly a meta-package and wrapper for other modules.
 
|-
 
|-
| https://GitHub.com/screeps/launcher || Electron/CLI launcher
+
| https://github.com/screeps/launcher || Electron/CLI launcher.
 
|-
 
|-
| https://GitHub.com/screeps/backend-local || Webserver/API module
+
| https://github.com/screeps/backend-local || Webserver/API module.
 
|-
 
|-
| https://GitHub.com/screeps/engine || Core Engine, this is shared with the public server
+
| https://github.com/screeps/engine || Core Engine, shared with public server.
 
|-
 
|-
| https://GitHub.com/screeps/storage || Storage module, acts as a communications hub for all other modules
+
| https://github.com/screeps/storage || Storage module, acts as a communications hub.
 
|-
 
|-
| https://GitHub.com/screeps/common || Shared module that other modules use to connect to storage
+
| https://github.com/screeps/common || Shared module for connecting to storage.
 
|-
 
|-
| https://GitHub.com/screeps/driver || This is the driver for the engine.
+
| https://github.com/screeps/driver || Engine driver.
 
|}
 
|}
  +
  +
== Server mods ==
  +
  +
Screeps mods are a way to extend the functionality of the private server. Mods can add new features, change existing ones, or provide additional tools for managing the server.
  +
 
* Collection of community-made Screeps mods: https://github.com/ScreepsMods
  +
 
== Links ==
  +
 
* [[Private Server Installation|Installation]]
 
* [[Private Server Common Tasks|Common Tasks]]
 
* [[Community Servers|Community Servers]]

Latest revision as of 15:24, 21 April 2024


The Screeps private server is a distributed, standalone game server that allows you to launch your own game world on a local computer or dedicated server on the Internet.

Modules[edit | edit source]

The private server consists of several modules that work together to provide the game environment.

Launcher[edit | edit source]

The server launch process consists of multiple parallel processes linked to each other. There are different types of launchers available:

  • GUI Launcher: This launcher comes with the standard version of the game on Steam. It provides a GUI for managing the server, viewing server logs, and a CLI interface to control the server. However, it can be cumbersome to modify and update and is not the preferred way to manage a server.
  • Console Launcher: Allows launching the server from a command line without the GUI. Prerequisites include Node 10, Python 2, and build tools.
  • Custom Launchers: Users can create their own launchers to manage server processes.

These are the community preferred solutions for hosting a private server:

  • Screepers Launcher: developed by the community to streamline the launch process and offer additional features for managing the private server.
  • Jomik's Screeps Server: focuses on ease of use and simplicity. It leverages Docker to provide a containerized environment, simplifying deployment and administration.

Storage[edit | edit source]

Contains a LokiJS-based database, a key-value storage, and a Pub/Sub mechanism. It stores game data, including map and player data.

Backend[edit | edit source]

Includes an HTTP server for client access and a CLI server for administration. Administrators can execute commands and interact with mods.

Engine[edit | edit source]

The game core responsible for executing game scripts and interacting with game world objects.

Driver[edit | edit source]

Acts as a link between the environment-independent engine and the immediate hosting environment. Users can replace this module for customized data handling.

Common[edit | edit source]

A shared code base with useful utilities.

Source code[edit | edit source]

https://github.com/screeps/screeps Main repo, mostly a meta-package and wrapper for other modules.
https://github.com/screeps/launcher Electron/CLI launcher.
https://github.com/screeps/backend-local Webserver/API module.
https://github.com/screeps/engine Core Engine, shared with public server.
https://github.com/screeps/storage Storage module, acts as a communications hub.
https://github.com/screeps/common Shared module for connecting to storage.
https://github.com/screeps/driver Engine driver.

Server mods[edit | edit source]

Screeps mods are a way to extend the functionality of the private server. Mods can add new features, change existing ones, or provide additional tools for managing the server.

Links[edit | edit source]