Auto Random Encounter Generator.

Project:Virtual Combat Cards
Version:1.2.0
Component:Code
Category:feature request
Priority:minor
Assigned:Unassigned
Status:postponed
Description

A method of creating random encounters (for example random bandit attacks whilst travelling along roads; searching the Underdark; whatever) based on the Encounter Templates from P58 of the Dungeon Master's Guide would be awesome.

How I see it working is that you load your party; choose "create random encounter" from the drop-down menu; that pops up a window with a series of radial buttons allowing you to choose an encounter type (Wolf Pack; Battlefield Control; Dragon's Den; whatever, with an option for one of the above selected at random too); clicking OK moves you to another choice for level and relative difficulty of the encounter (formulaes for determining this are all on P58 of the DMG); and then you select a couple of keywords (natural, aberrant, undead, whatever) and voila; VCC picks a set of monsters of the appropriate level and number from its database and populates the initiative list ready for you to start combat.

#1

I think fully random generation of an encounter may produce some really strange results. I normally have random encounter setup as a backup ahead of time. This is actually how the published modules work.

You can also add combatants straight from the party edit dialog. There a menu option for this.

That said, the idea to have VCC provide information on the XP Budget or encounter level could be a nice addition. I still have to cross-reference DMG to get this information. Not sure on how to best represent the information.

#2

Status:active» postponed

The budgeting aspect of getting the encounter assembled has been solved in request #184: Add combat level to party editor and filter creatures by level. A new level filter has been added which should make creating the encounter easier.

Looking at the DMG, I found some templates for combats that are interesting, still don't think we can generate fully automatically, but maybe a way to scan the base for fits to the template could be interesting.

Any comments or ideas on how to improve this request. Honestly random generation seem ineffective.

#3

Honestly random would be ineffective, however I'd see the algorithm working as follows:

1. You load your party
--VCC counts the number of "Character" type entities in the iniative order and assigns it to the variable "Group Size", and calculates the mean level of the group (Add up all the character's levels, which VCC knows, and then divide by the group size variable to get the average). VCC stores that as "Mean Average Level" variable.

2. You start the "random encounter generator" function and pick whether you want an Easy / Medium / Hard / Deadly / Random encounter.
-- If Easy, VCC Subtracts 1 or 2 (random) from Mean Average Level (If <=0, Mean Average Level =1); if medium it adds 0 or 1 (random) to Mean Average Level; if Hard it adds 2 or 3 to Mean Average Level; if Deadly it adds 4 or 5. If random the range is between -2 and +5. NOTE THAT THE NEW VALUE FOR MEAN AVERAGE LEVEL IS TECHNICALLY THE REVISED AVERAGE LEVEL OF THE GROUP! From this it calculates a value called "Target XP Budget" using the standard method for determining the XP budget.

3. You specify the encounter pattern you want (as mentioned in the OP and defined in the DMG and other source material), or pick "random".
-- Each pattern is numbered, random picks a number from random and loads that profile.
-- VCC now knows the "roster" it needs to make for the new party, IE it needs X artillery, X soldiers, X minions, etc etc.

4. You specify any keywords you insist are in the encounter; a drop down menu picks primary ones to make sure the theme makes sense (Natural, Aberrant, Undead, Fey) and it will exclude any creatures that do not have these keywords. You can then specify a secondary keyword that you type in manually that VCC will parse for and give preference to when trying to fulfil the roles. Theoretically this could be refined once the basics are in place to offer more specific search criteria. You click "ok" and the magic happens.

A. VCC searches its compendium for monsters that have the primary keyword and compiles a temporary table / Array of all monsters that have both the primary keyword in their entry, and whose Level is ">= Revised Group Level -2" and "<= Revised Group Level +2"
[This populates a sensible list from which to fill the roster].
-- If a secondary search phrase has been manually entered, VCC then searches the TEMPORARY TABLE / ARRAY for creatures that meet the secondary search term (EG it scans all the "potential" monsters for ones that have the word 'orc' in their entry) and thus populates a smaller and more specific temporary table / array with "ideal monsters" for the encounter.

B. It then picks the first "role" off of the roster template it needs to fill, say "artillery" for example. It then scans the SECOND (more specific) array for any artillery monsters, and selects one at random and inserts it into the group. If it fails to find a match, it then repeats the process from the wider primary array.

This is repeated for each "role" on the rosta until it is full.

C. It then calculates if the XP budget for this group is [<= "Target XP Budget + 10%" AND >= "Target XP Budget - 10%"]; if it is true, it adds the group to the initiative order, job done; if it is false it adds / subtracts 1 monster to / from the group (can predefine which role to remove a creature from dependant on the "pattern" loaded in step 3), for example -1 artillery monster, whatever. It then repeats step C. to check if the group is now appropriate.

Tada. You now have created an appropriate encounter purely out of thin air ;)

Think it could work?

#4

I think the method you propose is an interesting guideline. However it will require a lot more in order to do things like [This populates a sensible list from which to fill the roster]. We need at lot of tags and meta information to located the proper combination of creatures.

I have been using building some encounter manually using the template. But to be honest currently Wizard's Compendium is easier to find the correct monster. I am a bit reluctant of requiring the capture of the entire compendium.

I think the correct way is to have a encounter wizard based on templates or your random build idea. This could simplify the life of the DM. Maybe the wizard should be something hybrid (part VCC para Firefox plugin or website).

I'm really not sure that this should be the role of VCC (although I haven't looked at other tools). Wizard's encounter builder is pretty, but not very useful.

#5

>> We need at lot of tags and meta information to located the proper combination of creatures.

Possibly; I've not looked at VCC's internal database to see how it is stored; but there are already fields to enter the monster's role and "type"; clearing that up and making it correspond better to the MM1-3 layouts would solve that problem.

Also, it doesn't have to be flawless. It's a *random* encounter generator - if it throws out an odd combination (an elf that has the letters ORC somewhere on it's stats block for some reason within a party of orcs; for example) then that is part of the fun.

>>I am a bit reluctant of requiring the capture of the entire compendium.

That is clearly untenable; I was more thinking it would go solely off VCC's internal database (IE only monsters captured to-date) as that is already in place and easy to scan through offline.

>>I'm really not sure that this should be the role of VCC (although I haven't looked at other tools).

I see your point; however I spend a lot of time loading up parties; etc. If my players surprise me and go somewhere I hadn't planned for, I have to either railroad them; tell them "no"; or else tell them to amuse themselves while I quickly go through the compendium, import, and add them to a new party. Being able to have an encounter created literally on-the-fly would pretty much blow their minds, and also give me tons of time to work out what I'm going to do next while they're busy fighting monsters.