Skip to content

Introduction

Work in progress!

This is an unofficial and incomplete documentation about the game file structure and modding. For any information not found here, please look into Discussions and post any question there.

Before you start with modding it's a good idea to extract all the game's resource files. Please follow the instructions in pre-mod.md for this.

Game Assets

The game assets are usually stored in .gob container files. GOB files can be extracted using gobext tool.

The resource folder structure:

Root
│
├── 3do        # 3D models (.3do)
│   └── key    # Animations (.key)
├── cog        # COG scripts (.cog)
├── mat        # Material texture files
├── misc
│   ├── ai     # AI behavior definition files (.ai)
│   ├── pup    # Character movement puppet files (.pup)
│   ├── snd    # Sound definition files (.snd)
│   ├── spr    # Sprite definition files (.spr)
│   └── ui     # Contains only unused default font.gcf font atlas file
├── ndy        # Level files (.cnd/.ndy)
└── sound      # Sound files (.wav)
  • COG script


    COG scripts are the heart of game logic. They define the mechanics behind the game, like cutscenes, level goals, unlocking/locking doors, weapon definitions, etc.

  • KEY


    KEY file (short for Keyframe file) defines various animations of the mesh joint nodes of associated 3DO model. To edit KEY animations use Sith addon for Blender.

  • PUP


    Puppet file (.pup) defines object movement animations.

Game level files

There are 2 types of level files:

File Naming Convention

Maximum length limit

The maximum file name length, including the file extension in Jones3D engine, is limited to 64 characters. Therefore, longer file names must be abbreviated.

Common Abbreviations

Abbreviation Meaning Abbreviation Meaning
dflt Default mo Monkey
bk Back ol Old Lady
by Boy rft Raft
com Commie sn Snake
fr Front sp Spider
ib Ice Boss so Sophia
ij Indy Jeep tu Turner
in Indy uw Under Water
inv Inventory vo Volodnikov
ir Indy Raft yl Young Lady
lb Lava Boss
mc Mine Car

Note

Additionally, every file referring to a specific game level is prefixed with three letters of the abbreviated level name (e.g., pyr_, pru_...).