Monday, October 31, 2011

Miscellaneous Improvements

I recently made a few improvements to dxContent.

First, I've added an option so that text fields, picklists and radio buttons on the MakeForm~ function can remember the users previous settings. This means that when turned on (field-by-field capability) users don't have to keep re-selecting previous settings. I experienced this annoyance while testing the city block generator and most recently the latest dungeon map generator. The end result is that its now much quicker to generate variations from an "options" type screen. I haven't enabled this feature for the City block generator yet because of some issues it will cause, but it is working for the Beta Dungeon Map Generator.

Second, I fixed an issue on the generator pages. I've noticed that sometimes the generator isn't ready to go until after the google ads have finished their animations and such. If you clicked the generate button before the page was ready, you'd get an error message. There is now a simple "Loading... (please standby)" message that turns into the generator name once everything is ready to go.

Third, I continue to improve the random map generation functions. I've added a second "base shape" to the dungeon map (not to be confused with a tileset shape). A base shape is like a template floor plan, a starting configuration for the dungeon. The first shape was a random rectangular hallway, the second creates two long intersecting corridors.

Fourth, another improvement to the random map generation functions. Some of the early maps were filled with tiles pretty much for the entire map dimension. While this created some neat dungeons, I knew this had to be more flexible. So there are some new features showcased in the latest beta generator that allows you to set a simplicity level on a scale from 1 to 10. One extreme gives you a map filled with tiles and the other remains fairly true to the base floor plan. Here are some examples with increasing simplicity levels (1, 5, and 10)...

Have a [RandomPositiveAdjective] Day!

Monday, October 24, 2011

Random Dungeons!

I had my first taste of Basic D&D as a player with the The Keep on the Borderlands, and I was ready to DM. First thing I needed was a dungeon. My first endeavor was the worst 10 levels of random denizens ever produced.

I soon discovered that endless dungeon crawls do not make for good campaigns, but as a DM you'll ALWAYS have the need for dungeon-like settings, sewers and other hidden lairs. Creating maps can be time consuming and dxContent is all about saving DMs time.

So, I'm excited to announce some new features to dxContent. I've added a host of functions for creating dungeons! (specifically man-made subteranean areas at this point). Check out the beta-random generator for trying out some of the future tools. These tools are still under development, but they are at a point now where useful output can be generated.

The core of these map generating tools are Tilesets. Tilesets are like puzzle pieces that when used in combination make a larger map. The first tileset has over 300 tiles and features doors, halls, ledges pits and open areas.

Here is a quick and dirty dungeon generated from choosing just a few options like height, width, number of stairways, etc.

The generator has a few flaws right now like creating some doorless rooms on the periphery of the map, and roomless areas with doorways, but every good concept has to start somewhere. I'll continue to refine, add tilesets, functions and features as the year wraps up. Let me know what you think.

Thursday, October 6, 2011

Cloudy with a {Dice~1d100} chance of rain...

Waaaaay back in the way back days when I never missed an Issue of Dragon magazine and free time fell out of my pockets like lint, I remember getting excited about a random weather generation article. Up until that time my player's characters enjoyed an eternal paradise of sunny days and comfortable camping.

Demonic invasion of the dwarven mountain outpost? Warm and sunny.
Expedition deep into Dwagmar swamp? Warm and sunny.
Trek through the great Gemtaj desert? Warm and sunny.

Once I started using the article to change things up, everybody waited with baited breath at what new weather the tables would bring - after all, isn't the weather the default conversation topic? It affected the mood of the campaign in a good way, and kept me as a DM from following the the same old "warm and sunny" rut.

This generator really gets at the core of what I want dxContent to be - a tool box of generators that help the overworked DM keep things fresh without adding a burden of overhead. My friend John, creator of, requested this generator and I was happy to take it on.

It makes use of the new MakeForm~ function for a fairly simple option screen and the rest is pure content glory. I can't take any credit for the original generator tables, the Paizo wizards did that, but I've taken the sting of rolling all the details out of using it.

So check it out in the dxContent library here or on

Stay [RandomColdWeatherAdjective]!

Friday, September 30, 2011

dxContent outtage & conversation with Tech support

Thank you for contacting support.

Please hold for the next available operator to respond.

You are now chatting with '[Name Redacted]'

[Name Redacted]: Hi, how are you today?

Brian Dunn: ok.

Brian Dunn: any page on my website that is asp is not working.

Brian Dunn: its been that way for at least 45 min

[Name Redacted]: I apologize for any inconvenience this has caused you.

Brian Dunn: nobody has responded to my support request via the online form

[Name Redacted]: Did you receive any error message?

Brian Dunn: Tracking #

Brian Dunn: http/1.1 500 Server error

Brian Dunn: trackign number 8815675

[Name Redacted]: Could you please provide me with the exact URL of the web page in which you are receiving the error?

Brian Dunn:

[Name Redacted]: Thank you!

[Name Redacted]: I have run a tool from my end to resolve the issue. However, it will take 1 hour to propagate.

Brian Dunn: what kind of tool?

Brian Dunn: What is the issue?

Brian Dunn: hello?

[Name Redacted]: It is the backend tool which reset the file permissions

Brian Dunn: how did the file permissions get messed up?

[Name Redacted]: Due to a technical glitch, it has occured.

Brian Dunn: can you better describe "technical glitch"?

Brian Dunn: hello?

[Name Redacted]: The permissions for your website got corrupted due to some technical glitch.

[Name Redacted]: I corrected it and it will work after 1 hour.

Brian Dunn: are you going to check it in 1 hour to be sure?

[Name Redacted]: It will work after 1 hour.

[Name Redacted]: If you experience any issues, please contact us back.

Brian Dunn: Oh, I will.

[Name Redacted]: Is there anything else I can assist you with today?

Brian Dunn: do yo uknow how long the glitch has been an issue?

[Name Redacted]: I

[Name Redacted]: I'm sorry, Brian.

Brian Dunn: Other pages in my site (like html ) work... was it permissions only on asp?

[Name Redacted]: Yes BRian

Brian Dunn: The problem is I'm going camping in an hour and won't be able to check my site after 5pm. So I'm just tryng to make sure we've done all we can to make sure we've identified the correct issue... otherwise my site will be down till I get back Sunday.

[Name Redacted]: I can understand your concern.

[Name Redacted]: it will be resolved within one hour

Brian Dunn: okay I will check. before I leave.

[Name Redacted]: Okay.

[Name Redacted]: Is there anything else I can assist you with today?

Brian Dunn: no.

[Name Redacted]: Thank you for chatting with us. Please feel free to contact us at any time. We are available 24x7.

[Name Redacted]: Bye!

Chat session has been terminated by the site operator.

Tuesday, September 27, 2011

New function for Links to pfd20srd Bestiary

If you liked the D20PFSRDSpellLink~ function, you're really going to like the D20PFSRDCreatureLink~ function. It's great for your custom random encounter tables. If you wrap it around your creature names (and follow some basic naming conventions), it will create a hyperlink in your generator results to the corresponding bestiary page on!

I'd love to take credit for the idea, but I can't. In fact I'd abandoned the hope of linking random encounter results to creature pages. But, thanks to all the hard work being done at pfd20srd they've created a vehicle that uses a simple alias to get to the actual link ( For example the Ogre URL might actually be nested in several subtype directories. A fictional example might be: But, through aliasing, the much simpler URL will get you there as well. The power of this becomes obvious once you realize the only alternative is hand coding/copying the urls.

Earlier this week I'd converted the 13 Pathfinder random environment encounter tables into dxContent random generators. It was basic work, nothing fancy. After my friend John (creator of d20pfsrd) showed me the aliasing tools, I created the first version of the creature link function and rolled it out to the 13 generators.

I thought Id provide sample code for all the DMs out there who need custom encounter tables. You can make it happen with just on simple one script and one table.


#USES TABLES:FoulDungeon#
Foul Dungeon Encounter: [ENCDungCR2]

TABLE: FoulDungeon

8,{Dice~2d6} {D20PFSRDCreatureLink~goblins}
4,{Dice~1d4} {D20PFSRDCreatureLink~ghouls}
6,{Dice~1d4} {D20PFSRDCreatureLink~giant spiders}
(add rows as needed)

Have fun building your custom [RandomTerrain] encounter tables at!

Wednesday, September 21, 2011

Tools for tools!

In my last blog I talked about the new MakeForm~ function which allows you to make complex interfaces for your Table Runner scripts. The City Block Generator uses a complex form (shown at left). Today I want to tell you about a tool you can use that will aid you in using this function.

Screen shot 1

As you can imagine, MakeForm~ can get pretty complex and could become tricky to code a complex interface by hand. Well, there is good news. I've made a tool that can do all the coding for you - all you have to do is fill in fields. In the screen at left you can see I'm setting options and the tool is building the code for me.

A good analogy is TurboTax. Yes you can do your taxes by hand. Many people do and do it successfully. But the more complicated the household/business the more complicated the taxes. Eventually its just not realistic to do them by hand anymore. And the extra checks and hurestics that come with TurboTax can help you reduce the risk in the process.

Screen shot 2

In this screen I've finished adding all the input elements, and I'm defining the overall size and title for the form.

So that's what I've done. I've built a "TurboTax" for the MakeForm~ function. Like anything that is version 1.0 there are improvements that will be made, but its pretty useful right out of the box. You can get to it from the Table Runner editor, and from the syntax help reference. Here's a direct link.

I've also updated the help for MakeForm~. So if you're the kind of person who needs the details, its all there.

So, good luck and happy script building. I can't wait to see the worlds most [RandomAdjective]-complex user form!

Sunday, September 18, 2011

New function!

A new function was added to the script library called MakeForm~. (You did know there is a script library and help section for building your own generators right?) You can use the MakeForm~ function to create complex input forms with multiple text boxes, pick lists, radio buttons and instructions.

So far most of the generators that I've created don't require many options to run. For example, Pathfinder Magic Scrolls only require you to click the Minor, Medium or Major button. It's quick and easy, but I've been wanting to do more with some of the generators allowing for greater options - like class, level limit, etc. However the tools to date required a new screen for every input. For example, If you look at the City Block Generator you are presented with five or six screens in a row. That is not a "smooth" interface... its awkward. This new function is the first step in consolidating multiple options to a single screen.

I've changed the Pathfinder Starting ability score generator to make use of the MakeForm~ function.

There are a few improvements that I can immediately think of. First is allowing for input fields to be dependent on selected options. For example in a fictitious "origin generator" maybe you limit city choices by country choice.

I hope you [RandomSatisfaction] the new MakeForm~ function.

Tuesday, September 6, 2011

The first Month of

It has been over a month since dxContent went live, so I thought I'd take a moment to reflect. Well, that and my monitor died so my main box is idle at the moment.

On the plus side, I had over 1000 unique visitors come to in the first month. Eight twitter followers tapped into my tweets. The content library seems to have some popular generators in it that people are using. Several generators are hooked right into Also, I got some important feedback from a visitor that lead to needed fixes to the magic item generator.

On the down side, only one visitor has created an account, and nobody has created a custom generator. Not surprisingly, dxContent hasn't broken even yet. Someday, ad clicks by viewers will hopefully cover the hosting costs. Unfortunately, the google ads aren't always relevant to dxContent, and that's a big problem. Sure, I see game related ads, but I see a fair number of gasoline & diesel powered backup generator ads, and, unfortunately way too many cloth "table runner" ads (you know, that nice one-foot wide decorative thing your wife puts on the table that you unceremoniously use to sop up spilled Mountain Dew and/or toss into the corner to make room for important stuff like RPG dice, minis, laptops and rulebooks). Table Runner was the name I gave the builder tools - maybe that was a poor choice? I also found some behind the scenes work flow issues to sort out, and there are always interface improvement ideas I come up with daily as I play in my own sandbox. My choice in hosting companies has been mostly good, but for three weeks now they can't seem to get my web stats to update without manual intervention. It really makes me feel [random negative emotion].

I guess it feels like a mixed start. Some things went good, some didn't and some will come with time. It has only been a month after all so i guess I need to be patient.

The next person to create an account gets a heartfelt [random verbal token of gratitude]! (so much for patience)

Wednesday, August 31, 2011

New Generator & New Function

The fourth random generator has been created for This time its all about magic scrolls for the Pathfinder RPG game. This version of the generator includes all core spells (with a couple of purposeful exceptions), and I've left slots to plug in the expansions. The generator generates a random minor, medium or major scroll for a random class (wiz, sorc, cleric, druid, bard, paladin, ranger), lists the spell level, costs and caster level for each spell on the scroll, and if there are multiples spells on the scroll it will list the total value of the scroll. Lastly if there are any notes affecting the final cost of the spell, those are displayed as well.

I didn't cut any corners here - I wanted the costs to be accurate. My buddy John (Mr. two-time-silver-ennie-winner) who runs d20pfsrd and his crew have done such a great job of organizing that I was able to factor the "expensive spell components" costs into scrolls as well. So yeah, all those crushed up diamonds and rubies should be accounted for.

The other neat thing that came out of this is a brand new function that has been added to the dxContent generator language. The function is {D20PFSRDSpellLink~spellname}. Its a simple function to use and a handy tool for your generator building tool kit. Its only purpose in life is to convert a SRD spell name into a d20pfsrd HTML hyperlink. so you pass in "Cure Critical Wounds, Mass" and you get a hyperlink to the top of the Cure Critical Wounds page.

Keep on [random favorite past time]ing

Saturday, August 27, 2011

Fantasy City Block Generator - The details

It's taken two weeks to pull my latest generator together and it is by far the most complex to date. Here's a link to the City Block Generator if you can't wait for the end of the blog.

Thanks for staying with me for those who want all the gory details on what this new generator can do. If you've ever attempted to detail a fantasy city, you know the huge undertaking it can be. From concept to map to detailed notes can be a lengthy labor of love. I've dreamed of this puppy for a long time. This is not a generator that tells you how many people and what PCs are present... this one tells you all the nitty-gritty details, block by block, building by building, floor by floor.

To start it asks a number of questions (with the goal of fitting into a city concept you've already started).

  • First it asks you for a simple district index... I find (as do other DM's based on web hint/tips) that if you break your city up into identifiable districts, its more manageable. So this is the first step in building you text key. For example if you have a "North Merchant District", assign it a letter (like "A" or "NMD")

  • Next it gives you an option to name the street (if you already know it) or to generate a random name for you.

  • Next you can choose a street type:

  • Straight (or generally any typical street with buildings on both sides - straight, bent curved or otherwise) where a block represents two sides of a street.

  • Circle - for those circular streets where instead of "blocks" you'd have "sections" around a hub.

  • Square - like the Circle, but terminology reflects a city "square" like a large open plaza.

  • One-sided - like a "straight" street, except one side of the street is adjacent to some feature (like a castle wall or a river) where no structures could be built.

  • For straight or One-sided streets, you can specify a general direction - this enables the output to designate something like "Main Street: North side" and "Main Street: South Side"

  • You then tell the generator how many blocks (or sections for circular or square types) to generate at a time (up to 6). So if you have short street with no intersections, on block ought to do it... but if its a fairly long street, you can increase the number.

  • Next comes "street class" - at this time you get "Alley", "urban normal" and "rural normal". Not much is generated for "Alley" except the occasional business that might just be tucked away in the cities underbelly. "Urban normal" is where the tallest structures and the most dense city details are fleshed out. "Rural normal" features fewer stories and more greenery.

  • Next you can specify retail, industrial or residential as a general guide as to what business to put (or not put) on the street.

  • Next comes an option to include random d20 DC values to open or break doors.

  • Finally you can specify an "Economy" level which basically affects the frequency of abandoned or vacant structures.

Then the magic of dxContent takes over and spits out some general details about the street, before diving into a block-by-block break down of the street - you'll get a mix of tightly "row" type structures as well as larger structures with green space around them.

Next comes a building-by-building (complete with construction information, number of floors, map key and dimensions, and notes on how upper floors are accessed). Finally a floor-by-floor break down tells you what business is present on the first floor and uses/occupants for upper floors.

I utilized a number of web resources to give you a comprehensive lists of businesses and industries. I felt that had to be the main backbone of the whole thing, if it didn't generate a realistic representation of the businesses you'd find in a typical fantasy city it wouldn't have much value at all. Anyway... you have to see it to appreciate it. I sure hope you take the time to check it out at

Thursday, August 25, 2011

More Bug Squishing & The Cloud

I discovered and fixed a bug with saving to the cloud while working on the next generator. The bug details are boring, but I thought talking about how dxContent makes use of the cloud would be helpful.

Most of us use regularly use at least two "computers" - maybe a home desk top and a smart phone, or a laptop. Its also been my experience that lap tops are pretty much as common around the gaming table as dice (and now tablets too).

Well, one of the neat things about dxContent's Table Runner tool (the tool that lets you make your own generators) is that it can use both your browser's local storage (short term / temporary) and our web database to store your generators (long term / permanent).

Temporary local storage is great for incremental tweaks to generators you are building / developing. Its fast, efficient and you can close your browser, return to it and your work is still there (one goal is to make it an offline web page too - but that's another day). Its a great "sandbox" to rapidly edit your creation. When you're ready to permanently save, or need to switch computers you can save to the cloud. For example, I like to work mostly at my desktop. But once it gets late I enjoy propping up some pillows getting in bed and using my iPad to continue creating - and if i fall asleep no big deal. If I'm at the mall and the wife is still shopping, I can haul out the smart phone and continue creating.

At any point in your process, you can distribute your generator - you can embed it in web pages, stick in the dxContent generator library, and even link to it.

So, Ive tried to give my fellow DMs inspirational generator tools they can take and use anywhere.

Enjoy your next [FavoriteRPGs] game!

Friday, August 19, 2011

NEW - Intelligent Magic Item Add-on random generator

Today I put up a new generator for Pathfinder fans. It randomly creates "add-on" packages that you can then apply to a normal magic item. It does all the tedious work for you... calculating additional gold cost, Ego Modifier, Alignment... etc.

Oh hell... why tell you when I can just show you. Go here.

I had to take a few liberties with the generator...

  1. I had to arbitrarily assign some probabilities to which Attribute, Sense, and Communication options were generated. The least expensive items are more common, but not so common you'll never see the "good stuff".

  2. Pathfinder rules don't give you a hard % chance of weapons having a "Special Purpose Power" - so I made it 50-50.

  3. Pathfinder rules don't give you any kind of break down on the exact chance of having multiple Intelligent item powers... so I came up with 85% 1 power, 10% 2 and 5% have 3.

  4. Pathfinder rules also don't give you the % chance of an intelligent item having a Dedicated Power - again I made it a 50-50 chance.

  5. If you don't get a Special Purpose power, but do get a Dedicated Power, I had to make a decision. The very first core result for Dedicated powers can give you a special ability to detect any special purpose foes (which come form the special purpose power). So in this case, I just generate a creature type when no Foe was previously generated.

  6. Lastly I removed the "choose one" option from the intelligent item purpose power - I figure the point of the generator is to create and present ideas for you to consider - you can always tweak and "chose your own".

Other than those caveats, it should me "mostly core". I though about coding in the ability to set your own percentages, and even plug in your own "Gods" list... but that involves input fields and I'm always hesitant to slow down the process like that... anyway, we'll see what you all think and make adjustments that prove popular.

Have a [RandomQuality] day.

Wednesday, August 17, 2011

I wish I had a flux-capacitor...

After building a dozen or so generators for the dxContent Generator Library and countless test generators, I've become unhappy with one aspect of Table Runner.

I'm not happy with the USES TABLES command. For those who haven't ventured into Table Runner yet, its a statement that lets the parser know exactly what tables the script will be calling. Its also important when DISTRIBUTING generators (Distributing is embedding generators in other web pages or making them available in the dxContent Generator Library).

Why am I unhappy with it? Its prone to human error. It's easy to forget to change the reference when you rename a table. It should all be key-based and happen automatically behind the scenes. Whatever tables I have loaded into Table Runner should just get linked with the script. When the future enhancement goes in that allows sharing tables across projects "linking all present" will be essential.

So, I'm looking to re-code some things so that the concept of USES TABLES all happens behind the scenes and frees the developer from the burden of writing it. If only I had Doc Brown's DeLorean - I could go back and warn myself (and catch a little MTV back when it really was MTV - but then I'd run into Biff and things would get messy I'm sure).

So this is the next big change for dxContent - not much "wow" for the end user, but important.

  • I've fixed a bug I found in the Generate~ function while working on the Dice Bag generator. the Generate function allows you to delay the creation of content until the user clicks on it.
  • I've tweaked the Log~ & LogNew~ functions. They were automatically putting a return after every update to the log... which is annoying if you want your log additons to be on one line. Its better to put the responsibility for returns on the developer (use {CR~}, {CarriageReturn~} or simply the HTML
    tag for that when you need to start a new line).

Saturday, August 13, 2011

I've just added a much needed tutorial to the Table Runner tool. The sample generators you can run are also a good start to jump in with out any "reading"... but the tutorial takes a big step in helping you get from basic generator construction to something more complex.

Friday, August 12, 2011

There was a snafu with the web hosting tonight. Earlier in the day I went to do some administrative work and found an issue. Support worked on it and then later when I went to check, the site was down. Hopefully this will be resolved soon.

In other news, I've codes some fixes for the save to cloud feature, and discovered a minor issues with the import functionality.

Last night I put a Dwarf Name generator and a Pathfinder Magic Weapon generator into the generator library. I think the more complete the library is the more ideas people will get as to what can be done with the Table Runner tool.

Wednesday, August 10, 2011

I've started working on some utility type generators to put into the library - what better way to hunt for bugs right? Well, sure enough I found some in the If~, IIf~, and While~ functions. Those three functions have given me repeated headaches throughout development.

despite the bug hunt I was able to get a couple of generators into the library so at least it is no longer empty. Check out the Plot/Encounter ideas and High Elf Names generators!

Oh, and i also found and fixed some bugs in the library.

Monday, August 8, 2011

New features - Generator Library Infrastructure

Tonight was a good night - Ive finished all the phase I major coding on The features that went in tonight allow generator builders to put (distribute) their creations into a library of searchable, categorized generators.

Non-developers will now be able to take advantage of what will hopefully be an ever growing library of random goodness! They can "favorite" and "un-favorite" generators they find to make finding them again easy.

At the moment this doesn't give anybody anything useful because the library is empty, but that is now my next goal, to recruit generator developers and or add my own creations.

Saturday, August 6, 2011

Long development day

I had hope of fully coding the public generator area today. But instead I got started on a feature that allows you to store your scripts/tables in project directories. I ran into some issues with the Save to Cloud and Load From Cloud features after adding the new stuff. It was like shooting myself in the foot because it took me a lot longer to sort out than I'd expected.

But the good news is that projects appear to be working and that should go a long way to helping generator developers stay organized.

In other good news I had the first person sign up today!

Thursday, August 4, 2011

Welcome to

First a little background...

If you've ever played D&D or a game like it your aware there are lots of cool charts in the rules for generating random things like treasure, encounters, and even the population and attitude of cities.

It was natural evolution for these pen-and-paper charts to get automated. You can find tons of game related random generators on the web - random name generators seemingly the most common. These are neat and handy tools for the taxed gamemaster.

One of the coolest tools I ever used was some PC based shareware called TableSmith by Bruce Gulke. Not only did it come with ready made generators, but what set it apart for me was the ability to customize or make my own generators.

What I really liked most was the random association of ideas that you might get from typically unrelated things. These sparked imagination and often lead to new plot ideas or one of a kind magic items that helped me develop a memorable world for my players.

Take this result for example:

"PCs are possibly ambushed by...


Behavior: Seeking revenge for alleged crime

In an generally urban area.

Features: Religious (chaos) crypts"

Its just dripping with ideas. What was the crime? How does it tie into the crypts? How might the players get tangled up in it all? You see, its good food for thought, and it helps you as a gamemaster avoid the same basic plots you might gravitate to.

Same with random magic items, A Darkwood quarterstaff with the Anarchic special abilities conjures up a vivid image of the villain that would wield it.

Now let me tell you what dxContent is...

1. dxContent is browser based (cross-browser at that!) When I got my iPad I was disappointed that i could not find a random generator app to use in my Warhammer Quest games. I didn't know how or even want to build an iPad app but I did want to build a web site anyone could use from any mobile device.

2. dxContent's Table Runner software allows you to make your own random (or as i like to call it procedural) generators. The syntax for nearly all the functions are similar to TableSmith, but I would not say the two are "compatible".

3. dxContent will also be a community of table generators sharing their creations and collaborations in a dxContent generator "library".

4. dxContent is FREE. My goal is to cover hosting costs through unobtrusive google ads (feel free to click!).

5. dxContent Table Runner generators can be embedded in any site!

Enough for now, let me know what you think!