Tablesmith Tuesdays

TST: Numismatics

Posted on Updated on

A TableSmith Tuesday post!  Huzzah!  I have returned.  That thing called work, interrupted me yet again, but I am an amateur blogger so it comes and goes.  Originally the idea had been to be finished with Graveyard.tab in time for Halloween, but that fell through.  Right now I am determined to work finish this new ‘Hoard Project’ for the Month of October.  As part of the October RPG Blog Carnival.  Here is the first TableSmith Tuesday post on the project.  You can get the Table here.

Read the rest of this entry »

October RPG Blog Carnival Challenge

Posted on Updated on

Two thoughts intersected this afternoon in my head. My first thought and the foreword to my first Random Table post in a while was this:

After reading so many posts on the Loot edition of the carnival, and the many naysayers, I set myself out this month to publish 2 tables a week about loot. I am setting out to show that the basic humdrum tables normally found around, of course are not going to be very helpful, and are going to give you well, random loot. But by building tables with a purpose, and rules, you can build an emergent story from the random table.

The second thought was earlier this morning when I read about the NaGaDeMon. Which intersected nicely with a project that I was going to begin working on this month.  So I am challenging myself to create a set of tables, and a system to help create a Hoard.

So, here’s what I am going to do for October, I am going to publish posts under a subject I will call The Hoard. The goal of this will be to pull together the many aspects of a treasure hoard, give it rules, and guidelines, and create a cohesive story (and Stat Block) about the treasure hoard. I will use the TST column with this project to be able to produce a table that you can use at anytime to generate your own Hoard.

The Hoard Project:

  1.  Origins
    1. Creation
    2. Accumulation
    3. Provenance
  2.  Loot
    1. Coin Piles
    2. Decoratives
    3. Trade Goods
    4. Mundanes
    5. Miscellaneous
  3. Consequences
    1. Economic
    2. Social
    3. Physical

I’d be remiss if I didn’t mention that while doing some research on this project that I came across ALMOST EXACTLY what I wanted to do.  That Document comes from Hack Slash.  Proving that Random Tables can be used to create an interesting cohesive treasure.

RandomDM got rocked like a hurricane!

Posted on Updated on

Alright all you pesky readers.  I know you’ve been waiting for this one a lot longer than normal.  But there’s been a couple of things tying up my time.  In my free time, I’ve been working on getting ready for the reunion that we are planning for the Mud that I am an admin on.  Yes, it’s true.  I STILL Mud.  It has drained what little free time the day job allows
me these days.  And then, well here’s the post, and you’ll understand the other reason:

Read the rest of this entry »

Where Weather and Graveyards meet, work ensues.

Posted on

Yup, well, you know. Tuesdays are becoming more and more difficult to get my posts up on. I could blame work, or that thing called life, but instead I’ll blame the bastards that invented the calendar and made these ‘day’ things. Last week I prompted myself with where I wanted to go this week on TST: Graveyard edition.

Read the rest of this entry »

There’s an Ossuary in your Graveyard.tab

Posted on

This week we continue to build our epic Cemetary.tab.  We have continued to build the foundation of our table and are still.  By defining our various elements and variables that we want and need, we are providing for the flexibility of really detailed description building.

Here’s where we are at so far:

Read the rest of this entry »

TST: Graveyard.tab (Part 3)

Posted on Updated on

Well, another TableSmith Wednesday I guess. But we’ll make the most of it and get into some table development. Last time we talked about how to really incorporate some important tables on how to customize our tables, and other alternatives were proffered and I am still looking into them but on to the table.

:Size of Burials
1,single family       |int_burial_size_mod = -3|
2,very small           |int_burial_size_mod =- 2|
3,small                    |int_burial_size_mod = -1|
4,medium              |int_burial_size_mod = 0|
5,big                        |int_burial_size_mod = 1|
6,large                    |int_burial_size_mod = 2|
7,huge                    |int_burial_size_mod = 3|

Read the rest of this entry »

TST: Graveyards and the Importance of Countries

Posted on Updated on

Last time on TST we started building Cemetary.tab. We laid out the basis of the table and talked about some of the background research and development that I do before I build any table. Let’s jump right into it.
Setup Groups:

:GRAVEYARD NAME
:CITY
:NATION
:SIZE OF BURIALS
:ADDITIONAL FEATURES
:HISTORY OF GRAVEYARD
: DESCRIPTION OF GRAVEYARD
:NOTABLE INTERNMENTS
:TYPICAL MONUMENTS
:GRAVEYARD SECTIONS
:NOTABLE MONUMENTS
:HAUNTINGS
:BURIALS

Once I have my groups set up and on paper so to say, so I don’t forget them I start by building my display group:

:START
1,[DISPLAY]

: DISPLAY
1,%graveyard_name%, in %city%, %nation%, is the burial site of a %size_of_burials%
#_ as well as %additional_features%.
#_%history_of_graveyard%
#_%description_of_graveyard%
#_%notable_internments%
#_
#_%monuments%
#_
#_%hauntings%
#_
#_%notable_burials%

So according to our style set up in the Introduction Series 99% of our output should be stored in variables which you can see here. You’ll also notice that I have #Commented out most of the table. I did this because I want to work my way down into the depth of the table, and not have too many errors thrown out at me. So after we have developed our output screen we need to go back up to the top ant the START group, and add some more.

:START
1,[GENERATE VARIABLES]
_ [DISPLAY]

And then add our GENERATE VARIABLES group down below:

:GENERATE VARIABLES
1, |graveyard_name=[Name Graveyard]|
_ |city = [ ]|
_ |nation= [ ]|
_ |size_of_burials =[Build Burials]|

Notice that all I did for this GENERATE VARIABLES was built out of the items of the DISPLAY group that I have not commented out.

A quick sidebar conversation here before I wrap this weeks TST. You’ll notice that city = [ ] and nation [ ]. Empty groups. I did this on purpose because it brought me to this side bar. In the ~Reference folder of your generic TableSmith install you have a .tab called Countries.tab. EVERY person who uses TableSmith should be familiar with this table, and if not I am yelling at you in specific! This table is the one that adds a personal touch to each and every table and campaign. A lot of tables and output will feel no good if you aren’t using this table to it’s fullest! Let’s take a quick look at the header:

# Lands of the Known World
#
# by Valminder March 2002 for Mystara
# You can modify this table as you see fit for your world.
# -In “Start” you put the complete name.
# -In “Land” you put a contry’s name that fits with “He comes from …”
# -In “World”, put 2 “names” of your world (see the table for example).
#
# At the bottom, you have “Greyhawk” tables (by Ed Hastings).
# You can use “Countries.GenGreyhawk” to generate Greyhawk Regions.
#
# CUSTOMIZING: World (enter the general name you give to your world,
# like Greyhawk, Faerun, etc).
# Generate subtable (at bottom in Greyhawk).
# Peoples subtable (at bottom in Greyhawk).
# Start / Land subtables.
# Important NPCs (Heros and Villains)
# Authors (popular authors of books from your world)
# Historical (to add things from the history of your world)
# Personage (for biographies)
#

Valminder has given you instructions on how to use this table.  And any table that you use to pull a country name should definitely be pulling [Countries.Country].  Here is what I did:

;Start
6,[TalosCountries.Countries Common]
3,[TalosCountries.Countries Uncommon]
1,[TalosCountries.Countries Rare]

;Countries
6,[TalosCountries.Countries Common]
3,[TalosCountries.Countries Uncommon]
1,[TalosCountries.Countries Rare]

Ahh see, what I did there? I made my own table that was called directly by this table. A sample of my TalosCountries.tab:

;Countries
6,[Countries Common]
3,[Countries Uncommon]
1,[Coutnries Rare]
1,[Cities]

;Countries Common
1,Talos
1,AFOC
1,Westport

;Countries Uncommon
1,Uncommon Countries

;Cities
1,Carrasville
1,Fort Edinley
1,Gantrickmouth
1,Goldmere
1,Graybluff
1,Heldenburg
1,High Copperfir
1,High Rubyton
1,Hightop
1,Ingledye
1,Kalanit

This is one of the few tables that should take personal customization. But it adds to and highlights the uniqueness of TableSmith. So go now, and customize your Countries.tab and make it relevant to your game!

TableSmith Tuesday: Building Cemetary.tab (Part 1)

Posted on

After wrapping up the introduction series, I asked where TST readers wanted to see me go. I decided to try and incorporate all the options into our next TST journey. From the very beginning to the very end we will build a table. Every Tuesday I will post the updated .tab file to the TableSmith Yahoo Groups. And I invite my readers to make suggestions in the comments about Group Ideas, Grammar Ideas, or any other ideas that you would like to see incorporated into the table.

One of the categories really missing in TableSmith tables, is places! And what better place to start this journey, then where most PC’s are going to end up: the Cemetary.
Read the rest of this entry »

TableSmith Tuesday Introduction (Part 5 – Useful Functions)

Posted on Updated on

What makes TableSmith so powerful is the scripting elements.  It lets you do more than Fill-in-the blanks Mad-Libs, or create straight Stat Tables.  It lets you make tables that contain an internal consistency, it let’s you correct unexpected grammar issues (usually).  In fact there are 80 some functions in TableSmith, and unless you use datasets, or are making a table with EXTREME mathematics, you’ll most likely only use the ones that I’ve detailed here.

Read the rest of this entry »

TableSmith Tuedays (Part 4 – Displaying Mad Lib Tables)

Posted on Updated on

Mad libs, they are the heart and soul of Random Generation. And in this episode of TableSmith Tuesday, we continue our journey into the dark realm of groups. In TST: Part 2, I referenced these types of tables as story tables. So if you did not grow up in the golden time of Teenage Mutant Ninja Turtles, you may not know what a mad lib is;

Mad Libs (from ad lib, a spontaneous improvisation) is a phrasal template word game where one player prompts another for a list of words to substitute for blanks in a story, usually with funny results.

The majority of TableSmith tables are in fact “Mad Lib” tables. From Pocket Contents.tab, to Sites of Interest.tab. They have a strict template, and then groups of words that are randomly selected from to fill out the template, sometimes with quite hilarious results. Let’s look at a table that uses this concept, Fantastical Swords.Tab:

:Start
1,[Theme]This [Sword type] is made out of [Material].
_ {If~%hiltdescribe%=1 ? The Hilt [Describe Hilt]./[Themed Hilt Description]}
_ {If~%bladedescribe%=1 ? [Describe Blade]/[Themed Blade Description]} It was crafted by [Crafter Name], in [Crafter Country].

All of the groups in the Fantastical Swords.tab are simple and look something like this:

;Describe Blade Shape
15,The blade is in excellent shape.
10,The blade appears brand new.
2,The blade has some nicks and dings.
2,The blade has been chipped and scratched.
1,The blade has some moderate damage.
1,The blade has begun to rust.
1,The blade is rusty.
1,The blade is pitted.
1,The blade is in no shape to be used
1,The blade has been broken in half.

Pretty Mad Lib’ish huh? Simple but it can create thousands of different swords that add flavor to your game. A lot of table developers have taken these simple types of tables and have expanded them to create more depth and interesting descriptions. There’s a middle level Mad Lib type of table something akin to the Library Contents.tab, it has multiple levels of Mad Libs:


:Generate
1,The library seems [Description]. The room is [Size].
On examination of one of the shelves closer to you, you find that it contains about [ShelfContent].
On the opposite shelf you find [ShelfContent].
Further on in the section you find [ShelfContent].
[Special]

With the second level of depth making the output even more complex:

;ShelfContent
3,{Dice~1d10*10} Scrolls. The scrolls in this section of the shelf seem to [ScrollContent] and the scroll[ScrollCondition]
2,{Dice~2d6} Books. Selecting one of these [BookDesc] books from random on the shelf it seem to deal with [BookContent]
1,a set of {Dice~1d6+1} [TomeDesc] tomes. Found under the [TomeSection] section, its outer cover is made from [BookDescCover] and it seems to be in [Miscellaneous.General Quality] condition. The [BookDescPages] pages are [BookDescBinding] and on close examination the tome has the following protection. [TomeSecure]. [TomeContent].

The greatest culmination of Mad Lib type tables is one that always impresses me with its depth and pure TableSmith awesomeness, and mixes multiple levels of Mad Lib with advance TableSmith functionality, Volo.tab:


:Start
1,The village of |TownName=[Fantasy Names.Start]| %TownName% lies on the [LN~RoadName], a [LN~Roadtype] [LN~AmountWords] days' ride [LN~Direction] of the city of |CityName=[Fantasy Names.Start]|%CityName%. About {1d400+100} folk call %TownName% home ({1d600+200}, if the population of outlying farms is included). Most are humans, but there are half-elves and a smattering of dwarves and halflings. %TownName% is named for one of %CityName%'s early [Ruler], %TownName% [LN~ShortTitle], who had [LN~RulerProperty] here. Though all traces of his [LN~RulerHome] are long gone, [LN~RulerLegend].
_
_%TownName% is [VillageDescription] place. By night or in a snowstorm, the traveler can mark it by [LN~VillageMarker]. This village is [LN~VillageDescription2]. In hot summer weather, though, it is only pleasant to %E%. The folk of %TownName% are famous for the %ProduceVerb% of %VillageProduce%. They have traditionally supplied the noble families and armies of %CityName% and the armies of [LN~Town Names.Start], as well as merchants and satraps of [LN~Town Names.Start] and [LN~Town Names.Start].
_
_Two of %CityName%'s more famous noble families have extensive holdings in the %TownName% area. The %J% family, which produces %ProduceDesc%. The [Fantasy Names.Start] family makes more money than all other inhabitants of %TownName% combined. This clan dominates the chief business of %TownName%, the supply of %VillageProduce% to %CityName%. These %VillageProduce% are not same quality as %VillageProduce% from the %J% %ProduceSite% but are %K%. Any local %VillageProduce% that don't come out of %TownName% %ProduceSite% are purchased by the family at fair market prices and carted to %CityName% in large, well-armed family caravans. These caravans are always on the road between %TownName% and %CityName%.
_
_%TownName% is a [LN~VillageDescription3]. %TownName% [LN~VillageSurroundings].
_
_The town can be entered [LN~VillageEntrance]. [VillageFeature]
_
_For a local spot of interest, [LN~SiteInterest1].
[LN~SiteInterest2]
_
_At the [Direction] end of the village [LN~SiteInterest1].
_
To the [LN~Direction] [LN~SiteInterest1].
_
[LN~SiteInterest2]

JB did a great job in creating the Volo.tab table. And he meshed a lot of the concepts that we talked about back in the TST- Part 2. So let’s talk a little about the concepts that JB used, and make a well crafted Mad Lib Table.

[LN~]

The [LN~], according to the TS help file: in TS 5.0 “LN~” tag; replaced with “~”. This is the Re-Roll Tag. Again from the Help File:

If you preceed a group name with “~” in a group call, you can “re-roll” the results of that call. For instance: “[~Treasure.Weapons]”.

This tag allows the user to “re-roll” the results generated from the group call. Whatever text is returned by the call is displayed in the Results Window and is treated similar to an HTML hyperlink. The text will be in a dark-blue color (not underlined, however), and will change to light-blue when the cursor is placed over it. Clicking the text will “re-roll” it, while preserving the rest of the results. Note that this feature will not regenerate or recalculate other parts of a display. Variable changes that occur in the “re-roll” will not be reflected elsewhere in the results window (the primary purpose of this feature is to “tweak” results).

This is essential to any great Mad Lib table. You may display a table that has mostly good stuff, but then there’s just one or two little bits that you don’t like! Well by using the Re-Roll tag you can make it so that we can re-roll just that one small tiny entry in an otherwise good-looking result!

Variable Assignment

JB must have had a vision in his mind when he wrote the table, and he accomplished something great. He discovered on of the most important pieces of building a great story table, but used it surprisingly little:

1,The village of |TownName=[Fantasy Names.Start]| %TownName% lies on the [LN~RoadName], a [LN~Roadtype] [LN~AmountWords] days' ride [LN~Direction] of the city of |CityName=[Fantasy Names.Start]| %CityName%. About {1d400+100} folk call %TownName% home ({1d600+200}, if the population of outlying farms is included). Most are humans, but there are half-elves and a smattering of dwarves and halflings. %TownName% is named for one of %CityName%'s early [Ruler], %TownName%[LN~ShortTitle], who had [LN~RulerProperty] here. Though all traces of his [LN~RulerHome] are long gone, [LN~RulerLegend].

See the Emphasised Lines there? To build a great Mad Lib or story based table that line is essential almost all the way through the whole table! The best part of this is if you use the ~ tag, if you don’t like the CityName, it’ll re-populate throughout the ENTIRE TABLE! But without knowing where the next developer is going to take your table, why not assign all the groups to a variable? You should here’s a quick re-write of that entry:

1,
#VARIABLE ASSIGNMENTS:
_|TownName=[~Fantasy Names.Start]| |RoadName=[~RoadName]| |RoadType=[~RoadType]| |AmountWords=[~AmountWords]| |Direction=[~Direction]|
_|CityName=[~Fantasy Names.Start]| |Population={Dice~1d400+100}| |TotalPop={Dice~1d600+%Population}| |Ruler=[~Ruler]|
_|RulerShortTitle=[~ShortTitle]| |RulerProperty=[~RulerProperty]| |RulerHome=[~RulerHome]| |RulerLegend=[~RulerLegend]|
#OUTPUT:
_The village of %TownName% lies on the %RoadName%, a %RoadType% %AmountWords% days' ride %Direction% of the city of
_%CityName%. About %Population% folk call %TownName% home (%TotalPop%, if the population of outlying farms is
_included). Most are humans, but there are half-elves and a smattering of dwarves and halflings. %TownName% is named for
_one of %CityName%'s early %Ruler%, %TownName% %RulerShortTitle%, who had %RulerProperty% here. Though all traces of
_his %RulerHome% are long gone, %RulerLegend%.

Group Calls and Grammar Rules:

It should be noted here that when you build a Mad Lib table, your groups should follow a couple of rules:
1 – No leading space!____ 1,entry ________ not ________ 1, entry
2 – No Ending!__________1,entry ________ not ________ 1,entry?
3 – Don’t capitalize! _____1,entry ________ not ________ 1, Entry
Following these simple rules will help you control your grammar. When you are building a complex table. While you may have developed the table with specific grammar rules, you are always going to run into a problem somewhere. For example with the {Cap~} function call, I can capitalize when I want in my output and display. I don’t need Fantasy Names.tab to Capitalize my Characters names.

Further down in Volo.tab JB, did another great thing! In the :VillageProduce he made the WHOLE entry a set of variables!

:VillageProduce
1,horses
_|ProduceType=horse breeders| |ProduceSite=stables| |E=the noses of those who like horse manure|
_|ProduceVerb=breeding and training | |G=fresh|
_|ProduceDesc=skilled animal tenders, maintains a farm where sick animals are nursed, and a shop where tack of the finest sort is made and sold The Eagleshield harness is made for the lone rider's mount. It is of black leather, adorned with silver-plated studs bearing the spread-winged eagle that is the heart of the family blazon|
_|K=tough and versitile|
_|L=the Great Shalarn, a famous war stallion bred in %TownName% 39 winters ago. Gelded long ago by a prankster, the rearing horse image is often painted various hues by high-spirited locals. There is a local rule that allows children to use slings, flung stones, or hand crossbows to bring down birds perching on the statue, so it remains free of the usual bird-droppings. The children often climb it themselves, and perch precariously in the high, tilted saddle, waving their arms and commanding imaginary armies into battle.|
_|S=The statue is a popular place to leave cryptic messages, either tucked under the hind hooves, or slid between the sculpted curls of the tail. It's also a common place for arranged signals, which are usually a bit of colored cloth tied to a particular part of the horse|
_|T=Local lore holds that if the grim, ghostly figure of the [HeroRace] [Hero]%M% %N%, a long-ago hero of %TownName%, is ever seen in the saddle, war will soon come to the town|

It looks like, the table went through a Valminder Revision. [CC~] was what [LN~] used to be before it was all [~], and Val, without having a guiding #Comments from JB, had to piecemeal some things together to make the table more readable: If you investigate the table you’ll see #Comment tags that Remove sections of a display, and there are variable declarations that aren’t actually used. But if I were to apply my thought process to what I see here, it looks like JB was setting up his to have different stories which he could have a random group that would call L,S,T to give a different flavor to each Horse Town.

So to wrap up this week, MAD Lib tables are great, they are the foundation of TableSmith, and the majority of the tables. Remember to use a couple of very important elements:
Grammar Rules, Variable Assignments, #Comments, and the Re-Roll tag, and your table will become infinitely more useable, readable, and interesting.