Difference between revisions of "Private Server"

From Screeps Wiki
Jump to navigation Jump to search
m (Updated the server mods section.)
(Revised content)
Line 1: Line 1:
 
[[Category:Private Server]]
 
[[Category:Private Server]]
[[Category:Stubs]]
 
{{Stub}}
 
   
= Info =
+
== Overview ==
[[Category:Stubs]]
 
{{Stub}}
 
<br>
 
The Screeps private server is a private server created by the devs and highly modifiable by the community.<br>
 
   
  +
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.
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>
 
   
 
=== Launcher ===
 
=== Launcher ===
  +
launcher launches the rest of the processes, and it includes the server control GUI.<br>
 
  +
The server launch process consists of multiple parallel processes linked to each other. There are different types of launchers available:
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>
 
  +
* '''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 preferred solutions for hosting a private server.
  +
** [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.
  +
** [https://github.com/Jomik/screeps-server Jomik's Screeps Server]: which focuses on ease of use and simplicity. It leverages Docker to provide a containerized environment, simplifying deployment and management tasks for users.
   
 
=== Storage ===
 
=== Storage ===
  +
storage contains a LokiJS-based database, a key-value storage, and a Pub/Sub mechanism.<br>
+
Contains a LokiJS-based database, a key-value storage, and a Pub/Sub mechanism. It stores game data, including map and player data.
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>
 
   
 
=== Backend ===
 
=== Backend ===
  +
backend contains an HTTP server accessed by clients and a CLI server for administration.<br>
 
  +
Includes an HTTP server for client access and a CLI server for administration. Administrators can execute commands and interact with mods.
This allows for server administrators to execute commands and also the primary way to interact with mods if they have an intractable element.<br>
 
   
 
=== Engine ===
 
=== Engine ===
  +
engine is the game core. It executes game scripts and interacts with game world objects.<br>
+
The game core responsible for executing game scripts and interacting with game world objects.
   
 
=== Driver ===
 
=== 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>
 
  +
Acts as a link between the environment-independent engine and the immediate hosting environment. Users can replace this module for customized data handling.
You can replace this module with your own one, if you wish to use another method of storing and handling data.<br>
 
   
 
=== Common ===
 
=== Common ===
common is a shared code base with useful utilities.<br>
 
   
 
A shared code base with useful utilities.
= Links =
 
   
 
== Links ==
[[Private Server Installation|Installation]]
 
   
[[Private Server Common Tasks|Common Tasks]]
+
* [[Private Server Installation|Installation]]
 
* [[Private Server Common Tasks|Common Tasks]]
 
[[Public Private Servers|Public Servers]]
+
* [[Public Private Servers|Public Servers]]
   
 
== Server mods ==
 
== Server mods ==
-Mods collection on github: https://github.com/ScreepsMods<br>
 
-DeathTech's mods: https://github.com/DeathTech154/screepsMods<br>
 
More to be added when more links get published.<br>
 
<br>
 
!Notice! <br>
 
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>
 
Please use "https://github.com/ScreepsMods/screepsmod-gcltocpu" for gcltocpu. Unless you want deathtech's chronjob version.<br>
 
   
  +
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 mods on GitHub: [https://github.com/ScreepsMods](https://github.com/ScreepsMods)
   
 
== 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.
 
|}
 
|}

Revision as of 13:39, 21 April 2024


Overview

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.

Launcher

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 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: which focuses on ease of use and simplicity. It leverages Docker to provide a containerized environment, simplifying deployment and management tasks for users.

Storage

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

Backend

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

Engine

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

Driver

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.

Links

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.

Source Code

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.