Skip to content

Torg Eternity: Tharkold Day One, Part 5

The squad of Russian soldiers had just escaped from a nuclear detonation and were recovering their wits when some kind of monster started ripping open their T-90 battle tank!

The Russian spetsnaz team consisted of:

  • “Dead-Eye”, the sniper. (played by Antony)
  • “Oversight”, the squad commander. (played by Bill)
  • “Drivetrain”, the driver/mechanic. (played by Dante)
  • “Stitches”, the medic. (played by Drew)

As the creature peeled open the top of the tank’s turret, everyone got a quick look at it, and it looked like a God-damned grey-skinned 12 foot tall demon from hell, only with one forearm replaced by a gun! They quailed at the sight and then immediately started looking for another way out!

Someone asked if there was a hatch on the bottom of the crew compartment, and I said sure. I dunno if tanks really have such an escape, but it seemed reasonable and they probably weren’t getting out alive otherwise! As they quickly slipped out the bottom Drivetrain took off his grenades and rigged the pins with a long cord. He was the last one out, and when he heard the demon roar in frustration at having lost its prey, he yanked on the cord! The pins popped out. A moment of silence was followed by a deafening explosion – the tank shook and the thing screamed and after that only a high-pitched whine could be heard.

From a safe vantage point, Oversight extended the portable RPG launcher that he took with him from the abandoned Tigr, aimed it at the demon on top of the T-90, and fired! The creature was rocked by another explosion! Stitches threw a grenade and then started blasting away on full auto with his assault rifle. The monster started chanting strange words, and chains erupted out of the ground around Oversight, trying to ensnare the commander, but he managed to jump out of the way. Then the beast shot a bolt of energy at Stitches with his gun-arm, Wounding the medic.

The team spread out and backed away from the demon while unloading clip after clip into it, but the monster shrugged off their bullets and went on the attack, firing its energy gun, lashing out with an electrified whip, and summoning chains to bind the weak, mewling humans. It just about killed Dead-Eye with an energy blast that did two Wounds, and would have finished him off. But Oversight played a Nemesis card, which gave both the commander and the technodemon some more Possibilities, and focused the creature’s attention on him! Naturally, Oversight’s gun jammed right after that. Stitches ran to tend to the sniper’s injuries while the demon advanced on the squad leader.

And then Drivetrain unloaded a clip into its head, and the demon tried to use its own Possibilities to avoid the hit. But Stitches had the Negation perk, which let him spend a Possibility to counter another’s, and the demon took the damage. The bullets didn’t penetrate the metal parts of its skull, but the sustained fire rattled it enough after all the other shocks to knock it out. The vision from hell took another step towards Oversight, and then fell forward, knocking the commander down as well.

Once the team had pulled Oversight free, he went to work trying to saw the mechanical parts off of the demon’s body. Meanwhile the others looked around. Moscow had been hit by a nuke, launched by Russia’s leaders. The black column was gone, but so was much of the city. And they were probably all irradiated. They still had the data from the secret lab, but… now what?

Stitches played his Salvage cosm card, which allowed him to roll a streetwise test and find a useful item of that value or lower. He spent a Possibility on the roll, because why not at that point, and scored well enough that they found another GAZ Tigr infantry transport behind the rubble of what was once a building. The vehicle was laying on its side and had been shot at, but miraculously it was still operational.

Then came the final decision – what to do with the data? Oversight and Drivetrain wanted to take it back to command, as they were ordered to do. Stitches and Dead-Eye were shaken enough by the whole experience to wonder if maybe that was a bad idea (it was). The players rolled dice to resolve the tie, and the “go rogue” side won. They got in the Tigr and drove off to an uncertain future in a land they would now hardly recognize.

The End



Torg Eternity: Character Generator, Custom Skills

This is part of the continuing discussion on how to customize the game data in the TOCG character generator for the Torg Eternity roleplaying game. Please go here for the start of the series. This post examines how to customize skills. Read more…

Torg Eternity: Character Generator, Custom Races

This is part of the continuing discussion on how to customize the game data in the TOCG character generator for the Torg Eternity roleplaying game. Please go here for the start of the series. This post examines how to customize races. Read more…

Torg Eternity: Character Generator, Custom Cosms

This is part of the continuing discussion on how to customize the game data in the TOCG character generator for the Torg Eternity roleplaying game. Please go here for the start of the series. This post examines how to customize cosms. Read more…

Torg Eternity: Character Generator, Custom Data

In the installation directory for TOCG, my character generator for the Torg Eternity Roleplaying Game, there are two folders: Data and CustomData. Inside the Data folder is TocgGameData.xml, which holds all of the rules items. You could alter this file to insert your own game elements or edit existing ones, but if you did, your changes would be lost when the next software update overwrites that file. So to allow users to customize the data, I added the ability to have a file with all of your personal campaign’s changes in the CustomData folder. That file should be named CustomGameData.xml. When the program starts up, it reads in the TocgGameData file, then the CustomGameData file, and then merges the information from both files together.

The big impediment to customizing the program’s data is that it is written in XML, a widespread data storage format that is related to HTML. If you haven’t tinkered with websites or programming, you probably don’t know either of those formats. But don’t worry! It’s really not that complicated. Or at least, what you need to know for this task is not complicated. I’ll explain everything you need to know about XML and how to edit the game data here.

XML 101

The first step is to get a text editor that can display XML in a readable manner. I would recommend something like Notepad++, which is free and pretty handy. Once you have a suitable text editor, start it and open up the EXAMPLE CustomGameData.xml file in the CustomData directory. Then do a “Save As” on the file, renaming it to CustomGameData.xml. This is the file the character generator will read in at startup.

XML data is organized by “elements”, which look like this: <SomeLabel> </SomeLabel>. The “SomeLabel” can be just about any plain text, with no spaces. The text – the element’s “name” – is enclosed by < > in the first instance (the start element), and </ > in the second (the end element). Elements can be nested inside of one another:





Nested elements are usually put on a different line and indented for readability.

Elements can also have text inside of them:

<AnotherLabel>This is some text, but it could also be just a number, or an encrypted string, or something else.</AnotherLabel>

An element with no other elements or text inside of it can be written like this: <SomeLabel /> to avoid cluttering up the file with unnecessary end elements.

Elements can also have “attributes”, which have a name as well as a value. The value is enclosed in quotes. An element with attributes and no nested data looks like this:

<SomeLabel someAttribute=“someValue” anotherAttribute=“anotherValue” />

There are also “comments”, which are a kind of element that you can put whatever you want inside of. The program will ignore those sections. A comment looks like this:

<!– Comment text goes here. –>

Everything between the <!– and the –> is whatever you want it to be. This can be useful to making notes to yourself about the different parts of the file. The EXAMPLE CustomGameData.xml file already has some comments that give some pointers about the different game elements; you can safely ignore or delete those in your personal CustomGameData file.

That’s basically all you need to know about XML in order to add your own custom data to the character generator.

The TOCG Data Model

But that’s not all you need to know! The program expects elements and attributes with particular names and values, that are arranged in a particular order. The expected arrangement can be codified in a XML schema file, but that’s way beyond the scope of what I’m discussing here. It’s easier to just explain the different game elements and how to add or modify them in plain English.

The CustomGameData File

Your new CustomGameData.xml file that you created earlier starts with:

<?xml version=“1.0” encoding=“utf-8”?>

and ends with:


Don’t edit or remove those in any way. Everything you want to add has to go between the “TocgGameData” start and end elements.

Discussing how to add, edit, delete, and/or restrict access to each game element takes up a lot of space, so I’m going to do them in separate posts and then link to them here when they’re available. Here are the different elements that can be placed inside of the “TocgGameData” element:

  1. Cosms
  2. Attributes
  3. Races
  4. ClearanceLevels
  5. Skills
  6. PerkCategories
  7. PerkLimitations
  8. Perks
    1. Basic Perks
    2. Advanced Perks
    3. Enhancements
  9. Faiths
  10. Miracles
  11. PsiPowers
  12. Spells
  13. Gear
  14. SpecialAbilities
  15. RandomTables

We’ll start with Cosms but jump around a bit because some sections are more important than others. Attributes, for example, shouldn’t be messed with at this time, so I won’t be explaining how to edit them right away (although I am working to make the program less tightly-bound to the Torg Eternity rules, so that you could eventually edit the attributes as well – to use the original Torg attributes, for example).

There are also some other nested elements that are used in multiple places, and deserve their own topics:

  1. Prereqs
  2. Choices
  3. Effects
  4. Qualities

Those elements will be explored as they come up.


Kingmaker: Intermission #3, Session 6, Part 3

In the morning, the party ate breakfast and then prepared to finally meet with the King of Pitax, Castruccio Irovetti! As the visiting dignitaries strode down the length of Irovetti’s massive throne room, they were awed by the sight of what awaited them at the other end. Stained glass windows, each depicting some mythic deed of the King’s and brightly lit by the morning sun, towered above a chair carved from burgundy stone, which was topped by a finely detailed gargoyle. The throne sat on a dais of white marble with veins of red, and on the throne sat Irovetti himself. He looked much like an adventurer-king in his armor and cloak, and he held a strange metal rod that had blades large and small radiating out from one end.

But King Irovetti was not the most notable figure arranged at the end of the hall! Aside from the expected guards and retainers, there were a half-dressed muscle-bound savage who stood by Irovetti’s side, a pair of armed & armored trolls, another armored giant with blue skin, and – a tiger-woman! Furthermore, the gargoyle that loomed over the throne, which to that point had looked like an ordinary, if ostentatious, stone ornamentation, suddenly stretched its wings – it was alive!

Meet & Greet

The PCs were fascinated – Irovetti must be a pretty amazing dude to have friends such as these! As they approached, Remesio the cleric even joked that he was switching sides. “No hard feelings,” he whispered to Satampra the swashbuckler, “but clearly they are the cool people in this room.”

When the Caerelians finally reached the throne, King Irovetti stood and warmly welcomed them. He then apologized for the attempted assassination, but noted that he wasn’t worried – clearly, these new neighbors of his could take care of themselves! After all, they overthrew the Stag Lord, defeated Hargulka’s band of trolls, killed the monster Talonquake, emerged victorious against a cyclopean lich, and most recently prevailed in war against both the Regent of Brevoy and Baron Hannis Drelev. (“Please do go on,” Satampra’s player said smugly) Men such as this had no cause to fear the blades of common killers!

“I really like this Irovetti!” whispered the PCs to one another. Flattery will get you far with this bunch.

Irovetti went on to reiterate his low opinion of the late Baron Drelev, and expressed his regret that the army he hired to conquer that snake went on to attack Caerelia. Clearly, Caerelia was stronger than that, as strong as Pitax perhaps! And thus its Emperor deserved respect, not the contempt that Irovetti felt for Drelev. Pitax only wanted peace with such strong neighbors, and a mutual understanding of their shared borders. To that end, he proposed that the paper-pushers go into the map room to resolve those concerns while the two rulers went out on a tour of the city’s finest pubs.

That sounded just fine to Satampra! Orseen the warpriest volunteered to go along, in order to guard the Emperor he said, but mostly it was to avoid the probably boring back-and-forth over lines on a map. The savage-looking brute also accompanied them. As the pub crawl proceeded, Satampra and Orseen soon learned that the man was named Villamor Koth, and was Captain of the Guard and the King’s personal bodyguard. Satampra inquired as to Koth’s origins, wondering if perhaps he was an expat Tiger Lord, but the barbarian insisted that his life before meeting Irovetti was not worth speaking of – especially not to an Emperor. Satampra scoffed – he was once but a humble sellsword himself – but Irovetti changed the subject before the swashbuckler could press the matter.

As it turned out, there wasn’t much for the paper-pushers to discuss. Maps from both kingdoms were pulled out and unrolled, and the Pitax crew explained the extent of their claims to the area. Remesio and Aakif the arcanist puzzled out where their new borders laid in relation, and it appeared that there was no actual conflict. Both sides agreed to respect each others’ current territorial claims and shook hands. Further tentative agreements were made to exchange ambassadors, build roads, and enact some mutually beneficial trade between the kingdoms.

The Caerelians stayed in the city for a few days, long enough for their entourage to finally arrive. The rulers met the mounted contingent at the city gate, where the Emperor declared, “Last one through the gate has to be the ambassador!” With the ambassador thus chosen, the rest of the entourage was ordered to immediately turn around and ride back Caerelia! Then the PCs took off in their flying carpet, headed for home in great spirits about their new neighbor… and friend?

Next: war still rages in Rostland!

Kingmaker: The App – An Important Note

There was an issue with the installer on the previous update that caused it to not recognize already-installed versions. This led to the new version being installed on top of the old and resulted in some kingdom files being unable to load. If you installed v1.1.3.1, please uninstall it and all other versions of the Kingdom Manager that you may have on your system, and then install the latest. If you were getting an error when loading your kingdom file with, get the latest version and you should be able to load your kingdom again.

Even if you have been using v1.1.3.1 and haven’t experienced any issues, I recommend still getting the latest, as it will prevent this from happening again. The new version has a check to make sure that the installation is correct to prevent future occurrences of this particular bug.

My apologies to everyone impacted by this error!