Skip to content
Python library for parsing and modifying ZZT worlds
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
zookeeper Fixed title screen mode screenshots hiding all players on the board r… Jan 2, 2019
.gitignore Finally publishing this. Aug 31, 2018
MANIFEST Removed leftover text. Aug 31, 2018
requirements.txt Finally publishing this. Aug 31, 2018



Zookeeper is a Python library for parsing, analyzing, and modifying ZZT worlds.

The goal is to have an easy to use library which can provide generic functionality for extracting data with straightforward Python scripts.


  • Editing of World information (health, ammo, starting board, set flags, etc.)
  • Editing of Board information (connecting boards, dark rooms, etc.)
  • Editing of Elements and their stats (color, characters, ZZT-OOP code)
  • Support for ZZT save file editing
  • Export boards to ZZT compatible BRD files
  • Create renders of ZZT boards
  • Create renders of ZZT scrolls/object code
  • Convert Font Mania .com files to PNG charsets
  • Documentation and example scripts to get you started

Planned Features

  • Super ZZT file parsing
  • Windows binaries of scripts to be used as tools for non-developers

Example Scripts

Removing the "board is dark" flag from all boards in Caves of ZZT:

import zookeeper

zoo = zookeeper.Zookeeper()

for board in zoo.boards:
    if board.is_dark:
        board.is_dark = False"LITCAVES.ZZT")

List the code of all objects on every board in Town of ZZT:

import zookeeper

# Load a file, then parse its world, boards, and elements in one line.
zoo = zookeeper.Zookeeper("TOWN.ZZT")

for board in zoo.boards:
    print("=" * 80)
    print("-" * 80)
    for stat in board.stat_data:
        if stat.oop_length:


  • Python3
  • Optional install of Pillow (currently not so optional)
You can’t perform that action at this time.