The COG Factory / Level Design Projects

Imperial Outpost

Singleplayer garrison outpost — TWO LEVELS
DOWNLOAD ZIP · 233 KBBUILD 12026-09-05
Imperial Outpost

Q. Can a hand-drawn floorplan become a playable singleplayer mission — and then a SECOND one in the same episode, with doors that open and a mission that ends?

Yes, and the drawing is the specification both times. One project, two levels, one arc: clear the west wing and the episode moves you into the east one. The expensive finding is that level 1 shipped with paper-thin walls and they were measurable — every opening was inset 0.03 on BOTH sides of a plane two sectors share, and what that leaves is a ring with a room on either side and nothing in between. thinwall.py measured 16 pairs and 0.6582 square units of it, was demonstrated red before it was trusted, and reads 0.0000 on both levels now. The fix is a planning rule: carve the EXACT overlap, on the LARGER side only, and let the smaller face stay whole — which does not fight the buffer-zone rule but satisfies it, because a plane that would reach a free edge never crosses the face and is skipped. And a second bug fell out of giving the level a win state: jklib.episode_jk wrote gotoA = -1 on every row it had ever emitted, and −1 means STOP, so finishing level 1 would have rolled the credits instead of loading level 2.
archetypeSingleplayer garrison outpost — TWO LEVELS
projectp44-imperial-outpost
date2026-08-30
builtL1 19 sectors · 402 surfaces · L2 24 sectors · 478 surfaces · 3 doors · 18 troopers · TYPE 1 SEQ 2
packageP44.GOB, readme.txt, screenshot.jpg
build1 — 2026-09-05
sha25675f619f8325f11641d92bfc0053b417868f15b2c82592e5fa5856df71cf1cf28

Installing it

  1. Unzip it.
  2. Drop the .GOB into the episode folder of a Jedi Knight install — the one that already has JK1.GOB in it.
  3. Pick it from the episode list. On a libretro frontend, load the .GOB itself as content.

The GOB carries its own level, cogs, materials and sounds and reads the stock resource/ for everything else. There is no retail game data in the zip.

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

Textures generated for this project

p44wallp44floorp44ceilp44trimp44doorp44crat

The readme that ships with it

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

 P44.GOB

 A small Imperial garrison outpost in TWO LEVELS, built from two hand-
 drawn floorplans. Fight through the west wing, and when the last
 stormtrooper falls the mission completes and drops you into the east
 one -- a bigger ring of nine rooms and six corridors with three blast
 doors that really open. Eighteen stormtroopers, thirty-two pickups,
 and the level's own startup COG hands you a rail detonator on the way
 in.

 [cogfactory / p44-imperial-outpost]

 BUILD 1  --  2026-09-05
 sha256 75f619f8325f11641d92bfc0053b4178

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

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

INSTALLATION
------------------------------------------------------------------------
Drop P44.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.

CONTROLS
------------------------------------------------------------------------
  PLAY IT: New Game, and pick COG Factory p44 Imperial Outpost.
  You start each level with fists, a Bryar pistol, and a RAIL DETONATOR with 30 charges.
  LEVEL 1: the stormtrooper rifle is in the armoury, the repeater in the barracks,
    and the bowcaster in the store room at the far end.
  LEVEL 2: the rifle is upstairs-left, the repeater in the south-east room and the
    bowcaster in the south-centre one. THREE DOORS OPEN -- walk up and press USE.
  KILL EVERY STORMTROOPER to complete a level. Level 1 then loads level 2.

NOTES
------------------------------------------------------------------------
  THE DRAWING IS THE SPECIFICATION, TWICE. Every coordinate in both
  levels is a floorplan read at 0.005 world units per pixel and
  rounded to 0.05. The only numbers chosen rather than measured are
  the ceiling heights, the doorway sizes and the door jambs -- a plan
  view cannot carry those.

  NO PAPER-THIN WALLS, AND IT IS MEASURED. Two sectors that touch on a
  plane share a rectangle with a room on both sides of it; whatever of
  that rectangle is not adjoined is a partition with NOTHING inside
  it. Level 1 shipped with 0.6582 square units of exactly that around
  its doorways, because every opening was inset from the shared face
  on both sides. Both levels now carve the exact overlap, on the
  larger side only, and measure 0.0000.

  THREE DOORS THAT OPEN, AND EITHER LEAF OPENS BOTH. Each is a
  threshold cut into a corridor -- two sector halves 0.26 wide and
  0.48 tall against the corridor's 0.35 by 0.60, so the set-back is a
  reveal you can see the depth of as you walk through -- plus two 3DO
  leaves that carry half the door texture each and reassemble it when
  shut.

  ALL FOUR TRIM BANDS, ON A RULE. One 128-pixel sheet carries four
  bands and level 2 uses every one of them for a reason: red-and-white
  hazard where there IS a hazard (door surrounds, the pillar's exposed
  corners, the threshold plates), the dark conduit strip where
  services run (the corridors and the two service spaces), the
  stencilled course on every other room wall, and the yellow-and-black
  checker at the base of all of them.

  THE PILLAR IS NOT A SHAPE. Both levels have one filled block in the
  top hall, and a sector in this engine must be convex, so the hall is
  three boxes that tile a U and the pillar is simply the region none
  of them covers. Absence of a sector is solid matter. In level 2 it
  hangs down from the north wall instead of standing against the south
  one, so the U opens the other way.

WHAT IS IN THE GOB
------------------------------------------------------------------------
       139  episode.jk
    127692  jkl\p44outp.jkl
      2825  jkl\p44outp.manifest.json
    149789  jkl\p44outp2.jkl
      2981  jkl\p44outp2.manifest.json
      2975  cog\p44done.cog
      3356  cog\p44door.cog
      1691  cog\p44start.cog
      2257  3do\p44leafl.3do
      2253  3do\p44leafr.3do
     32908  mat\p44ceil.mat
     32908  mat\p44crat.mat
     32908  mat\p44door.mat
     32908  mat\p44floor.mat
     32908  mat\p44trim.mat
     32908  mat\p44wall.mat

    493406  bytes in 16 entries

CREDITS
------------------------------------------------------------------------
  Generated by tools/cogfactory in the openjkdf2_libretro tree.
  Geometry authored through SED (github.com/smlu/SED) over the
  cogfactory bridge.
  LucasArts did not make this. Jedi Knight is theirs; this is a fan-
  made level.

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

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