Install a StoryForce server
Grab the server package from the StoryForce download page (which is not published yet).
Set your root password before the first boot. A fresh server seeds an account called storyforce at leadership admin, with a password published in the release.
That value is read once, on an empty database. Secure a new server.
Install the prerequisites
libcurl, on Linux. StoryForce loads it at runtime for outbound HTTPS requests, but the server zip does not ship it.
macOS supplies libcurl with the operating system. Windows uses WinHTTP instead.
Without either transport, every LLM NPC request and every plain Discord webhook post fails.
Outbound HTTPS, behind a strict firewall. Open masterjk3.ravensoft.com and master.jkhub.org so the server appears in the public lists, then one host per optional feature you turn on: api.anthropic.com for LLM NPCs, api.cloudflare.com for the database mirror, discord.com for webhooks.
Extract and start the server
- Extract the server zip into your
GameDatafolder, the one that already holdsbase. - Set your
storyforce_server.cfg. See Server configuration. - On Windows, run
storyforce_server.bat. On Linux or macOS, runchmod +x storyforce_server.sh, then run it.
Use the launcher rather than starting the binary yourself. It loads StoryForce, starts a public dedicated server and fixes fs_homepath at your GameData folder. A hand-started server uses the install folder when it is writable, then falls back to the operating system's OpenJK home folder.
An explicit fs_homepath can put the database, scenes and logs somewhere else again.