Difference between revisions of "Private Server"

From Screeps Wiki
Jump to navigation Jump to search
m
 
(7 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]]
 
  +
== Modules ==
{{Stub}}
 
  +
<br>
 
The Screeps private server is a private server created by the devs and highly modifiable by the community.<br>
+
The private server consists of several modules that work together to provide the game environment.
  +
<br>
 
It consists of several segmented modules detailed below. And you can access their source codes at the bottom of this page.<br>
 
<br>
 
The modules are as follows:<br>
 
<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.
<br>
 
  +
  +
* '''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:
  +
  +
* [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]: focuses on ease of use and simplicity. It leverages Docker to provide a containerized environment, simplifying deployment and administration.
  +
 
=== 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>
 
<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>
 
  +
<br>
 
 
=== Engine ===
 
=== Engine ===
engine is the game core. It executes game scripts and interacts with game world objects.<br>
 
<br>
 
=== 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>
 
<br>
 
=== Common ===
 
common is a shared code base with useful utilities.<br>
 
   
 
The game core responsible for executing game scripts and interacting with game world objects.
= Links =
 
   
 
=== Driver ===
[[Private Server Installation|Installation]]
 
   
  +
Acts as a link between the environment-independent engine and the immediate hosting environment. Users can replace this module for customized data handling.
[[Private Server Common Tasks|Common Tasks]]
 
   
== Server mods: ==
+
=== Common ===
-Mods tracked by devs: 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>
 
   
 
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]