SERVER / DEPLOYMENT

Game Server Setup Guide

A complete guide to server token requests, environment variables, server visibility, and launch examples.

This guide collects the environment variables, token request workflow, and lobby visibility rules most commonly used when launching a server. The content has been updated from the latest server configuration document and reformatted for the website.

1. Overview

This manual explains how to configure and launch your own game server through environment variables in a .env file. After startup, the server automatically registers with the official lobby, and your settings determine its visibility and server type.

Note: marker-style variables such as GAME_HOST, GAME_LINK, and GAME_AUTO_RESTART are enabled as soon as they are defined. All other bool / Boolean variables should be set explicitly to true/false or 1/0.

2. Prerequisites

  • You must use a cloud server (Alibaba Cloud, Tencent Cloud, AWS, or a similar provider) or a VPS virtual machine.
  • Required: request a valid game authorization TOKEN (GAME_TOKEN) from the official team. Without a TOKEN, you cannot open a public server.
  • Prepare a server with a public IP address that can be pinged and reached over the network, otherwise the review will be rejected.
  • Install Docker and Docker Compose (recommended), or make sure the server runtime environment meets the game requirements.
  • When applying for a TOKEN, send the email to team@nextindie.cn.

Server application template · Game License and Services Agreement

Text
I. Applicant information
User UID: [Please enter your game account user ID]
Server-bound public IP: [Please enter the unique fixed public IP address. It must respond to ping]
Server physical region: [For example: Asia, North America]
Application purpose and community size: [For example: personal server, server for a specific player community]
II. Important: Non-commercial operation commitment and compliance notice
As the operator behind this server, I have carefully read Chapter 10 of the Game License and Services Agreement and solemnly make the following legally binding commitments:

Purely non-profit nature: This server will remain strictly non-profit.
Only gratuitous donations are allowed: This server may accept only voluntary donations made out of support for the community, without compensation or any return benefit. All sponsored funds may be used only to offset the direct costs of physical hosting, such as server hardware rental, network bandwidth, and DDoS protection.
Strictly no sale of in-game assets or stats: This server will never directly, indirectly, or in disguised form sell any in-game virtual creature or dinosaur, character data, levels, stat bonuses, weapons, equipment, building materials, game tokens, or any virtual items that affect game balance.
Strictly no disguised privilege exchange: This server will never use forms such as donation lotteries, donation bonus gifts, paid custom characters or creatures, or paywalls or entry fees for joining the server or community as an exchange condition for in-game virtual goods or privileges.
No gambling mechanisms: Neither this server nor its associated communities, such as QQ groups or Discord servers, will set up loot boxes, raffles, roulette systems, or rebate mechanisms with a gambling nature involving in-game virtual goods.
III. Privacy isolation and security acknowledgement
I acknowledge and agree that the official collection of this server IP and the generation of a TOKEN are necessary for anti-cheat security and contract performance, and that this data processing complies with privacy regulations.
I undertake to keep the issued authorization TOKEN properly secured and never transfer, lease, or disclose it to any third party in any form. I bear full responsibility for any violations caused by improper management of the TOKEN or IP configuration.
I understand that sending this server application email to the official team constitutes my digital signature and unconditional acceptance of all legal terms in the Game License and Services Agreement. If I violate any of the red lines above, the official team may revoke the authorization TOKEN, blacklist the IP, and impose a platform-wide account ban and device blacklist without prior notice.

3. All configurable parameters

3.1 Basics and authorization

VariableTypeDefaultDescription
GAME_NAMEStringThe MesozoicServer name shown in the room list
GAME_ANNOUNCEMENTStringNoneServer announcement shown in a popup when players join. Supports \n line breaks
GAME_PASSWORDStringNoneServer password. Leave empty for no password
GAME_TOKENStringNoneGame authorization TOKEN. This must be requested from the official team. Without a valid TOKEN, the server cannot register as a public server. See Section 4 for details.
GAME_AUTO_RESTARTPresence flagNoneWhen this variable exists, automatic server restart is enabled to improve long-running stability
GAME_ADMINSStringNoneRegular administrator user IDs for the server, separated by commas, for example 100001,100002,100003.

Multilingual announcements (GAME_ANNOUNCEMENT_XX)

The server automatically matches the announcement to each player's client language. 16 language suffixes are supported: ZH (简体中文), ZHTW (繁體中文), EN (English), JA (日本語), KO (한국어), PT (Português), PTBR (Português Brasil), RU (Русский), ES (Español), FR (Français), DE (Deutsch), AR (العربية), TH (ไทย), VI (Tiếng Việt), ID (Bahasa Indonesia), TR (Türkçe).

Set them in .env as GAME_ANNOUNCEMENT_XX=content, e.g. GAME_ANNOUNCEMENT_EN=Welcome to the server!. When a language-specific announcement is not set, GAME_ANNOUNCEMENT is used as the default fallback.

After editing announcements, the server owner can run /reloadAnnounce to hot-reload them without restarting the server.

3.2 Networking and connection type

VariableTypeDefaultDescription
GAME_IPString127.0.0.1Server bind IP address. If you want players on the internet to connect, fill in the correct public IP
GAME_HOSTPresence flagNoneLAN mode only. When defined, the server automatically detects the machine LAN IP and ignores GAME_IP. The server becomes a LAN server and does not appear in the public server list
GAME_PORTInteger26666Server listen port (UDP). Make sure your firewall allows it
GAME_MAX_PLAYERSInteger64Maximum number of players that can be online at the same time
GAME_GLOBALBooleantrueWhether to register to the global room list. In most cases this should stay true
GAME_PUBLICBooleanfalseSet to true to mark the server as public. If it stays false, the server remains private or visible only to friends
GAME_LINKPresence flagNoneForces a private server (PRIVACY). Define this variable if you want a password-protected private room, optionally together with GAME_PASSWORD
GAME_NODEStringASRegion node shown to players for latency reference. Valid values: AS (Asia), CN (China), NA (North America), SA (South America), EU (Europe), ME (Middle East)

Connection type priority and combinations

If GAME_LINK is defined, the server becomes a private server (PRIVACY). Even if GAME_PUBLIC is set to true, it still exists only as a password-protected private room.

If none of those special variables are enabled, and GAME_PUBLIC is set to true with a valid GAME_TOKEN, the server is registered as an authorized server (AUTHORIZE). This is the main way regular players host public servers.

If GAME_PUBLIC is false, or the TOKEN is invalid, the server does not appear in the public list.

3.3 Game rules

VariableTypeDefaultDescription
GAME_DEAD_TIMEInteger (seconds)1800How long corpses remain before decaying away
GAME_START_GROWTHFloat0.1Initial growth value for a new character (0.0 ~ 1.0)
GAME_MAX_GROWTHFloat1.0Maximum growth value for a character
GAME_SPEED_GROWTHFloat1.0Growth speed multiplier
GAME_TEAMInteger6Maximum team size
GAME_CHILDInteger0Maximum number of offspring a player can own at the same time. 0 means unlimited
GAME_SAFEInteger (seconds)0Spawn protection duration for new characters
GAME_TEAM_DAMAGEBooleantrueWhether friendly fire is allowed
GAME_HATCHBooleantrueAllows invited hatching and cooperative breeding with other players
GAME_EVOLBooleantrueAllows eggs to become evolution eggs. If disabled, eggs always remain in the current species
GAME_PKBooleanfalseSet to true to allow players to initiate duels
GAME_ALT_TURNBooleantrueAllows turning in place
GAME_MALE_REBIRTHBooleanfalseAllows rebirth using male characters
GAME_SINGLE_BREEDBooleanfalseAllows solo hatching without a mate
GAME_ERA_REBIRTHBooleanfalseAllows cross-generational rebirth
GAME_DOWNGRADE_REBIRTHBooleanfalseAllows downgraded rebirth with growth rolled back
GAME_LEARNBooleanfalseAllows gene learning. Sub-rule: GAME_MAX_LEARN (integer, default 1, 0 = unlimited) sets the max genes a character can learn
GAME_MAX_LEARNInteger1Maximum number of genes a character can acquire through learning. 0 = unlimited (still capped by the innate gene slot limit of the character). Sub-rule of GAME_LEARN
GAME_CHILD_ATTRIBUTE_INHERITBooleanfalseAllows offspring to inherit parent attributes. Sub-rules: GAME_CHILD_SIZE_INHERIT_MAX_MULTIPLIER and GAME_CHILD_ATTR_INHERIT_MAX_MULTIPLIER cap the maximum growth
GAME_CHILD_SIZE_INHERIT_MAX_MULTIPLIERFloat1.5Maximum inheritable body size multiplier relative to species base size. Sub-rule of GAME_CHILD_ATTRIBUTE_INHERIT
GAME_CHILD_ATTR_INHERIT_MAX_MULTIPLIERFloat1.5Maximum inheritable attribute multiplier (health/attack/defense/speed/consume) relative to species baseline. Sub-rule of GAME_CHILD_ATTRIBUTE_INHERIT
GAME_HABITATBooleanfalseEnables the habitat capture system. Set to true to allow players to capture habitats on the map and receive growth buffs
GAME_SAME_RACE_TEAM_LIMITBooleanfalseWhen enabled, every species can team only with the same species. This rule is stricter than the carnivore-only species team limit and is checked first
GAME_ALLOW_MINIMAPBooleantrueServer-side minimap master switch. Set to false to hide the minimap for every player, even if their local setting is enabled
GAME_FREEZE_TIMEBooleanfalseFreezes game day-night and season time progression. It does not pause real-time survival mechanics such as character resource changes
GAME_START_TIME_HOURInteger-1Sets the initial in-game hour after the server starts and loads the weather save. 0–23 are valid; -1 or out-of-range values disable it
GAME_SERVER_WHITELISTStringEmptyEntry whitelist user IDs separated by commas, semicolons, whitespace, or new lines. It is merged with Database/whitelist.txt; if both sources are empty, the whitelist is disabled. Developers, the server owner, and the Host local connection are exempt, and only new joins are affected

3.3.1 Species population balance

This rule is off by default. When enabled, it limits how many players can be alive as each species at the same time. Once a species reaches its limit, it cannot be selected temporarily; reconnecting as the species you are already playing is still allowed. Only living player characters count, not wild creatures, mates, or offspring. Related screens such as species selection, DNA, hatching, and rebirth show the current count and limit.

Rule settingTypeDefaultDescription
GAME_SPECIES_BALANCEBooleanfalseGeneral rule switch. Set to true to enable Species Population Balance
GAME_SPECIES_RANK_CAPSStringS3:0|S4:22|S5:20|S6:18|S7:16|S8:14|S9:12|S10:10|S11:8|S12:6Rank-cap sub-rule, using Srank:limit entries separated by |. Limits use a 100-player server as the baseline, scale with maximum server size, and round up. Limits range from 0 to 10000; only S3 may be set to 0 for unlimited. Omitted ranks use their default values
GAME_SPECIES_CAP_OVERRIDESStringEmptyFixed species-cap sub-rule, using speciesID:limit entries separated by |, for example trex:5|spino:8. A fixed species cap takes priority over the rank cap and does not scale with server size; each limit must be 1–10000

On a 100-player server, the default limits are: S3 is unlimited; S4 through S12 have 22, 20, 18, 16, 14, 12, 10, 8, and 6 slots, respectively. Other server sizes scale these limits to the server’s maximum player count, rounding up. A server may adjust limits by rank or set a different fixed limit for an individual species; individual species limits do not scale with server size. Evolution mode starter species are exempt.

3.3.2 Realism rules

VariableTypeDefaultDescription
GAME_REALISMBooleanfalseEnables the complete realistic PVE preset: disables PVP, uses Realism difficulty, and enables diet hostility, ecosystem rules, duels, berserk genes, default PVE AI attacks, nest protection, invite protection, egg protection, and all realism rules. Related variables can override the preset
GAME_REALISM_PKBooleanNot setOverrides the duel rule in the Realism preset; set to true to allow players to initiate duels
GAME_REALISM_CRAZYBooleanNot setOverrides the berserk-gene rule in the Realism preset; set to true to enable berserk genes
GAME_INVITE_PROTECTIONBooleanfalseEnables protection after team or hatching invitations; both players cannot initiate attacks during protection, while confirmed duels and valid self-defense are unaffected
GAME_EGG_PROTECTIONBooleanfalseWhen enabled, other players cannot directly destroy or eat your eggs; eggs inside a nest are still destroyed normally when the nest is damaged or destroyed
GAME_REALISM_CARNIVORE_RACE_TEAM_LIMITBooleanfalseCarnivores may team only with the same species; herbivores, omnivores, and aquatic creatures are not limited
GAME_REALISM_CORPSE_NEARBY_SAN_PENALTYBooleanfalseKilling another player near a corpse applies a SAN penalty to carnivores
GAME_REALISM_PVE_DIET_HOSTILEBooleanfalseIn PVE, creatures with different diets are hostile by default and can attack without a duel
GAME_PVE_AI_DEFAULT_ATTACKBooleanfalseWhen enabled, players and wild AI creatures can attack each other in PVE without dueling; protection and team, companion, owner, and kin restrictions still apply
GAME_REALISM_HERBIVORE_PICKUP_CORPSEBooleanfalseControls whether herbivores can carry corpses; in the current code, true blocks corpse carrying
GAME_REALISM_HERBIVORE_CORPSE_FEARBooleanfalseHerbivores build stress while inside the corpse detection range
GAME_REALISM_DYNAMIC_TEAM_WEIGHTBooleanfalseEnables the “Dynamic team weight” rule: calculates team weight from creature level and prevents joining after the total limit is reached
GAME_REALISM_REVENGEBooleanfalseAfter being killed, a player cannot initiate an attack against the killer during protection; self-defense remains allowed
GAME_REALISM_CARCASS_CLAIMBooleanfalseCarnivores claim a corpse after a player kill; claimants cannot initiate attacks until the corpse is eaten or they abandon it
GAME_REALISM_NESTBooleanfalseEnables the “Nest protection” rule: prevents destroying other players’ nests; existing PVE rules may independently prohibit damaging other players’ nests
GAME_REALISM_KILL_COOLDOWNBooleanfalseAfter a kill, blocks another initiated attack against the same player or device; both teams also receive a shorter cooldown
GAME_REALISM_BAITINGBooleanfalsePlayers lingering near a feeding player, a complete nest, or an occupied habitat provoke the owner; the protected party may counterattack for a limited time
GAME_REALISM_TEAM_LEAVEBooleanfalseAfter leaving or being kicked from a team, temporarily blocks initiated attacks against former teammates
GAME_REALISM_HUNGER_HUNTBooleanfalseWhen hunger falls below the trigger ratio, a carnivore may hunt once outside PVE diet restrictions; it must feed to the reset ratio before using it again
GAME_REALISM_RACE_CHAT_ISOLATIONBooleanfalseWorld and nearby chat are visible only to players of the same species; team chat is unaffected
GAME_DISABLED_RACESStringEmptyComma-separated English species IDs, for example trex,mapu,velo. Listed species cannot be created, selected, or hatched
GAME_WORLD_CHAT_COOLDOWN_SECONDSInteger (seconds)15Wait this many seconds between world-chat messages; set to 0 to disable the cooldown. Developers, server owners, and admins are exempt from this cooldown
VariableTypeDefaultDescription
GAME_REALISM_CORPSE_NEARBY_SAN_MULTIPLIERFloat3SAN multiplier deducted for a player kill near a corpse
GAME_REALISM_CORPSE_NEARBY_RANGEFloat (meters)50Detection range for corpse-nearby rules
GAME_REALISM_MAX_TEAM_WEIGHTInteger12Value of the “Maximum team weight” rule; the absolute member limit still comes from GAME_TEAM
GAME_INVITE_PROTECTION_SECONDSInteger (seconds)1800Duration of mutual protection from initiated attacks after a team or hatching invitation
GAME_REALISM_REVENGE_SECONDSInteger (seconds)1800How long a killed player is protected from initiating an attack against the killer
GAME_REALISM_KILL_SECONDSInteger (seconds)1500Cooldown before the killer can initiate another attack against the same player or device
GAME_REALISM_TEAM_LEAVE_SECONDSInteger (seconds)900Cooldown before a departing player can initiate an attack against a former teammate
GAME_REALISM_CARCASS_ABANDON_RANGEFloat (meters)200Abandonment timing starts after every claimant moves farther than this distance from the corpse
GAME_REALISM_CARCASS_ABANDON_SECONDSFloat (seconds)60Releases the corpse claim after claimants remain away for this long
GAME_REALISM_BAITING_RANGEFloat (meters)30Detection radius for feeding and nest-defense provocation
GAME_REALISM_BAITING_THRESHOLDFloat (seconds)15Time spent continuously in the provocation detection range before counterattack permission is granted (shared by feeding, nest-defense, and habitat-defense provocation)
GAME_REALISM_BAITING_PERMISSION_SECONDSFloat (seconds)60How long the protected side may initiate a counterattack after provocation (shared by feeding, nest-defense, and habitat-defense provocation)
GAME_REALISM_HUNGER_HUNT_THRESHOLDFloat (ratio)0.2At less than 20% satiety, a carnivore receives one hunt permission outside PVE diet restrictions
GAME_REALISM_HUNGER_HUNT_RESET_THRESHOLDFloat (ratio)0.8After using the hunt permission, satiety must recover to 80% before it is granted again

Realism preset order: GAME_REALISM=true applies the complete preset first, then GAME_REALISM_*, GAME_PVE_AI_DEFAULT_ATTACK, GAME_INVITE_PROTECTION, GAME_EGG_PROTECTION, and GAME_INVITE_PROTECTION_SECONDS override their corresponding rules. Without the preset, realism and protection switches use their normal defaults.

3.4 AI and ecosystem

VariableTypeDefaultDescription
GAME_MAX_AIBooleantrueWhether AI ecosystem creatures are spawned. If disabled, only players will exist on the map
GAME_AI_MATEBooleanfalseWhether players can bind wild AI as mates and allow AI mates to follow and assist them
GAME_AI_MATE_ATTRACTIONBooleantrueWhether players can attract a wild opposite-sex candidate near their own completed Lv.3+ nest. GAME_AI_MATE must also be enabled; set this to false to disable nest attraction alone

3.5 Genes and proficiency

VariableTypeDefaultDescription
GAME_CRAZYBooleantrueAllows berserk genes
GAME_GENE_SKILLFULBooleantrueEnables the gene proficiency system
GAME_KILL_SKILLFULBooleanfalseWhether killing other players grants gene proficiency

3.6 Game modes (choose one)

VariableTypeDescription
GAME_MODE_SANDBOXBooleanSet to true to enable Sandbox mode, allowing players to freely choose species and disabling berserk genes
GAME_MODE_EVOLBooleanSet to true to enable Evolution mode, which allows evolution-only gameplay
GAME_MODE_PRIMEVALBooleanSet to true to enable Primeval mode, which enables berserk genes and downgraded rebirth while disabling gene proficiency

Enable only one mode. If multiple modes are defined, the one defined later overrides the earlier one.

3.7 Difficulty settings

VariableTypeDefaultDescription
GAME_SIMPLEBooleanfalseSet to true to enable simple difficulty: generational rebirth, downgraded rebirth, and solo hatching are enabled while invited hatching is disabled
GAME_NORMALBooleanfalseSet to true to enable normal difficulty: only generational rebirth is enabled
GAME_HARDInteger0Difficulty level value. Higher values are harder and override the previous two Boolean options

3.8 PVP / PVE (choose one)

VariableTypeDescription
GAME_PVPBooleanSet to true to enable PVP mode (players can attack each other)
GAME_PVEBooleanSet to true to enable PVE mode (player damage is disabled, but duels are still allowed)

Choose one of these modes. It is not recommended to define both.

3.9 Map

VariableTypeDefaultDescription
GAME_MAPStringTag of the first built-in mapMap identifier, for example Oasis. Refer to the official map list for available values

3.10 Social and chat

VariableTypeDefaultDescription
GAME_WORLD_CHATBooleantrueInitial state of the world chat channel. Set to false to disable world chat for all players by default; the host can still toggle it at runtime with /worldchat

3.11 MOD loading

VariableTypeDefaultDescription
GAME_MODSStringNoneComma-separated MOD names to load, for example ModA,ModB. Make sure those MODs are correctly installed in the server Data/Mods directory

Boolean parameter syntax

Use true/false or 1/0 for all Boolean variables, for example GAME_PVP=true and GAME_WORLD_CHAT=false. Marker-style variables take effect as soon as they exist.

3.12. Audit and Discord notifications

3.12.1 General controls

VariableTypeDefaultDescription
GAME_AUDIT_ENABLEDBooleanfalseEnable the audit system; when false, all other audit toggles are ignored
GAME_AUDIT_LOCAL_ENABLEDBooleanfalseWrite audit events to the server local log; when true, events are both sent to Discord and retained locally
GAME_AUDIT_RETENTION_DAYSInteger7Number of days to keep audit logs before automatic deletion
GAME_AUDIT_CHAT_ENABLEDBooleanfalseAudit world and team chat messages
GAME_AUDIT_PVP_ENABLEDBooleanfalseAudit PVP combat events
GAME_AUDIT_ADMIN_ENABLEDBooleanfalseAudit admin commands and actions
GAME_AUDIT_CONNECTION_ENABLEDBooleanfalseAudit player connections and server-start notifications
GAME_AUDIT_DEATH_ENABLEDBooleanfalseAudit player death events

3.12.2 Discord Webhook URLs

Security tip: every URL is a secret. Do not include them in screenshots, Git commits, or public messages. Five separate channels make report handling easier, but you can use the same URL for all five variables if you prefer.

VariableTypeDescription
GAME_AUDIT_WEBHOOK_CHATStringDiscord webhook URL for chat messages
GAME_AUDIT_WEBHOOK_PVPStringDiscord webhook URL for PVP events
GAME_AUDIT_WEBHOOK_ADMINStringDiscord webhook URL for admin actions
GAME_AUDIT_WEBHOOK_CONNECTIONStringDiscord webhook URL for connections and server-start notifications
GAME_AUDIT_WEBHOOK_DEATHStringDiscord webhook URL for death events

The startup notification is sent through GAME_AUDIT_WEBHOOK_CONNECTION and includes the server name, map, max players, active English rule names, and mod names/versions. IP, port, and keys are not included. The code respects Discord rate limits (reads Retry-After on 429 errors and retries).

INI
# Audit & Discord notifications

GAME_AUDIT_ENABLED=true
# Also write audit events to the server local log
GAME_AUDIT_LOCAL_ENABLED=false
# Audit log retention days
GAME_AUDIT_RETENTION_DAYS=7

# Category toggles: chat / PVP / admin / connection / death
GAME_AUDIT_CHAT_ENABLED=true
GAME_AUDIT_PVP_ENABLED=true
GAME_AUDIT_ADMIN_ENABLED=true
GAME_AUDIT_CONNECTION_ENABLED=true
GAME_AUDIT_DEATH_ENABLED=true

# Chat messages Webhook URL
GAME_AUDIT_WEBHOOK_CHAT=https://discord.com/api/webhooks/...
# PVP events Webhook URL
GAME_AUDIT_WEBHOOK_PVP=https://discord.com/api/webhooks/...
# Admin actions Webhook URL
GAME_AUDIT_WEBHOOK_ADMIN=https://discord.com/api/webhooks/...
# Player connections & server-start notification Webhook URL
GAME_AUDIT_WEBHOOK_CONNECTION=https://discord.com/api/webhooks/...
# Player death events Webhook URL
GAME_AUDIT_WEBHOOK_DEATH=https://discord.com/api/webhooks/...

3.13. Discord Bot management (/md)

This feature is for community-hosted servers only. It is disabled by default; the game server will not connect to Discord unless the environment variables below are set.

Environment variables

Environment variablesVariableTypeDefaultDescription
GAME_DISCORD_BOT_ENABLEDBooleanfalseEnable the Discord Bot (master switch)
GAME_DISCORD_BOT_TOKENStringNoneDiscord Bot Token (secret — do not share or screenshot)
GAME_DISCORD_APPLICATION_IDStringNoneDiscord Application ID
GAME_DISCORD_SERVER_IDStringNoneTarget Discord server ID (right-click server → Copy Server ID)
GAME_DISCORD_ADMIN_ROLE_IDSStringNoneAdmin role IDs, comma-separated (right-click role → Copy Role ID)

Discord setup steps

  1. Open the Discord Developer Portal, create an Application, then go to the Bot page to create a Bot and copy its Token.
  2. On the OAuth2 → URL Generator page, select bot and applications.commands, then invite the Bot to your target Discord server.
  3. Enable Developer Mode in Discord, right-click the target server, and choose "Copy Server ID"; this is your GAME_DISCORD_SERVER_ID.
  4. Create or choose an admin role, right-click that role, and choose "Copy Role ID"; this is your GAME_DISCORD_ADMIN_ROLE_IDS. Use commas for multiple roles.
  5. Fill in the five variables from the table above in your community server environment, then restart the server. The Bot will register /md commands in that Discord server.

Discord commands (/md)

CommandDescription
/md list [type] [page]List active penalty records: band, mute, or all
/md check user_idCheck a player's current ban and server mute status
/md ban user_id seconds reasonBan and kick an online player
/md unban user_idLift a ban
/md mute user_id seconds reasonServer mute a player
/md unmute user_idLift a server mute
/md clear confirm:trueOwner-role only: clear all BAND and server MUTE records (requires explicit confirmation)

All Discord replies are only visible to the admin who ran the command. Commands operate only on the current community server's band.db and do not modify platform-level penalties.

In-game admins can also use /bandList, /muteList, /bandCheck, /muteCheck, /band, /deband, /mute, and /unmute. Only the server owner or developer can use /clearBans CONFIRM. Discord's /md clear confirm:true does not use the role configuration — only the actual Discord Server Owner account can execute it.

4. Server types and lobby visibility

Server typeRequired environment variablesCharacteristics
LAN server (LAN)Define GAME_HOSTOnly players inside the same LAN can connect. The server does not appear in the public lobby
Private server (PRIVACY)Define GAME_LINK, optionally together with GAME_PASSWORD. No TOKEN is requiredJoining requires a password. The server remains private by default, though friends can still connect directly through other means. It does not appear in the public lobby list
Authorized server (AUTHORIZE)Set GAME_PUBLIC to true and provide a valid GAME_TOKEN. Do not define GAME_HOST, GAME_LINK, or GAME_OFFICIALThis is how most players host public servers. The server appears in the lobby and is marked as an authorized server, ranked just below official servers

Key reminders

  • If you want your server to appear in the lobby and be searchable by all players, all three conditions must be met: 1) set GAME_PUBLIC to true, 2) provide a valid GAME_TOKEN, and 3) do not enable GAME_HOST or GAME_LINK.
  • If you want a password-protected private room, you can use GAME_LINK together with GAME_PASSWORD. This kind of server does not appear in the public lobby list.
  • A public server without a valid TOKEN will be blocked during registration and will report that the server TOKEN is invalid or expired.
  • After startup, the server sends a heartbeat to the lobby every 90 seconds to remain listed. If heartbeats stop, the server is removed from the list, but connected players are not disconnected.

5. Configuration examples

5.1 Sandbox mode server

INI
# Game authorization TOKEN (request from the official team; required for public servers)
GAME_TOKEN=
# Server name
GAME_NAME=The Sandbox
# Public IP (127.0.0.1 is only for local testing; use your real public IP so others can connect)
GAME_IP=203.0.113.10
# Server port (UDP)
GAME_PORT=26666

# Corpse despawn time (seconds)
GAME_DEAD_TIME=600
# Offspring count: 0 = disabled, 1 = one, 2 = two, and so on
GAME_CHILD=1

# Enable Sandbox mode
GAME_MODE_SANDBOX=true

# Register to the global server list
GAME_GLOBAL=true
# Maximum players
GAME_MAX_PLAYERS=50
# Server node (region hint for players only; no functional effect)
GAME_NODE=AS
# Public server
GAME_PUBLIC=true

# Allow gene proficiency
GAME_GENE_SKILLFUL=true
# Allow gaining proficiency from kills
GAME_KILL_SKILLFUL=true
# Allow gene learning
GAME_LEARN=true
# Game difficulty (higher is harder)
GAME_HARD=1
# No evolution eggs (eggs always stay in the current species)
GAME_EVOL=false

# Map name
GAME_MAP=Oasis
# Allow AI mate
GAME_AI_MATE=true

5.2 Evolution mode server

INI
# Game authorization TOKEN (request from the official team; required for public servers)
GAME_TOKEN=
# Server name
GAME_NAME=The Evolution
# Public IP (127.0.0.1 is only for local testing; use your real public IP so others can connect)
GAME_IP=203.0.113.10
# Server port (UDP)
GAME_PORT=26666

# Corpse despawn time (seconds)
GAME_DEAD_TIME=1200
# Offspring count: 0 = disabled, 1 = one, 2 = two, and so on
GAME_CHILD=1

# Enable Evolution mode
GAME_MODE_EVOL=true
# Allow eggs to contain evolution eggs (this is NOT the evolution-mode switch)
GAME_EVOL=true
# Enable Primeval mode
GAME_MODE_PRIMEVAL=true

# Register to the global server list
GAME_GLOBAL=true
# Maximum players
GAME_MAX_PLAYERS=50
# Server node (region hint for players only; no functional effect)
GAME_NODE=AS
# Public server
GAME_PUBLIC=true

# Game difficulty (higher is harder)
GAME_HARD=0
# Allow AI mate
GAME_AI_MATE=true