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

  1. Extract the server zip into your GameData folder, the one that already holds base.
  2. Set your storyforce_server.cfg. See Server configuration.
  3. On Windows, run storyforce_server.bat. On Linux or macOS, run chmod +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.