What ships in each download
Every StoryForce release publishes 2 zips per platform, and they contain different things.
Both zips extract to a folder called
StoryForce. Dropping the wrong one intoGameDatalooks like it worked and then fails the moment you try to play.
What it does
A release build produces a client zip and a server zip for each supported platform. Both are built from the same source and both carry the same sealed asset pack. What differs is the code modules and the loose files sitting beside that pack.
Builds are published for Windows 32-bit and 64-bit, Linux 32-bit and 64-bit, and macOS on both Intel and Apple silicon. Each of those 6 platforms gets its own pair.
The client download
StoryForce - Client extracts to a StoryForce folder holding:
- the 3 game modules, named
jampgame,cgameanduiwith your platform's suffix storyforce.pk3, the sealed asset packlogin.cfg, where your saved account details are writtenradialmenu.cfg, the layout of the in-game radial menuloadtips.txt, the lines shown on the loading screenPlayStoryForce.batandPlayStoryForce.sh, the launchers
This is the one a player wants. See install the client.
The server download
StoryForce - Server extracts to a StoryForce folder holding:
- one game module,
jampgamewith your platform's suffix storyforce.pk3, the same sealed asset pack the client getsstoryforce_server.cfg, the config file the server must execute at launchllm/, the base prompt and persona library for AI NPCs
There is no cgame or ui module, because a dedicated server draws nothing. There is no launcher and
no server executable either. See
installing a dedicated server.
Inside storyforce.pk3
A pk3 is a plain zip file that Jedi Academy reads game content out of. StoryForce ships exactly one, and it holds 7 folders:
ext_data, the NPC definitionsfonts, the interface typefacesgfx, effects and interface artworkmodels, player and prop modelsshaders, surface definitionssound, speech and effects audioui, every menu screen the mod adds
The same file goes into both zips, unchanged. A server needs it as much as a client does, because the NPC definitions and interface menu files live inside it.
Everything else ships loose, outside the pk3. That is deliberate. Those are the files StoryForce reads,
writes and edits while it runs, and a file inside a pk3 cannot be edited in place. login.cfg gets
rewritten every time you save an account. storyforce_server.cfg is yours to change. The llm/ folder
has persona files written into it during play.
Which download you want
Match the download to what the machine does:
- playing on somebody else's server, or hosting a listen server from inside the game, means the client zip
- running a dedicated server nobody sits at means the server zip
- running the container image means the server zip as well, purely to extract
storyforce.pk3andllm/from it
The container image is built on a different path from the release packer, so it contains neither the
asset pack nor the llm/ folder. See Docker hosting.
Things to note
- The server zip cannot be played from. It has no
cgameoruimodule, so the game has nothing to draw with. - The client zip cannot host a dedicated server properly. It has no
storyforce_server.cfg, which means no working kick or ban. - Neither zip contains an executable. The client zip has launcher scripts that find an OpenJK client you already have. The server zip has nothing of the kind.
- The asset pack is not optional on a server. Without it there are no NPC definitions and no menu files, and players connect to something that barely functions.
- Do not unpack
storyforce.pk3. The game reads it as an archive. Loose copies of the same files shadow it in confusing ways. - Both zips extract to the same folder name. Extracting one over the other leaves a mixture, which is worse than either.
Next
- Installing a dedicated server: putting the server zip to work on bare metal
- Docker hosting: the container route, and the pk3 and
llm/folder it needs from the server zip