Skip to content

mmaulwurff/doom-toolbox

Repository files navigation

DoomToolbox

About

DoomToolbox is a collection of add-ons for Doom-based game engines which support ZScript, like UZDoom.

DoomToolbox is free and open source software. Add-ons are mostly licensed under GPLv3. Modules are mostly licensed under BSD-3-Clause. See SPDX-License-Identifier tag in each .org file for details. For third-party resources, such as image and sound files, see REUSE.toml files in their directories for licenses.

Add-ons:

ZScript modules:

Documentation:

HTML pages for Doom Toolbox should be available here. The source code is available on GitHub and Codeberg.

This project doesn’t use any AI tools.

Gallery

10.5x:

media/screenshots/10.5x.png

Final Custom Doom:

media/screenshots/FinalCustomDoom.png

SoundToScreen:

media/screenshots/SoundToScreen.png

Typist.pk3:

media/screenshots/Typist.pk3.png

Social

Help appreciated

  • playtesting: compatibility with games and mods, multiplayer
  • UX suggestions: visuals, wording, usability
  • code reviews: errors, style, readability
  • code contributions: optimizations, features (try to keep project scope)

Build

Warning: build is not tested on MS Windows. Build process may have platform-dependent steps at the moment. Help with Windows is appreciated!

Requirements: these must be installed and available in PATH environment variable:

  • Python, version >= 3.13
  • Emacs, version >= 30.1
  • UZDoom, version >= 4.14.3
  • Development tools (probably from a venv): pip install -r tools/requirements-dev.txt

Optional: Org mode extension for your preferred text editor, if it’s not Emacs. Org mode files can be edited as plain text, but an extension should add convenience features such as syntax highlighting.

See what can be built with command:

scons --help

Example:

scons FinalCustomDoom.pk3

All commands require that PATH environment variable has Emacs, tests also require UZDoom in PATH. All commands put their results in directory build, and may remove files and directories there.

Tests use internally: