Project Epoch is built with the modding framework TSWoW (TypeScript WoW) this repo is simply a fork of that project with the occasional extra function that needs to be merged upstream or epoch specific additional functionality. All credit for this basis should go to TSWoW. Please see below for further details. Any other TS-WoW project is free to cherry pick or grab from this.
TSWoW (TypeScript WoW) is a free modding framework, mod loader and integrated development environment for the World of Warcraft: Wrath of the Lich King (WotLK) expansion build around the TrinityCore emulator.
With TSWoW, you use the TypeScript programming language and the VSCodium editor to easily modify the World of Warcraft game data and to script the behavior of the server.
-
Modding Beginners - We have crash course aimed just at getting new people started!
-
Modding Veterans - TSWoW is primarily aimed at making modding more efficient and powerful. You will very fast realize the power of improving your workflow using programming.
TSWoW is a programming environment, and the language we use is TypeScript. This is among the easier languages to learn, and is very similar to Java, C#, JavaScript, Python etc. If you know any of those, you can probably learn TSWoW by just following the crash course. However, if any of the following is foreign to you then you might want to review them before you get started:
- Integrated development environment (IDE)
- JSON
- Functions, objects, classes, methods
- Callback functions / Delegates
- Command-line interface
The purpose of this document is to walk through building the Project Epoch fork of TS-WoW with TrinityCore from source as well as link to relevant upstream documentation.
Important Notes
- Please make sure there are no spaces anywhere in the pathname to your WoW client or the TSWoW installation.
- Git
- Node.js (exactly version 18.12.1)
- VC Redist Latest x86
- VC Redist Latest x64
- VC Redist 2013 x86
- VC Redist 2013 x64
- Visual Studio Code
- Visual Studio 2022 Community
- World of Warcraft 3.3.5a Client
- Note: Currently, I can only verify that the enGB and enUS clients work
It is recommended to keep your Client alongside your source build due to a Windows limitation with symlinking required for TS-WoW to function.
- Create a directory in a location of your choosing named
EpochSource
. - Within
EpochSource
create the following subdirectories:build
client
(Paste the contents of your 3.3.5a enUS / enGB client within)release
- Using a terminal of your choosing such as
PowerShell
orGit Bash
reach yourEpochSource
directory. git clone https://github.com/Project-Epoch/tswow.git --recurse source
- Wait for clone to complete, you should have a final
source
directory alongside your other 3build
,client
,release
folders. - Copy
source/build.default.conf
tosource/build.conf
and open it. Here you can configure where tswow should place build and install directories. - Set the following within
source/build.conf
BuildDirectory = "../build"
InstallDirectory = "../release"
- Using a terminal of your choosing such as
PowerShell
orGit Bash
reach yourEpochSource/source
directory. - Run the command
npm i
- When compiling it is recommended that you have closed your world and auth servers, if this is your first build this is irrelevant.
- Using a terminal of your choosing such as
PowerShell
orGit Bash
reach yourEpochSource/source
directory. - For a first setup we strongly recommend a full build which will get any further dependencies and compile every part of TS-WoW. From this point you can later more strategically compile only certain aspects.
- Run
npm run build full
- This may take a long time to complete.
- Once this completes your
EpochSource/release
directory should now be populated.
- To rebuild only the core ensure that you have closed any running framework instances or world / auth servers.
- Run
npm run build trinitycore-relwithdebinfo
. - Once complete run
npm run start
within yourEpochSource/release
directory.
- Within
EpochSource/release
opennode.conf
and setDefault.Client
to your WoW client path. This should be in theEpochSource/client
directory. - Using a terminal of your choosing such as
PowerShell
orGit Bash
reach yourEpochSource/release
directory. - Run the command
npm run start
. This will start the automatic installation and then start the server. Wait for the core database installation and maps to be extracted. This is a long process on the first installation and can take a long time depending on your machine. 20-30 minutes isn’t rare. You know the installation is done when you see a message similar to
TrinityCore rev. 2a67a101096e 2021-04-23 09:24:53 +0200 (tswow branch) (Win64, RelWithDebInfo, Dynamic) (worldserver-daemon) ready...
- To create a gm account, type
create account myuser mypassword 3
- You can now start the client with the command
start client
and log in to the game
For common issues when installing please refer to upstream TS-WoW Documentation.