List to HTML Generator

Include "show tables" option:
Process dice rolls:

The purpose of this tool is to turn your list (or lists) of content into an HTML button that you can add to your website to generate random content. It's a Generator Generator.

You'll need:
  • The name of your generator.
  • One or more lists of content. Each list must have a header, and be separated by a blank line. Any dashed or numbered lists will be processed correctly.
  • Some idea of how you want the lists to be output. Just one entry? A sentence with the output filled in?
  • If any of your lists entries have sub-lists, each sub-list must be added individually.
Basic Instructions:
  1. Put the name of the generator in box one, create the structure in box two (see below), put all the lists of your generator in box three.
  2. Either leave box two blank, or write a sample output sentence using the list headers.
  3. "I'm feeling lucky". The structure now contains a sentence with the list headers in {curly brackets}. When the generator runs, each set of {curly brackets} is replaced with a random entry from the selected list.
  4. Press the "Test output" button.
  5. Does the output look like how you expected? If not, adjust the structure in box two until it looks correct.
  6. If any of your lists contain sub-lists, the entry with the sub-list can contain the {sublist header} and function automatically.
  7. Once the generator is functioning correctly, press the "Copy to clipboard" button. Generators can be pasted to any website or blogpost in HTML-mode.
  • Show tables: Adds an extra button to the generator that shows the full lists.
  • Process dice rolls: Rolls anything in the output that matches the format "3d6+2", or part thereof.

Advanced Instructions:
  • To reduce the number of duplicate entries output by the generator in a single use, use a -u flag with the header like so: {header -u} {header -u} {header -u}
  • To reuse the same result multiple times in the output (for instance, generate a name and then use it several times), use the -r flag to store it: {first_name -r} {last_name -r} ... {first_name -r}
  • To overwrite a previous -r flag and have a new repeated value, use the -s flag: Second name {first_name -s} {last_name -s} ... {first_name -r}
  • If there are multiple generators on one page, only one copy of the "expandString" function is required.
  • The structure and lists can be formatted using simple markdown: **bold**, *italics**, or __underlined__.
  • Each generator is marked with a tag (unique three letters) to guarantee that multiple generators will work in the same post.
  • While you shouldn't blindly trust code-produced-by-code found on the internet, nothing produced by this page can harm you or your website in any way. However, don't just take my word for it! The output of the generator is formatted to be as human-readable and modular as possible, and if you have any questions about what is going on, feel free to ask me.
  • If you find a bug, leave a comment below and I'll get on it as soon as feasible. You'll also be awarded 1 XP in any game I run, or 2% XP towards your next level in any other game (you can show your DM this if they require proof).
Known issues:
  • Using a mix of old and new generators on the same page causes unusual behaviour or generators to fail. Front pages of blogs load several pages at once, making this more likely.


  1. I am still having the problem of generators made with the generator-generator sending the sidebar to the bottom of the page. Tried remaking it just now, to no avail.

    1. That is incredibly odd, I have never seen that in my entire life. Copied out the source and deleted the generator from it, but didn't seem to change? Maybe something has happened to your theme?? Sorry I can't be of more help!

  2. I love this generator - and I made a character generator with it!

  3. Two more tributes. More and more useful as time goes on

  4. I made a generator using this generator too! I love this tool. So amazing that you made this and allow other people to use it. A great tool for the community. Thank you so much!

  5. Is there anyway these can be made to check for certain results? Like, seeing which stat is highest and adding that to HP (as in Finders Keepers)? Fiddling with another game of my own and wanna make me another table!

    1. While I've often been tempted to make a "system generator" it turns out to be *really hard*. Normally when I make a system, I start out with a text-generator using this tool, and then replace parts as required. Javascript is a cruel beast, but it works.

    2. And so it shall be. Thank you kindly! Now I have a project to fiddle with this holiday

  6. Hey im trying to use the store and recall to access different tables depending on the stored value ex {level -s} and it stores then i try to search one of 3 tables Loot1, Loot2, and loot3 with {Loot{#s}} and it just outputs "Loot#s}" instead of recalling the level and generating a value on the appropriate table ex Loot1 table. am i doing something wrong or is this just not gonna work? :) thanks everyone

    1. Unfortunately regex is messing with you there, nice idea though! I'll see if I can fix that weird output, but I don't think this will ever work.

      Rather than storing the value "1", store "Loot1". Any table names retrieved using {#s} are automatically rolled.

  7. It doesn't work if I have a hyphen in the button label (i.e. "That looks like a lot of dice-rolling!"). My workaround was to leave it out when generating the generator and then add it back in to the plain-text portion of the button.

    1. Good catch! Will be fixed in the next version, +1 XP for you

  8. D'Angelo Shanquale Richardson