Runeforge

A website and admin for Wrath of the Lich King realms

Runeforge

Runeforge runs a realm's website. It keeps the news and the pages, draws the Armory, counts the visitors, holds the polls and the players' accounts, and can send a few commands to the realm itself.

It's made for realms on AzerothCore 3.3.5a, and it knows them. An item on a page is the realm's own item, with the tooltip the game shows. A character in the Armory is drawn from the game's own models.

  1. 1Writing
  2. 2Pages and menus
  3. 3The Armory
  4. 4Players and the realm
  5. 5The look
  6. 6Keeping it safe
  7. 7Running Runeforge
  8. 8Getting Runeforge
  9. ·Colophon

1Writing

Posts are lists of blocks

A post is built from blocks: text, headings, pictures, galleries, YouTube videos, callouts, item cards, tables, two columns, spoilers, quotes, buttons, dividers and polls. Each one is added where it should go, and dragged if it should go somewhere else. On a wide screen the real site sits beside the editor and shows the post as it will look, changing as you type.

Text is markdown. Writing {{item|49623}} puts the realm's own item in the post, in its colour, with the tooltip the game would show it with (figure 2).

The Runeforge post editor showing a text block, an item cards block listing Shadowmourne, the Royal Scepter of Terenas II and Halion, Staff of Forgotten Love, and a callout block.
Figure 1 The post editor on Tales of Wrath, cut to its blocks. The item cards block looks each item up as its number is typed.
ShadowmourneBinds when picked upUniqueTwo-HandAxe954 - 1592 DamageSpeed 3.70(344.1 damage per second)+223 Strength+198 StaminaItem Level 284
Figure 2 {{item|49623}}, read from the realm when this page opened.
Kinds of block
15, each checked on the server and drawn by the same code in the editor's preview
History
The last 30 saves of every post, any of which can be brought back
Scheduling
To the minute. A scheduled post goes up on its own.
Videos
Nothing is loaded from YouTube until a visitor clicks to play

2Pages and menus

Pages, and the menus that lead to them

Pages of your own, such as Rules or a FAQ, get an address like /rules and are built from the same blocks as posts. Pages a site draws in its own code, like the eleven of Tales of Wrath's Game Guide, can still have their banner and introduction changed, blocks placed above or below their own content, or be taken off the site and put back later.

The bar under the logo, a drop-down menu with its own page of tiles, and the links in the footer are lists in the admin. A link to a page that's switched off drops out of every menu by itself.

The Runeforge menu editor with the Game Guide's Endgame group open, showing the Ebon Blade Incursions link with its name, address, lines, sword icon and picture.
Figure 3 The menu editor on Tales of Wrath, with one of its Game Guide pages open: the line on its tile, the shorter line for the drop-down, its painted icon and its picture.

3The Armory

Characters drawn the way the game draws them

Every character on the realm has a page laid out like the game's character window, with the game's own icons in the slots and its tooltips on the items.

In the middle stands the character. Runeforge takes the race's body model from the game client on the server, poses it standing, and shows the hair, beard and armour that the character's look calls for. It paints their skin, face and every piece of armour into one texture, in the order the client paints them, and puts the helm, shoulders and weapons where the body holds them. Transmogrified items show their new look, and a hidden helm stays hidden. Your browser draws the result itself; nothing is loaded from anywhere but this site.

Asking the realm for a character…

Figure 4 A character from the Armory, drawn as you read this. Drag to turn them around.

4Players and the realm

One account, and a line to the realm

Creating an account on the site makes a game account, checked the way the game checks it, and anyone who already plays logs in with the account they have. A player's page lists their characters on each realm and the bug reports they've sent, with the team's answers.

Polls take one vote per game account. The Hall of Fame ranks each realm's best by achievement points, honorable kills and the first to reach level 80; on Tales of Wrath it ranks the systems that realm adds, too.

From the admin, Runeforge can announce to a realm, send mail with gold and items, and mute, kick, ban or unban an account, and on Tales of Wrath it posts in the News window that realm adds to the game. These reach the realm as console commands, over a connection the realm accepts only from the machine it runs on.

announce The Scourge stirs near Icecrown.
wrathplus news post patch Patch 1.4 | The Saga's third chapter is open.
send money Varian "For the war chest" 5000000
mute Grimtusk 30 Spamming Trade
Figure 5 The kind of thing the admin sends a realm (the news line is Tales of Wrath's own). Every command is written to the activity log.

5The look

The site's look is a setting

The art behind the header, and which part of it stays in view on a phone. The word on the logo. The gilding of the big headings, and the colours of links and highlights. The days each holiday decorates the site, or a holiday left out altogether. None of it means touching code.

The Runeforge look editor showing the header art, Wyrmrest Temple at night, with the logo word WRATH over it, and the focus slider.
Figure 6 The look editor: the header art as the site will crop it, with the logo's word over it.

6Keeping it safe

What it won't let a stranger do

  • Admins sign in with a password and, once they turn it on, a code from an authenticator app.
  • The admin opens only from the home network, even after the site is on the internet.
  • The site reads the realm's database through a login that can only read, and only the tables it shows.
  • Game accounts are made and checked through a few stored procedures. The site never sees a password verifier, and can't change a GM's account.
  • Too many wrong passwords lock an address out for a while, and every change and sign-in goes in the activity log.
  • Visitors are counted without cookies. A visitor is a hash whose salt is thrown away every day, so nobody is followed from one day to the next.

7Running Runeforge

Sites that run on Runeforge

Every site that runs on Runeforge is its own: its own name, look, pages and realms. These are the ones running it now.

The front page of Tales of Wrath: the WRATH logo over Wyrmrest Temple at night, its menu, and a notice that everything is played on the test realm first. This website Tales of Wrath The Lich King's war, continued Visit the site →

Tales of Wrath is where Runeforge was first written, and where every part of it is tried before anything else.

8Getting Runeforge

Not out yet

Runeforge isn't available to download yet. It runs one site today, and the plan is for any realm to be able to use it for its own project.

Before that, the parts that only Tales of Wrath has (its Game Guide pages, its News window, its own systems in the Hall of Fame) have to become things a site can switch on, and setting it up has to be as simple as pointing it at a realm's database and client. When it's ready, it will be on this page first.

·Colophon

How it's made

Runeforge is plain Node.js with no packages: about twelve thousand lines, all of them its own. The pages use nothing but the browser's own APIs, and the 3D viewer is some 240 lines of WebGL.

The content is kept as plain JSON files. Each is written to a temporary file first and then moved into place, so a crash never leaves half of one. The game's own formats, DBC tables, M2 models and BLP textures, are read directly, without converting anything by hand.

It was first written in 2026, for Tales of Wrath, and runs that site from a mini PC beside the realm.