1 minute read

This document should outline the various sub-projects of TSWoW and their components.

wotlkdata - Main article

wotlkdata on GitHub

WotlkData is a TypeScript Object-Relational-Mapping framework that contains mappings for every DBC file for the 3.3.5a version of the game and every SQL table available for the current revision of TrinityCore that we use, and also contains some crude tools to modify client Lua/XML files. This project is the basis for all TSWoW data scripts and the TSWoW standard library.

tswow-stdlib - Main article

tswow-stdlib on GitHub

The TSWoW standard library is a TSWoW module that comes pre-packaged with the TSWoW release. It contains an API for data scripts that wraps around the raw DBC/SQL files WotlkData provides into coherent entities that can be more easily edited by users, such as Items, Classes, Quests and Creatures.

TrinityCore - Main article

tswow/TrinityCore on GitHub

TrinityCore is the server core that TSWoW uses. It stays fairly close to the original TrinityCore upstream to stay up to date with the latest bugfixes and improvements, and to not further split the community along yet another incompatible fork.

Compile Scripts

tswow-scripts on GitHub

This project could probably use a better name.

This project contains script files used to build TSWoW. It is located in tswow/tswow/tswow-scripts/compile/

Runtime

tswow-scripts/Runtime on GitHub

This project could probably use a better name.

This project contains script files used by the main TSWoW process that developers interact with. It contains tasks such as running a MySQL server, starting and stopping the worldserver, applying patches and so on.

Most of its files are located in tswow/tswow/tswow-scripts/runtime.

MPQBuilder

MPQBuilder on GitHub

This project is a c++ binary that is used to package MPQ files and to extract DBC/LUA/XML files from them.

Its files are located in tswow/mpqbuilder.

External Modules

These are the external modules used with little to no modification by TSWoW:

  • BLPConverter: Used to mass-convert blp and png images back and forth with the png and blp commands.

  • StormLib: The MPQ library used by MPQBuilder