The COG Factory / COG Factory Experiments

MP Mode

2026-08-24
DOWNLOAD ZIP · 194 KBBUILD 12026-09-05
MP Mode

A one-room multiplayer probe. Four spawn seats, a wall of 200 switchable panels, and cogs that print what the engine thinks the session is: IsMulti, IsServer, GetNumPlayers, which walkplayer is yours, and whether SetWallCel is being replicated.

A TYPE 2 episode direct-boots into a real MP session through the ordinary harness flow, on the first frame any cog runs — which converts every MP-only branch in the engine from unreachable to assertable. And a seat cannot be a walkplayer.
projectp25-mpmode
date2026-08-24
packageP25.GOB, readme.txt, screenshot.jpg
build1 — 2026-09-05
sha2563ecbcd9473631b49f75b060c3bebe360c38c5f5e71d78dee909a0ee22eea2449

Installing it

  1. P25.GOB is a level. Unzip it and drop the GOB into your episode folder.
  2. Pick it from the episode list.

The GOB carries its own level, cogs, and materials.

These are living projects, not finished releases. A level is rebuilt whenever something is learned — a lighting rule, a texture orientation, a whole detail pass — and it keeps its filename through all of it. The build number is how to tell which one you have: it is printed in the readme inside every zip, and it only moves when the level's bytes actually change.

Screenshots

2 of these 3 tiles are harness working frames (640×480), flagged on the tile: not yet re-shot at 1280×720 with the HUD and dev text off.

The readme that ships with it

========================================================================
 Jedi Knight Level

 P25.GOB

 A one-room MULTIPLAYER probe level. Four spawn seats, a wall of 200
 switchable panels, and a set of cogs that print what the engine thinks
 the session is: IsMulti, IsServer, GetNumPlayers, GetMaxPlayers, which
 walkplayer is yours, and whether a cog's SetWallCel is being
 replicated.

 [cogfactory / p25-mpmode]

 BUILD 1  --  2026-09-05
 sha256 3ecbcd9473631b49f75b060c3bebe360

 This level is not made or distributed by LucasArts
 Entertainment Co.
========================================================================

THIS PACKAGE
------------------------------------------------------------------------
  P25.GOB          the level
  readme.txt       this file
  screenshot.jpg   what it looks like

INSTALLATION
------------------------------------------------------------------------
Drop P25.GOB into the `episode` folder of a Jedi Knight install (the one
that already has JK1.GOB in it) and pick it from the episode list.
Nothing else needs to change: the GOB carries its own level, cogs,
materials and sounds, and reads the stock resource/ for everything else.

On a libretro frontend, point the core at the GOB itself. It needs a
folder beside it holding `resource/` from a real install -- that is
where the retail data lives and none of it is in here.

NOTES
------------------------------------------------------------------------
  This is the cogfactory's FIRST TYPE 2 (deathmatch) episode. In a
  stock Jedi Knight it should therefore appear in Multiplayer -> Host,
  not in the singleplayer episode list. Whether it does is the one
  thing the automated tests cannot answer.

  It prints a lot. Every readout goes to the dev console as well as
  the log; that is the point of the level.

  The panel wall repaints itself a few seconds in. Yellow is the last
  of four cels; the wall changing colour means the cogs ran.

  The other three walkplayers are spawn points, not characters. Jedi
  Knight disables every player thing but yours, so in a solo session
  they are invisible and you walk straight through them.

WHAT IS IN THE GOB
------------------------------------------------------------------------
        91  episode.jk
     47856  jkl\mpmode.jkl
      4324  cog\p25cond.cog
      1947  cog\p25flgs.cog
      1957  cog\p25locl.cog
       556  cog\p25nspa.cog
      6984  cog\p25read.cog
      6323  cog\p25seat.cog
       567  cog\p25sypa.cog
      2380  mat\p25cell.mat
      2188  mat\p25flor.mat
      2188  mat\p25wall.mat

     77361  bytes in 12 entries

CREDITS
------------------------------------------------------------------------
  Generated by tools/cogfactory in the openjkdf2_libretro tree
  (project p25-mpmode).
  Built to measure, not to play.

  The readme format is styled after SM Sith Lord's cog headers,
  because his are the ones everybody read.

========================================================================