Skip to content

Must Check Before Launch

1) Blocker: replace all defaultkey values

These must be changed before any production launch.

  1. Source/Metal_terra/Private/Core/Subsystems/NakamaConnectionSubsystem.cpp const FString ServerKey = TEXT("defaultkey");
  2. DevOps/Nakama/docker-compose.yml socket.server_key=defaultkey
  3. DevOps/Nakama/docker-compose.yml runtime.http_key=defaultkey
  4. DevOps/Nakama/docker-compose.yml --socket.server_key defaultkey
  5. DevOps/Nakama/data/config.yml http_key: "defaultkey"

2) Blocker: set runtime RPC secrets

Set these environment variables in the deployed server runtime:

  1. DS_RPC_SECRET
  2. LS_RPC_SECRET

Required rule:

  1. DS_RPC_SECRET and LS_RPC_SECRET must match Nakama HTTP/server key used by your secure RPCs.

3) Pre-launch verification command

Run this from repo root and confirm no blocking matches remain:

rg -n "defaultkey" -g "!Saved/**" -g "!Intermediate/**" -g "!Binaries/**" -g "!DerivedDataCache/**"

If documentation examples intentionally keep defaultkey, annotate those entries as non-runtime examples and make sure no executable/configuration path still uses it.

These are not active runtime config, but should be updated to prevent copy/paste mistakes:

  1. Edgegap instance ID
  2. DevOps/Nakama/data/config.yml

5) Blocker: full rebuild and full recook before release candidate

Before creating a launch build, do a clean build and clean cook/package (not incremental). At minimum, clear:

  1. Project Saved/
  2. Project Intermediate/
  3. Project Binaries/
  4. Previous packaged output folder

Reason: stale cook/asset-registry data can cause missing AssetRegistrySearchable tags (for example TankCharacterDef.CatalogIndex), which can break DS selection bootstrap and leave players unpossessed.