@admon-dev/screepsmod-admin-utils

1.31.3 • Public • Published

@admon-dev/screepsmod-admin-utils

This is a collection of utils for screeps private server admins

JavaScript Style Guide License Version

NPM

Import Maps

NOTE: screepsmod-mongo required for map imports.

The server will be paused on tick one, use system.resumeSimulation() to unpause.

importMapFile(mapFile.json)

Imports a map from a file.

utils.importMap(urlOrId)

Imports a map from a url or maps.screepspl.us

If the id is random or random_WxH a map will be randomly selected. 1x1 is assumed if size isn't specified.

The server will be paused on tick one, use system.resumeSimulation() to unpause.

CPU Commands

utils.getCPULimit(username)

Returns current cpu limit for username.

utils.setCPULimit(username, value)

Sets cpu limit to value for username. Will be overriden if GCLToCPU scaling is enabled.

utils.enableGCLToCPU([maxCPU], [baseCPU], [stepCPU])

Enables GCLToCPU scaling which raises all user's CPU limit based on their GCL. The formula is Math.min((gclLevel * stepCPU + baseCPU), maxCPU). Parameters are optional and default to maxCPU = 300, baseCPU = 20, stepCPU = 10. Enabling through the CLI will not persist after a server restart. Update the values in your config.yml to persist the settings.

utils.disableGCLToCPU()

Disables GCLToCPU scaling. Disabling through the CLI will not persist after a server restart. Update the values in your config.yml to persist the setting.

Shard

utils.setShardName(value)

Bots

utils.removeBots()

Removes all Bots.

NPC Terminals

utils.addNPCTerminals(interval = 10)

Creates NPC Terminals.

The interval defines how often they are added, with the default value of 10 matching the behavior of the public server.

A simple way to understand the interval is that it will place rooms where x % interval === 0 && y % interval === 0.

utils.removeNPCTerminals()

Removes all NPC Terminals.

Sets the shard name

WebSocket

utils.setSocketUpdateRate(value)

Sets socket update rate (in ms)

utils.getSocketUpdateRate()

Returns current socket update rate

Reload Config

utils.reloadConfig()

Reloads the serverConfig section of a screeps-launcher config.yml

Config file

Example config.yml

# Most of these fields will live reload on save. 
# Values set here will override any saved via CLI on server startup
serverConfig: 
  map: random_1x2 # utils.importMap will be called automatically with this value, see utils.importMap above
  tickRate: 200
  socketUpdateRate: 200
  whitelist: # Does not restrict login, only restricts spawning
  - ags131
  - zeswarm
  shardName: 'screepsplus1'
  constants:
    UPGRADE_POWER: 10
    POWER_CREEP_SPAWN_COOLDOWN: 3600000 # 1 Hour
    POWER_CREEP_DELETE_COOLDOWN: 3600000
  welcomeText: |
    <h1>Welcome</h1>
    <div>Powered by screepsmod-admin-utils</div>
  statsToken: ...splusToken... # This enables submitting stats to S+ Grafana. Note: shardName MUST be set
  gclToCPU: true
  maxCPU: 100
  baseCPU: 20
  stepCPU: 10

Endpoints

A few extra endpoints are implemented enabling some extra debuging and tools

GET /stats Lots of useful stats on server performance GET /api/user/world-start-room Dynamically returns a start room for the client GET /api/experimental/pvp Same as on mmo, returns active pvp rooms. GET /api/experimental/nukes Same as on mmo, returns nukes.

Readme

Keywords

Package Sidebar

Install

npm i @admon-dev/screepsmod-admin-utils

Weekly Downloads

1

Version

1.31.3

License

MIT

Unpacked Size

183 kB

Total Files

45

Last publish

Collaborators

  • admon84