feat: add NWN server .env template generator
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
import crypto from "crypto";
|
||||
|
||||
interface ServerEnvOptions {
|
||||
moduleName?: string;
|
||||
dmPassword?: string;
|
||||
mysqlPassword?: string;
|
||||
mysqlRootPassword?: string;
|
||||
maxClients?: number;
|
||||
port?: number;
|
||||
}
|
||||
|
||||
export function generateServerEnv(opts: ServerEnvOptions = {}): string {
|
||||
const mysqlPassword = opts.mysqlPassword || crypto.randomBytes(16).toString("hex");
|
||||
const mysqlRootPassword = opts.mysqlRootPassword || crypto.randomBytes(16).toString("hex");
|
||||
|
||||
return `# Generated by Layonara Forge
|
||||
# NWN Server Settings
|
||||
NWN_MODULE=${opts.moduleName || "Layonara_6-21"}
|
||||
NWN_SERVERNAME=Layonara-Dev
|
||||
NWN_PLAYERPASSWORD=
|
||||
NWN_DMPASSWORD=${opts.dmPassword || "devdm"}
|
||||
NWN_ADMINPASSWORD=${opts.dmPassword || "devdm"}
|
||||
NWN_PORT=${opts.port || 5121}
|
||||
NWN_PUBLICSERVER=0
|
||||
NWN_MAXCLIENTS=${opts.maxClients || 4}
|
||||
NWN_MINLEVEL=1
|
||||
NWN_PAUSEANDPLAY=1
|
||||
NWN_PVP=2
|
||||
NWN_SERVERVAULT=1
|
||||
NWN_ELC=0
|
||||
NWN_ILR=1
|
||||
NWN_GAMETYPE=9
|
||||
NWN_ONEPARTY=0
|
||||
NWN_DIFFICULTY=2
|
||||
NWN_AUTOSAVEINTERVAL=0
|
||||
NWN_RELOADWHENEMPTY=0
|
||||
NWN_TAIL_LOGS=n
|
||||
NWN_MAXLEVEL=45
|
||||
|
||||
# NWNX Core
|
||||
NWNX_CORE_LOG_LEVEL=6
|
||||
NWNX_CORE_SKIP_ALL=y
|
||||
NWNX_CORE_ALLOW_NWNX_FUNCTIONS_IN_EXECUTE_SCRIPT_CHUNK=y
|
||||
|
||||
# Enabled plugins
|
||||
NWNX_ADMINISTRATION_SKIP=y
|
||||
NWNX_AREA_SKIP=n
|
||||
NWNX_CHAT_SKIP=n
|
||||
NWNX_COMPILER_SKIP=n
|
||||
NWNX_CREATURE_SKIP=n
|
||||
NWNX_EFFECT_SKIP=n
|
||||
NWNX_ELC_SKIP=false
|
||||
NWNX_EVENTS_SKIP=n
|
||||
NWNX_FEAT_SKIP=n
|
||||
NWNX_FEEDBACK_SKIP=n
|
||||
NWNX_ITEM_SKIP=n
|
||||
NWNX_ITEMAPPEARANCE_SKIP=n
|
||||
NWNX_ITEMPROPERTY_SKIP=n
|
||||
NWNX_LAYONARA_SKIP=n
|
||||
NWNX_MAXLEVEL_SKIP=n
|
||||
NWNX_MAXLEVEL_MAX=45
|
||||
NWNX_NOSTACK_SKIP=n
|
||||
NWNX_OBJECT_SKIP=n
|
||||
NWNX_OPTIMIZATIONS_SKIP=n
|
||||
NWNX_PLAYER_SKIP=n
|
||||
NWNX_RACE_SKIP=n
|
||||
NWNX_RENAME_SKIP=n
|
||||
NWNX_RESOURCES_SKIP=n
|
||||
NWNX_SERVERLOGREDIRECTOR_SKIP=n
|
||||
NWNX_SQL_SKIP=n
|
||||
NWNX_STORE_SKIP=n
|
||||
NWNX_TRACKING_SKIP=n
|
||||
NWNX_TWEAKS_SKIP=n
|
||||
NWNX_UTIL_SKIP=n
|
||||
NWNX_VISIBILITY_SKIP=n
|
||||
NWNX_WEAPON_SKIP=n
|
||||
|
||||
# Disabled for local dev
|
||||
NWNX_HTTPCLIENT_SKIP=y
|
||||
NWNX_WEBHOOK_SKIP=y
|
||||
NWNX_METRICS_INFLUXDB_SKIP=y
|
||||
NWNX_REDIS_SKIP=y
|
||||
NWNX_THREADWATCHDOG_SKIP=y
|
||||
NWNX_PROFILER_SKIP=y
|
||||
|
||||
# Skipped plugins
|
||||
NWNX_APPEARANCE_SKIP=y
|
||||
NWNX_DAMAGE_SKIP=y
|
||||
NWNX_DATA_SKIP=y
|
||||
NWNX_DIAGNOSTICS_SKIP=y
|
||||
NWNX_DIALOG_SKIP=y
|
||||
NWNX_DOTNET_SKIP=y
|
||||
NWNX_ENCOUNTER_SKIP=y
|
||||
NWNX_EXPERIMENTAL_SKIP=y
|
||||
NWNX_LUA_SKIP=y
|
||||
NWNX_SWIG_DOTNET_SKIP=y
|
||||
NWNX_TILESET_SKIP=y
|
||||
NWNX_TIME_SKIP=y
|
||||
|
||||
# SQL
|
||||
NWNX_SQL_TYPE=mysql
|
||||
NWNX_SQL_HOST=layonara-mariadb
|
||||
NWNX_SQL_USERNAME=nwn
|
||||
NWNX_SQL_PASSWORD=${mysqlPassword}
|
||||
NWNX_SQL_DATABASE=nwn
|
||||
NWNX_SQL_LOG_LEVEL=6
|
||||
|
||||
# Tweaks
|
||||
NWNX_TWEAKS_DISABLE_PAUSE=y
|
||||
NWNX_TWEAKS_DISABLE_QUICKSAVE=y
|
||||
NWNX_TWEAKS_COMPARE_VARIABLES_WHEN_MERGING=y
|
||||
NWNX_TWEAKS_FIX_GREATER_SANCTUARY_BUG=y
|
||||
NWNX_TWEAKS_HIDE_PLAYERS_ON_CHAR_LIST=1
|
||||
|
||||
# Layonara plugin
|
||||
NWNX_LAYONARA_LOG_LEVEL=7
|
||||
|
||||
# Optimizations
|
||||
NWNX_OPTIMIZATIONS_ASYNC_LOG_FLUSH=true
|
||||
|
||||
# Rename
|
||||
NWNX_RENAME_ON_MODULE_CHAR_LIST=0
|
||||
NWNX_RENAME_ON_PLAYER_LIST=false
|
||||
NWNX_RENAME_ALLOW_DM=true
|
||||
|
||||
# MariaDB
|
||||
MYSQL_ROOT_PASSWORD=${mysqlRootPassword}
|
||||
MYSQL_DATABASE=nwn
|
||||
MYSQL_USER=nwn
|
||||
MYSQL_PASSWORD=${mysqlPassword}
|
||||
`;
|
||||
}
|
||||
Reference in New Issue
Block a user