Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.vscode
node_modules/
**/node_modules/
.pnpm-store/
.pnp.*
.yarn/
yarn.lock
*.tsbuildinfo
*.db-shm
*.db-wal
.tmp
38 changes: 37 additions & 1 deletion UndauntedDeployServer/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,40 @@ PORT_RANGE_BEGIN=
PORT_RANGE_END=
GAMESERVER_BINARY_PATH=
METAGAME_API_KEY=
SECONDS_TO_WAIT_BETWEEN_GAMESERVER_STARTUP=
SECONDS_TO_WAIT_BETWEEN_GAMESERVER_STARTUP=0
GAMESERVER_STARTUP_POLL_INTERVAL_MS=100
GAMESERVER_STARTUP_TIMEOUT_SECONDS=60
GAMESERVER_PORT_RELEASE_TIMEOUT_MS=5000
# Show a console window for each gameserver process. File logging remains enabled separately.
GAMESERVER_CONSOLE_LOG=false
# off, report (scan only), safe (force textures/materials collectible), or aggressive
# (also force sounds and inactive-map objects collectible). Cleanup runs once before readiness,
# only after initial load clears and while both tracked and raw connection counts are zero.
GAMESERVER_ASSET_STRIPPING_MODE=aggressive
# Include objects whose outer package belongs to a loaded but non-current map in aggressive mode.
GAMESERVER_STRIP_INACTIVE_MAP_PACKAGES=true
# Write a timestamped asset-strip-*.jsonl candidate manifest beside the game executable.
# Summary cleanup metrics are logged regardless; leave this false to avoid large manifests.
GAMESERVER_ASSET_STRIPPING_LOG_DETAILS=false
# Maximum pre-readiness wait for initial load to clear and both connection counts to remain zero.
# A timeout skips cleanup and publishes readiness; it never retries GC during gameplay.
GAMESERVER_ASSET_GC_WAIT_SECONDS=15
# Explicit local-development opt-in for native gameserver profiling files.
# Missing or false means no profiling file or writer thread.
GAMESERVER_PROFILING=false
# Native profiling interval in seconds. Invalid values fall back to 30 seconds.
GAMESERVER_PROFILE_INTERVAL_SECONDS=30
# Maximum age of the reusable actor consideration list; world/level actor changes still rebuild immediately.
GAMESERVER_CONSIDER_CACHE_MAX_AGE_MS=250
# DeployServer process CPU/memory sampling interval in seconds.
DEPLOYSERVER_PROFILE_INTERVAL_SECONDS=60
# DeployServer log path. Relative paths resolve from the DeployServer working directory.
DEPLOYSERVER_LOG_FILE=deployserver.log
ADOPT_GAMESERVER=true
# Shut down idle empty ramsgate after this many seconds.
# When both tracked and raw NetDriver connection counts at zero. Set 0 to keep it running.
RAMSGATE_IDLE_SHUTDOWN_SECONDS=10
PREWARM_TRAINING_DOJO=false
TRAINING_DOJO_IDLE_SHUTDOWN_SECONDS=300
HUNT_IDLE_SHUTDOWN_SECONDS=180
ESCALATION_IDLE_SHUTDOWN_SECONDS=30
18 changes: 18 additions & 0 deletions UndauntedDeployServer/build.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const path = require("path");
const { build } = require("esbuild");

build({
absWorkingDir: __dirname,
entryPoints: ["./src/server.ts"],
bundle: true,
platform: "node",
target: "es2022",
format: "cjs",
packages: "external",
minify: true,
legalComments: "none",
outfile: "./dist/server.js",
}).catch((error) => {
console.error(error);
process.exit(1);
});
Loading