Wednesday, August 31, 2011

New Generator & New Function

The fourth random generator has been created for d20pfsrd.com. 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 www.dxContent.com.

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.

OTHER NEWS
  • 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.