/zookeeper

Python library for parsing and modifying ZZT worlds

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Zookeeper

license

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.

Features

  • 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()
zoo.load_file("CAVES.ZZT")
zoo.parse_world()
zoo.parse_boards()

for board in zoo.boards:
    if board.is_dark:
        board.is_dark = False
zoo.save("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(board.title)
    print("-" * 80)
    for stat in board.stat_data:
        if stat.oop_length:
            print(stat.oop)

Requirements

  • Python3
  • Optional install of Pillow (currently not so optional)