Wednesday, February 22, 2012

Framework Update 1

I thought I'd post a few screen shots of my work on the new framework so you get an idea of what I'm doing. Rather than 6 (or 7 or 8) setting library tokens, I've collapsed this down to two for the new framework: Lib:Rules and Lib:Setting.

Lib:Rules contains all the macro code while Lib:Setting contains all the data. In theory, you can swap setting tokens with ease. You just point the Rules token to it for data.

The heart of the Setting token is a set of lists containing all the stuff needed by the rules. This is where you'll add the names for things like Arcane Backgrounds, Skills, Derived Stats, Edges, and Hindrances. If you don't need a particular skill, like Guts, you simply remove it from the list and the code will ignore it from that point forward.

The screenshot below shows the results of the Manage Setting macro.

Another goal of this framework is to allow for internationalization. I do this through the Languages and Labels tab. In it you can pick a language and then edit the text to suit the needs of your games. I did this mostly for the German Savages that use my framework but I hope others will make use of it as well.

To change the language you simply select it from the dropdown. To edit the text you click on the label name which brings up a dialog to let you edit the translated text. Note you can also use this to alter the displayed English text as well. All text on the screen goes through this lookup regardless of language.

I can see already I'm going to need to code a utility to import labels from one Lib:Rules token to another.

After you have the lists defined, you can start configuring the setting under the Configuration tab.

  • Races, Monstrous Abilities, Edges and Hindrances all work the same by adding, replacing, or modifying traits and stats defined on the lists page. 
  • Derived Stats are those called out in the Savage Worlds rule set for things like Toughness, Charisma, and Parry. 
  • Other Stats include things that are modified by Edges, Hindrances, and Races but fall outside other stats (like Soak roll modifiers). 
  • Arcane Backgrounds have their own set of screens to configure power point usage, powers, skill name, initial power points, and initial powers. 

To configure these items, I've created Wizards to ease data entry. Below is a simple example from Derived Stats. Items with a formula ignore the default. Formulas must follow a specific format. In the case below, Parry and Toughness get the Die Num (i.e. 4 for a four sided die) of a trait and perform some math on it.

That's all for now. I'll post more as time allows.


  1. Wow,

    I'm really looking forward to this new version. I was actually thinking about translating the Trollware Fw to French since DLR is finally getting translated in France, but I think I'll hold off until your new version is out to do that since you'll have the internationalization tools built in. Let me know if you need any beta testing (you can PM me on forums with my "booga" avatar if your wnat to contact me). Any ETA on a beta ?

  2. Looks really great. Can't wait until you put out the first playable or testable version.

  3. I suspect I'm a few months out. I can release an alpha version before then but ideally I would have working gear, powers, initiative, and trait rolls before letting others use it.

    I have trait rolls almost done. Gear and Powers will take some time. It's not the using of those that is hard but the creation of the data entry screens that lets you define gear and powers.

    Gear is going to be fairly tricky since the gear will also include the ability to add powers to your gear. It can all be done. I just takes time.

  4. This looks great. The derived stats part is perfect for settings like Realms of Cthulhu which have a sanity stat.

  5. Hi there, did you find time to progress on the project ? Would you have any chance a beta we could test with ? Please pretty pretty please ?

  6. I'm in the middle of trying to get a novel ready for the editor so it will be a bit before I can return to the framework. Sorry. :(