5etools / tracker

Suggestions tracker for 5etools.
11 stars 0 forks source link

5ET-918 Add Encounters page and homebrew support #1099

Open crawltracker opened 2 years ago

crawltracker commented 2 years ago

Feature Request: Add Encounters page and homebrew support.

Extra Information There are many different types of encounters in the books and homebrew files, but there aren't an easy way of browsing through them other than going into the book itself or importing them to VTTs (or the DM screen). This feature request tries to come up with a page and data structure for supporting this. Who would use it?: Everyone really, but mainly DM Screen and Foundry/Plutonium enjoyers How would it work?: Add a new "encounter" top-level array of objects for creating and editing objects. "name" would be the name of the encounter, "source" and "page" are standard, "type" would be an object for filtering with such options as "battle", "social". The "level" object would contain the "start" and "end" objects, and the whole object would be for displaying the suggested level range for the encounter. "environment" would also be for filters, and it would take string entries and populate a filter list. "creatures" array of objects would contain all the creatures involved in the encounter, with a simple "type", "name", "source", "count" list of objects if the type is "creature". If it is "player" (for people that really want to bring their characters into their brews) it would be "type", "name", "hp". The contents of the "creatures" would also fill a Creatures Involved field in the rendered output. The "areas" array of objects would include either "bookId" or "adventureId" and "areaId" to indicate which areas within the book or adventure this encounter is from, and would populate a list of filters (Why would a homebrew source reference an existing book? I have no idea, but I'm sure someone would ask for it). A "skillsInvolved" object would hold all the skills that is used in the encounter as booleans. This could also be changed to an array of object, and each object would be "skill": "string", "dc": integer if we want to also populate filters depending on DCs. A "spellsRequired" array of objects with "name": "spellName", "source": "spellSource" could be added for encounters that cannot be resolved without a specific spell being cast. This would also populate a "Spells Needed" field in the rendered output. An "entries" array would hold the descriptions, text, the general stuff. A "fluff" field is for adding images and other fluff. I guess at that point it also needs "hasFluff" and "hasFluffImages" as well. It could also have some filters, such as "Requires Spells Cast", "Reduces Hit Points", "Big Consequences", "Small Consequences", "Results in Important NPC Death", "Special Event", "One-time Event", "Regular Encounter" "Random Encounter", etc.

This whole thing would be a one click import to Foundry through Plutonium. The unique monsters would import as actors, the spells need not be imported, and the contents of the "entries" and "fluff" import into a journal entry. The encounter's combatant data can be imported to (or rather, selected in) the DM Screen's Initiative Tracker. Why should this be added?: I think the ability to browse just the encounters only would be a great boon for fostering creativity and ease of navigation around the books/adventures. I know this is a very convoluted feature request and I don't expect it to happen anytime soon (as there is a mountain of books to go through and convert the encounters from) but if it were, it might be worthy of a major version bump I feel like (probably not though, I'm not a programmer).

Upvote - Lxran#2292

Note - Lxran#2292

You can think of this as if it's a baby of Encounter Generator and the Traps/Hazards page I guess, not really, but kinda.

Upvote - Teccam#1884

Upvote - Capy_Capone#6939

Upvote - Regan Dtor#9007

Indifferent - spap#9812

Upvote - Kael#2097

Upvote - Nyx.Na#3321

Indifferent - JCT#2339

Upvote - Manganese Heptoxide#9486

Upvote - Konahrik13#3572

Upvote - deraviin#9963

Upvote - Zach Drac#4297

Upvote - EchoCereal#7188

Upvote - SpiceBandit#5640

Upvote - The Crab#3897

Upvote - m80hg20059#4103

Upvote - marshall#5180

Upvote - BerShka#5374

Upvote - DM Keith#2042

Upvote - GusBabiski#0369

Upvote - Arguz#7538

Upvote - renn#2225

Upvote - jkat718#2993

Upvote - Aruxard#4689

Upvote - Asian Dumpring#9793

Upvote - 162491235901112321

Upvote - 282341817305792513

Upvote - Trevis#7501

Upvote - Nerd02#1239

Upvote - LaKhe#4247

Upvote - hackermarx#1857

Upvote - JBlack#7257

Upvote - Georgi#1491

Upvote - Hakaishin - Lord Beerus#1982

Indifferent - André Sousa#5715

Upvote - r4z0r#1203

Upvote - Emperor#9923

Upvote - Fettuccine#7843

Upvote - TonRZN#6654

Upvote - TaliaHallow#1737

Upvote - Aktaios#7434

Upvote - Uelman#1630

Upvote - 272502879162597378

Upvote - bridgerrr#5148

Upvote - Raven Knight#6754

Upvote - GXKiller#0553

Upvote - Gingersnap13579#6053

Upvote - cyanomys#0001

Upvote - Mothben#4456

Indifferent - Ninjas#0595

Votes: +46 / -0 / ±4

crawltracker commented 2 years ago

Note - Lxran#2292

I made a mockup image (with inspect element <:kekw:930834155971940362> so it lacks some tags): https://files.catbox.moe/lor78s.png