v1.199.3
This commit is contained in:
parent
d16f838683
commit
661a119c6d
@ -31441,7 +31441,9 @@
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "adventure/CM/credits.webp"
|
||||
}
|
||||
},
|
||||
"width": 850,
|
||||
"height": 1063
|
||||
},
|
||||
{
|
||||
"type": "gallery",
|
||||
@ -31452,7 +31454,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/CM/credits2.webp"
|
||||
},
|
||||
"title": "On the cover: Clint Cearley gives us a glimpse of two adventurers trying to solve one of Candlekeep's great mysteries, unaware of the danger looming behind them."
|
||||
"title": "On the Cover: Clint Cearley gives us a glimpse of two adventurers trying to solve one of Candlekeep's great mysteries, unaware of the danger looming behind them.",
|
||||
"width": 850,
|
||||
"height": 653
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -31460,7 +31464,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/CM/credits3.webp"
|
||||
},
|
||||
"title": "On the alt-cover: Simen Meyer's cover incorporates the symbol of Candlekeep and various creatures into its design, creating what looks like a book one might find in the library's vaults."
|
||||
"title": "On the Alt-Cover: Simen Meyer's cover incorporates the symbol of Candlekeep and various creatures into its design, creating what looks like a book one might find in the library's vaults.",
|
||||
"width": 850,
|
||||
"height": 653
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -6827,7 +6827,7 @@
|
||||
],
|
||||
"id": "128"
|
||||
},
|
||||
"This isolated canyon descends into the depths of the Slough and is where the real treasures of the War-Slough are found, including the horn that Rexlexkala desires. Strange things occur sporadically as the characters descend, the place twisted and distorted by the great war. When a character least expects it (perhaps just after a rest, or in the midst of battle), a grotesque tentacle with a shrieking mouth instead of suckers bursts from the canyon wall to flail about wildly before withdrawing again. The tentacles are harmless unless the characters decide to attack one (then the tentacles have the statistics of a {@creature guardian naga}, but 0 movement speed, lawful evil alignment and no spellcasting trait).",
|
||||
"This isolated canyon descends into the depths of the Slough and is where the real treasures of the War-Slough are found, including the horn that Rexlexkala desires. Strange things occur sporadically as the characters descend, the place twisted and distorted by the great war. When a character least expects it (perhaps just after a rest, or in the midst of battle), a {@creature grotesque tentacle|CoA} with a shrieking mouth instead of suckers bursts from the canyon wall to flail about wildly before withdrawing again. The tentacles are harmless unless the characters decide to attack one (then the tentacles have the statistics of a {@creature guardian naga}, but 0 movement speed, lawful evil alignment and no spellcasting trait).",
|
||||
"Though the tentacles can be safely ignored, there are real dangers in the canyon. And to find items of true value, the characters have to make an effort to explore, heading deep into the canyon's bowels. Each hour the characters make a {@dc 20} Wisdom ({@skill Survival}) check to search for clues that might lead them to the treasures they seek. Failure results in an encounter, while success leads to treasure.",
|
||||
{
|
||||
"type": "entries",
|
||||
@ -6843,7 +6843,7 @@
|
||||
"name": "Treasure",
|
||||
"page": 78,
|
||||
"entries": [
|
||||
"Every time the characters succeed in their search for clues, they have a {@chance 50|50 percent} chance of finding Rexlexkala's Horn. Otherwise, they roll on the Infernal Items table. For a description of these items {@adventure see appendix D|CoA|16}. When they find the item, it might be in the clutches of a tentacle that erupts from the canyon walls, or it might be lodged at the bottom of a bubbling pool of demon ichor (which is a black pudding with 120 hit points and immunity to fire damage). After 3 such items, they'll no longer find any more infernal items here and even successful searches are now treated as failures."
|
||||
"Every time the characters succeed in their search for clues, they have a {@chance 50|50 percent} chance of finding Rexlexkala's Horn. Otherwise, they roll on the Infernal Items table. For a description of these items {@adventure see appendix D|CoA|16}. When they find the item, it might be in the clutches of a tentacle that erupts from the canyon walls, or it might be lodged at the bottom of a bubbling pool of {@creature demon ichor|CoA} (which is a black pudding with 120 hit points and immunity to fire damage). After 3 such items, they'll no longer find any more infernal items here and even successful searches are now treated as failures."
|
||||
],
|
||||
"id": "12a"
|
||||
},
|
||||
@ -6875,7 +6875,7 @@
|
||||
[
|
||||
"2",
|
||||
"Infernal Plate Armor",
|
||||
"Pool of demon ichor"
|
||||
"Pool of {@creature demon ichor|CoA}"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
@ -6885,7 +6885,7 @@
|
||||
[
|
||||
"4",
|
||||
"Canian Fork",
|
||||
"Pool of demon ichor"
|
||||
"Pool of {@creature demon ichor|CoA}"
|
||||
],
|
||||
[
|
||||
"5",
|
||||
@ -11273,7 +11273,7 @@
|
||||
"name": "Treasure",
|
||||
"page": 131,
|
||||
"entries": [
|
||||
"For each hour spent at this location excavating valuables, select a very rare magic item from the {@book Dungeon Master's Guide|DMG} (excluding weapons). However, all characters participating must repeat the earlier Constitution saving throw, or suffer the negative effects described earlier. Additionally, for each character failing their saving throw, a frozen golem (iron golem with immunity to cold) emerges and attacks."
|
||||
"For each hour spent at this location excavating valuables, select a very rare magic item from the {@book Dungeon Master's Guide|DMG} (excluding weapons). However, all characters participating must repeat the earlier Constitution saving throw, or suffer the negative effects described earlier. Additionally, for each character failing their saving throw, a {@creature frozen golem|CoA} (iron golem with immunity to cold) emerges and attacks."
|
||||
],
|
||||
"id": "203"
|
||||
},
|
||||
@ -15061,7 +15061,7 @@
|
||||
"id": "297"
|
||||
},
|
||||
"Cornelius Brassgrave (neutral evil {@creature veteran}) is a gnome artificer driven from a dozen separate haunts in the mortal planes, a creature of pure reason and no morality whose industrious experiments have poisoned seas and turned the living earth into a metal-tasting wasteland. He has made a number of large claims to Klendisk about how his machinery will revolutionize the mining at the Heights and is now finding that even golems and automata can be ground down by the weight of misery. Cornelius is less suited to Cania than most of the inhabitants of this mining town, so he tends to spend most of his time here, in his very warm home. His Constructs keep him informed and alert him to any problems in production.",
|
||||
"Another reason that he's sticking to this haven is that Kargan Skul has been in a foul mood, believing him to be responsible for disrupting her supply lines. He isn't responsible, however, and just as confused about it as she is. If he is attacked, pieces of furniture animate (two {@creature stone golem||stone golems} with immunity to cold and fire damage) and come to his defense. If the characters slay Kargan Skul, thus raising Cornelius' value to Baron Klendisk, or they deal with the rogue modron in the mines, Cornelius rewards each character with brass armbands, engraved with the gnome's name and family crest (each is worth 600 gp but have no special properties)."
|
||||
"Another reason that he's sticking to this haven is that Kargan Skul has been in a foul mood, believing him to be responsible for disrupting her supply lines. He isn't responsible, however, and just as confused about it as she is. If he is attacked, pieces of {@creature Animated Furniture|CoA|furniture animate} (two {@creature stone golem||stone golems} with immunity to cold and fire damage) and come to his defense. If the characters slay Kargan Skul, thus raising Cornelius' value to Baron Klendisk, or they deal with the rogue modron in the mines, Cornelius rewards each character with brass armbands, engraved with the gnome's name and family crest (each is worth 600 gp but have no special properties)."
|
||||
],
|
||||
"id": "296"
|
||||
},
|
||||
@ -15089,7 +15089,7 @@
|
||||
],
|
||||
"id": "299"
|
||||
},
|
||||
"The rendering sheds themselves are run under a quite different arrangement, one that has persisted for as long as any denizens of the Heights can recall, and which Klendisk himself is powerfully uncertain about. The Regular Orthoclath (lawful neutral {@creature iron golem} with Charisma, Intelligence, and Wisdom scores of 16) is a thing of facets, eyes and geometrical shapes from the lawful planes of Nirvana, here with an apparently endless workforce of modrons. They work the vats and stills tirelessly, producing sorrow wine so long as the mines yield raw materials, and never complain or ask for payment. They usually work in teams of a dozen {@creature tridrone} modrons overseen by a {@creature pentadrone} modron. {@creature Quadrone} modrons are used by the Regular Orthoclath to send messages to teams.",
|
||||
"The rendering sheds themselves are run under a quite different arrangement, one that has persisted for as long as any denizens of the Heights can recall, and which Klendisk himself is powerfully uncertain about. The {@creature Regular Orthoclath|CoA} (lawful neutral {@creature iron golem} with Charisma, Intelligence, and Wisdom scores of 16) is a thing of facets, eyes and geometrical shapes from the lawful planes of Nirvana, here with an apparently endless workforce of modrons. They work the vats and stills tirelessly, producing sorrow wine so long as the mines yield raw materials, and never complain or ask for payment. They usually work in teams of a dozen {@creature tridrone} modrons overseen by a {@creature pentadrone} modron. {@creature Quadrone} modrons are used by the {@creature Regular Orthoclath|CoA} to send messages to teams.",
|
||||
"The modron's involvement predates Klendisk's appointment and the devil exhausts himself trying to discover the actual terms of their employment. In the absence of certainty, infernal rumor is that either these are, in some way, bad modrons who are being punished for crimes against lawfulness meaningless to others\u2014or else the whole business is some grand experiment into the enduring nature of law. Certainly, individual workers eventually become corrupted by the work, sad little pieces of geometry infected with emotion, grinding to a halt as they're consumed by misery. At which point the Orthoclath casts them out, and the devils are free to devour or toy with them, not that the creatures give any real sport. There are always, apparently, more modrons ready to troop down from the lawful planes and give themselves to the work."
|
||||
],
|
||||
"id": "298"
|
||||
@ -15165,7 +15165,7 @@
|
||||
},
|
||||
"If the characters pursue the modron, it tries to stay in the air 60-80 feet away from them and fires arrows. It can't be reasoned with. If it is badly damaged, it charges the weakest looking character and tries to grapple them. If successful, it uses its movement to jump into the abyss of the mine with its victim (maximum fall damage).",
|
||||
"The characters can use this information as they see fit\u2014if either Kargan or Cornelius learn of the rogue modron, hostility between their two factions decreases a bit. Klendisk, if told, won't reveal the truth to Kargan. He, of course, is more than happy to have Brassgrave and Kargan constantly sniping at each other. He has no interest in his underlings uniting and ending up in a position where they could make demands of him.",
|
||||
"If the modron's body is returned to the Regular Orthoclath (area T5), it is taken away to be repurposed."
|
||||
"If the modron's body is returned to the {@creature Regular Orthoclath|CoA} (area T5), it is taken away to be repurposed."
|
||||
],
|
||||
"id": "29f"
|
||||
},
|
||||
@ -15329,7 +15329,7 @@
|
||||
],
|
||||
"id": "2b0"
|
||||
},
|
||||
"{@creature Waeloquay|CoA} interacts with travelers by manifesting shapes out of water and ice\u2014the forms of those Fiends and mortals that it has previously taken within itself, that become steadily less and less detailed as it forgets their features, until all it is left with are blank-faced mannequins. Alternatively, if anyone has been foolish enough to look down into the water, {@creature Waeloquay|CoA} captures their reflection and creates an icy simulacrum of them. These creations ({@creature doppelganger||doppelgangers} with immunity to cold damage) crawl onto the ship and seek to ambush individual sailors and throw them overboard into {@creature Waeloquay|CoA}'s clutches, or else try to wreck the entire ship against the ice. Anyone ending up in the water faces the effects of a Styx controlled by a hungry Elemental entity. Anyone who drowns in the water here becomes part of {@creature Waeloquay|CoA}'s library of memories, at least until the Styx abrades them away.",
|
||||
"{@creature Waeloquay|CoA} interacts with travelers by manifesting shapes out of water and ice\u2014the forms of those Fiends and mortals that it has previously taken within itself, that become steadily less and less detailed as it forgets their features, until all it is left with are blank-faced mannequins. Alternatively, if anyone has been foolish enough to look down into the water, {@creature Waeloquay|CoA} captures their reflection and creates an {@creature icy simulacrum|CoA} of them. These creations ({@creature doppelganger||doppelgangers} with immunity to cold damage) crawl onto the ship and seek to ambush individual sailors and throw them overboard into {@creature Waeloquay|CoA}'s clutches, or else try to wreck the entire ship against the ice. Anyone ending up in the water faces the effects of a Styx controlled by a hungry Elemental entity. Anyone who drowns in the water here becomes part of {@creature Waeloquay|CoA}'s library of memories, at least until the Styx abrades them away.",
|
||||
"It is possible to bargain with the Elemental for safe passage and/or for the {@item Amulet of Proof Against Detection and Location||Amulets of Proof Against Detection and Location} that were lost here years ago. Fiendish ships often carry sacrifices to throw overboard to sate {@creature Waeloquay|CoA}'s hunger, but it also accepts items of great sentimental value from which it gnaws some mental sustenance.",
|
||||
"If the characters don't bargain, then they must fight against a manifestation of the lake. If they defeat it, then {@creature Waeloquay|CoA} quickly moves them to the end of the lake and throws eight amulets into the barge, along with the skeletons still wearing them."
|
||||
],
|
||||
@ -19212,7 +19212,10 @@
|
||||
"{@creature Zariel|CoA}",
|
||||
"{@dice 1d6} {@creature bearded devil||bearded devils}"
|
||||
]
|
||||
]
|
||||
],
|
||||
"data": {
|
||||
"tableInclude": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"id": "34e"
|
||||
|
||||
@ -41558,7 +41558,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/CoS/credits.webp"
|
||||
},
|
||||
"title": "On the cover: the master of Ravenloft is having guests for dinner, and you are invited. Ben Oliver sheds light on the vampire Strahd von Zarovich, whose dark past is a tale to be told, and whose evil knows no bounds."
|
||||
"title": "On the Cover: the master of Ravenloft is having guests for dinner, and you are invited. Ben Oliver sheds light on the vampire Strahd von Zarovich, whose dark past is a tale to be told, and whose evil knows no bounds.",
|
||||
"width": 1234,
|
||||
"height": 828
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -41572,14 +41574,18 @@
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "adventure/CoS/218-poster-barovia.webp"
|
||||
}
|
||||
},
|
||||
"width": 5355,
|
||||
"height": 3775
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "adventure/CoS/219-poster-castle-ravenloft.webp"
|
||||
}
|
||||
},
|
||||
"width": 7000,
|
||||
"height": 4948
|
||||
}
|
||||
],
|
||||
"id": "0a1"
|
||||
|
||||
@ -22905,6 +22905,317 @@
|
||||
"credit": "Deven Rue"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Credits",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"columns": 2,
|
||||
"items": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Project Leads",
|
||||
"entries": [
|
||||
"James J. Haeck, Matthew Mercer, Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Director",
|
||||
"entries": [
|
||||
"Kate Irwin"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Writers",
|
||||
"entries": [
|
||||
"James J. Haeck, Makenzie De Armas, LaTia Jacquise, Cassandra Khaw, Sadie Lowry"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Additional Writing",
|
||||
"entries": [
|
||||
"Dan Dillon, Taymoor Rehman"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Rules Developers",
|
||||
"entries": [
|
||||
"Jeremy Crawford, Ben Petrisor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editors",
|
||||
"entries": [
|
||||
"Judy Bauer, Kim Mohan, Christopher Perkins, Hannah Rose"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Senior Graphic Designer",
|
||||
"entries": [
|
||||
"Trish Yochum"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Graphic Designer",
|
||||
"entries": [
|
||||
"Matt Cole"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cover Illustrator",
|
||||
"entries": [
|
||||
"Minttu Hynninen"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cartographers",
|
||||
"entries": [
|
||||
"Stacey Allan, Will Doyle, Deven Rue"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Interior Illustrators",
|
||||
"entries": [
|
||||
"Eric Belisle, Hunter S. Bonyun, Zoltan Boros, David René Christensen, CoupleOfKooks, Kent Davis, Nikki Dawes, Axel Defois, Max Dunbar, Isabel Gibney, Minttu Hynninen, Julian Kok, Linda Lithén, Jessica Mahon, Andrew Mar, Marcela Medeiros, Robson Michel, Goñi Montes, Jim Nelson, Nguyen Hieu, Jessica Nguyen, Irina Nordsol, Caio E Santos, David Sladek, Crystal Sully, Brian Valeza, Anna Veltkamp, Johannes Voss, Tyler Walpole, Lauren Walsh, Shawn Wood, Zuzanna Wuzyk, Kieran Yanner, Anna Zee, Maria Zolotukhina"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Concept Art",
|
||||
"entries": [
|
||||
"Claudio Pozas, Richard Whitters, Shawn Wood"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cultural Consultant",
|
||||
"entries": [
|
||||
"Basheer Ghouse"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Project Engineer",
|
||||
"entries": [
|
||||
"Cynda Callaway"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Imaging Technician",
|
||||
"entries": [
|
||||
"Daniel Corona"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Prepress Specialist",
|
||||
"entries": [
|
||||
"Jefferson Dunlap"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "D&D Studio",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Executive Producer",
|
||||
"entries": [
|
||||
"Ray Winninger"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Game Architects",
|
||||
"entries": [
|
||||
"Jeremy Crawford, Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Design Manager",
|
||||
"entries": [
|
||||
"Steve Scott"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Design Department",
|
||||
"entries": [
|
||||
"Sydney Adams, Judy Bauer, Makenzie De Armas, Dan Dillon, Amanda Hamon, Ari Levitch, Ben Petrisor, Taymoor Rehman, F. Wesley Schneider, James Wyatt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Team Manager",
|
||||
"entries": [
|
||||
"Richard Whitters"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Department",
|
||||
"entries": [
|
||||
"Matt Cole, Trystan Falcone, Bree Heiss, Kate Irwin, Bob Jordan, Emi Tanji, Shawn Wood, Trish Yochum"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Senior Producers",
|
||||
"entries": [
|
||||
"Lisa Ohanian, Dan Tovar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Producers",
|
||||
"entries": [
|
||||
"Bill Benham, Robert Hawkey, Lea Heleotis"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Director of Product Management",
|
||||
"entries": [
|
||||
"Liz Schuh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Managers",
|
||||
"entries": [
|
||||
"Natalie Egan, Chris Lindsay, Hilary Ross, Chris Tulach"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "D&D Marketing",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Director of Global Brand Marketing",
|
||||
"entries": [
|
||||
"Brian Perry"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Global Brand Manager",
|
||||
"entries": [
|
||||
"Shelly Mazzanoble"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Senior Marketing Communications Manager",
|
||||
"entries": [
|
||||
"Greg Tito"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Community Manager",
|
||||
"entries": [
|
||||
"Brandy Camel"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Critical Role Team",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Creator of Exandria",
|
||||
"entries": [
|
||||
"Matthew Mercer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Critical Role Cast",
|
||||
"entries": [
|
||||
"Laura Bailey, Taliesin Jaffe, Ashley Johnson, Liam O'Brien, Marisha Ray, Sam Riegel, Travis Willingham"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Story Ideas and Feedback",
|
||||
"entries": [
|
||||
"Dani Carr, Basheer Ghouse, Mark Hulmes, Erika Ishii, Aabria Iyengar, Matthew Key, Brennan Lee Mulligan, Eduardo Lopez, Rachel Romero, Ben Van Der Fluit, Brittany Walloch"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "adventure/CRCotN/credits.webp"
|
||||
},
|
||||
"title": "On the Cover: Minttu Hynninen illustrates five adventurers who aim to release the Apotheon, a forgotten hero of Exandria, from his prison. On the back cover, a slithering bloodfin hunts in the sunken abyss known as the Netherdeep.",
|
||||
"width": 1200,
|
||||
"height": 792
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -6475,7 +6475,9 @@
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "adventure/DoDk/aldor-the-immense.webp"
|
||||
}
|
||||
},
|
||||
"width": 1700,
|
||||
"height": 1557
|
||||
},
|
||||
{
|
||||
"type": "quote",
|
||||
@ -22003,7 +22005,7 @@
|
||||
"This melancholic creature stands six feet tall with long, thin limbs. Her chalky white skin is cracked and rigid like stone, and her hair is a writhing mass of thick wet tendrils that end in toothy maws. She wears an emerald necklace and a distressed black ball gown. She covers her hair with a shawl and her face with a cracked porcelain mask."
|
||||
]
|
||||
},
|
||||
"{@creature Lenore von Kessel|DoDk}, the Queen-Consort of Drakkenheim and wife of Ulrich IV has become a monster that uses the game statistics of a {@creature medusa|MOT}. Replace the normal {@i Petrifying Gaze} trait and actions with the following:",
|
||||
"{@creature Lenore von Kessel|DoDk}, the Queen-Consort of Drakkenheim and wife of Ulrich IV has become a monster that uses the game statistics of a {@creature medusa}. Replace the normal {@i Petrifying Gaze} trait and actions with the following:",
|
||||
{
|
||||
"type": "list",
|
||||
"items": [
|
||||
|
||||
@ -27471,7 +27471,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/DSotDQ/credits.webp"
|
||||
},
|
||||
"maxWidth": 300
|
||||
"maxWidth": 300,
|
||||
"width": 850,
|
||||
"height": 843
|
||||
},
|
||||
{
|
||||
"type": "gallery",
|
||||
@ -27482,7 +27484,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/DSotDQ/credits2.webp"
|
||||
},
|
||||
"title": "On the cover: Dragons, draconians, and other servants of the Dragon Queen prepare for their invasion of Kalaman in this painting by Cynthia Sheppard."
|
||||
"title": "On the Cover: Dragons, draconians, and other servants of the Dragon Queen prepare for their invasion of Kalaman in this painting by Cynthia Sheppard.",
|
||||
"width": 1200,
|
||||
"height": 780
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -27490,7 +27494,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/DSotDQ/credits3.webp"
|
||||
},
|
||||
"title": "On the cover: The grim visage of the death knight Lord Soth, Knight of the Black Rose, glares from of a tangle of charred thorns in this cover by Chase Stone."
|
||||
"title": "On the Cover: The grim visage of the death knight Lord Soth, Knight of the Black Rose, glares from of a tangle of charred thorns in this cover by Chase Stone.",
|
||||
"width": 1200,
|
||||
"height": 780
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -2497,6 +2497,96 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Credits",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"columns": 2,
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Designers",
|
||||
"entries": [
|
||||
"Patrick Renie, James Wyatt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Director",
|
||||
"entries": [
|
||||
"Bree Heiss, Emi Tanji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editor",
|
||||
"entries": [
|
||||
"Janica Carter"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Graphic Designer",
|
||||
"entries": [
|
||||
"Trish Yochum"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Illustrators",
|
||||
"entries": [
|
||||
"Olivier Bernard, Dawn Carlos, Dyson Logos, Riccardo Moscatello"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Imaging Technicians",
|
||||
"entries": [
|
||||
"Daniel Corona, Kevin Yee"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Senior Producer",
|
||||
"entries": [
|
||||
"Dan Tovar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Producer",
|
||||
"entries": [
|
||||
"Siera Bruggeman, Gabriel Waluconis"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Manager",
|
||||
"entries": [
|
||||
"Natalie Egan"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "D&D Beyond Product Managers",
|
||||
"entries": [
|
||||
"Patrick Backmann, Jeff Turriff"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "D&D Beyond Digital Design Team",
|
||||
"entries": [
|
||||
"Jay Jani, Adam Walton, Joseph Keen, Cameron Powell, Sean Stoves"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -983,6 +983,215 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Credits",
|
||||
"entries": [
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"columns": 2,
|
||||
"items": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Lead Designers",
|
||||
"entries": [
|
||||
"Jason Tondro, Kate Welch"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Writer",
|
||||
"entries": [
|
||||
"Deborah Ann Woll"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Directors",
|
||||
"entries": [
|
||||
"Fury Galluzzi, Kate Irwin"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Rules Developers",
|
||||
"entries": [
|
||||
"Ben Petrisor, Kate Welch"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editors",
|
||||
"entries": [
|
||||
"Judy Bauer, Patrick Renie, Hannah Rose"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Graphic Designer",
|
||||
"entries": [
|
||||
"Trish Yochum"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cover Illustrator",
|
||||
"entries": [
|
||||
"Irina Nordsol"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cartographer",
|
||||
"entries": [
|
||||
"Sean MacDonald"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Interior Illustrators",
|
||||
"entries": [
|
||||
"CoupleOfKooks, Calder Moore, Irina Nordsol, Robin Olausson"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Consultant",
|
||||
"entries": [
|
||||
"Nivair Gabriel"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Game Architects",
|
||||
"entries": [
|
||||
"Jeremy Crawford, Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Studio Art Director",
|
||||
"entries": [
|
||||
"Josh Herman"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Managing Editor",
|
||||
"entries": [
|
||||
"Judy Bauer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Senior Producer",
|
||||
"entries": [
|
||||
"Dan Tovar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Producer",
|
||||
"entries": [
|
||||
"Andy Smith"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Manager",
|
||||
"entries": [
|
||||
"Natalie Egan"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "D&D Beyond",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Manager",
|
||||
"entries": [
|
||||
"Jeff Turriff"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Digital Design Team",
|
||||
"entries": [
|
||||
"Jay Jani, Sean Stoves, Adam Walton"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Heroes' Feast Flavors of the Multiverse",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Authors",
|
||||
"entries": [
|
||||
"Kyle Newman, Jon Peterson, Michael Witwer, and Sam Witwer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Official Dungeons & Dragons Licensed Recipe Developer",
|
||||
"entries": [
|
||||
"Adam Ried"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Ten Speed Press Editors",
|
||||
"entries": [
|
||||
"Shaida Boroumand and Claire Yee"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Ten Speed Press Art Director and Designer",
|
||||
"entries": [
|
||||
"Kelly Booth"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Ten Speed Press Photo Director",
|
||||
"entries": [
|
||||
"Emma Campion"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -58780,7 +58780,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/IDRotF/credits.webp"
|
||||
},
|
||||
"title": "On the Cover: Auril the Frostmaiden claims her latest victim in Tyler Jacobson's chillingly macabre cover illustration. On the back, an elemental spirit called a chwinga comes out to play."
|
||||
"title": "On the Cover: Auril the Frostmaiden claims her latest victim in Tyler Jacobson's chillingly macabre cover illustration. On the back, an elemental spirit called a chwinga comes out to play.",
|
||||
"width": 1140,
|
||||
"height": 750
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -58788,7 +58790,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/IDRotF/credits2.webp"
|
||||
},
|
||||
"title": "On the Alt-Cover: Hydro74 shows the doom of Ten-Towns: Auril the Frostmaiden, the god of winter's wrath. Adorning the back cover is the Frostmaiden's holy symbol."
|
||||
"title": "On the Alt-Cover: Hydro74 shows the doom of Ten-Towns: Auril the Frostmaiden, the god of winter's wrath. Adorning the back cover is the Frostmaiden's holy symbol.",
|
||||
"width": 1140,
|
||||
"height": 750
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -32274,7 +32274,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/JttRC/credits.webp"
|
||||
},
|
||||
"maxWidth": 300
|
||||
"maxWidth": 300,
|
||||
"width": 850,
|
||||
"height": 689
|
||||
},
|
||||
{
|
||||
"type": "gallery",
|
||||
@ -32285,7 +32287,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/JttRC/credits2.webp"
|
||||
},
|
||||
"title": "On the cover: A mischievous wynling soars above the Dyn Singh Night Market, avoiding people from countless lands and illusory shop signage, in this cover by Evyn Fong."
|
||||
"title": "On the Cover: A mischievous wynling soars above the Dyn Singh Night Market, avoiding people from countless lands and illusory shop signage, in this cover by Evyn Fong.",
|
||||
"width": 1280,
|
||||
"height": 825
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -32293,7 +32297,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/JttRC/credits3.webp"
|
||||
},
|
||||
"title": "On the alt-cover: The aura of the Radiant Citadel illuminates the ancestral shapes of the Dawn Incarnates, gemstone manifestations of stories and spirits, in this cover by Sija Hong."
|
||||
"title": "On the Alt-Cover: The aura of the Radiant Citadel illuminates the ancestral shapes of the Dawn Incarnates, gemstone manifestations of stories and spirits, in this cover by Sija Hong.",
|
||||
"width": 1280,
|
||||
"height": 825
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1318,6 +1318,147 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Credits",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"columns": 2,
|
||||
"items": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Lead Designer",
|
||||
"entries": [
|
||||
"Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Director",
|
||||
"entries": [
|
||||
"Fury Galluzzi"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editors",
|
||||
"entries": [
|
||||
"Judy Bauer, Janica Carter, Adrian Ng"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Graphic Designer",
|
||||
"entries": [
|
||||
"Matt Cole"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cartographer",
|
||||
"entries": [
|
||||
"Sean Macdonald"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Illustrator",
|
||||
"entries": [
|
||||
"Ilya Shkipin"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Consultant",
|
||||
"entries": [
|
||||
"Jonathan Tomhave"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Game Architects",
|
||||
"entries": [
|
||||
"Jeremy Crawford, Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Studio Art Director",
|
||||
"entries": [
|
||||
"Josh Herman"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Managing Editor",
|
||||
"entries": [
|
||||
"Judy Bauer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Senior Producer",
|
||||
"entries": [
|
||||
"Dan Tovar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Producer",
|
||||
"entries": [
|
||||
"Andy Smith"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Manager",
|
||||
"entries": [
|
||||
"Natalie Egan"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "D&D Beyond",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Manager",
|
||||
"entries": [
|
||||
"Jeff Turriff"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Digital Design Team",
|
||||
"entries": [
|
||||
"Jay Jani, Sean Stoves, Adam Walton"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -45536,33 +45536,310 @@
|
||||
},
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Cover",
|
||||
"id": "4cc",
|
||||
"name": "Credits",
|
||||
"entries": [
|
||||
{
|
||||
"type": "gallery",
|
||||
"images": [
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"columns": 2,
|
||||
"items": [
|
||||
{
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "adventure/PaBTSO/179-12-002.tso-cover.webp"
|
||||
},
|
||||
"title": "On the Cover: Goblins with psionic powers steal a piece of a mysterious obelisk from the sleepy town of Phandalin in this breathtaking cover by Antonio José Manzanedo.",
|
||||
"credit": "Antonio José Manzanedo",
|
||||
"width": 1194,
|
||||
"height": 774
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Project Lead",
|
||||
"entries": [
|
||||
"Amanda Hamon"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Director",
|
||||
"entries": [
|
||||
"Bree Heiss"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Writers",
|
||||
"entries": [
|
||||
"Richard Baker, Eytan Bernstein, Makenzie De Armas, Amanda Hamon, Ron Lundeen, Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Rules Developers",
|
||||
"entries": [
|
||||
"Jeremy Crawford, Ben Petrisor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Lead Editor",
|
||||
"entries": [
|
||||
"Eytan Bernstein"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editors",
|
||||
"entries": [
|
||||
"Judy Bauer, Janica Carter, Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Lead Graphic Designer",
|
||||
"entries": [
|
||||
"Trish Yochum"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Additional Graphic Designer",
|
||||
"entries": [
|
||||
"Trystan Falcone"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cover Illustrators",
|
||||
"entries": [
|
||||
"DZO, Antonio José Manzanedo"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cartographer",
|
||||
"entries": [
|
||||
"Mike Schley"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Consultants",
|
||||
"entries": [
|
||||
"Rico Corazón, Siena East, Nivair Gabriel, Sara Thompson"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Interior Illustrators",
|
||||
"entries": [
|
||||
"Lily Abdullina, Wade Acuff, Zoltan Boros, Bruce Brenneise, Sam Burley, Devon Cady-Lee, Chris Casciano, Domenico Cava, Conceptopolis, CoupleOfKooks, Sarah Dahlinger, Kent Davis, Nikki Dawes, Axel Defois, Julie Dillon, Simon Dominic, Olga Drebas, Jason A. Engle, Isabel Gibney, Michele Giorgi, John Grello, Alexandre Honoré, Richard Luong, Warren Mahy, Brynn Metheney, Robson Michel, Scott Murphy, Jessica Nguyen, Hinchel Or, Vicki Pangestu, Klaus Pillon, Claudio Pozas, Steve Prescott, Julio Reyna, Wayne Reynolds, Ned Rogers, Mike Schley, Hex Sharpe, Ilya Shkipin, Craig J Spearing, John Stanko, Crystal Sully, Brian Valenzuela, Brian Valeza, Nino Vecia, Tyler Walpole, Jabari Weathers"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Concept Artists",
|
||||
"entries": [
|
||||
"Kent Davis, Richard Luong"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Project Engineer",
|
||||
"entries": [
|
||||
"Cynda Callaway"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Imaging Technicians",
|
||||
"entries": [
|
||||
"Daniel Corona, Kevin Yee"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Prepress Specialist",
|
||||
"entries": [
|
||||
"Jefferson Dunlap"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "D&D Studio",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Executive Producer",
|
||||
"entries": [
|
||||
"Kyle Brink"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Game Architects",
|
||||
"entries": [
|
||||
"Jeremy Crawford, Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Studio Art Director",
|
||||
"entries": [
|
||||
"Josh Herman"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Manager",
|
||||
"entries": [
|
||||
"Rob Sather"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Department",
|
||||
"entries": [
|
||||
"Matt Cole, Trystan Falcone, Bree Heiss, Kate Irwin, Bob Jordan, Noor Rahman, Emi Tanji, Trish Yochum"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Design Department",
|
||||
"entries": [
|
||||
"Justice Ramin Arman, Makenzie De Armas, Dan Dillon, Amanda Hamon, Ron Lundeen, Ben Petrisor, Patrick Renie, F. Wesley Schneider, Carl Sibley, Jason Tondro, James Wyatt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Managing Editor",
|
||||
"entries": [
|
||||
"Judy Bauer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editorial Department",
|
||||
"entries": [
|
||||
"Eytan Bernstein, Janica Carter, Adrian Ng"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Senior Producer",
|
||||
"entries": [
|
||||
"Dan Tovar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Producers",
|
||||
"entries": [
|
||||
"Bill Benham, Siera Bruggeman, Robert Hawkey, Andy Smith, Gabriel Waluconis"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Director of Product Management",
|
||||
"entries": [
|
||||
"Liz Schuh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Managers",
|
||||
"entries": [
|
||||
"Natalie Egan, Chris Lindsay, Hilary Ross, Chris Tulach"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "D&D Beyond",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Manager",
|
||||
"entries": [
|
||||
"Patrick Backmann, Jeff Turriff"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Digital Design Team",
|
||||
"entries": [
|
||||
"Jay Jani, Adam Walton, Cameron Powell, Joseph Keen, Sean Stoves"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "section",
|
||||
"entries": [
|
||||
"Special thanks to T. Alexander Stangroom and to the hundreds of playtesters whose efforts made this a better book.",
|
||||
{
|
||||
"type": "inset",
|
||||
"name": "The following product provided information and inspiration:",
|
||||
"entries": [
|
||||
"{@adventure Lost Mine of Phandelver|LMoP}. 2014."
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "adventure/PaBTSO/180-12-003.tso-alt.webp"
|
||||
"path": "adventure/PaBTSO/credits.webp"
|
||||
},
|
||||
"title": "On the Alt-Cover: A roiling array of sinister elements surrounds the titular obelisk that's at the center of the doom threatening Phandalin in this spectacular cover by DZO.",
|
||||
"credit": "DZO",
|
||||
"width": 1194,
|
||||
"height": 774
|
||||
"maxWidth": 350,
|
||||
"width": 850,
|
||||
"height": 578
|
||||
},
|
||||
{
|
||||
"type": "gallery",
|
||||
"images": [
|
||||
{
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "adventure/PaBTSO/credits2.webp"
|
||||
},
|
||||
"title": "On the Cover: Goblins with psionic powers steal a piece of a mysterious obelisk from the sleepy town of Phandalin in this breathtaking cover by Antonio José Manzanedo.",
|
||||
"width": 1194,
|
||||
"height": 774
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "adventure/PaBTSO/credits3.webp"
|
||||
},
|
||||
"title": "On the Alt-Cover: A roiling array of sinister elements surrounds the titular obelisk that's at the center of the doom threatening Phandalin in this spectacular cover by DZO.",
|
||||
"width": 1194,
|
||||
"height": 774
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -5043,6 +5043,222 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Credits",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Lead Designer",
|
||||
"entries": [
|
||||
"Kate Welch"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Adventure Designers and Rulebook Commenters",
|
||||
"entries": [
|
||||
"Ryan Hartman, Adam Lee, Ari Levitch, Jim Zub"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Adventure Developer",
|
||||
"entries": [
|
||||
"Ben Petrisor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Playtest Coordinator",
|
||||
"entries": [
|
||||
"Bill Benham"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editors",
|
||||
"entries": [
|
||||
"F. Wesley Schneider, Jeremy Crawford, Dan Dillon, Scott Fitzgerald Gray, Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Directors",
|
||||
"entries": [
|
||||
"Kate Irwin, Shauna Narciso, Richard Whitters"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Graphic Designer",
|
||||
"entries": [
|
||||
"Emi Tanji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cover Illustrator",
|
||||
"entries": [
|
||||
"Troy Little"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Illustrators",
|
||||
"entries": [
|
||||
"Eric Belisle, Conceptopolis, Wayne England, Randy Gallegos, Troy Little, Brynn Metheney, Ryan Pancoast, Steve Prescott, Richard Sardinha, Ilya Shkipin, Matt Stawicki, Autumn Rain Turkel, Kieran Yanner"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cartographers",
|
||||
"entries": [
|
||||
"Kate Welch, Richard Whitters"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Original Rulebook Designer",
|
||||
"entries": [
|
||||
"Jeremy Crawford"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Original 5th Edition Designers",
|
||||
"entries": [
|
||||
"Jeremy Crawford, Mike Mearls, Christopher Perkins, James Wyatt, Rodney Thompson, Robert J. Schwalb, Peter Lee, Steve Townshend, Bruce R. Cordell"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Original 5th Edition Editors",
|
||||
"entries": [
|
||||
"Chris Sims, Michele Carter, Scott Fitzgerald Gray, Kim Mohan"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Based on the Griginal D&D Game By",
|
||||
"entries": [
|
||||
"E. Gary Gygax and Dave Arneson"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Producer",
|
||||
"entries": [
|
||||
"Dan Tovar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Project Manager",
|
||||
"entries": [
|
||||
"Bill Benham"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Brand Manager",
|
||||
"entries": [
|
||||
"Shelly Mazzanoble"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Production Services",
|
||||
"entries": [
|
||||
"Cynda Callaway, Kevin Yee, David Gershman, Jefferson Dunlap"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "VP, Franchise & Global Brand Strategy",
|
||||
"entries": [
|
||||
"Nathan Stewart"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Director Licensing & Publishing",
|
||||
"entries": [
|
||||
"Liz Schuh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Franchise Creative Director",
|
||||
"entries": [
|
||||
"Mike Mearls"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Licensing Manager",
|
||||
"entries": [
|
||||
"Hilary Ross"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Marketing and Communications",
|
||||
"entries": [
|
||||
"Bart Carroll, Pelham Greene, Greg Tito, Anna Vo"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Specialist",
|
||||
"entries": [
|
||||
"Christopher Lindsay"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Game Designer",
|
||||
"entries": [
|
||||
"Dan Dillon"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Senior Graphic Designer",
|
||||
"entries": [
|
||||
"Trish Yochum"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Associate Producer",
|
||||
"entries": [
|
||||
"Lea Heleotis"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "book/RMR/152-ram-condition-stunned.webp"
|
||||
},
|
||||
"width": 321,
|
||||
"height": 508
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -21586,7 +21586,7 @@
|
||||
"page": 112,
|
||||
"id": "26a",
|
||||
"entries": [
|
||||
"Shortly after the characters arrive in Waterdeep, a cloud giant castle emerges from the clouds overhead and looms above the city, its ominous shadow causing widespread panic. Lady Laeral Silverhand dispatches heralds to calm the people and assure them that no harm will befall the city. If the adventurers decide to investigate, they must devise a method of reaching the giant castle, which hangs 1,000 feet in the air. The castle has a configuration similar to that of Lyn Armaal (see chapter 9, \"{@adventure Castle of the Cloud Giants|SKT|10}\") and is home to a neutral good clan made up of four adult {@creature Cloud Giant||cloud giants}, three {@creature Young Cloud Giant|SKT|young cloud giants}, four pet {@creature Griffon||griffons}, and eight {@creature Stone Giant||stone giants} that serve as guards. The {@creature Young Cloud Giant|SKT|young cloud giants} use the {@creature hill giant} statistics, with the following changes:",
|
||||
"Shortly after the characters arrive in Waterdeep, a cloud giant castle emerges from the clouds overhead and looms above the city, its ominous shadow causing widespread panic. Lady Laeral Silverhand dispatches heralds to calm the people and assure them that no harm will befall the city. If the adventurers decide to investigate, they must devise a method of reaching the giant castle, which hangs 1,000 feet in the air. The castle has a configuration similar to that of Lyn Armaal (see chapter 9, \"{@adventure Castle of the Cloud Giants|SKT|11}\") and is home to a neutral good clan made up of four adult {@creature Cloud Giant||cloud giants}, three {@creature Young Cloud Giant|SKT|young cloud giants}, four pet {@creature Griffon||griffons}, and eight {@creature Stone Giant||stone giants} that serve as guards. The {@creature Young Cloud Giant|SKT|young cloud giants} use the {@creature hill giant} statistics, with the following changes:",
|
||||
{
|
||||
"type": "list",
|
||||
"items": [
|
||||
@ -49952,7 +49952,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/SKT/credits.webp"
|
||||
},
|
||||
"title": "On the cover: Heir to the Wyrmskull Throne, and indeed all giant-kind, the storm giant Serissa stands amidst the clouds, in the shadow of her mighty father, King Hekaton. Her contentious elder siblings, Mirran and Nym, occupy the forefront of this tempestuous illustration by the esteemed Tyler Jacobson."
|
||||
"title": "On the Cover: Heir to the Wyrmskull Throne, and indeed all giant-kind, the storm giant Serissa stands amidst the clouds, in the shadow of her mighty father, King Hekaton. Her contentious elder siblings, Mirran and Nym, occupy the forefront of this tempestuous illustration by the esteemed Tyler Jacobson.",
|
||||
"width": 1058,
|
||||
"height": 704
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -38817,7 +38817,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits.webp"
|
||||
},
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson."
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson.",
|
||||
"width": 2560,
|
||||
"height": 1690
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -38825,7 +38827,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits1.webp"
|
||||
},
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}."
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}.",
|
||||
"width": 1397,
|
||||
"height": 1200
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -37813,7 +37813,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits.webp"
|
||||
},
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson."
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson.",
|
||||
"width": 2560,
|
||||
"height": 1690
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -37821,7 +37823,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits1.webp"
|
||||
},
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}."
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}.",
|
||||
"width": 1397,
|
||||
"height": 1200
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -14048,7 +14048,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits.webp"
|
||||
},
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson."
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson.",
|
||||
"width": 2560,
|
||||
"height": 1690
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -14056,7 +14058,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits1.webp"
|
||||
},
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}."
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}.",
|
||||
"width": 1397,
|
||||
"height": 1200
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -6259,7 +6259,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits.webp"
|
||||
},
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson."
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson.",
|
||||
"width": 2560,
|
||||
"height": 1690
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -6267,7 +6269,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits1.webp"
|
||||
},
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}."
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}.",
|
||||
"width": 1397,
|
||||
"height": 1200
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -4152,7 +4152,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits.webp"
|
||||
},
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson."
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson.",
|
||||
"width": 2560,
|
||||
"height": 1690
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -4160,7 +4162,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits1.webp"
|
||||
},
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}."
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}.",
|
||||
"width": 1397,
|
||||
"height": 1200
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -9950,7 +9950,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits.webp"
|
||||
},
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson."
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson.",
|
||||
"width": 2560,
|
||||
"height": 1690
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -9958,7 +9960,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits1.webp"
|
||||
},
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}."
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}.",
|
||||
"width": 1397,
|
||||
"height": 1200
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -4854,7 +4854,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits.webp"
|
||||
},
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson."
|
||||
"title": "As proprietor of the Yawning Portal, Durnan has heard amazing tales from adventurers of all sorts from across the multiverse, as seen in this array of characters by Tyler Jacobson.",
|
||||
"width": 2560,
|
||||
"height": 1690
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -4862,7 +4864,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/TftYP/credits1.webp"
|
||||
},
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}."
|
||||
"title": "See if you can identify the face and the adventure found in {@i Tales from the Yawning Portal}.",
|
||||
"width": 1397,
|
||||
"height": 1200
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -26388,7 +26388,9 @@
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "adventure/WBtW/credits.webp"
|
||||
}
|
||||
},
|
||||
"width": 850,
|
||||
"height": 1063
|
||||
},
|
||||
{
|
||||
"type": "gallery",
|
||||
@ -26399,7 +26401,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/WBtW/credits2.webp"
|
||||
},
|
||||
"title": "On the cover: The Witchlight Carnival has come to town! On the back cover, a displacer beast finds 8-year-old Tyler Jacobson and leads him back to the carnival, where he belongs."
|
||||
"title": "On the Cover: The Witchlight Carnival has come to town! On the back cover, a displacer beast finds 8-year-old Tyler Jacobson and leads him back to the carnival, where he belongs.",
|
||||
"width": 1200,
|
||||
"height": 780
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
@ -26407,7 +26411,9 @@
|
||||
"type": "internal",
|
||||
"path": "adventure/WBtW/credits3.webp"
|
||||
},
|
||||
"title": "On the alt-cover: Hydro74 presents Star, a displacer beast kitten that loves adventuring in the Feywild. A wondrous magic item called the Witchlight vane graces the back cover."
|
||||
"title": "On the Alt-Cover: Hydro74 presents Star, a displacer beast kitten that loves adventuring in the Feywild. A wondrous magic item called the Witchlight vane graces the back cover.",
|
||||
"width": 1200,
|
||||
"height": 780
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -21037,6 +21037,9 @@
|
||||
"Creature Stat Blocks",
|
||||
"Creature Descriptions"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Credits"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -27376,6 +27379,9 @@
|
||||
"type": "appendix",
|
||||
"identifier": "F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Credits"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -30214,6 +30220,9 @@
|
||||
"Conclusion",
|
||||
"Appendix"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Credits"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -31303,7 +31312,7 @@
|
||||
"name": "Story Tracker"
|
||||
},
|
||||
{
|
||||
"name": "Cover"
|
||||
"name": "Credits"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -31416,6 +31425,9 @@
|
||||
},
|
||||
"Concluding the Adventure"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Credits"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -32372,6 +32384,9 @@
|
||||
"Appendix A: Cheesemonger's Almanac",
|
||||
"Appendix B: Kender Stumblenoodles Recipe"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Credits"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -4303,10 +4303,12 @@
|
||||
"_copy": {
|
||||
"name": "Archmage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -4704,10 +4704,12 @@
|
||||
"_copy": {
|
||||
"name": "Archmage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Water Genasi",
|
||||
"source": "EEPC"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Water Genasi",
|
||||
"source": "EEPC"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -2611,7 +2611,7 @@
|
||||
{
|
||||
"name": "Devil's Sight",
|
||||
"entries": [
|
||||
"Magical darkness doesn't impede Adramalech's darkvision."
|
||||
"Magical darkness doesn't impede Morax's darkvision."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@ -4745,10 +4745,12 @@
|
||||
"_copy": {
|
||||
"name": "Assassin",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4759,10 +4761,12 @@
|
||||
"_copy": {
|
||||
"name": "Bandit",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4773,10 +4777,12 @@
|
||||
"_copy": {
|
||||
"name": "Bandit Captain",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4787,10 +4793,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true,
|
||||
"hasFluffImages": true
|
||||
@ -4802,10 +4810,12 @@
|
||||
"_copy": {
|
||||
"name": "Guard",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4816,10 +4826,12 @@
|
||||
"_copy": {
|
||||
"name": "Spy",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4830,10 +4842,12 @@
|
||||
"_copy": {
|
||||
"name": "Thug",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Vistana",
|
||||
"source": "CoS"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
|
||||
@ -1337,10 +1337,12 @@
|
||||
"_copy": {
|
||||
"name": "Occult Silvertongue",
|
||||
"source": "CRCotN",
|
||||
"_trait": {
|
||||
"name": "Goliath",
|
||||
"source": "VGM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Goliath",
|
||||
"source": "VGM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2704,10 +2706,12 @@
|
||||
"_copy": {
|
||||
"name": "Priest",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Firbolg",
|
||||
"source": "VGM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Firbolg",
|
||||
"source": "VGM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3357,10 +3361,12 @@
|
||||
"_copy": {
|
||||
"name": "Scholarly Mastermind",
|
||||
"source": "CRCotN",
|
||||
"_trait": {
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3943,10 +3949,12 @@
|
||||
"_copy": {
|
||||
"name": "Assassin",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -5630,10 +5638,12 @@
|
||||
"_copy": {
|
||||
"name": "Scholarly Agent",
|
||||
"source": "CRCotN",
|
||||
"_trait": {
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -6081,10 +6091,12 @@
|
||||
"_copy": {
|
||||
"name": "Scholarly Agent",
|
||||
"source": "CRCotN",
|
||||
"_trait": {
|
||||
"name": "Kenku",
|
||||
"source": "VGM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Kenku",
|
||||
"source": "VGM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -6840,10 +6852,12 @@
|
||||
"_copy": {
|
||||
"name": "Scholarly Excavator",
|
||||
"source": "CRCotN",
|
||||
"_trait": {
|
||||
"name": "Goliath",
|
||||
"source": "VGM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Goliath",
|
||||
"source": "VGM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -402,6 +402,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Big Linda",
|
||||
"isNpc": true,
|
||||
"isNamedCreature": true,
|
||||
"source": "DoDk",
|
||||
"page": 163,
|
||||
@ -1554,6 +1555,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Eldrick Runeweaver",
|
||||
"isNpc": true,
|
||||
"isNamedCreature": true,
|
||||
"source": "DoDk",
|
||||
"page": 215,
|
||||
@ -1919,6 +1921,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Eoghan Ghostweaver",
|
||||
"isNpc": true,
|
||||
"isNamedCreature": true,
|
||||
"source": "DoDk",
|
||||
"page": 105,
|
||||
@ -2517,6 +2520,15 @@
|
||||
"mode": "replaceTxt",
|
||||
"replace": "giant",
|
||||
"with": "grotesque gargant"
|
||||
},
|
||||
"action": {
|
||||
"mode": "appendArr",
|
||||
"items": {
|
||||
"name": "Contaminating Beam",
|
||||
"entries": [
|
||||
"The grotesque gargant magically forces a creature it can see within 60 feet of it to make a {@dc 15} Constitution saving throw. The creature takes 27 ({@damage 6d8}) necrotic damage on a failed save and gains one {@adventure level of contamination|DoDk|12}."
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2528,12 +2540,6 @@
|
||||
"A grotesque gargant regains 10 hit points at the start of its turn as long as it is within the Deep Haze. The gargant dies only if it starts its turn with 0 hit points and doesn't regenerate."
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Contaminating Beam",
|
||||
"entries": [
|
||||
"The grotesque gargant magically forces a creature it can see within 60 feet of it to make a {@dc 15} Constitution saving throw. The creature takes 27 ({@damage 6d8}) necrotic damage on a failed save and gains one {@adventure level of contamination|DoDk|12}."
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Misty Camouflage",
|
||||
"entries": [
|
||||
@ -2781,24 +2787,38 @@
|
||||
"replace": "wight",
|
||||
"with": "haze wight"
|
||||
},
|
||||
"action": {
|
||||
"mode": "replaceArr",
|
||||
"replace": "Life Drain",
|
||||
"items": [
|
||||
{
|
||||
"name": "Contaminated Touch",
|
||||
"entries": [
|
||||
"{@atk mw} {@hit 4} to hit, reach 5 ft., one creature. {@h}10 ({@damage 3d6}) necrotic damage. The target must succeed on a {@dc 13} Constitution saving throw or gain one {@adventure level of contamination|DoDk|12}."
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Create Haze Husk",
|
||||
"entries": [
|
||||
"The wight targets a humanoid within 10 feet of it that has been dead for no longer than 1 minute and died violently. It rises as a haze husk in an unoccupied space within 5 feet. The haze husk is under the wight's control. The wight can have no more than 12 haze husks under its control at one time."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
"action": [
|
||||
{
|
||||
"mode": "replaceArr",
|
||||
"replace": "Multiattack",
|
||||
"items": [
|
||||
{
|
||||
"name": "Multiattack",
|
||||
"entries": [
|
||||
"The haze wight makes two longsword attacks or two longbow attacks. It can use its Contaminated Touch or Create Haze Husk in place of one longsword attack."
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"mode": "replaceArr",
|
||||
"replace": "Life Drain",
|
||||
"items": [
|
||||
{
|
||||
"name": "Contaminated Touch",
|
||||
"entries": [
|
||||
"{@atk mw} {@hit 4} to hit, reach 5 ft., one creature. {@h}10 ({@damage 3d6}) necrotic damage. The target must succeed on a {@dc 13} Constitution saving throw or gain one {@adventure level of contamination|DoDk|12}."
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Create Haze Husk",
|
||||
"entries": [
|
||||
"The wight targets a humanoid within 10 feet of it that has been dead for no longer than 1 minute and died violently. It rises as a haze husk in an unoccupied space within 5 feet. The haze husk is under the wight's control. The wight can have no more than 12 haze husks under its control at one time."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"tokenCredit": "Igor Krstic",
|
||||
@ -3202,51 +3222,22 @@
|
||||
},
|
||||
{
|
||||
"name": "Lenore von Kessel",
|
||||
"isNpc": true,
|
||||
"isNamedCreature": true,
|
||||
"source": "DoDk",
|
||||
"page": 134,
|
||||
"size": [
|
||||
"M"
|
||||
],
|
||||
"type": "monstrosity",
|
||||
"alignment": [
|
||||
"L",
|
||||
"E"
|
||||
],
|
||||
"ac": [
|
||||
{
|
||||
"ac": 15,
|
||||
"from": [
|
||||
"natural armor"
|
||||
]
|
||||
"_copy": {
|
||||
"name": "Medusa",
|
||||
"source": "MM",
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
"replace": "the medusa",
|
||||
"with": "Lenore",
|
||||
"flags": "i"
|
||||
}
|
||||
}
|
||||
],
|
||||
"hp": {
|
||||
"average": 127,
|
||||
"formula": "17d8 + 51"
|
||||
},
|
||||
"speed": {
|
||||
"walk": 30
|
||||
},
|
||||
"str": 10,
|
||||
"dex": 15,
|
||||
"con": 16,
|
||||
"int": 12,
|
||||
"wis": 13,
|
||||
"cha": 15,
|
||||
"skill": {
|
||||
"deception": "+5",
|
||||
"insight": "+4",
|
||||
"perception": "+4",
|
||||
"stealth": "+5"
|
||||
},
|
||||
"senses": [
|
||||
"darkvision 60 ft."
|
||||
],
|
||||
"passive": 14,
|
||||
"languages": [
|
||||
"Common"
|
||||
],
|
||||
"cr": "6",
|
||||
"trait": [
|
||||
{
|
||||
"name": "Radiant Gaze",
|
||||
@ -3258,58 +3249,13 @@
|
||||
}
|
||||
],
|
||||
"action": [
|
||||
{
|
||||
"name": "Multiattack",
|
||||
"entries": [
|
||||
"The medusa makes either three melee attacks\u2014one with its snake hair and two with its shortsword\u2014or two ranged attacks with its longbow."
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Tentacle Hair",
|
||||
"entries": [
|
||||
"{@atk mw} {@hit 5} to hit, reach 5 ft., one creature. {@h}4 ({@damage 1d4 + 2}) piercing damage plus 14 ({@damage 4d6}) necrotic damage. The target must succeed on a {@dc 14} Constitution saving throw or gain one {@adventure level of contamination|DoDk|12}."
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Shortsword",
|
||||
"entries": [
|
||||
"{@atk mw} {@hit 5} to hit, reach 5 ft., one target. {@h}5 ({@damage 1d6 + 2}) piercing damage."
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Longbow",
|
||||
"entries": [
|
||||
"{@atk rw} {@hit 5} to hit, range 150/600 ft., one target. {@h}6 ({@damage 1d8 + 2}) piercing damage plus 7 ({@damage 2d6}) poison damage."
|
||||
]
|
||||
}
|
||||
],
|
||||
"attachedItems": [
|
||||
"longbow|phb",
|
||||
"shortsword|phb"
|
||||
],
|
||||
"senseTags": [
|
||||
"D"
|
||||
],
|
||||
"actionTags": [
|
||||
"Multiattack"
|
||||
],
|
||||
"languageTags": [
|
||||
"C"
|
||||
],
|
||||
"damageTags": [
|
||||
"I",
|
||||
"N",
|
||||
"P",
|
||||
"R"
|
||||
],
|
||||
"miscTags": [
|
||||
"MLW",
|
||||
"MW",
|
||||
"RW"
|
||||
],
|
||||
"savingThrowForced": [
|
||||
"constitution"
|
||||
],
|
||||
"hasToken": true,
|
||||
"hasFluff": true,
|
||||
"hasFluffImages": true
|
||||
@ -3820,6 +3766,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Lucretia Mathias",
|
||||
"isNpc": true,
|
||||
"isNamedCreature": true,
|
||||
"source": "DoDk",
|
||||
"page": 216,
|
||||
@ -4085,6 +4032,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Minazorond",
|
||||
"isNpc": true,
|
||||
"isNamedCreature": true,
|
||||
"source": "DoDk",
|
||||
"page": 183,
|
||||
@ -4348,6 +4296,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Oscar Yoren",
|
||||
"isNpc": true,
|
||||
"isNamedCreature": true,
|
||||
"source": "DoDk",
|
||||
"page": 99,
|
||||
@ -4590,6 +4539,15 @@
|
||||
"The Pale Man is a 16th-level spellcaster. Its spellcasting ability is Intelligence (spell save {@dc 18}, {@hit 10} to hit with spell attacks). The Pale Man has the following wizard spells prepared:"
|
||||
],
|
||||
"spells": {
|
||||
"0": {
|
||||
"spells": [
|
||||
"{@spell chill touch}",
|
||||
"{@spell mage hand}",
|
||||
"{@spell mending}",
|
||||
"{@spell prestidigitation}",
|
||||
"{@spell shocking grasp}"
|
||||
]
|
||||
},
|
||||
"1": {
|
||||
"slots": 4,
|
||||
"spells": [
|
||||
@ -4625,14 +4583,14 @@
|
||||
"5": {
|
||||
"slots": 3,
|
||||
"spells": [
|
||||
"{@spell conjure the deep haze|DoDk}*",
|
||||
"{@spell siphon contamination|DoDk}*"
|
||||
"{@spell conjure the deep haze|DoDk}*"
|
||||
]
|
||||
},
|
||||
"6": {
|
||||
"slots": 1,
|
||||
"spells": [
|
||||
"{@spell chain lightning}"
|
||||
"{@spell chain lightning}",
|
||||
"{@spell siphon contamination|DoDk}*"
|
||||
]
|
||||
},
|
||||
"7": {
|
||||
@ -5399,6 +5357,7 @@
|
||||
},
|
||||
{
|
||||
"name": "Saint Gresha",
|
||||
"isNpc": true,
|
||||
"isNamedCreature": true,
|
||||
"source": "DoDk",
|
||||
"page": 124,
|
||||
|
||||
@ -2613,10 +2613,12 @@
|
||||
"_copy": {
|
||||
"name": "Veteran",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Hill Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Hill Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -7731,10 +7733,12 @@
|
||||
"_copy": {
|
||||
"name": "Acolyte",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -2278,10 +2278,12 @@
|
||||
"_copy": {
|
||||
"name": "Cult Fanatic",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2453,10 +2455,12 @@
|
||||
"_copy": {
|
||||
"name": "Ancient Silver Dragon",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Legendary Shadow Dragon",
|
||||
"source": "MM"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Legendary Shadow Dragon",
|
||||
"source": "MM"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Legendary Resistances",
|
||||
@ -3050,10 +3054,12 @@
|
||||
"_copy": {
|
||||
"name": "Ancient Black Dragon",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Dracolich",
|
||||
"source": "MM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Dracolich",
|
||||
"source": "MM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3153,10 +3159,12 @@
|
||||
"_copy": {
|
||||
"name": "Cultist",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Wood Elf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Wood Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -4032,10 +4040,12 @@
|
||||
"_copy": {
|
||||
"name": "Bandit Captain",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tabaxi",
|
||||
"source": "VGM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tabaxi",
|
||||
"source": "VGM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -629,10 +629,12 @@
|
||||
"_copy": {
|
||||
"name": "Spy",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -426,10 +426,12 @@
|
||||
"_copy": {
|
||||
"name": "Priest",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1744,10 +1746,12 @@
|
||||
"_copy": {
|
||||
"name": "Druid",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Half-Orc",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Half-Orc",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3010,10 +3014,12 @@
|
||||
"_copy": {
|
||||
"name": "Scout",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Merfolk",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Merfolk",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"action": {
|
||||
"mode": "removeArr",
|
||||
@ -5276,10 +5282,12 @@
|
||||
"_copy": {
|
||||
"name": "Noble",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Lizardfolk",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Lizardfolk",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -942,10 +942,12 @@
|
||||
"_copy": {
|
||||
"name": "Scout",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -4323,10 +4325,12 @@
|
||||
"_copy": {
|
||||
"name": "Cult Fanatic",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -487,10 +487,12 @@
|
||||
"_copy": {
|
||||
"name": "Cultist",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1983,10 +1985,12 @@
|
||||
"_copy": {
|
||||
"name": "Cultist",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -24,10 +24,12 @@
|
||||
"_copy": {
|
||||
"name": "Archmage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -889,10 +891,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Kobold",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Kobold",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1295,10 +1299,12 @@
|
||||
"_copy": {
|
||||
"name": "Noble",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Kobold",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Kobold",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1359,10 +1365,12 @@
|
||||
"_copy": {
|
||||
"name": "Scout",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1392,10 +1400,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1477,10 +1487,12 @@
|
||||
"_copy": {
|
||||
"name": "Noble",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1505,10 +1517,12 @@
|
||||
"_copy": {
|
||||
"name": "Noble",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Orc",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Orc",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1655,10 +1669,12 @@
|
||||
"_copy": {
|
||||
"name": "Priest",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1698,10 +1714,12 @@
|
||||
"_copy": {
|
||||
"name": "Assassin",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2182,10 +2200,12 @@
|
||||
"_copy": {
|
||||
"name": "Spy",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2644,10 +2664,12 @@
|
||||
"_copy": {
|
||||
"name": "Priest",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2704,10 +2726,12 @@
|
||||
"_copy": {
|
||||
"name": "Guard",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2924,10 +2948,12 @@
|
||||
"_copy": {
|
||||
"name": "Noble",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Hill Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Hill Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3112,10 +3138,12 @@
|
||||
"_copy": {
|
||||
"name": "Noble",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Dragonborn (Red)",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Dragonborn (Red)",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -712,6 +712,48 @@
|
||||
"actionTags": [],
|
||||
"hasToken": true
|
||||
},
|
||||
{
|
||||
"name": "Crimson Helmed Horror",
|
||||
"source": "KftGV",
|
||||
"_copy": {
|
||||
"name": "Helmed Horror",
|
||||
"source": "MM",
|
||||
"_mod": {
|
||||
"trait": [
|
||||
{
|
||||
"mode": "replaceArr",
|
||||
"replace": "Spell Immunity",
|
||||
"items": {
|
||||
"name": "Spell Immunity",
|
||||
"entries": [
|
||||
"The helmed horror is immune to {@spell burning hands}, {@spell fireball}, and {@spell scorching ray}."
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"action": [
|
||||
{
|
||||
"mode": "replaceArr",
|
||||
"replace": "Longsword",
|
||||
"items": {
|
||||
"name": "Flaming Longsword",
|
||||
"entries": [
|
||||
"{@atk mw} {@hit 6} to hit, reach 5 ft., one target. {@h}8 ({@damage 1d8 + 4}) fire damage, or 9 ({@damage 1d10 + 4}) fire damage if used with two hands."
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"bonus": [
|
||||
{
|
||||
"name": "Conjure Sword",
|
||||
"entries": [
|
||||
"As a bonus action on its first turn in combat, the helmed horror conjures a longsword-sized blade of fire, which appears in its free hand. This sword disappears in a cloud of smoke when the helmed horror drops to 0 hit points."
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Dr. Cassee Dannell",
|
||||
"isNpc": true,
|
||||
|
||||
@ -247,10 +247,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -562,10 +564,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
|
||||
@ -21,10 +21,12 @@
|
||||
"_copy": {
|
||||
"name": "Mage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Aarakocra",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Aarakocra",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -227,10 +229,12 @@
|
||||
"_copy": {
|
||||
"name": "Cult Fanatic",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -69878,7 +69878,7 @@
|
||||
{
|
||||
"name": "Life Drain",
|
||||
"entries": [
|
||||
"{@atk mw} {@hit 4} to hit, reach 5 ft., one creature. {@h}5 ({@damage 1d6 + 2}) necrotic damage. The target must succeed on a {@dc 13} Constitution saving throw or its hit point maximum is reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0.",
|
||||
"{@atk mw} {@hit 4} to hit, reach 5 ft., one creature. {@h}5 ({@damage 1d6 + 2}) necrotic damage. The target must succeed on a {@dc 13} Constitution saving throw or its hit point maxum is reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0.",
|
||||
"A humanoid slain by this attack rises 24 hours later as a {@creature zombie} under the wight's control, unless the humanoid is restored to life or its body is destroyed. The wight can have no more than twelve zombies under its control at one time."
|
||||
]
|
||||
},
|
||||
|
||||
@ -55,10 +55,12 @@
|
||||
"_copy": {
|
||||
"name": "Veteran",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -123,10 +125,12 @@
|
||||
"_copy": {
|
||||
"name": "Priest",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1146,10 +1150,12 @@
|
||||
"_copy": {
|
||||
"name": "Acolyte",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry",
|
||||
@ -1168,10 +1174,12 @@
|
||||
"_copy": {
|
||||
"name": "Bandit",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry",
|
||||
@ -1189,10 +1197,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry",
|
||||
@ -1210,10 +1220,12 @@
|
||||
"_copy": {
|
||||
"name": "Cultist",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry",
|
||||
@ -1231,10 +1243,12 @@
|
||||
"_copy": {
|
||||
"name": "Guard",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry",
|
||||
@ -1252,10 +1266,12 @@
|
||||
"_copy": {
|
||||
"name": "Noble",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry",
|
||||
@ -1273,10 +1289,12 @@
|
||||
"_copy": {
|
||||
"name": "Scout",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry",
|
||||
@ -1361,10 +1379,12 @@
|
||||
"_copy": {
|
||||
"name": "Spy",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry",
|
||||
@ -1826,10 +1846,12 @@
|
||||
"_copy": {
|
||||
"name": "Scout",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2912,10 +2934,12 @@
|
||||
"_copy": {
|
||||
"name": "Spy",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2989,10 +3013,12 @@
|
||||
"_copy": {
|
||||
"name": "Spy",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3050,10 +3076,12 @@
|
||||
"_copy": {
|
||||
"name": "Assassin",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3374,10 +3402,12 @@
|
||||
"_copy": {
|
||||
"name": "Veteran",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3587,10 +3617,12 @@
|
||||
"_copy": {
|
||||
"name": "Spy",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -4054,10 +4086,12 @@
|
||||
"_copy": {
|
||||
"name": "Druid",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -4266,10 +4300,12 @@
|
||||
"_copy": {
|
||||
"name": "Wererat",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
}
|
||||
]
|
||||
},
|
||||
"spellcastingTags": [
|
||||
"I"
|
||||
@ -4536,10 +4572,12 @@
|
||||
"_copy": {
|
||||
"name": "Wererat",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -4704,10 +4742,12 @@
|
||||
"_copy": {
|
||||
"name": "Wererat",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Deep Gnome",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -5081,10 +5121,12 @@
|
||||
"_copy": {
|
||||
"name": "Bandit Captain",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -5136,10 +5178,12 @@
|
||||
"_copy": {
|
||||
"name": "Archmage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -40,10 +40,12 @@
|
||||
"_copy": {
|
||||
"name": "Priest",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -92,10 +94,12 @@
|
||||
"_copy": {
|
||||
"name": "Acolyte",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -174,10 +178,12 @@
|
||||
"_copy": {
|
||||
"name": "Acolyte",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Half-Orc",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Half-Orc",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -541,10 +547,12 @@
|
||||
"_copy": {
|
||||
"name": "Spy",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tabaxi",
|
||||
"source": "VGM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tabaxi",
|
||||
"source": "VGM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -1567,10 +1567,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true,
|
||||
"hasFluffImages": true
|
||||
@ -1583,10 +1585,12 @@
|
||||
"_copy": {
|
||||
"name": "Acolyte",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3023,10 +3027,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true,
|
||||
"hasFluffImages": true
|
||||
|
||||
@ -3889,10 +3889,12 @@
|
||||
"_copy": {
|
||||
"name": "Adult Black Dragon",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Legendary Shadow Dragon",
|
||||
"source": "MM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Legendary Shadow Dragon",
|
||||
"source": "MM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -297,10 +297,12 @@
|
||||
"_copy": {
|
||||
"name": "Tarrasque",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Eldrazi",
|
||||
"source": "PSZ"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Eldrazi",
|
||||
"source": "PSZ"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -696,10 +698,12 @@
|
||||
"_copy": {
|
||||
"name": "Kraken",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Eldrazi",
|
||||
"source": "PSZ"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Eldrazi",
|
||||
"source": "PSZ"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1140,10 +1144,12 @@
|
||||
"_copy": {
|
||||
"name": "Empyrean",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Eldrazi",
|
||||
"source": "PSZ"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Eldrazi",
|
||||
"source": "PSZ"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -610,10 +610,12 @@
|
||||
"_copy": {
|
||||
"name": "Gladiator",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Large or Smaller Half-Blue Dragon",
|
||||
"source": "MM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Large or Smaller Half-Blue Dragon",
|
||||
"source": "MM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -662,10 +664,12 @@
|
||||
"_copy": {
|
||||
"name": "Assassin",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Large or Smaller Half-Green Dragon",
|
||||
"source": "MM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Large or Smaller Half-Green Dragon",
|
||||
"source": "MM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -708,10 +712,12 @@
|
||||
"_copy": {
|
||||
"name": "Gladiator",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Large or Smaller Half-Red Dragon",
|
||||
"source": "MM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Large or Smaller Half-Red Dragon",
|
||||
"source": "MM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -922,10 +928,12 @@
|
||||
"_copy": {
|
||||
"name": "Mage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"trait": {
|
||||
"mode": "prependArr",
|
||||
@ -1858,10 +1866,12 @@
|
||||
"_copy": {
|
||||
"name": "Dragonsoul",
|
||||
"source": "RoT",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -270,10 +270,12 @@
|
||||
"_copy": {
|
||||
"name": "Veteran",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1857,10 +1859,12 @@
|
||||
"_copy": {
|
||||
"name": "Priest",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"alignment": [
|
||||
"C",
|
||||
@ -1931,10 +1935,12 @@
|
||||
"_copy": {
|
||||
"name": "Guard",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"alignment": [
|
||||
"L",
|
||||
@ -2953,10 +2959,12 @@
|
||||
"_copy": {
|
||||
"name": "Veteran",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3549,10 +3557,12 @@
|
||||
"_copy": {
|
||||
"name": "Knight",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"trait": {
|
||||
"mode": "prependArr",
|
||||
@ -4132,10 +4142,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"alignment": [
|
||||
"L",
|
||||
@ -4160,10 +4172,12 @@
|
||||
"_copy": {
|
||||
"name": "Knight",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -5250,10 +5264,12 @@
|
||||
"_copy": {
|
||||
"name": "Assassin",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Half-Orc",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Half-Orc",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -5627,10 +5643,12 @@
|
||||
"_copy": {
|
||||
"name": "Guard",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"alignment": [
|
||||
"L",
|
||||
@ -5671,10 +5689,12 @@
|
||||
"_copy": {
|
||||
"name": "Noble",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"alignment": [
|
||||
"L",
|
||||
@ -6490,10 +6510,12 @@
|
||||
"_copy": {
|
||||
"name": "Bandit Captain",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -7415,10 +7437,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"alignment": [
|
||||
"C",
|
||||
@ -7441,10 +7465,12 @@
|
||||
"_copy": {
|
||||
"name": "Scout",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Wood Elf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Wood Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -127,10 +127,12 @@
|
||||
"_copy": {
|
||||
"name": "Adult Red Dragon",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Dracolich",
|
||||
"source": "MM"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Dracolich",
|
||||
"source": "MM"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Legendary Resistances",
|
||||
|
||||
@ -156,10 +156,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"alignment": [
|
||||
"C",
|
||||
@ -676,10 +678,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"languageTags": [
|
||||
"C",
|
||||
@ -857,10 +861,12 @@
|
||||
"_copy": {
|
||||
"name": "Spy",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1187,10 +1193,12 @@
|
||||
"_copy": {
|
||||
"name": "Druid",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Wood Elf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Wood Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2147,10 +2155,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hp": {
|
||||
"average": 3,
|
||||
@ -2190,10 +2200,12 @@
|
||||
"_copy": {
|
||||
"name": "Priest",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2776,10 +2788,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Half-Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Half-Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry"
|
||||
@ -3301,10 +3315,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Half-Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Half-Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry"
|
||||
@ -3397,10 +3413,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Kobold",
|
||||
"source": "DMG"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Kobold",
|
||||
"source": "DMG"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hp": {
|
||||
"average": 3,
|
||||
@ -4074,10 +4092,12 @@
|
||||
"_copy": {
|
||||
"name": "Assassin",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Mountain Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -4109,10 +4129,12 @@
|
||||
"_copy": {
|
||||
"name": "Ogre",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Skeleton",
|
||||
"source": "DMG"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Skeleton",
|
||||
"source": "DMG"
|
||||
}
|
||||
]
|
||||
},
|
||||
"languageTags": [
|
||||
"C",
|
||||
@ -4348,10 +4370,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Orc",
|
||||
"source": "DMG"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Orc",
|
||||
"source": "DMG"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Aggressive"
|
||||
@ -4420,10 +4444,12 @@
|
||||
"_copy": {
|
||||
"name": "Aboleth",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"damageTagsLegendary": [],
|
||||
"hasToken": true
|
||||
@ -4435,10 +4461,12 @@
|
||||
"_copy": {
|
||||
"name": "Basilisk",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4449,10 +4477,12 @@
|
||||
"_copy": {
|
||||
"name": "Behir",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"action": {
|
||||
"mode": "removeArr",
|
||||
@ -4480,10 +4510,12 @@
|
||||
"_copy": {
|
||||
"name": "Beholder",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4494,10 +4526,12 @@
|
||||
"_copy": {
|
||||
"name": "Black Pudding",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4508,10 +4542,12 @@
|
||||
"_copy": {
|
||||
"name": "Carrion Crawler",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4522,10 +4558,12 @@
|
||||
"_copy": {
|
||||
"name": "Clay Golem",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4536,10 +4574,12 @@
|
||||
"_copy": {
|
||||
"name": "Darkmantle",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4550,10 +4590,12 @@
|
||||
"_copy": {
|
||||
"name": "Displacer Beast",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4564,10 +4606,12 @@
|
||||
"_copy": {
|
||||
"name": "Dragon Turtle",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"action": [
|
||||
{
|
||||
@ -4603,10 +4647,12 @@
|
||||
"_copy": {
|
||||
"name": "Ettercap",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"damageTags": [
|
||||
"I",
|
||||
@ -4622,10 +4668,12 @@
|
||||
"_copy": {
|
||||
"name": "Flesh Golem",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4636,10 +4684,12 @@
|
||||
"_copy": {
|
||||
"name": "Glabrezu",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4650,10 +4700,12 @@
|
||||
"_copy": {
|
||||
"name": "Gray Ooze",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"damageTags": [
|
||||
"A",
|
||||
@ -4668,10 +4720,12 @@
|
||||
"_copy": {
|
||||
"name": "Helmed Horror",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4682,10 +4736,12 @@
|
||||
"_copy": {
|
||||
"name": "Hezrou",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4696,10 +4752,12 @@
|
||||
"_copy": {
|
||||
"name": "Hook Horror",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4710,10 +4768,12 @@
|
||||
"_copy": {
|
||||
"name": "Ochre Jelly",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4724,10 +4784,12 @@
|
||||
"_copy": {
|
||||
"name": "Otyugh",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"action": [
|
||||
{
|
||||
@ -4761,10 +4823,12 @@
|
||||
"_copy": {
|
||||
"name": "Owlbear",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4775,10 +4839,12 @@
|
||||
"_copy": {
|
||||
"name": "Peryton",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4789,10 +4855,12 @@
|
||||
"_copy": {
|
||||
"name": "Remorhaz",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4803,10 +4871,12 @@
|
||||
"_copy": {
|
||||
"name": "Stone Golem",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4817,10 +4887,12 @@
|
||||
"_copy": {
|
||||
"name": "Vrock",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4831,10 +4903,12 @@
|
||||
"_copy": {
|
||||
"name": "Wight",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -4845,10 +4919,12 @@
|
||||
"_copy": {
|
||||
"name": "Wyvern",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Reduced Threat",
|
||||
"source": "TftYP"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -5043,10 +5119,12 @@
|
||||
"_copy": {
|
||||
"name": "Knight",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry"
|
||||
@ -6558,10 +6636,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"traitTags": [
|
||||
"Fey Ancestry",
|
||||
|
||||
@ -2584,10 +2584,12 @@
|
||||
"_copy": {
|
||||
"name": "Scout",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3757,10 +3759,12 @@
|
||||
"_copy": {
|
||||
"name": "Bandit Captain",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -4269,10 +4273,12 @@
|
||||
"_copy": {
|
||||
"name": "Champion",
|
||||
"source": "VGM",
|
||||
"_trait": {
|
||||
"name": "Yuan-ti Pureblood",
|
||||
"source": "VGM"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Yuan-ti Pureblood",
|
||||
"source": "VGM"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -3721,10 +3721,12 @@
|
||||
"_copy": {
|
||||
"name": "Mage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3777,10 +3779,12 @@
|
||||
"_copy": {
|
||||
"name": "Warlock of the Archfey",
|
||||
"source": "VGM",
|
||||
"_trait": {
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": [
|
||||
{
|
||||
@ -3807,10 +3811,12 @@
|
||||
"_copy": {
|
||||
"name": "Warlock of the Fiend",
|
||||
"source": "VGM",
|
||||
"_trait": {
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": [
|
||||
{
|
||||
@ -3837,10 +3843,12 @@
|
||||
"_copy": {
|
||||
"name": "Warlock of the Great Old One",
|
||||
"source": "VGM",
|
||||
"_trait": {
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Goblin",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": [
|
||||
{
|
||||
|
||||
@ -7018,10 +7018,12 @@
|
||||
"_copy": {
|
||||
"name": "Spy",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -545,10 +545,12 @@
|
||||
"_copy": {
|
||||
"name": "Brown Bear",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Awakened",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Awakened",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -559,10 +561,12 @@
|
||||
"_copy": {
|
||||
"name": "Elk",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Awakened",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Awakened",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -573,10 +577,12 @@
|
||||
"_copy": {
|
||||
"name": "Giant Wasp",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Awakened",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Awakened",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"hasToken": true
|
||||
},
|
||||
@ -1164,10 +1170,12 @@
|
||||
"_copy": {
|
||||
"name": "Scout",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -1416,10 +1424,12 @@
|
||||
"_copy": {
|
||||
"name": "Archmage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2498,10 +2508,12 @@
|
||||
"_copy": {
|
||||
"name": "Mage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Tiefling",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -2697,10 +2709,12 @@
|
||||
"_copy": {
|
||||
"name": "Priest",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Drow",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -3312,10 +3326,12 @@
|
||||
"_copy": {
|
||||
"name": "Mage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "High Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -4664,10 +4680,12 @@
|
||||
"_copy": {
|
||||
"name": "Commoner",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Stout Halfling",
|
||||
"source": "PHB"
|
||||
}
|
||||
]
|
||||
},
|
||||
"alignment": [
|
||||
"L",
|
||||
@ -4890,10 +4908,12 @@
|
||||
"_copy": {
|
||||
"name": "Champion",
|
||||
"source": "VGM",
|
||||
"_trait": {
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Shield Dwarf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -4953,10 +4973,12 @@
|
||||
"_copy": {
|
||||
"name": "Assassin",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Bullywug",
|
||||
"source": "DMG"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Bullywug",
|
||||
"source": "DMG"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -5213,10 +5235,12 @@
|
||||
"_copy": {
|
||||
"name": "Adult Bronze Dragon",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Legendary Shadow Dragon",
|
||||
"source": "MM"
|
||||
}
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Legendary Shadow Dragon",
|
||||
"source": "MM"
|
||||
}
|
||||
]
|
||||
},
|
||||
"alignment": [
|
||||
"N",
|
||||
@ -5303,10 +5327,12 @@
|
||||
"_copy": {
|
||||
"name": "Archmage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Duergar",
|
||||
"source": "MTF"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Duergar",
|
||||
"source": "MTF"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -5615,10 +5641,12 @@
|
||||
"_copy": {
|
||||
"name": "Archdruid",
|
||||
"source": "VGM",
|
||||
"_trait": {
|
||||
"name": "Wood Elf",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Wood Elf",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
@ -5949,10 +5977,12 @@
|
||||
"_copy": {
|
||||
"name": "Archmage",
|
||||
"source": "MM",
|
||||
"_trait": {
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
},
|
||||
"_templates": [
|
||||
{
|
||||
"name": "Rock Gnome",
|
||||
"source": "PHB"
|
||||
}
|
||||
],
|
||||
"_mod": {
|
||||
"*": {
|
||||
"mode": "replaceTxt",
|
||||
|
||||
@ -68,7 +68,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
"Skall is the current factol of the Heralds of Dust and the only leader the faction has ever had. A popular Duster legend holds that other than the Lady of Pain herself, Skall is Sigil's oldest resident, the first creature to live and die in the City of Doors. The Heralds of Dust idolize their ageless factol, whose stoic visage has become the faction's emblem. Skall can usually be found examining his orrery of souls (detailed in{@i Adventure Atlas: The Mortuary}).",
|
||||
"Skall is the current factol of the Heralds of Dust and the only leader the faction has ever had. A popular Duster legend holds that other than the Lady of Pain herself, Skall is Sigil's oldest resident, the first creature to live and die in the City of Doors. The Heralds of Dust idolize their ageless factol, whose stoic visage has become the faction's emblem. Skall can usually be found examining his orrery of souls (detailed in {@i Adventure Atlas: The Mortuary}).",
|
||||
"After eons of existence, Skall is in an advanced state of deterioration. Once a spry lich with a wrinkled frame, he now drifts listlessly through the Mortuary's forlorn halls, rasping to himself. Skall appears as little more than a floating, disembodied head and two hands, his tattered cloak fluttering behind them. Notorious among the factols of Sigil but rarely seen in the flesh, Skall often delegates his bureaucratic responsibilities to Undead proxies or\u2014on rare occasions\u2014appears as an illusory duplicate. Subtle social cues are lost on the factol, whose eternal nature has eroded any memory of mortal life.",
|
||||
"As a result of his decay, Skall's power has waned considerably, but challenging him in combat is as much a death sentence as ever. Factol Skall imparts a lasting oblivion to his enemies. Caretaker, custodian, and grave keeper, the factol ushers allies and foes alike from this false existence toward the path to True Death."
|
||||
]
|
||||
|
||||
@ -953,7 +953,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
"Created by Primus, the leader of the modrons, the Kolyarut is a wondrous machine capable of forging binding contracts between parties. From the Hall of Concordance in Sigil, the Kolyarut judges the needs of planar beings seeking uniquely binding terms and forges ironclad agreements. Those who break these contracts are pursued by maruts (detailed in{@i Mordenkainen Presents: Monsters of the Multiverse}) and punished in brutally decisive fashion.",
|
||||
"Created by Primus, the leader of the modrons, the Kolyarut is a wondrous machine capable of forging binding contracts between parties. From the Hall of Concordance in Sigil, the Kolyarut judges the needs of planar beings seeking uniquely binding terms and forges ironclad agreements. Those who break these contracts are pursued by maruts (detailed in {@i Mordenkainen Presents: Monsters of the Multiverse}) and punished in brutally decisive fashion.",
|
||||
"In cases where the terms of a contract or a foundational truth of an agreement come into question, the Kolyarut sends a component part of itself into the planes to seek the truth. Also known as kolyaruts, these manifestations of the great machine function as multiversal investigators and pursue answers to specific quandaries. Once their questions have been satisfied, they report back to their creator, allowing the Kolyarut to impose accurate judgments.",
|
||||
"Kolyaruts are four-armed beings of magic and machinery. Like maruts, they are inevitables, beings dedicated to the smooth exaction of laws across the planes. Kolyaruts wield blades with deadly efficiency, allowing them to defend themselves on their excursions and slice through any who obscure the truth.",
|
||||
"Occasionally, the Hall of Concordance loans kolyaruts to lawful beings who have inherent interest in the orderly functioning of the multiverse, aiding them in seeking answers of planar importance."
|
||||
|
||||
@ -459,7 +459,7 @@
|
||||
"type": "item",
|
||||
"name": "Summon Underlings",
|
||||
"entries": [
|
||||
"The archdevil summons allied devils. The devils summoned depends on the archdevil using this feature. The summoned devils appear in unoccupied spaces which the archdevil can see. The Summoned Underlings table shows which devils each archdevil can summon."
|
||||
"The archdevil summons allied devils. The devils summoned depends on the archdevil using this feature. The summoned devils appear in unoccupied spaces which the archdevil can see. The {@table Archdevil Lair Action List; Summoned Underlings|CoA|Summoned Underlings} table shows which devils each archdevil can summon."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@ -19499,7 +19499,7 @@
|
||||
"A snake-haired woman in a flowing robe stands at the center of the room, scowling. She is surrounded by similar visages on the Euryale cards around the walls, while a door to the north displays the Comet card. \"Oh good, heroes,\" she sneers, the final word dripping with contempt. \"Shall we get this over with?\""
|
||||
]
|
||||
},
|
||||
"The {@creature medusa|MOT} here answers to the name {@creature Euryale|BMT}, and though she expects to be attacked, she doesn't initiate battle. This isn't the same {@creature Euryale|BMT} described in {@book chapter 22|BMT|21}. If the characters refrain from attacking and show her courtesy or at least respect, she lets them pass unharmed.",
|
||||
"The {@creature medusa} here answers to the name {@creature Euryale|BMT}, and though she expects to be attacked, she doesn't initiate battle. This isn't the same {@creature Euryale|BMT} described in {@book chapter 22|BMT|21}. If the characters refrain from attacking and show her courtesy or at least respect, she lets them pass unharmed.",
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Dying Curse",
|
||||
|
||||
@ -16228,6 +16228,199 @@
|
||||
"credit": "Deven Rue"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Credits",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"columns": 2,
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Lead Writer",
|
||||
"entries": [
|
||||
"Matthew Mercer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Writers",
|
||||
"entries": [
|
||||
"James J. Haeck, James Introcaso, Chris Lockey"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Developers",
|
||||
"entries": [
|
||||
"Jeremy Crawford, Dan Dillon, Ben Petrisor, Taymoor Rehman, Kate Welch"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Managing Editor",
|
||||
"entries": [
|
||||
"Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editors",
|
||||
"entries": [
|
||||
"Scott Fitzgerald Gray, Hannah Rose, F. Wesley Schneider"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Director",
|
||||
"entries": [
|
||||
"Kate Irwin"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Graphic Designers",
|
||||
"entries": [
|
||||
"Trish Yochum, Trystan Falcone"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cover Illustrator",
|
||||
"entries": [
|
||||
"Karl Kerschl"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Interior Illustrators",
|
||||
"entries": [
|
||||
"Even Amundsen, Jonah Baumann, Mark Behm, Eric Belisle, Dan Bittencourt, Zoltan Boros, Wesley Burt, Clint Cearley, Jedd Chevrier, Chippy, David René Christensen, CoupleOfKooks, Joma Cueto, Alayna Danner, Kent Davis, Nikki Dawes, Axel Defois, Olga Drebas, Lars Grant-West, Julian Kok, Linda Lithen, Jessica Mahon, Andrew Mar, Marcela Medeiros, Robson Michel, Goñi Montes, Irina Nordsol, Stephen Oakley, Robin Olausson, Claudio Pozas, Livia Prima, Jenn Ravenna, Nick Robles, Caio E Santos, David Sladek, Brian Valeza, Anna Veltkamp, Richard Whitters, Shawn Wood, Zuzanna Wuzyk, Anna Zee"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cartographer",
|
||||
"entries": [
|
||||
"Deven Rue"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Producers",
|
||||
"entries": [
|
||||
"Bill Benham, Lea Heleotis, Dan Tovar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Engineer",
|
||||
"entries": [
|
||||
"Cynda Callaway"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Imaging Technicians",
|
||||
"entries": [
|
||||
"Sven Bolen, Carmen Cheung, Kevin Yee"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Administration",
|
||||
"entries": [
|
||||
"David Gershman"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Prepress Specialist",
|
||||
"entries": [
|
||||
"Jefferson Dunlap"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Franchise & Global Brand Strategy",
|
||||
"entries": [
|
||||
"Nathan Stewart"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Director Licensing & Publishing",
|
||||
"entries": [
|
||||
"Liz Schuh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Licensing Manager",
|
||||
"entries": [
|
||||
"Hilary Ross"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Marketing and Communications",
|
||||
"entries": [
|
||||
"Bart Carroll, Pelham Greene, Chris Lindsay, Shauna Narciso, Emi Tanji, Greg Tito, Anna Vo"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "D&D IP Development",
|
||||
"entries": [
|
||||
"Adam Lee, Ari Levitch, Mike Mearls, Richard Whitters, Shawn Wood"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Brand Manager",
|
||||
"entries": [
|
||||
"Shelly Mazzanoble"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Playtest Coordinator",
|
||||
"entries": [
|
||||
"Bill Benham"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Critical Role Team",
|
||||
"entries": [
|
||||
"Laura Bailey, Taliesin Jaffe, Ashley Johnson, Liam O'Brien, Marisha Ray, Sam Riegel, Rachel Romero, Ben Van Der Fluit, Travis Willingham"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Special Thanks",
|
||||
"entries": [
|
||||
"Ashly Burch, Mica Burton, Matt Colville, Tanya DePass, Brian Foster, Will Friedle, Todd Kenreck, Matthew Key, Sumalee Montano, Brennan Lee Mulligan, Khary Payton, Brittany Walloch, Deborah Ann Woll"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"Thanks to the many, many groups of playtesters who helped us get the character options and adventures into their final form. We couldn't have made this book without you!",
|
||||
{
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "book/EGW/credits.webp"
|
||||
},
|
||||
"title": "On the Cover: Illustrator Karl Kerschl captures the stern visages of two sovereigns with a Luxon beacon between them. Bright Queen Leylas Kryn of the Kryn Dynasty and King Bertrand Dwendal of the Dwendalian Empire have never seen eye to eye\u2014and their conflict will shape the futures and destinies of all life on the war-torn continent of Wildemount.",
|
||||
"maxWidth": 600,
|
||||
"width": 1140,
|
||||
"height": 719
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Introduction: Multiversal Menagerie",
|
||||
"page": 4,
|
||||
"id": "000",
|
||||
"entries": [
|
||||
{
|
||||
@ -36,6 +37,7 @@
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Using a Stat Block",
|
||||
"page": 4,
|
||||
"id": "001",
|
||||
"entries": [
|
||||
"This book is a companion to the {@book Monster Manual|MM} and uses a similar presentation. If you are unfamiliar with the monster stat block format, read the {@book introduction|MM|0} of the {@book Monster Manual|MM} before proceeding. That book explains stat block terminology and gives rules for various monster traits\u2014information that isn't repeated here.",
|
||||
@ -43,6 +45,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Unusual Attacks and Magic",
|
||||
"page": 4,
|
||||
"id": "002",
|
||||
"entries": [
|
||||
"Some creatures have weapons that deal unusual damage types and spellcasting that functions in an atypical way. Such an exception is a special feature of a stat block and represents how the creature uses its weapon or casts its spells; the exception has no effect on how a weapon or spell functions for a different creature."
|
||||
@ -51,6 +54,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Meeting Magic Item Prerequisites",
|
||||
"page": 4,
|
||||
"id": "003",
|
||||
"entries": [
|
||||
"If a stat block contains the name of a class in parentheses under the creature's name, the creature is considered a member of that class for the purpose of meeting prerequisites for magic items.",
|
||||
@ -356,6 +360,7 @@
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Petitioners",
|
||||
"page": 4,
|
||||
"id": "004",
|
||||
"entries": [
|
||||
"Petitioners are former mortals. They've lived, ceased living, and now exist on the Outer Planes. They typically inhabit a plane that shares their alignment or the realm of a deity they worship. Some, however, become lost and wander the planes or make new homes for themselves elsewhere on the Great Wheel.",
|
||||
@ -367,6 +372,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Plane Locked",
|
||||
"page": 4,
|
||||
"id": "006",
|
||||
"entries": [
|
||||
"The creature's creature type changes to Celestial or Fiend (DM's choice), and the creature can't leave the Outer Planes. Portals or magic that allow transport beyond the Outer Planes don't affect this creature."
|
||||
@ -375,6 +381,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Soul Shape",
|
||||
"page": 4,
|
||||
"id": "007",
|
||||
"entries": [
|
||||
"A dead petitioner can be returned to life only by the {@spell true resurrection} spell or the {@spell wish} spell. If affected by these spells, a petitioner chooses whether to return in its original mortal form or as a petitioner."
|
||||
@ -385,6 +392,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Death and the Planes",
|
||||
"page": 4,
|
||||
"id": "008",
|
||||
"entries": [
|
||||
"Mortals that die eventually have their souls return as petitioners in far-flung reaches of the Outer Planes. There, they manifest as idealized versions of themselves. These forms might be similar to the forms they had in life or be those of entirely different creatures. A petitioner or another Celestial or Fiend that is destroyed can reconstitute on a plane that shares its alignment after 100 years, or it might choose to become one with that plane and never return. A creature that re-forms on the planes multiple times becomes increasingly dissimilar from its original mortal form."
|
||||
@ -395,6 +403,7 @@
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Planar Influences",
|
||||
"page": 6,
|
||||
"id": "009",
|
||||
"entries": [
|
||||
"The Outer Planes are home to powerful forces of good and evil, chaos and order. Over time, these forces can alter creatures exposed to them. Due to their proximity to the Outer Planes, the inhabitants of the Outlands' gate-towns and nearby regions often exhibit traits associated with specific Outer Planes. Creatures might also have such traits if they dwell in other realms steeped in the energy of an Outer Plane\u2014whether such a place be in the Outlands, on the Material Plane, or elsewhere.",
|
||||
@ -409,6 +418,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Planar Alignment",
|
||||
"page": 6,
|
||||
"id": "00a",
|
||||
"entries": [
|
||||
"In addition to the plane-specific traits you can grant a creature, the influence of a plane changes a creature's alignment to match the plane's alignment, as shown on the Outer Plane Alignments table. If a plane a creature is influenced by has more than one alignment, you choose the creature's alignment from the options listed.",
|
||||
@ -495,6 +505,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "The Abyss",
|
||||
"page": 6,
|
||||
"id": "00b",
|
||||
"entries": [
|
||||
"Creatures influenced by the Abyss gain demonic features, such as horns, scales, and black blood. A creature influenced by the Abyss also gains one or more of following traits of your choice:",
|
||||
@ -505,6 +516,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Entropy of the Abyss",
|
||||
"page": 6,
|
||||
"id": "00d",
|
||||
"entries": [
|
||||
"Whenever the creature deals bludgeoning, piercing, or slashing damage, it can change the damage type to necrotic."
|
||||
@ -513,6 +525,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Poison Tolerant",
|
||||
"page": 6,
|
||||
"id": "00e",
|
||||
"entries": [
|
||||
"The creature has advantage on saving throws it makes to avoid or end the {@condition poisoned} condition on itself."
|
||||
@ -521,6 +534,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Siege Monster",
|
||||
"page": 6,
|
||||
"id": "00f",
|
||||
"entries": [
|
||||
"The creature deals double damage to objects and structures."
|
||||
@ -533,6 +547,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Acheron",
|
||||
"page": 6,
|
||||
"id": "010",
|
||||
"entries": [
|
||||
"Creatures influenced by Acheron have rough, scarred skin that resembles armor or pitted metal. A creature influenced by Acheron also gains one or more of following traits of your choice:",
|
||||
@ -543,6 +558,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Battle Lust",
|
||||
"page": 6,
|
||||
"id": "012",
|
||||
"entries": [
|
||||
"Whenever the creature reduces another creature to 0 hit points with a melee attack on its turn, it gains 10 {@book temporary hit points|PHB|9|Temporary Hit Points}, and it can take a bonus action to move up to its speed without provoking {@action opportunity attack||opportunity attacks}."
|
||||
@ -551,6 +567,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Corrosive Death",
|
||||
"page": 6,
|
||||
"id": "013",
|
||||
"entries": [
|
||||
"When the creature drops to 0 hit points, it turns into a pile of rust. Any equipment it was wearing or carrying is unaffected."
|
||||
@ -559,6 +576,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Pack Tactics",
|
||||
"page": 6,
|
||||
"id": "014",
|
||||
"entries": [
|
||||
"The creature has advantage on an attack roll against a target if at least one of the creature's allies is within 5 feet of the target and the ally doesn't have the {@condition incapacitated} condition."
|
||||
@ -582,6 +600,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Arborea",
|
||||
"page": 6,
|
||||
"id": "015",
|
||||
"entries": [
|
||||
"Creatures influenced by Arborea change color to match the season, and their eyes glint with vibrant hues. A creature influenced by Arborea also gains one or more of following traits of your choice:",
|
||||
@ -592,6 +611,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Merry Music",
|
||||
"page": 6,
|
||||
"id": "017",
|
||||
"entries": [
|
||||
"Whenever the creature casts a spell or makes a spell attack, the faint sound of merry music can be heard by it and those affected by its magic."
|
||||
@ -600,6 +620,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Recklessness",
|
||||
"page": 6,
|
||||
"id": "018",
|
||||
"entries": [
|
||||
"At the start of its turn, the creature can gain advantage on attack rolls during that turn, but attack rolls against the creature have advantage until the start of its next turn."
|
||||
@ -612,6 +633,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Arcadia",
|
||||
"page": 7,
|
||||
"id": "019",
|
||||
"entries": [
|
||||
"Creatures influenced by Arcadia gain perfectly symmetrical features and appear eternally youthful or vigorous. A creature influenced by Arcadia also gains one or more of following traits of your choice:",
|
||||
@ -622,6 +644,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Arcadian Perfection (1/Day)",
|
||||
"page": 7,
|
||||
"id": "01b",
|
||||
"entries": [
|
||||
"If the creature fails a Strength, Dexterity, or Constitution saving throw, it can choose to succeed instead."
|
||||
@ -630,6 +653,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Unshakable Resolve",
|
||||
"page": 7,
|
||||
"id": "01c",
|
||||
"entries": [
|
||||
"An invisible, magical aura of confidence and hope surrounds the creature. When another creature that has the {@condition frightened} condition starts its turn within 5 feet of the creature, the {@condition frightened} condition affecting it is suppressed for 1 minute. When this suppression ends, the condition resumes if its duration hasn't expired."
|
||||
@ -642,6 +666,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "The Beastlands",
|
||||
"page": 7,
|
||||
"id": "01d",
|
||||
"entries": [
|
||||
"Creatures influenced by the Beastlands gain wilder or more animalistic features, such as larger eyes, thicker fur, or more prominent canine teeth. Beasts influenced by the Beastlands are often affected per the {@spell awaken} spell\u2014though normal Beasts also typically range through these areas in large numbers. A creature influenced by the Beastlands also gains one or more of following traits of your choice:",
|
||||
@ -652,6 +677,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Speech of Beast and Leaf (Requires the Ability to Speak at Least One Language)",
|
||||
"page": 7,
|
||||
"id": "01f",
|
||||
"entries": [
|
||||
"This creature can comprehend and verbally communicate with Beasts and Plants."
|
||||
@ -660,6 +686,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Tracker's Eye",
|
||||
"page": 7,
|
||||
"id": "020",
|
||||
"entries": [
|
||||
"The creature can see {@condition invisible} creatures and objects as if they were visible."
|
||||
@ -668,6 +695,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Trackless",
|
||||
"page": 7,
|
||||
"id": "021",
|
||||
"entries": [
|
||||
"The creature leaves no tracks to indicate where it has been or where it's headed."
|
||||
@ -680,6 +708,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Bytopia",
|
||||
"page": 7,
|
||||
"id": "022",
|
||||
"entries": [
|
||||
"Creatures influenced by Bytopia appear carved, constructed, or sculpted by an expert artisan. A creature influenced by Bytopia also gains one or more of following traits of your choice:",
|
||||
@ -690,6 +719,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Phantasmal Dweomer (1/Day)",
|
||||
"page": 7,
|
||||
"id": "024",
|
||||
"entries": [
|
||||
"After being in continuous physical contact with a Tiny nonmagical object for 1 minute, the creature can imbue the object with one of the following magical properties (choose one or roll a {@dice d6}):",
|
||||
@ -715,6 +745,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Sounds of Work",
|
||||
"page": 7,
|
||||
"id": "025",
|
||||
"entries": [
|
||||
"Whenever the creature casts a spell or makes a spell attack, the faint sounds of hammering and sawing can be heard by it and those affected by its magic."
|
||||
@ -727,6 +758,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Carceri",
|
||||
"page": 8,
|
||||
"id": "026",
|
||||
"entries": [
|
||||
"Creatures influenced by Carceri appear as if they'd been imprisoned underground for a long period; their hair is matted, their nails or claws are long and dirty, and they have marks as if they were bound by chains or rope. A creature influenced by Carceri also gains one or more of following traits of your choice:",
|
||||
@ -737,6 +769,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Burden of Hopelessness",
|
||||
"page": 8,
|
||||
"id": "028",
|
||||
"entries": [
|
||||
"An invisible, magical aura of hopelessness surrounds the creature. Any other creature that starts its turn within 5 feet of the creature has its speed reduced by 10 feet until it is reduced to 0 hit points, regains hit points, or gains {@book temporary hit points|PHB|9|Temporary Hit Points}. This reduction never exceeds 10 feet."
|
||||
@ -745,6 +778,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Torturous Teleport",
|
||||
"page": 8,
|
||||
"id": "029",
|
||||
"entries": [
|
||||
"An invisible, magic-disrupting aura surrounds the creature. Any creature that teleports into or out of a space within 20 feet of the creature must make a DC 15 Constitution saving throw, taking 16 ({@dice 3d10}) force damage on a failed save, or half as much damage on a successful one."
|
||||
@ -757,6 +791,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Elysium",
|
||||
"page": 8,
|
||||
"id": "02a",
|
||||
"entries": [
|
||||
"Creatures influenced by Elysium have seasonal flowers sprouting from their heads, and they faintly smell of herbs or spices. A creature influenced by Elysium also gains one or more of following traits of your choice:",
|
||||
@ -767,6 +802,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Hardy Body",
|
||||
"page": 8,
|
||||
"id": "02c",
|
||||
"entries": [
|
||||
"The creature no longer needs food or water, and the creature can have no more than 4 levels of {@condition exhaustion}."
|
||||
@ -775,6 +811,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Peaceful Presence",
|
||||
"page": 8,
|
||||
"id": "02d",
|
||||
"entries": [
|
||||
"An invisible, magical aura of peace surrounds the creature. Any other creature that starts its turn within 5 feet of the creature has disadvantage on attack rolls until it is attacked, takes damage, or witnesses an ally being harmed."
|
||||
@ -787,6 +824,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Gehenna",
|
||||
"page": 8,
|
||||
"id": "02e",
|
||||
"entries": [
|
||||
"Creatures influenced by Gehenna appear haggard and have long, crooked limbs. A creature influenced by Gehenna also gains one or more of following traits of your choice:",
|
||||
@ -797,6 +835,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Treasure Sense",
|
||||
"page": 8,
|
||||
"id": "030",
|
||||
"entries": [
|
||||
"The creature can pinpoint, by scent, the location of precious metals and stones, such as coins and gems, within 60 feet of itself."
|
||||
@ -805,6 +844,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Vitality Theft",
|
||||
"page": 8,
|
||||
"id": "031",
|
||||
"entries": [
|
||||
"An invisible, magical aura surrounds the creature. Whenever another creature regains hit points within 5 feet of the creature, half of those regained hit points (rounded down) go to the creature generating the aura instead."
|
||||
@ -828,6 +868,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Hades",
|
||||
"page": 7,
|
||||
"id": "032",
|
||||
"entries": [
|
||||
"Creatures influenced by Hades often have dour, gray features and feel cold to the touch. A creature influenced by Hades also gains one or more of following traits of your choice:",
|
||||
@ -838,6 +879,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Aura of Gloom",
|
||||
"page": 9,
|
||||
"id": "034",
|
||||
"entries": [
|
||||
"An invisible, magical aura surrounds the creature. Colors are muted within 30 feet of the creature, and other creatures in that area have disadvantage on Charisma checks and Charisma saving throws."
|
||||
@ -846,6 +888,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Extinguish Light",
|
||||
"page": 9,
|
||||
"id": "035",
|
||||
"entries": [
|
||||
"Nonmagical flames within 10 feet of the creature are extinguished."
|
||||
@ -854,6 +897,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Larval Rebirth",
|
||||
"page": 9,
|
||||
"id": "036",
|
||||
"entries": [
|
||||
"When the creature dies, it re-forms somewhere in Hades as a {@creature larva|DMG} (see the {@book Dungeon Master's Guide|DMG}) in {@dice 1d10} days."
|
||||
@ -862,6 +906,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Shadowy Form",
|
||||
"page": 9,
|
||||
"id": "037",
|
||||
"entries": [
|
||||
"Whenever the creature is fully in darkness or dim light, it becomes semi-incorporeal and gains resistance to bludgeoning, piercing, and slashing damage. If the creature takes radiant damage, its Shadowy Form trait is suppressed for 1 hour."
|
||||
@ -874,6 +919,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Limbo",
|
||||
"page": 9,
|
||||
"id": "038",
|
||||
"entries": [
|
||||
"Creatures influenced by Limbo have their appearance shift at each dawn. Their skin might change color, or their features might morph into unnatural, even abstract, configurations. A creature influenced by Limbo also gains one or more of following traits of your choice:",
|
||||
@ -884,6 +930,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Chaotic Magic",
|
||||
"page": 9,
|
||||
"id": "03a",
|
||||
"entries": [
|
||||
"The creature can cast the {@spell thaumaturgy} cantrip, choosing a magical effect at random. Charisma is the spellcasting ability for this spell."
|
||||
@ -892,6 +939,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Churning Chaos",
|
||||
"page": 9,
|
||||
"id": "03b",
|
||||
"entries": [
|
||||
"When the creature scores a critical hit or takes a critical hit, chaotic energy bursts from the creature, creating one the following effects (choose one or roll a {@dice d6}):",
|
||||
@ -921,6 +969,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Hidden Slaad",
|
||||
"page": 9,
|
||||
"id": "03c",
|
||||
"entries": [
|
||||
"When the creature dies, a {@creature slaad tadpole} bursts from the creature's chest."
|
||||
@ -944,6 +993,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Mechanus",
|
||||
"page": 9,
|
||||
"id": "03d",
|
||||
"entries": [
|
||||
"Creatures influenced by Mechanus have angular, symmetrical features, and their skin gains a metallic sheen. A creature influenced by Mechanus also gains one or more of following traits of your choice:",
|
||||
@ -954,6 +1004,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Lightning Rod",
|
||||
"page": 9,
|
||||
"id": "03f",
|
||||
"entries": [
|
||||
"Lightning damage can't reduce the creature below 1 hit point. Whenever the creature takes lightning damage, one other creature within 5 feet of it (determined randomly) takes half as much damage."
|
||||
@ -962,6 +1013,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Structural Repair (1/Day)",
|
||||
"page": 9,
|
||||
"id": "040",
|
||||
"entries": [
|
||||
"After being in continuous physical contact with a nonmagical object for 1 minute, the creature can magically repair the object as though it had cast a {@spell mending} spell on it."
|
||||
@ -974,6 +1026,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Mount Celestia",
|
||||
"page": 10,
|
||||
"id": "041",
|
||||
"entries": [
|
||||
"Creatures influenced by Mount Celestia gain angelic features, such as gold- or platinum-colored skin, eyes, or hair. Spectral feathers might rise from a creature's back, or a halo might crown its head. A creature influenced by Mount Celestia also gains one or more of following traits of your choice:",
|
||||
@ -984,6 +1037,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Healing Orb",
|
||||
"page": 10,
|
||||
"id": "043",
|
||||
"entries": [
|
||||
"When the creature dies, its body releases a spectral orb that hovers in the same space and lasts for 1 minute. Any good-aligned creature that starts its turn within 5 feet of the orb regains {@dice 1d6} hit points."
|
||||
@ -992,6 +1046,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Light",
|
||||
"page": 10,
|
||||
"id": "044",
|
||||
"entries": [
|
||||
"The creature sheds bright light in a 10-foot radius and dim light for an additional 10 feet. As a bonus action, the creature can suppress this light or cause it to return. The light winks out if the creature dies."
|
||||
@ -1015,6 +1070,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "The Nine Hells",
|
||||
"page": 10,
|
||||
"id": "045",
|
||||
"entries": [
|
||||
"Creatures influenced by the Nine Hells gain devilish features, such as horns, a forked tail, or the faint odor of sulfur or smoke. A creature influenced by the Nine Hells also gains one or more of following traits of your choice:",
|
||||
@ -1025,6 +1081,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Flames of the Nine",
|
||||
"page": 10,
|
||||
"id": "047",
|
||||
"entries": [
|
||||
"Whenever the creature deals bludgeoning, piercing, or slashing damage, it can change the damage type to fire."
|
||||
@ -1033,6 +1090,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Viper Nest",
|
||||
"page": 10,
|
||||
"id": "048",
|
||||
"entries": [
|
||||
"When the creature dies, its body disgorges a {@creature swarm of poisonous snakes} in the same space."
|
||||
@ -1052,6 +1110,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Pandemonium",
|
||||
"page": 10,
|
||||
"id": "049",
|
||||
"entries": [
|
||||
"A creature influenced by Pandemonium appears as though it were exposed to cold air for a long time, its skin dry and cracked. Its hair might blow in a phantom wind. A creature influenced by Pandemonium also gains one or more of following traits of your choice:",
|
||||
@ -1062,6 +1121,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Hindering Winds",
|
||||
"page": 10,
|
||||
"id": "04b",
|
||||
"entries": [
|
||||
"Cold winds sweep around the creature. Any other creature that enters a space within 20 feet of the creature or starts its turn there has its flying speed halved until the start of its next turn."
|
||||
@ -1070,6 +1130,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Wailing Screams",
|
||||
"page": 10,
|
||||
"id": "04c",
|
||||
"entries": [
|
||||
"Whenever the creature casts a spell or makes a spell attack, the faint sound of crying and screams can be heard by it and those affected by its magic."
|
||||
@ -1082,6 +1143,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Ysgard",
|
||||
"page": 10,
|
||||
"id": "04d",
|
||||
"entries": [
|
||||
"A creature influenced by Ysgard becomes hearty and muscular. Its scars always appear fresh. When the creature senses danger, it can't help but express joy. A creature influenced by Ysgard also gains one or more of following traits of your choice:",
|
||||
@ -1092,6 +1154,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Warrior's Wrath",
|
||||
"page": 10,
|
||||
"id": "04f",
|
||||
"entries": [
|
||||
"The creature has advantage on melee attack rolls against any target missing at least half its hit points."
|
||||
@ -1100,6 +1163,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Ysgardian Stand (2/Day)",
|
||||
"page": 10,
|
||||
"id": "050",
|
||||
"entries": [
|
||||
"If the creature has the {@condition prone} condition at the start of its turn, it can, at that time, end the {@condition prone} condition on itself and stand up without expending any movement. The creature can't use this trait while it has the {@condition incapacitated} condition."
|
||||
@ -1114,6 +1178,7 @@
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Denizens of the Outlands",
|
||||
"page": 11,
|
||||
"id": "051",
|
||||
"entries": [
|
||||
"As the Outlands are the crossroads of the Outer Planes, travelers in that realm might encounter any creature in existence, many of which have been influenced by other planes. The following sections detail the various creature types likely to be encountered in the Outlands. Use the tables in these sections to inspire encounters and whole adventures in the Outlands.",
|
||||
@ -1129,6 +1194,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Aberrations",
|
||||
"page": 11,
|
||||
"id": "053",
|
||||
"entries": [
|
||||
"With their inscrutable biologies and agendas, Aberrations might journey to the Outlands pursuing all manner of schemes or sustenance. Slaadi from Limbo are among the most common Aberrations found on the Outlands.",
|
||||
@ -1167,6 +1233,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Beasts",
|
||||
"page": 11,
|
||||
"id": "054",
|
||||
"entries": [
|
||||
"Varied Beasts roam the Outlands, with many species being long extinct on Material Plane worlds. Plane-influenced creatures and gigantic or idealized animals from the Beastlands are common.",
|
||||
@ -1205,6 +1272,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Celestials",
|
||||
"page": 11,
|
||||
"id": "055",
|
||||
"entries": [
|
||||
"Various Celestials watch over the Outlands, particularly those reaches that border the Upper Planes. Angels and {@book archons|MPP|1|Archons} (presented later in this book) are particularly common. Some seek to prevent fiendish incursions into the plane, while others try to align the Outlands closer to goodly philosophies.",
|
||||
@ -1243,6 +1311,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Constructs",
|
||||
"page": 12,
|
||||
"id": "056",
|
||||
"entries": [
|
||||
"Constructs in the Outlands might be the remnants of forgotten civilizations, servants of plane-walking magic-users, or creations with varied important or ridiculous purposes. Among the most common are modrons, mechanical denizens of Mechanus that seek to enforce order on the plane.",
|
||||
@ -1292,6 +1361,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Dragons",
|
||||
"page": 12,
|
||||
"id": "057",
|
||||
"entries": [
|
||||
"All varieties of Dragons can be found in the Outlands, though many dwell in isolated reaches away from the plane's gate-towns. Some remain aloof due to their territorial natures, while others seek to avoid the {@book Mausoleum of Chronepsis|SatO|_UNKNOWN}, home to the legendary dragon Chronepsis (see {@book Sigil and the Outlands|SatO} for details).",
|
||||
@ -1330,6 +1400,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Elementals",
|
||||
"page": 13,
|
||||
"id": "058",
|
||||
"entries": [
|
||||
"Elementals of all varieties can be found in the Outlands. Mephits are common and often serve more powerful creatures as messengers.",
|
||||
@ -1368,6 +1439,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Fey",
|
||||
"page": 13,
|
||||
"id": "059",
|
||||
"entries": [
|
||||
"Being close to nature\u2014even the surreal nature of the Outer Planes\u2014Fey dwelling in the Outlands are often influenced by other planes. Fey encountered near a gate-town typically exhibit influences from the town's associated Outer Plane.",
|
||||
@ -1406,6 +1478,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Fiends",
|
||||
"page": 13,
|
||||
"id": "05a",
|
||||
"entries": [
|
||||
"Denizens of the Lower Planes regularly invade the Outlands, seeking to shift the balance of the realm toward evil. The Blood War, the endless conflict between demons and devils, regularly spills onto the plane and can devastate whole regions.",
|
||||
@ -1444,6 +1517,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Giants",
|
||||
"page": 13,
|
||||
"id": "05b",
|
||||
"entries": [
|
||||
"Giants are common in the Outlands. Many gravitate toward regions influenced by planes corresponding with their alignments, but others seek to find the {@book secret realm|SatO|_UNKNOWN} of the giant god Annam (see {@book Sigil and the Outlands|SatO} for details).",
|
||||
@ -1482,6 +1556,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Humanoids",
|
||||
"page": 14,
|
||||
"id": "05c",
|
||||
"entries": [
|
||||
"Humanoids from across the planes travel the Outlands and number among the most common inhabitants of the gate-towns.",
|
||||
@ -1520,6 +1595,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Monstrosities",
|
||||
"page": 14,
|
||||
"id": "05d",
|
||||
"entries": [
|
||||
"Monstrosities are common in the Outlands. Due to the influence of the Outer Planes, many behave differently than they might on the Material Plane.",
|
||||
@ -1558,6 +1634,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Oozes",
|
||||
"page": 14,
|
||||
"id": "05e",
|
||||
"entries": [
|
||||
"Oozes often appear in swampy or subterranean reaches of the Outlands or in regions influenced by the Lower Planes.",
|
||||
@ -1607,6 +1684,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Plants",
|
||||
"page": 14,
|
||||
"id": "05f",
|
||||
"entries": [
|
||||
"Plants in the Outlands often grow to incredible size, produce remarkable flowers or fruit, and exhibit bizarre shapes and colors. Regions influenced by other planes are typically first recognizable by the effect those planes have on vegetation.",
|
||||
@ -1645,6 +1723,7 @@
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "Undead",
|
||||
"page": 15,
|
||||
"id": "060",
|
||||
"entries": [
|
||||
"Undead often lurk in the dismal reaches of the Outlands, but some wander the land, either seeking places to spend eternity or preying on the living.",
|
||||
@ -1692,6 +1771,7 @@
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Planar Encounters",
|
||||
"page": 63,
|
||||
"id": "061",
|
||||
"entries": [
|
||||
"The following tables present random encounters adventurers might face across the Outlands or in other realms influenced by the Outer Planes. These tables are divided by the alignment of the planes affecting a region. Unless otherwise noted, creatures marked with an asterisk (*) appear in this book, while the rest are described in the {@book Monster Manual|MM}.",
|
||||
@ -2074,6 +2154,7 @@
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Bestiary A to Z",
|
||||
"page": 16,
|
||||
"id": "062",
|
||||
"entries": [
|
||||
"This section presents stat blocks in alphabetical order for creatures suited to planar campaigns.",
|
||||
@ -2127,6 +2208,7 @@
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Faction Agents",
|
||||
"page": 53,
|
||||
"id": "094",
|
||||
"entries": [
|
||||
"This section presents stat blocks in alphabetical order for members of Sigil's twelve {@book ascendant factions|SatO|_UNKNOWN}. These groups and a summary of their beliefs appear on the {@book Ascendant Factions of Sigil table|MPP|1|Ascendant Factions of Sigil}. All are detailed further in {@book Sigil and the Outlands|SatO}.",
|
||||
@ -2209,9 +2291,271 @@
|
||||
},
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Cover",
|
||||
"id": "0a4",
|
||||
"name": "Credits",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"columns": 2,
|
||||
"items": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Project Leads",
|
||||
"entries": [
|
||||
"Justice Ramin Arman, F. Wesley Schneider"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Director",
|
||||
"entries": [
|
||||
"Emi Tanji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Writers",
|
||||
"entries": [
|
||||
"Dan Dillon, Ben Petrisor, F. Wesley Schneider"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Rules Developers",
|
||||
"entries": [
|
||||
"Jeremy Crawford, Ron Lundeen, Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Lead Editor",
|
||||
"entries": [
|
||||
"Adrian Ng"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editors",
|
||||
"entries": [
|
||||
"Judy Bauer, Janica Carter, Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Graphic Designer",
|
||||
"entries": [
|
||||
"Matt Cole"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cover Illustrators",
|
||||
"entries": [
|
||||
"Dmitry Burmak, Tony DiTerlizzi"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Interior Illustrators",
|
||||
"entries": [
|
||||
"Mark Behm, Eric Belisle, Olivier Bernard, Zoltan Boros, Christopher Burdett, Dmitry Burmak, Ekaterina Burmak, CoupleOfKooks, Kent Davis, Julie Dillon, Jessica Fong, Isabel Gibney, Quintin Gleim, Katerina Ladon, Adrián Ibarra Lugo, Warren Mahy, Dave Melvin, David Auden Nash, Irina Nordsol, Claudio Pozas, Chris Seaman, Taras Susak, Matias Tapia, John Tedrick, Brian Valeza, Kieran Yanner"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Concept Art Directors",
|
||||
"entries": [
|
||||
"Josh Herman, Emi Tanji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Concept Artists",
|
||||
"entries": [
|
||||
"Eric Belisle, Dmitry Burmak, Ekaterina Burmak, Max Dunbar, Alex Konstad, Juho Laitila, Izzy Medrano, One Pixel Brush, Noor Rahman, John Tedrick, Terraform Studios, Shawn Wood"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Consultants",
|
||||
"entries": [
|
||||
"Michele Carter, Rico Corazón, Basheer Ghouse, Jonathan S. Tomhave"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Project Engineer",
|
||||
"entries": [
|
||||
"Cynda Callaway"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Imaging Technicians",
|
||||
"entries": [
|
||||
"Daniel Corona, Kevin Yee"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Prepress Specialist",
|
||||
"entries": [
|
||||
"Jefferson Dunlap"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "D&D Studio",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Executive Producer",
|
||||
"entries": [
|
||||
"Kyle Brink"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Game Architects",
|
||||
"entries": [
|
||||
"Jeremy Crawford, Christopher Perkins"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Studio Art Director",
|
||||
"entries": [
|
||||
"Josh Herman"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Manager",
|
||||
"entries": [
|
||||
"Rob Sather"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Department",
|
||||
"entries": [
|
||||
"Matt Cole, Trystan Falcone, Bree Heiss, Kate Irwin, Bob Jordan, Noor Rahman, Emi Tanji, Trish Yochum"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Design Department",
|
||||
"entries": [
|
||||
"Justice Ramin Arman, Makenzie De Armas, Dan Dillon, Amanda Hamon, Ron Lundeen, Ben Petrisor, Patrick Renie, F. Wesley Schneider, Carl Sibley, Jason Tondro, James Wyatt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Managing Editor",
|
||||
"entries": [
|
||||
"Judy Bauer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editorial Department",
|
||||
"entries": [
|
||||
"Eytan Bernstein, Janica Carter, Adrian Ng"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Senior Producer",
|
||||
"entries": [
|
||||
"Dan Tovar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Producers",
|
||||
"entries": [
|
||||
"Bill Benham, Siera Bruggeman, Robert Hawkey, Andy Smith, Gabe Waluconis"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Director of Product Management",
|
||||
"entries": [
|
||||
"Liz Schuh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Managers",
|
||||
"entries": [
|
||||
"Natalie Egan, Chris Lindsay, Hilary Ross, Chris Tulach"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "D&D Beyond",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Product Managers",
|
||||
"entries": [
|
||||
"Patrick Backmann, Jeff Turriff"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Digital Design Team",
|
||||
"entries": [
|
||||
"Jay Jani, Adam Walton, Cameron Powell, Joseph Keen, Sean Stoves"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"Special thanks to Michele Carter; Lisa Ohanian; Black Isle Studios, the creators of {@i Planescape: Torment}; and the hundreds of playtesters who made this a better book!"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "book/MPP/credits.webp"
|
||||
},
|
||||
"maxWidth": 350,
|
||||
"credit": "Jessica Fong",
|
||||
"width": 1200,
|
||||
"height": 1412
|
||||
},
|
||||
"Additional thanks to the original Planescape setting designers, including Rich Baker, Wolfgang Baur, Tim Beach, Karen Boomgarden, Michele Carter, David \"Zeb\" Cook, Monte Cook, Tony DiTerlizzi, Dale Donovan, Jeff Grubb, Andria Hayday, Dori Jean Hein, Brian Kowal, Rob Lazzaretti, Colin McComb, Dawn Murin, rk post, Robh Ruppel, J. M. Salsbury, Bill Slavicsek, Lester Smith, Rick Swan, Ray Vallese, James Ward, Sue Weinlein, Skip Williams, Steve Winter, David Wise, and many more.",
|
||||
{
|
||||
"type": "gallery",
|
||||
"images": [
|
||||
@ -2219,10 +2563,9 @@
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "book/MPP/058-02003.cover.webp"
|
||||
"path": "book/MPP/credits2.webp"
|
||||
},
|
||||
"title": "On the Cover: the skull-like planar traveler Morte explores the multiverse, but he doesn't exactly make friends wherever he goes.",
|
||||
"credit": "Dmitry Burmak",
|
||||
"title": "On the Cover: On this cover by Dmitry Burmak, the skull-like planar traveler Morte explores the multiverse, but he doesn't exactly make friends wherever he goes.",
|
||||
"width": 850,
|
||||
"height": 570
|
||||
},
|
||||
@ -2230,10 +2573,9 @@
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "book/MPP/059-02002.alt.cover.webp"
|
||||
"path": "book/MPP/credits3.webp"
|
||||
},
|
||||
"title": "On the Alt-Cover: a githyanki warrior, the most recent in a long tradition of gith to explore the planes and model for the covers of hardback bestiaries.",
|
||||
"credit": "Tony DiTerlizzi",
|
||||
"title": "On the Alt-Cover: Artist Tony DiTerlizzi depicts a githyanki warrior, the most recent in a long tradition of gith to explore the planes and model for the covers of hardback bestiaries.",
|
||||
"width": 850,
|
||||
"height": 579
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -11347,6 +11347,296 @@
|
||||
}
|
||||
],
|
||||
"id": "2c6"
|
||||
},
|
||||
{
|
||||
"type": "section",
|
||||
"name": "Credits",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"columns": 2,
|
||||
"items": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Exandria Created By",
|
||||
"entries": [
|
||||
"Matthew Mercer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Lead Designers",
|
||||
"entries": [
|
||||
"James J. Haeck, Matthew Mercer, Hannah Rose"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Additional Design",
|
||||
"entries": [
|
||||
"John Stavropoulos"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Additional Contributions by Critical Role Cast",
|
||||
"entries": [
|
||||
"Laura Bailey, Taliesin Jaffe, Ashley Johnson, Liam O'Brien, Marisha Ray, Sam Riegel, Travis Willingham"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Additional Worldbuilding",
|
||||
"entries": [
|
||||
"Aabria Iyengar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Managing Editor",
|
||||
"entries": [
|
||||
"Hannah Rose"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editors",
|
||||
"entries": [
|
||||
"Scott Fitzgerald Gray, Marcie Wood"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Proofreader",
|
||||
"entries": [
|
||||
"Matt Walloch-Key"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Lore Keeper",
|
||||
"entries": [
|
||||
"Dani Carr"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cultural Consultant",
|
||||
"entries": [
|
||||
"Basheer Ghouse"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Safety Consultant",
|
||||
"entries": [
|
||||
"John Stavropoulos"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Accessibility Consultants",
|
||||
"entries": [
|
||||
"Accessible Games, Chris Hopper, Deven Rue"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Layout and Graphic Design",
|
||||
"entries": [
|
||||
"Christopher J. De La Rosa, Gordon McAlpin"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Directors",
|
||||
"entries": [
|
||||
"James J. Haeck, Hannah Rose"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Producers",
|
||||
"entries": [
|
||||
"James J. Haeck, Hannah Rose, Ivan Van Norman"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cover Illustrator",
|
||||
"entries": [
|
||||
"Genel Jumalon"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Lead Character Illustrator",
|
||||
"entries": [
|
||||
"Lauren Walsh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Cartographer",
|
||||
"entries": [
|
||||
"Andy Law"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Illustrators",
|
||||
"entries": [
|
||||
"Jonah Baumann, Elliott Berggren, Lea Bichlmaier, Hunter Bonyun, Allie Briggs, Conceptopolis, Clara Daly, Kent Davis, Nikki Dawes, Biagio D'Alessandro, Stanislav Dikolenko, Isabel Gibney, Anna Grinenko, John Anthony di Giovanni, Wesley Griffith, Ilich Henriquez, Claudia Ianniciello, Genel Jumalon, Linda Lithén, Adrián Ibarra Lugo, Nguyen Hieu, Jessica Nguyen, Ariana Orner, Svetoslav Petrov, Kennef Riggles, Aaron J. Riley, Caio Santos, Jessica Scates, Elisa Serio, Ameera Sheikh, Cyarna Trim, Andrey Vasilchenko, Lauren Walsh, Azra Wheeler, Zuzanna Wuzyk"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Digital Edition Alt Text",
|
||||
"entries": [
|
||||
"Mysty Vander"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Head of Darrington Press",
|
||||
"entries": [
|
||||
"Ivan Van Norman"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Creative Director",
|
||||
"entries": [
|
||||
"Matthew Mercer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Head of Business Development",
|
||||
"entries": [
|
||||
"Ben Van Der Fluit"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Marketing Manager",
|
||||
"entries": [
|
||||
"Darcy L. Ross"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Playtest Coordinator",
|
||||
"entries": [
|
||||
"Christina Farber"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Director of Retail Partnerships",
|
||||
"entries": [
|
||||
"Brittany Walloch-Key"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Special Thanks",
|
||||
"entries": [
|
||||
"CritRoleStats, Ajit George, James Introcaso, Arthur Loftis, Sadie Lowry, F. Wesley Schneider"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Playtesters",
|
||||
"entries": [
|
||||
"Michelle Nguyen Bradley, Dani Carr, Adrienne Cho, Shaunette DeTie, Dominique Dickey, Christina Farber, Matthew Gilbert, Mark Hulmes, LaTia Jacquise, Taliesin Jaffe, Matt Walloch-Key, Christopher Lockey, Sadie Lowry, Carlos Luna, Surena Marie, Stevie Morley, Caroline Pitt, Darcy L. Ross, Kyle Shire, Lauren Walsh, Marcie Wood, Critical Role Community"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Critical Role Team",
|
||||
"entries": [
|
||||
"Stephanie Benjamin, Diana Jeanne Calalo, Sarah Marie Campbell, Dani Carr, Niki Chi, Adrienne Cho, Shaunette DeTie, Nadia Dilbert, Steve Failows, Christina Farber, Maxwell James, Will Lamborn, Sarah Leeper, Tal Levitas, Christopher Lockey, Ed Lopez, Surena Marie, Aaron Monroy, Khoa Nguyen, Jeremiah Rivas, Rachel Romero, Max Schapiro, Vinnie Singh, Kyle Shire, Spenser Starke, Jordyn Torrence"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "entries",
|
||||
"entries": [
|
||||
{
|
||||
"type": "entries",
|
||||
"name": "First Edition Credits",
|
||||
"entries": [
|
||||
{
|
||||
"type": "list",
|
||||
"style": "list-hang-notitle",
|
||||
"items": [
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Publisher",
|
||||
"entries": [
|
||||
"Green Ronin Publishing"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Writing and Design",
|
||||
"entries": [
|
||||
"Matthew Mercer and James Haeck"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Additional Development",
|
||||
"entries": [
|
||||
"Joseph Carriker and Steve Kenson"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Editing",
|
||||
"entries": [
|
||||
"Jennifer Lawrence and Evan Sass"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Proofreading",
|
||||
"entries": [
|
||||
"Caroline Pitt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "item",
|
||||
"name": "Art Direction and Graphic Design",
|
||||
"entries": [
|
||||
"Hal Mangold"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "book/TDCSR/credits.webp"
|
||||
},
|
||||
"width": 850,
|
||||
"height": 1119
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -2117,6 +2117,9 @@
|
||||
},
|
||||
{
|
||||
"name": "Maps"
|
||||
},
|
||||
{
|
||||
"name": "Credits"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -4089,6 +4092,9 @@
|
||||
"type": "appendix",
|
||||
"identifier": "B"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Credits"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -4467,7 +4473,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Cover"
|
||||
"name": "Credits"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -4538,7 +4544,7 @@
|
||||
"name": "Poster Map"
|
||||
},
|
||||
{
|
||||
"name": "Cover"
|
||||
"name": "Credits"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -2650,5 +2650,10 @@
|
||||
"ver": "1.199.2",
|
||||
"date": "2024-02-04",
|
||||
"txt": "- Added \"Disadvantage on Stealth\" and \"Strength Requirement\" filters to Items page\n- (Brew) Added Creature Text Converter support for vulgar fraction characters\n- (Fixed typos/added tags)"
|
||||
},
|
||||
{
|
||||
"ver": "1.199.3",
|
||||
"date": "2024-02-11",
|
||||
"txt": "- Added page numbers to Planescape: Adventures in the Multiverse adventures/books (Sigil and the Outlands, Turn of Fortune's Wheel, Morte's Planar Parade)\n- (Brew) Added fluff support to `optionalfeature`s\n- (Brew) Fixed rare case where loading a homebrew subclass could fail to load its depended-upon class\n- (Fixed typos/added tags)"
|
||||
}
|
||||
]
|
||||
|
||||
@ -1009,8 +1009,7 @@
|
||||
"level": 1,
|
||||
"entries": [
|
||||
"You have learned to regain some of your magical energy by studying your spellbook. Once per day when you finish a short rest, you can choose expended spell slots to recover. The spell slots can have a combined level that is equal to or less than half your wizard level (rounded up), and none of the slots can be 6th level or higher.",
|
||||
"For example, if you're a 4th-level wizard, you can recover up to two levels worth of spell slots.",
|
||||
"You can recover either a 2nd-level spell slot or two 1st-level spell slots."
|
||||
"For example, if you're a 4th-level wizard, you can recover up to two levels worth of spell slots. You can recover either a 2nd-level spell slot or two 1st-level spell slots."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
17
data/fluff-optionalfeatures.json
Normal file
17
data/fluff-optionalfeatures.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"optionalfeatureFluff": [
|
||||
{
|
||||
"name": "Homunculus Servant",
|
||||
"source": "TCE",
|
||||
"images": [
|
||||
{
|
||||
"type": "image",
|
||||
"href": {
|
||||
"type": "internal",
|
||||
"path": "optionalfeatures/TCE/Homunculus Servant.webp"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@ -797,7 +797,7 @@
|
||||
"AF",
|
||||
"RLD"
|
||||
],
|
||||
"range": "30/120",
|
||||
"range": "40/120",
|
||||
"reload": 50,
|
||||
"dmg1": "3d6",
|
||||
"dmgType": "R",
|
||||
|
||||
338
data/items.json
338
data/items.json
File diff suppressed because it is too large
Load Diff
@ -1597,7 +1597,8 @@
|
||||
"The homunculus is friendly to you and your companions, and it obeys your commands. See this creature's game statistics in the Homunculus Servant stat block, which uses your proficiency bonus (PB) in several places.",
|
||||
"In combat, the homunculus shares your initiative count, but it takes its turn immediately after yours. It can move and use its reaction on its own, but the only action it takes on its turn is the {@action Dodge} action, unless you take a bonus action on your turn to command it to take another action. That action can be one in its stat block or some other action. If you are {@condition incapacitated}, the homunculus can take any action of its choice, not just {@action Dodge}.",
|
||||
"The homunculus regains {@dice 2d6} hit points if the {@spell mending} spell is cast on it. If you or the homunculus dies, it vanishes, leaving its heart in its space."
|
||||
]
|
||||
],
|
||||
"hasFluffImages": true
|
||||
},
|
||||
{
|
||||
"name": "Improved Pact Weapon",
|
||||
|
||||
@ -2366,7 +2366,7 @@
|
||||
"hasFluffImages": true,
|
||||
"_versions": [
|
||||
{
|
||||
"_template": {
|
||||
"_abstract": {
|
||||
"name": "Dragonborn (Chromatic; {{color}})",
|
||||
"source": "FTD",
|
||||
"_mod": {
|
||||
@ -2534,7 +2534,7 @@
|
||||
"hasFluffImages": true,
|
||||
"_versions": [
|
||||
{
|
||||
"_template": {
|
||||
"_abstract": {
|
||||
"name": "Dragonborn (Gem; {{color}})",
|
||||
"source": "FTD",
|
||||
"_mod": {
|
||||
@ -2730,7 +2730,7 @@
|
||||
"hasFluffImages": true,
|
||||
"_versions": [
|
||||
{
|
||||
"_template": {
|
||||
"_abstract": {
|
||||
"name": "Dragonborn (Metallic; {{color}})",
|
||||
"source": "FTD",
|
||||
"_mod": {
|
||||
@ -11647,7 +11647,7 @@
|
||||
"hasFluffImages": true,
|
||||
"_versions": [
|
||||
{
|
||||
"_template": {
|
||||
"_abstract": {
|
||||
"name": "Dragonborn ({{color}})",
|
||||
"source": "PHB",
|
||||
"_mod": {
|
||||
@ -11915,7 +11915,7 @@
|
||||
"hasFluffImages": true,
|
||||
"_versions": [
|
||||
{
|
||||
"_template": {
|
||||
"_abstract": {
|
||||
"name": "Dragonborn (Draconblood; {{color}})",
|
||||
"source": "EGW",
|
||||
"_mod": {
|
||||
@ -12142,7 +12142,7 @@
|
||||
"hasFluffImages": true,
|
||||
"_versions": [
|
||||
{
|
||||
"_template": {
|
||||
"_abstract": {
|
||||
"name": "Dragonborn (Ravenite; {{color}})",
|
||||
"source": "EGW",
|
||||
"_mod": {
|
||||
|
||||
@ -103,8 +103,8 @@
|
||||
"SGT"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"MT"
|
||||
"MT",
|
||||
"ST"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -311,8 +311,8 @@
|
||||
"SGT"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"MT"
|
||||
"MT",
|
||||
"ST"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@ -54,8 +54,8 @@
|
||||
"SGT"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"MT"
|
||||
"MT",
|
||||
"ST"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -2477,8 +2477,8 @@
|
||||
"SGT"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"MT"
|
||||
"MT",
|
||||
"ST"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -4186,6 +4186,7 @@
|
||||
"A flame, equivalent in brightness to a torch, springs forth from an object that you touch. The effect looks like a regular flame, but it creates no heat and doesn't use oxygen. A continual flame can be covered or hidden but not smothered or quenched."
|
||||
],
|
||||
"miscTags": [
|
||||
"LGT",
|
||||
"OBJ"
|
||||
]
|
||||
},
|
||||
@ -6406,8 +6407,8 @@
|
||||
"SCL"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"MT"
|
||||
"MT",
|
||||
"ST"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -9531,6 +9532,9 @@
|
||||
],
|
||||
"savingThrow": [
|
||||
"charisma"
|
||||
],
|
||||
"miscTags": [
|
||||
"LGT"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -11870,8 +11874,8 @@
|
||||
"SGT"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"MT"
|
||||
"MT",
|
||||
"ST"
|
||||
],
|
||||
"hasFluffImages": true
|
||||
},
|
||||
@ -13889,8 +13893,8 @@
|
||||
"TP"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"MT"
|
||||
"MT",
|
||||
"ST"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -14528,6 +14532,7 @@
|
||||
"wisdom"
|
||||
],
|
||||
"miscTags": [
|
||||
"LGT",
|
||||
"PRM",
|
||||
"SGT"
|
||||
],
|
||||
@ -15850,8 +15855,8 @@
|
||||
"R"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"MT"
|
||||
"MT",
|
||||
"ST"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -16830,8 +16835,8 @@
|
||||
"MAC"
|
||||
],
|
||||
"areaTags": [
|
||||
"MT",
|
||||
"C"
|
||||
"C",
|
||||
"MT"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -19762,9 +19767,9 @@
|
||||
"necrotic"
|
||||
],
|
||||
"miscTags": [
|
||||
"ADV",
|
||||
"HL",
|
||||
"SGT",
|
||||
"ADV"
|
||||
"SGT"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@ -249,8 +249,8 @@
|
||||
"SGT"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"MT"
|
||||
"MT",
|
||||
"ST"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -301,8 +301,8 @@
|
||||
"psychic"
|
||||
],
|
||||
"miscTags": [
|
||||
"SGT",
|
||||
"ADV"
|
||||
"ADV",
|
||||
"SGT"
|
||||
],
|
||||
"hasFluffImages": true
|
||||
},
|
||||
|
||||
@ -825,6 +825,7 @@
|
||||
"If you cast this spell multiple times, you can have up to three non-instantaneous effects created by it active at a time, and you can dismiss such an effect as an action."
|
||||
],
|
||||
"miscTags": [
|
||||
"LGT",
|
||||
"SGT"
|
||||
],
|
||||
"areaTags": [
|
||||
@ -1242,8 +1243,8 @@
|
||||
"dexterity"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"N"
|
||||
"N",
|
||||
"ST"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -4290,9 +4291,9 @@
|
||||
"humanoid"
|
||||
],
|
||||
"miscTags": [
|
||||
"ADV",
|
||||
"HL",
|
||||
"UBA",
|
||||
"ADV"
|
||||
"UBA"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -4412,8 +4413,8 @@
|
||||
"UBA"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"S"
|
||||
"S",
|
||||
"ST"
|
||||
],
|
||||
"hasFluffImages": true
|
||||
},
|
||||
@ -4679,6 +4680,7 @@
|
||||
],
|
||||
"miscTags": [
|
||||
"HL",
|
||||
"LGT",
|
||||
"PRM",
|
||||
"SGT"
|
||||
]
|
||||
@ -5228,6 +5230,7 @@
|
||||
"constitution"
|
||||
],
|
||||
"miscTags": [
|
||||
"LGT",
|
||||
"SGT"
|
||||
],
|
||||
"areaTags": [
|
||||
@ -5676,8 +5679,8 @@
|
||||
"UBA"
|
||||
],
|
||||
"areaTags": [
|
||||
"ST",
|
||||
"C"
|
||||
"C",
|
||||
"ST"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@ -55,8 +55,8 @@ class PageFilterBackgrounds extends PageFilter {
|
||||
if (bg.srd) bg._fMisc.push("SRD");
|
||||
if (bg.basicRules) bg._fMisc.push("Basic Rules");
|
||||
if (SourceUtil.isLegacySourceWotc(bg.source)) bg._fMisc.push("Legacy");
|
||||
if (bg.hasFluff || bg.fluff?.entries) bg._fMisc.push("Has Info");
|
||||
if (bg.hasFluffImages || bg.fluff?.images) bg._fMisc.push("Has Images");
|
||||
if (this._hasFluff(bg)) bg._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(bg)) bg._fMisc.push("Has Images");
|
||||
bg._fOtherBenifits = [];
|
||||
if (bg.feats) bg._fOtherBenifits.push("Feat");
|
||||
if (bg.additionalSpells) bg._fOtherBenifits.push("Additional Spells");
|
||||
|
||||
@ -342,8 +342,8 @@ class PageFilterBestiary extends PageFilter {
|
||||
if (SourceUtil.isLegacySourceWotc(mon.source)) mon._fMisc.push("Legacy");
|
||||
if (Renderer.monster.hasToken(mon)) mon._fMisc.push("Has Token");
|
||||
if (mon.mythic) mon._fMisc.push("Mythic");
|
||||
if (mon.hasFluff || mon.fluff?.entries) mon._fMisc.push("Has Info");
|
||||
if (mon.hasFluffImages || mon.fluff?.images) mon._fMisc.push("Has Images");
|
||||
if (this._hasFluff(mon)) mon._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(mon)) mon._fMisc.push("Has Images");
|
||||
if (this._isReprinted({reprintedAs: mon.reprintedAs, tag: "creature", prop: "monster", page: UrlUtil.PG_BESTIARY})) mon._fMisc.push("Reprinted");
|
||||
if (this._hasRecharge(mon)) mon._fMisc.push("Has Recharge");
|
||||
if (mon._versionBase_isVersion) mon._fMisc.push("Is Variant");
|
||||
|
||||
@ -20,8 +20,8 @@ class PageFilterCharCreationOptions extends PageFilter {
|
||||
it._fOptionType = Parser.charCreationOptionTypeToFull(it.optionType);
|
||||
it._fMisc = it.srd ? ["SRD"] : [];
|
||||
if (SourceUtil.isLegacySourceWotc(it.source)) it._fMisc.push("Legacy");
|
||||
if (it.hasFluff || it.fluff?.entries) it._fMisc.push("Has Info");
|
||||
if (it.hasFluffImages || it.fluff?.images) it._fMisc.push("Has Images");
|
||||
if (this._hasFluff(it)) it._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(it)) it._fMisc.push("Has Images");
|
||||
}
|
||||
|
||||
addToFilters (it, isExcluded) {
|
||||
|
||||
@ -49,11 +49,11 @@ class PageFilterClassesRaw extends PageFilterClassesBase {
|
||||
}
|
||||
|
||||
static async _pGetParentClass_pPrerelease ({sc}) {
|
||||
await this._pGetParentClass_pPrereleaseBrew({sc, brewUtil: PrereleaseUtil});
|
||||
return this._pGetParentClass_pPrereleaseBrew({sc, brewUtil: PrereleaseUtil});
|
||||
}
|
||||
|
||||
static async _pGetParentClass_pBrew ({sc}) {
|
||||
await this._pGetParentClass_pPrereleaseBrew({sc, brewUtil: BrewUtil2});
|
||||
return this._pGetParentClass_pPrereleaseBrew({sc, brewUtil: BrewUtil2});
|
||||
}
|
||||
|
||||
static async _pGetParentClass_pPrereleaseBrew ({sc, brewUtil}) {
|
||||
|
||||
@ -24,8 +24,8 @@ class PageFilterConditionsDiseases extends PageFilter {
|
||||
if (it.srd) it._fMisc.push("SRD");
|
||||
if (it.basicRules) it._fMisc.push("Basic Rules");
|
||||
if (SourceUtil.isLegacySourceWotc(it.source)) it._fMisc.push("Legacy");
|
||||
if (it.hasFluff || it.fluff?.entries) it._fMisc.push("Has Info");
|
||||
if (it.hasFluffImages || it.fluff?.images) it._fMisc.push("Has Images");
|
||||
if (this._hasFluff(it)) it._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(it)) it._fMisc.push("Has Images");
|
||||
}
|
||||
|
||||
addToFilters (it, isExcluded) {
|
||||
|
||||
@ -86,8 +86,8 @@ class PageFilterFeats extends PageFilter {
|
||||
feat._fMisc = feat.srd ? ["SRD"] : [];
|
||||
if (feat.basicRules) feat._fMisc.push("Basic Rules");
|
||||
if (SourceUtil.isLegacySourceWotc(feat.source)) feat._fMisc.push("Legacy");
|
||||
if (feat.hasFluff || feat.fluff?.entries) feat._fMisc.push("Has Info");
|
||||
if (feat.hasFluffImages || feat.fluff?.images) feat._fMisc.push("Has Images");
|
||||
if (this._hasFluff(feat)) feat._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(feat)) feat._fMisc.push("Has Images");
|
||||
if (feat.repeatable != null) feat._fMisc.push(feat.repeatable ? "Repeatable" : "Not Repeatable");
|
||||
|
||||
feat._slAbility = ability.asText || VeCt.STR_NONE;
|
||||
|
||||
@ -96,8 +96,8 @@ class PageFilterEquipment extends PageFilter {
|
||||
if (item.srd) item._fMisc.push("SRD");
|
||||
if (item.basicRules) item._fMisc.push("Basic Rules");
|
||||
if (SourceUtil.isLegacySourceWotc(item.source)) item._fMisc.push("Legacy");
|
||||
if (item.hasFluff || item.fluff?.entries) item._fMisc.push("Has Info");
|
||||
if (item.hasFluffImages || item.fluff?.images) item._fMisc.push("Has Images");
|
||||
if (this._hasFluff(item)) item._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(item)) item._fMisc.push("Has Images");
|
||||
if (item.miscTags) item._fMisc.push(...item.miscTags.map(Parser.itemMiscTagToFull));
|
||||
if (this._isReprinted({reprintedAs: item.reprintedAs, tag: "item", prop: "item", page: UrlUtil.PG_ITEMS})) item._fMisc.push("Reprinted");
|
||||
if (item.stealth) item._fMisc.push("Disadvantage on Stealth");
|
||||
@ -193,7 +193,15 @@ class PageFilterEquipment extends PageFilter {
|
||||
globalThis.PageFilterEquipment = PageFilterEquipment;
|
||||
|
||||
class PageFilterItems extends PageFilterEquipment {
|
||||
static _DEFAULT_HIDDEN_TYPES = new Set(["treasure", "futuristic", "modern", "renaissance"]);
|
||||
static _DEFAULT_HIDDEN_TYPES = new Set([
|
||||
Parser.ITEM_TYPE_JSON_TO_ABV["$"],
|
||||
Parser.ITEM_TYPE_JSON_TO_ABV["$A"],
|
||||
Parser.ITEM_TYPE_JSON_TO_ABV["$C"],
|
||||
Parser.ITEM_TYPE_JSON_TO_ABV["$G"],
|
||||
"futuristic",
|
||||
"modern",
|
||||
"renaissance",
|
||||
]);
|
||||
static _FILTER_BASE_ITEMS_ATTUNEMENT = ["Requires Attunement", "Requires Attunement By...", "Attunement Optional", VeCt.STR_NO_ATTUNEMENT];
|
||||
|
||||
// region static
|
||||
|
||||
@ -15,8 +15,8 @@ class PageFilterLanguages extends PageFilter {
|
||||
if (it.srd) it._fMisc.push("SRD");
|
||||
if (it.basicRules) it._fMisc.push("Basic Rules");
|
||||
if (SourceUtil.isLegacySourceWotc(it.source)) it._fMisc.push("Legacy");
|
||||
if (it.hasFluff || it.fluff?.entries) it._fMisc.push("Has Info");
|
||||
if (it.hasFluffImages || it.fluff?.images) it._fMisc.push("Has Images");
|
||||
if (this._hasFluff(it)) it._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(it)) it._fMisc.push("Has Images");
|
||||
}
|
||||
|
||||
addToFilters (it, isExcluded) {
|
||||
|
||||
@ -11,8 +11,8 @@ class PageFilterObjects extends PageFilter {
|
||||
obj._fMisc = obj.srd ? ["SRD"] : [];
|
||||
if (SourceUtil.isLegacySourceWotc(obj.source)) obj._fMisc.push("Legacy");
|
||||
if (Renderer.object.hasToken(obj)) obj._fMisc.push("Has Token");
|
||||
if (obj.hasFluff || obj.fluff?.entries) obj._fMisc.push("Has Info");
|
||||
if (obj.hasFluffImages || obj.fluff?.images) obj._fMisc.push("Has Images");
|
||||
if (this._hasFluff(obj)) obj._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(obj)) obj._fMisc.push("Has Images");
|
||||
}
|
||||
|
||||
addToFilters (obj, isExcluded) {
|
||||
|
||||
@ -76,19 +76,19 @@ class PageFilterOptionalFeatures extends PageFilter {
|
||||
this._featureFilter,
|
||||
],
|
||||
});
|
||||
this._miscFilter = new Filter({header: "Miscellaneous", items: ["SRD", "Legacy", "Grants Additional Spells"], isMiscFilter: true});
|
||||
this._miscFilter = new Filter({header: "Miscellaneous", items: ["Has Info", "Has Images", "SRD", "Legacy", "Grants Additional Spells"], isMiscFilter: true});
|
||||
}
|
||||
|
||||
static mutateForFilters (it) {
|
||||
it._fSources = SourceFilter.getCompleteFilterSources(it);
|
||||
static mutateForFilters (ent) {
|
||||
ent._fSources = SourceFilter.getCompleteFilterSources(ent);
|
||||
|
||||
// (Convert legacy string format to array)
|
||||
it.featureType = it.featureType && it.featureType instanceof Array ? it.featureType : it.featureType ? [it.featureType] : ["OTH"];
|
||||
if (it.prerequisite) {
|
||||
it._sPrereq = true;
|
||||
it._fPrereqPact = it.prerequisite.filter(it => it.pact).map(it => it.pact);
|
||||
it._fPrereqPatron = it.prerequisite.filter(it => it.patron).map(it => it.patron);
|
||||
it._fprereqSpell = it.prerequisite
|
||||
ent.featureType = ent.featureType && ent.featureType instanceof Array ? ent.featureType : ent.featureType ? [ent.featureType] : ["OTH"];
|
||||
if (ent.prerequisite) {
|
||||
ent._sPrereq = true;
|
||||
ent._fPrereqPact = ent.prerequisite.filter(it => it.pact).map(it => it.pact);
|
||||
ent._fPrereqPatron = ent.prerequisite.filter(it => it.patron).map(it => it.patron);
|
||||
ent._fprereqSpell = ent.prerequisite
|
||||
.filter(it => it.spell)
|
||||
.map(prereq => {
|
||||
return (prereq.spell || [])
|
||||
@ -111,17 +111,19 @@ class PageFilterOptionalFeatures extends PageFilter {
|
||||
return `Any ${ptChoose}`;
|
||||
});
|
||||
});
|
||||
it._fprereqFeature = it.prerequisite.filter(it => it.feature).map(it => it.feature);
|
||||
it._fPrereqLevel = it.prerequisite.filter(it => it.level).map(PageFilterOptionalFeatures.getLevelFilterItem.bind(PageFilterOptionalFeatures));
|
||||
ent._fprereqFeature = ent.prerequisite.filter(it => it.feature).map(it => it.feature);
|
||||
ent._fPrereqLevel = ent.prerequisite.filter(it => it.level).map(PageFilterOptionalFeatures.getLevelFilterItem.bind(PageFilterOptionalFeatures));
|
||||
}
|
||||
|
||||
it._dFeatureType = it.featureType.map(ft => Parser.optFeatureTypeToFull(ft));
|
||||
it._lFeatureType = it.featureType.join(", ");
|
||||
it.featureType.sort((a, b) => SortUtil.ascSortLower(Parser.optFeatureTypeToFull(a), Parser.optFeatureTypeToFull(b)));
|
||||
ent._dFeatureType = ent.featureType.map(ft => Parser.optFeatureTypeToFull(ft));
|
||||
ent._lFeatureType = ent.featureType.join(", ");
|
||||
ent.featureType.sort((a, b) => SortUtil.ascSortLower(Parser.optFeatureTypeToFull(a), Parser.optFeatureTypeToFull(b)));
|
||||
|
||||
it._fMisc = it.srd ? ["SRD"] : [];
|
||||
if (SourceUtil.isLegacySourceWotc(it.source)) it._fMisc.push("Legacy");
|
||||
if (it.additionalSpells) it._fMisc.push("Grants Additional Spells");
|
||||
ent._fMisc = ent.srd ? ["SRD"] : [];
|
||||
if (SourceUtil.isLegacySourceWotc(ent.source)) ent._fMisc.push("Legacy");
|
||||
if (ent.additionalSpells) ent._fMisc.push("Grants Additional Spells");
|
||||
if (this._hasFluff(ent)) ent._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(ent)) ent._fMisc.push("Has Images");
|
||||
}
|
||||
|
||||
addToFilters (it, isExcluded) {
|
||||
|
||||
@ -142,8 +142,8 @@ class PageFilterRaces extends PageFilter {
|
||||
if (r.srd) r._fMisc.push("SRD");
|
||||
if (r.basicRules) r._fMisc.push("Basic Rules");
|
||||
if (SourceUtil.isLegacySourceWotc(r.source)) r._fMisc.push("Legacy");
|
||||
if (r.hasFluff || r.fluff?.entries) r._fMisc.push("Has Info");
|
||||
if (r.hasFluffImages || r.fluff?.images) r._fMisc.push("Has Images");
|
||||
if (this._hasFluff(r)) r._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(r)) r._fMisc.push("Has Images");
|
||||
if (r.lineage) r._fMisc.push("Lineage");
|
||||
if (this._isReprinted({reprintedAs: r.reprintedAs, tag: "race", prop: "race", page: UrlUtil.PG_RACES})) r._fMisc.push("Reprinted");
|
||||
|
||||
|
||||
@ -60,8 +60,8 @@ class PageFilterRecipes extends PageFilter {
|
||||
it._fTimePreparation = it.time?.preparation ? this._mutateForFilters_getFilterTime(it.time.preparation) : null;
|
||||
it._fTimeCooking = it.time?.cooking ? this._mutateForFilters_getFilterTime(it.time.cooking) : null;
|
||||
it._fDiet = it.diet ? PageFilterRecipes._DIET_TO_FULL[it.diet] || it.diet : null;
|
||||
if (it.hasFluff || it.fluff?.entries) it._fMisc.push("Has Info");
|
||||
if (it.hasFluffImages || it.fluff?.images) it._fMisc.push("Has Images");
|
||||
if (this._hasFluff(it)) it._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(it)) it._fMisc.push("Has Images");
|
||||
}
|
||||
|
||||
static _ONE_DAY_MINS = 24 * 60;
|
||||
|
||||
@ -36,8 +36,8 @@ class PageFilterTrapsHazards extends PageFilter {
|
||||
if (it.srd) it._fMisc.push("SRD");
|
||||
if (it.basicRules) it._fMisc.push("Basic Rules");
|
||||
if (SourceUtil.isLegacySourceWotc(it.source)) it._fMisc.push("Legacy");
|
||||
if (it.hasFluff || it.fluff?.entries) it._fMisc.push("Has Info");
|
||||
if (it.hasFluffImages || it.fluff?.images) it._fMisc.push("Has Images");
|
||||
if (this._hasFluff(it)) it._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(it)) it._fMisc.push("Has Images");
|
||||
}
|
||||
|
||||
addToFilters (it, isExcluded) {
|
||||
|
||||
@ -61,8 +61,8 @@ class PageFilterVehicles extends PageFilter {
|
||||
ent._fMisc = ent.srd ? ["SRD"] : [];
|
||||
if (SourceUtil.isLegacySourceWotc(ent.source)) ent._fMisc.push("Legacy");
|
||||
if (Renderer.vehicle.hasToken(ent)) ent._fMisc.push("Has Token");
|
||||
if (ent.hasFluff || ent.fluff?.entries) ent._fMisc.push("Has Info");
|
||||
if (ent.hasFluffImages || ent.fluff?.images) ent._fMisc.push("Has Images");
|
||||
if (this._hasFluff(ent)) ent._fMisc.push("Has Info");
|
||||
if (this._hasFluffImages(ent)) ent._fMisc.push("Has Images");
|
||||
}
|
||||
|
||||
addToFilters (it, isExcluded) {
|
||||
|
||||
@ -96,6 +96,9 @@ class PageFilter {
|
||||
static getListAliases (ent) {
|
||||
return (ent.alias || []).map(it => `"${it}"`).join(",");
|
||||
}
|
||||
|
||||
static _hasFluff (ent) { return ent.hasFluff || ent.fluff?.entries; }
|
||||
static _hasFluffImages (ent) { return ent.hasFluffImages || ent.fluff?.images; }
|
||||
// endregion
|
||||
}
|
||||
|
||||
|
||||
@ -78,6 +78,9 @@ class OptionalFeaturesPage extends ListPage {
|
||||
|
||||
super({
|
||||
dataSource: DataUtil.optionalfeature.loadJSON.bind(DataUtil.optionalfeature),
|
||||
dataSourceFluff: DataUtil.featFluff.loadJSON.bind(DataUtil.featFluff),
|
||||
|
||||
pFnGetFluff: Renderer.optionalfeature.pGetFluff.bind(Renderer.optionalfeature),
|
||||
|
||||
pageFilter,
|
||||
|
||||
@ -146,21 +149,31 @@ class OptionalFeaturesPage extends ListPage {
|
||||
}
|
||||
|
||||
_renderStats_doBuildStatsTab ({ent}) {
|
||||
this._$wrpTabs.find(`.opt-feature-type`).remove();
|
||||
const $wrpOptFeatType = $(`<div class="opt-feature-type"/>`).prependTo(this._$wrpTabs);
|
||||
this._$wrpTabs.parent().find(`.opt-feature-type`).remove();
|
||||
|
||||
const commonPrefix = ent.featureType.length > 1 ? MiscUtil.findCommonPrefix(ent.featureType.map(fs => Parser.optFeatureTypeToFull(fs)), {isRespectWordBoundaries: true}) : "";
|
||||
if (commonPrefix) $wrpOptFeatType.append(`${commonPrefix.trim()} `);
|
||||
Promise.any([
|
||||
Renderer.utils.pHasFluffText(ent, "optionalfeatureFluff"),
|
||||
Renderer.utils.pHasFluffImages(ent, "optionalfeatureFluff"),
|
||||
])
|
||||
.then(hasAnyFluff => {
|
||||
const $wrpOptFeatType = $(`<div class="opt-feature-type"></div>`);
|
||||
|
||||
ent.featureType.forEach((ft, i) => {
|
||||
if (i > 0) $wrpOptFeatType.append("/");
|
||||
$(`<span class="roller">${Parser.optFeatureTypeToFull(ft).substring(commonPrefix.length)}</span>`)
|
||||
.click(() => {
|
||||
this._filterBox.setFromValues({"Feature Type": {[ft]: 1}});
|
||||
this.handleFilterChange();
|
||||
})
|
||||
.appendTo($wrpOptFeatType);
|
||||
});
|
||||
if (hasAnyFluff) $wrpOptFeatType.addClass("ml-0 mb-1").insertBefore(this._$wrpTabs);
|
||||
else $wrpOptFeatType.prependTo(this._$wrpTabs);
|
||||
|
||||
const commonPrefix = ent.featureType.length > 1 ? MiscUtil.findCommonPrefix(ent.featureType.map(fs => Parser.optFeatureTypeToFull(fs)), {isRespectWordBoundaries: true}) : "";
|
||||
if (commonPrefix) $wrpOptFeatType.append(`${commonPrefix.trim()} `);
|
||||
|
||||
ent.featureType.forEach((ft, i) => {
|
||||
if (i > 0) $wrpOptFeatType.append("/");
|
||||
$(`<span class="roller">${Parser.optFeatureTypeToFull(ft).substring(commonPrefix.length)}</span>`)
|
||||
.click(() => {
|
||||
this._filterBox.setFromValues({"Feature Type": {[ft]: 1}});
|
||||
this.handleFilterChange();
|
||||
})
|
||||
.appendTo($wrpOptFeatType);
|
||||
});
|
||||
});
|
||||
|
||||
this._$pgContent.empty().append(RenderOptionalFeatures.$getRenderedOptionalFeature(ent));
|
||||
}
|
||||
|
||||
@ -3604,6 +3604,9 @@ Parser.ITEM_TYPE_JSON_TO_ABV = {
|
||||
"TAH": "tack and harness",
|
||||
"TG": "trade good",
|
||||
"$": "treasure",
|
||||
"$A": "treasure (art object)",
|
||||
"$C": "treasure (coinage)",
|
||||
"$G": "treasure (gemstone)",
|
||||
"VEH": "vehicle (land)",
|
||||
"SHP": "vehicle (water)",
|
||||
"AIR": "vehicle (air)",
|
||||
|
||||
43
js/render.js
43
js/render.js
@ -6094,6 +6094,14 @@ Renderer.optionalfeature = class {
|
||||
<tr><td colspan="6"><p>${Renderer.get().render(Renderer.optionalfeature.getTypeEntry(ent))}</p></td></tr>
|
||||
`;
|
||||
}
|
||||
|
||||
static pGetFluff (ent) {
|
||||
return Renderer.utils.pGetFluff({
|
||||
entity: ent,
|
||||
fnGetFluffData: DataUtil.optionalfeatureFluff.loadJSON.bind(DataUtil.optionalfeatureFluff),
|
||||
fluffProp: "optionalfeatureFluff",
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Renderer.reward = class {
|
||||
@ -6814,12 +6822,12 @@ Renderer.object = class {
|
||||
`;
|
||||
}
|
||||
|
||||
static hasToken (obj) {
|
||||
return Renderer.generic.hasToken(obj);
|
||||
static hasToken (obj, opts) {
|
||||
return Renderer.generic.hasToken(obj, opts);
|
||||
}
|
||||
|
||||
static getTokenUrl (obj) {
|
||||
return Renderer.generic.getTokenUrl(obj, "objects/tokens");
|
||||
static getTokenUrl (obj, opts) {
|
||||
return Renderer.generic.getTokenUrl(obj, "objects/tokens", opts);
|
||||
}
|
||||
|
||||
static pGetFluff (obj) {
|
||||
@ -7757,12 +7765,12 @@ Renderer.monster = class {
|
||||
return skills;
|
||||
}
|
||||
|
||||
static hasToken (mon) {
|
||||
return Renderer.generic.hasToken(mon);
|
||||
static hasToken (mon, opts) {
|
||||
return Renderer.generic.hasToken(mon, opts);
|
||||
}
|
||||
|
||||
static getTokenUrl (mon) {
|
||||
return Renderer.generic.getTokenUrl(mon, "bestiary/tokens");
|
||||
static getTokenUrl (mon, opts) {
|
||||
return Renderer.generic.getTokenUrl(mon, "bestiary/tokens", opts);
|
||||
}
|
||||
|
||||
static postProcessFluff (mon, fluff) {
|
||||
@ -10007,12 +10015,12 @@ Renderer.vehicle = class {
|
||||
});
|
||||
}
|
||||
|
||||
static hasToken (veh) {
|
||||
return Renderer.generic.hasToken(veh);
|
||||
static hasToken (veh, opts) {
|
||||
return Renderer.generic.hasToken(veh, opts);
|
||||
}
|
||||
|
||||
static getTokenUrl (veh) {
|
||||
return Renderer.generic.getTokenUrl(veh, "vehicles/tokens");
|
||||
static getTokenUrl (veh, opts) {
|
||||
return Renderer.generic.getTokenUrl(veh, "vehicles/tokens", opts);
|
||||
}
|
||||
};
|
||||
|
||||
@ -10938,18 +10946,20 @@ Renderer.generic = class {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
||||
static hasToken (ent) {
|
||||
return ent.tokenUrl // TODO(Future) legacy; remove
|
||||
|| ent.hasToken // An implicit token
|
||||
static hasToken (ent, {isIgnoreImplicit = false} = {}) {
|
||||
const fromEntity = ent.tokenUrl // TODO(Future) legacy; remove
|
||||
|| ent.token // An explicit token
|
||||
|| ent.tokenHref // An explicit token URL (local or external)
|
||||
;
|
||||
if (fromEntity || isIgnoreImplicit) return !!fromEntity;
|
||||
return ent.hasToken; // An implicit token
|
||||
}
|
||||
|
||||
static getTokenUrl (ent, mediaDir) {
|
||||
static getTokenUrl (ent, mediaDir, {isIgnoreImplicit = false} = {}) {
|
||||
if (ent.tokenUrl) return ent.tokenUrl; // TODO(Future) legacy; remove
|
||||
if (ent.token) return Renderer.get().getMediaUrl("img", `${mediaDir}/${Parser.sourceJsonToAbv(ent.token.source)}/${Parser.nameToTokenName(ent.token.name)}.webp`);
|
||||
if (ent.tokenHref) return Renderer.utils.getEntryMediaUrl(ent, "tokenHref", "img");
|
||||
if (isIgnoreImplicit) return null;
|
||||
return Renderer.get().getMediaUrl("img", `${mediaDir}/${Parser.sourceJsonToAbv(ent.source)}/${Parser.nameToTokenName(ent.name)}.webp`);
|
||||
}
|
||||
};
|
||||
@ -12221,6 +12231,7 @@ Renderer.hover = class {
|
||||
case UrlUtil.PG_RACES: return Renderer.race.pGetFluff;
|
||||
case UrlUtil.PG_BACKGROUNDS: return Renderer.background.pGetFluff;
|
||||
case UrlUtil.PG_FEATS: return Renderer.feat.pGetFluff;
|
||||
case UrlUtil.PG_OPT_FEATURES: return Renderer.optionalfeature.pGetFluff;
|
||||
case UrlUtil.PG_LANGUAGES: return Renderer.language.pGetFluff;
|
||||
case UrlUtil.PG_VEHICLES: return Renderer.vehicle.pGetFluff;
|
||||
case UrlUtil.PG_CHAR_CREATION_OPTIONS: return Renderer.charoption.pGetFluff;
|
||||
|
||||
@ -829,6 +829,14 @@ class _DataTypeLoaderFeatFluff extends _DataTypeLoaderSingleSource {
|
||||
_filename = "fluff-feats.json";
|
||||
}
|
||||
|
||||
class _DataTypeLoaderOptionalfeatureFluff extends _DataTypeLoaderSingleSource {
|
||||
static PROPS = ["optionalfeatureFluff"];
|
||||
static PAGE = UrlUtil.PG_OPT_FEATURES;
|
||||
static IS_FLUFF = true;
|
||||
|
||||
_filename = "fluff-optionalfeatures.json";
|
||||
}
|
||||
|
||||
class _DataTypeLoaderItemFluff extends _DataTypeLoaderSingleSource {
|
||||
static PROPS = ["itemFluff"];
|
||||
static PAGE = UrlUtil.PG_ITEMS;
|
||||
@ -1701,6 +1709,7 @@ class DataLoader {
|
||||
// region Fluff
|
||||
_DataTypeLoaderBackgroundFluff.register({fnRegister});
|
||||
_DataTypeLoaderFeatFluff.register({fnRegister});
|
||||
_DataTypeLoaderOptionalfeatureFluff.register({fnRegister});
|
||||
_DataTypeLoaderItemFluff.register({fnRegister});
|
||||
_DataTypeLoaderRaceFluff.register({fnRegister});
|
||||
_DataTypeLoaderLanguageFluff.register({fnRegister});
|
||||
|
||||
@ -77,6 +77,20 @@ PropOrder._ObjectKey = class {
|
||||
this.fnGetOrder = opts.fnGetOrder;
|
||||
this.order = opts.order;
|
||||
}
|
||||
|
||||
static getCopyKey ({fnGetModOrder}) {
|
||||
return new this("_copy", {
|
||||
order: [
|
||||
"name",
|
||||
"source",
|
||||
"_templates",
|
||||
new PropOrder._ObjectKey("_mod", {
|
||||
fnGetOrder: fnGetModOrder,
|
||||
}),
|
||||
"_preserve",
|
||||
],
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
PropOrder._ArrayKey = class {
|
||||
@ -122,17 +136,7 @@ PropOrder._MONSTER = [
|
||||
"summonedByClass",
|
||||
|
||||
"_isCopy",
|
||||
new PropOrder._ObjectKey("_copy", {
|
||||
order: [
|
||||
"name",
|
||||
"source",
|
||||
"_trait",
|
||||
new PropOrder._ObjectKey("_mod", {
|
||||
fnGetOrder: () => PropOrder._MONSTER__COPY_MOD,
|
||||
}),
|
||||
"_preserve",
|
||||
],
|
||||
}),
|
||||
PropOrder._ObjectKey.getCopyKey({fnGetModOrder: () => PropOrder._MONSTER__COPY_MOD}),
|
||||
|
||||
"level",
|
||||
"size",
|
||||
@ -259,7 +263,7 @@ PropOrder._MONSTER = [
|
||||
fnGetOrder: () => PropOrder._MONSTER__COPY_MOD,
|
||||
}),
|
||||
"_preserve",
|
||||
"_template",
|
||||
"_abstract",
|
||||
"_implementations",
|
||||
...PropOrder._MONSTER,
|
||||
],
|
||||
@ -289,17 +293,7 @@ PropOrder._MONSTER_TEMPLATE = [
|
||||
|
||||
"ref",
|
||||
|
||||
new PropOrder._ObjectKey("_copy", {
|
||||
order: [
|
||||
"name",
|
||||
"source",
|
||||
"_trait",
|
||||
new PropOrder._ObjectKey("_mod", {
|
||||
fnGetOrder: () => PropOrder._MONSTER_TEMPLATE__COPY_MOD,
|
||||
}),
|
||||
"_preserve",
|
||||
],
|
||||
}),
|
||||
PropOrder._ObjectKey.getCopyKey({fnGetModOrder: () => PropOrder._MONSTER_TEMPLATE__COPY_MOD}),
|
||||
|
||||
"crMin",
|
||||
"crMax",
|
||||
@ -363,17 +357,7 @@ PropOrder._SPELL = [
|
||||
"additionalSources",
|
||||
"otherSources",
|
||||
|
||||
new PropOrder._ObjectKey("_copy", {
|
||||
order: [
|
||||
"name",
|
||||
"source",
|
||||
"_trait",
|
||||
new PropOrder._ObjectKey("_mod", {
|
||||
fnGetOrder: () => PropOrder._SPELL__COPY_MOD,
|
||||
}),
|
||||
"_preserve",
|
||||
],
|
||||
}),
|
||||
PropOrder._ObjectKey.getCopyKey({fnGetModOrder: () => PropOrder._SPELL__COPY_MOD}),
|
||||
|
||||
"level",
|
||||
"school",
|
||||
@ -416,8 +400,8 @@ PropOrder._SPELL = [
|
||||
|
||||
"affectsCreatureType",
|
||||
|
||||
"miscTags",
|
||||
"areaTags",
|
||||
new PropOrder._ArrayKey("miscTags", {fnSort: SortUtil.ascSortLower}),
|
||||
new PropOrder._ArrayKey("areaTags", {fnSort: SortUtil.ascSortLower}),
|
||||
|
||||
"hasFluff",
|
||||
"hasFluffImages",
|
||||
@ -572,17 +556,7 @@ PropOrder._BACKGROUND = [
|
||||
"additionalSources",
|
||||
"otherSources",
|
||||
|
||||
new PropOrder._ObjectKey("_copy", {
|
||||
order: [
|
||||
"name",
|
||||
"source",
|
||||
"_trait",
|
||||
new PropOrder._ObjectKey("_mod", {
|
||||
fnGetOrder: () => PropOrder._BACKGROUND__COPY_MOD,
|
||||
}),
|
||||
"_preserve",
|
||||
],
|
||||
}),
|
||||
PropOrder._ObjectKey.getCopyKey({fnGetModOrder: () => PropOrder._BACKGROUND__COPY_MOD}),
|
||||
|
||||
"prerequisite",
|
||||
"ability",
|
||||
@ -633,17 +607,7 @@ PropOrder._LEGENDARY_GROUP = [
|
||||
|
||||
"additionalSources",
|
||||
|
||||
new PropOrder._ObjectKey("_copy", {
|
||||
order: [
|
||||
"name",
|
||||
"source",
|
||||
"_trait",
|
||||
new PropOrder._ObjectKey("_mod", {
|
||||
fnGetOrder: () => PropOrder._LEGENDARY_GROUP__COPY_MOD,
|
||||
}),
|
||||
"_preserve",
|
||||
],
|
||||
}),
|
||||
PropOrder._ObjectKey.getCopyKey({fnGetModOrder: () => PropOrder._LEGENDARY_GROUP__COPY_MOD}),
|
||||
|
||||
"lairActions",
|
||||
"regionalEffects",
|
||||
@ -1098,6 +1062,8 @@ PropOrder._FEAT = [
|
||||
"additionalSources",
|
||||
"otherSources",
|
||||
|
||||
PropOrder._ObjectKey.getCopyKey({fnGetModOrder: () => PropOrder._FEAT__COPY_MOD}),
|
||||
|
||||
"category",
|
||||
"prerequisite",
|
||||
|
||||
@ -1136,6 +1102,11 @@ PropOrder._FEAT = [
|
||||
"foundryEffects",
|
||||
"foundryImg",
|
||||
];
|
||||
PropOrder._FEAT__COPY_MOD = [
|
||||
"*",
|
||||
"_",
|
||||
...PropOrder._FEAT,
|
||||
];
|
||||
PropOrder._FOUNDRY_FEAT = [
|
||||
"name",
|
||||
"source",
|
||||
@ -1255,16 +1226,7 @@ PropOrder._ITEM = [
|
||||
"otherSources",
|
||||
"reprintedAs",
|
||||
|
||||
new PropOrder._ObjectKey("_copy", {
|
||||
order: [
|
||||
"name",
|
||||
"source",
|
||||
new PropOrder._ObjectKey("_mod", {
|
||||
fnGetOrder: () => PropOrder._ITEM__COPY_MOD,
|
||||
}),
|
||||
"_preserve",
|
||||
],
|
||||
}),
|
||||
PropOrder._ObjectKey.getCopyKey({fnGetModOrder: () => PropOrder._ITEM__COPY_MOD}),
|
||||
|
||||
"baseItem",
|
||||
|
||||
@ -1408,7 +1370,7 @@ PropOrder._ITEM = [
|
||||
fnGetOrder: obj => Object.keys(obj).sort(SortUtil.ascSortLower),
|
||||
}),
|
||||
|
||||
"miscTags",
|
||||
new PropOrder._ArrayKey("miscTags", {fnSort: SortUtil.ascSortLower}),
|
||||
|
||||
"hasFluff",
|
||||
"hasFluffImages",
|
||||
@ -1512,6 +1474,8 @@ PropOrder._OPTIONALFEATURE = [
|
||||
"basicRules",
|
||||
"otherSources",
|
||||
|
||||
PropOrder._ObjectKey.getCopyKey({fnGetModOrder: () => PropOrder._OPTIONALFEATURE__COPY_MOD}),
|
||||
|
||||
"isClassFeatureVariant",
|
||||
"previousVersion",
|
||||
|
||||
@ -1542,11 +1506,21 @@ PropOrder._OPTIONALFEATURE = [
|
||||
|
||||
"entries",
|
||||
|
||||
"hasFluff",
|
||||
"hasFluffImages",
|
||||
|
||||
"fluff",
|
||||
|
||||
"foundrySystem",
|
||||
"foundryFlags",
|
||||
"foundryEffects",
|
||||
"foundryImg",
|
||||
];
|
||||
PropOrder._OPTIONALFEATURE__COPY_MOD = [
|
||||
"*",
|
||||
"_",
|
||||
...PropOrder._OPTIONALFEATURE,
|
||||
];
|
||||
PropOrder._PSIONIC = [
|
||||
"name",
|
||||
|
||||
@ -1601,16 +1575,7 @@ PropOrder._RACE_SUBRACE = [
|
||||
"otherSources",
|
||||
"reprintedAs",
|
||||
|
||||
new PropOrder._ObjectKey("_copy", {
|
||||
order: [
|
||||
"name",
|
||||
"source",
|
||||
new PropOrder._ObjectKey("_mod", {
|
||||
fnGetOrder: () => PropOrder._RACE__COPY_MOD,
|
||||
}),
|
||||
"_preserve",
|
||||
],
|
||||
}),
|
||||
PropOrder._ObjectKey.getCopyKey({fnGetModOrder: () => PropOrder._RACE__COPY_MOD}),
|
||||
|
||||
"lineage",
|
||||
"creatureTypes",
|
||||
@ -1667,7 +1632,7 @@ PropOrder._RACE_SUBRACE = [
|
||||
fnGetOrder: () => PropOrder._RACE__COPY_MOD,
|
||||
}),
|
||||
"_preserve",
|
||||
"_template",
|
||||
"_abstract",
|
||||
"_implementations",
|
||||
...PropOrder._RACE,
|
||||
],
|
||||
@ -1817,7 +1782,7 @@ PropOrder._RECIPE = [
|
||||
"instructions",
|
||||
"noteCook",
|
||||
|
||||
"miscTags",
|
||||
new PropOrder._ArrayKey("miscTags", {fnSort: SortUtil.ascSortLower}),
|
||||
|
||||
"fluff",
|
||||
|
||||
@ -1874,16 +1839,7 @@ PropOrder._DECK = [
|
||||
"basicRules",
|
||||
"otherSources",
|
||||
|
||||
new PropOrder._ObjectKey("_copy", {
|
||||
order: [
|
||||
"name",
|
||||
"source",
|
||||
new PropOrder._ObjectKey("_mod", {
|
||||
fnGetOrder: () => PropOrder._DECK__COPY_MOD,
|
||||
}),
|
||||
"_preserve",
|
||||
],
|
||||
}),
|
||||
PropOrder._ObjectKey.getCopyKey({fnGetModOrder: () => PropOrder._DECK__COPY_MOD}),
|
||||
|
||||
"cards",
|
||||
"back",
|
||||
@ -1959,6 +1915,7 @@ PropOrder._PROP_TO_LIST = {
|
||||
"makebrewCreatureAction": PropOrder._MAKE_BREW_CREATURE_ACTION,
|
||||
"backgroundFluff": PropOrder._GENERIC_FLUFF,
|
||||
"featFluff": PropOrder._GENERIC_FLUFF,
|
||||
"optionalfeatureFluff": PropOrder._GENERIC_FLUFF,
|
||||
"conditionFluff": PropOrder._GENERIC_FLUFF,
|
||||
"itemFluff": PropOrder._GENERIC_FLUFF,
|
||||
"languageFluff": PropOrder._GENERIC_FLUFF,
|
||||
|
||||
83
js/utils.js
83
js/utils.js
@ -2,7 +2,7 @@
|
||||
|
||||
// in deployment, `IS_DEPLOYED = "<version number>";` should be set below.
|
||||
globalThis.IS_DEPLOYED = undefined;
|
||||
globalThis.VERSION_NUMBER = /* 5ETOOLS_VERSION__OPEN */"1.199.2"/* 5ETOOLS_VERSION__CLOSE */;
|
||||
globalThis.VERSION_NUMBER = /* 5ETOOLS_VERSION__OPEN */"1.199.3"/* 5ETOOLS_VERSION__CLOSE */;
|
||||
globalThis.DEPLOYED_IMG_ROOT = undefined;
|
||||
// for the roll20 script to set
|
||||
globalThis.IS_VTT = false;
|
||||
@ -4079,7 +4079,8 @@ globalThis.DataUtil = {
|
||||
if (it._copy) await DataUtil.generic._pMergeCopy(impl, page, entryList, it, options);
|
||||
|
||||
// Preload templates, if required
|
||||
const templateData = entry._copy?._trait
|
||||
// TODO(Template) allow templates for other entity types
|
||||
const templateData = entry._copy?._templates
|
||||
? (await DataUtil.loadJSON(`${Renderer.get().baseUrl}data/bestiary/template.json`))
|
||||
: null;
|
||||
return DataUtil.generic.copyApplier.getCopy(impl, MiscUtil.copyFast(it), entry, templateData, options);
|
||||
@ -4601,26 +4602,50 @@ globalThis.DataUtil = {
|
||||
if (copyMeta._mod) this._normaliseMods(copyMeta);
|
||||
|
||||
// fetch and apply any external template -- append them to existing copy mods where available
|
||||
let template = null;
|
||||
if (copyMeta._trait) {
|
||||
template = templateData.monsterTemplate.find(t => t.name.toLowerCase() === copyMeta._trait.name.toLowerCase() && t.source.toLowerCase() === copyMeta._trait.source.toLowerCase());
|
||||
if (!template) throw new Error(`${msgPtFailed} Could not find traits to apply with name "${copyMeta._trait.name}" and source "${copyMeta._trait.source}"`);
|
||||
template = MiscUtil.copyFast(template);
|
||||
let templates = null;
|
||||
let templateErrors = [];
|
||||
if (copyMeta._templates?.length) {
|
||||
templates = copyMeta._templates
|
||||
.map(({name: templateName, source: templateSource}) => {
|
||||
templateName = templateName.toLowerCase().trim();
|
||||
templateSource = templateSource.toLowerCase().trim();
|
||||
|
||||
if (template.apply._mod) {
|
||||
this._normaliseMods(template.apply);
|
||||
// TODO(Template) allow templates for other entity types
|
||||
const template = templateData.monsterTemplate
|
||||
.find(({name, source}) => name.toLowerCase().trim() === templateName && source.toLowerCase().trim() === templateSource);
|
||||
|
||||
if (copyMeta._mod) {
|
||||
Object.entries(template.apply._mod).forEach(([k, v]) => {
|
||||
if (copyMeta._mod[k]) copyMeta._mod[k] = copyMeta._mod[k].concat(v);
|
||||
else copyMeta._mod[k] = v;
|
||||
});
|
||||
} else copyMeta._mod = template.apply._mod;
|
||||
}
|
||||
if (!template) {
|
||||
templateErrors.push(`Could not find traits to apply with name "${templateName}" and source "${templateSource}"`);
|
||||
return null;
|
||||
}
|
||||
|
||||
delete copyMeta._trait;
|
||||
return MiscUtil.copyFast(template);
|
||||
})
|
||||
.filter(Boolean);
|
||||
|
||||
templates
|
||||
.forEach(template => {
|
||||
if (!template.apply._mod) return;
|
||||
|
||||
this._normaliseMods(template.apply);
|
||||
|
||||
if (!copyMeta._mod) {
|
||||
copyMeta._mod = template.apply._mod;
|
||||
return;
|
||||
}
|
||||
|
||||
Object.entries(template.apply._mod)
|
||||
.forEach(([k, v]) => {
|
||||
if (copyMeta._mod[k]) copyMeta._mod[k] = copyMeta._mod[k].concat(v);
|
||||
else copyMeta._mod[k] = v;
|
||||
});
|
||||
});
|
||||
|
||||
delete copyMeta._templates;
|
||||
}
|
||||
|
||||
if (templateErrors.length) throw new Error(`${msgPtFailed} ${templateErrors.join("; ")}`);
|
||||
|
||||
const copyToRootProps = new Set(Object.keys(copyTo));
|
||||
|
||||
// copy over required values
|
||||
@ -4633,11 +4658,16 @@ globalThis.DataUtil = {
|
||||
}
|
||||
});
|
||||
|
||||
// apply any root racial properties after doing base copy
|
||||
if (template && template.apply._root) {
|
||||
Object.entries(template.apply._root)
|
||||
.filter(([k, v]) => !copyToRootProps.has(k)) // avoid overwriting any real root properties
|
||||
.forEach(([k, v]) => copyTo[k] = v);
|
||||
// apply any root template properties after doing base copy
|
||||
if (templates?.length) {
|
||||
templates
|
||||
.forEach(template => {
|
||||
if (!template.apply?._root) return;
|
||||
|
||||
Object.entries(template.apply._root)
|
||||
.filter(([k, v]) => !copyToRootProps.has(k)) // avoid overwriting any real root properties
|
||||
.forEach(([k, v]) => copyTo[k] = v);
|
||||
});
|
||||
}
|
||||
|
||||
// apply mods
|
||||
@ -4742,7 +4772,7 @@ globalThis.DataUtil = {
|
||||
|
||||
return parent._versions
|
||||
.map(ver => {
|
||||
if (ver._template && ver._implementations?.length) return DataUtil.generic._getVersions_template({ver});
|
||||
if (ver._abstract && ver._implementations?.length) return DataUtil.generic._getVersions_template({ver});
|
||||
return DataUtil.generic._getVersions_basic({ver});
|
||||
})
|
||||
.flat()
|
||||
@ -4752,7 +4782,7 @@ globalThis.DataUtil = {
|
||||
_getVersions_template ({ver}) {
|
||||
return ver._implementations
|
||||
.map(impl => {
|
||||
let cpyTemplate = MiscUtil.copyFast(ver._template);
|
||||
let cpyTemplate = MiscUtil.copyFast(ver._abstract);
|
||||
const cpyImpl = MiscUtil.copyFast(impl);
|
||||
|
||||
DataUtil.generic._getVersions_mutExpandCopy({ent: cpyTemplate});
|
||||
@ -5517,6 +5547,11 @@ globalThis.DataUtil = {
|
||||
static _FILENAME = "optionalfeatures.json";
|
||||
},
|
||||
|
||||
optionalfeatureFluff: class extends _DataUtilPropConfigSingleSource {
|
||||
static _PAGE = UrlUtil.PG_OPT_FEATURES;
|
||||
static _FILENAME = "fluff-optionalfeatures.json";
|
||||
},
|
||||
|
||||
class: class clazz extends _DataUtilPropConfigCustom {
|
||||
static _PAGE = UrlUtil.PG_CLASSES;
|
||||
|
||||
|
||||
@ -40,6 +40,7 @@ const _FILE_PROP_ORDER = [
|
||||
"foundrySubclassFeature",
|
||||
|
||||
"optionalfeature",
|
||||
"optionalfeatureFluff",
|
||||
|
||||
"background",
|
||||
"backgroundFeature",
|
||||
@ -200,6 +201,7 @@ function getFnListSort (prop) {
|
||||
case "vehicleUpgrade":
|
||||
case "backgroundFluff":
|
||||
case "featFluff":
|
||||
case "optionalfeatureFluff":
|
||||
case "conditionFluff":
|
||||
case "spellFluff":
|
||||
case "itemFluff":
|
||||
|
||||
18
package-lock.json
generated
18
package-lock.json
generated
@ -1,15 +1,15 @@
|
||||
{
|
||||
"name": "5etools",
|
||||
"version": "1.199.2",
|
||||
"version": "1.199.3",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "5etools",
|
||||
"version": "1.199.2",
|
||||
"version": "1.199.3",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"5etools-utils": "^0.10.0",
|
||||
"5etools-utils": "^0.10.5",
|
||||
"ajv": "^8.11.2",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"commander": "^11.0.0",
|
||||
@ -2692,9 +2692,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/5etools-utils": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/5etools-utils/-/5etools-utils-0.10.0.tgz",
|
||||
"integrity": "sha512-5jeG69dou2MSz3vDTsfTMCs9to7Y/5CN01XRfL39ImNMnVcclWeRIH3WXkhfmfJD/Q/VpBMlEjyusZBrNL5NeA==",
|
||||
"version": "0.10.5",
|
||||
"resolved": "https://registry.npmjs.org/5etools-utils/-/5etools-utils-0.10.5.tgz",
|
||||
"integrity": "sha512-RC488yunQi+0DqIEcB+OpTwwDwLOktLOC78A8U6cL3yiEgqDCDIQbvRiZqXvI+ryqCx8s08HiwBu29PUn3rChg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ajv": "^8.12.0",
|
||||
@ -11133,9 +11133,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"5etools-utils": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/5etools-utils/-/5etools-utils-0.10.0.tgz",
|
||||
"integrity": "sha512-5jeG69dou2MSz3vDTsfTMCs9to7Y/5CN01XRfL39ImNMnVcclWeRIH3WXkhfmfJD/Q/VpBMlEjyusZBrNL5NeA==",
|
||||
"version": "0.10.5",
|
||||
"resolved": "https://registry.npmjs.org/5etools-utils/-/5etools-utils-0.10.5.tgz",
|
||||
"integrity": "sha512-RC488yunQi+0DqIEcB+OpTwwDwLOktLOC78A8U6cL3yiEgqDCDIQbvRiZqXvI+ryqCx8s08HiwBu29PUn3rChg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "^8.12.0",
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "5etools",
|
||||
"author": "TheGiddyLimit",
|
||||
"version": "1.199.2",
|
||||
"version": "1.199.3",
|
||||
"license": "MIT",
|
||||
"description": "A site dedicated to making playing games with your friends as easy as possible.",
|
||||
"type": "module",
|
||||
@ -42,7 +42,7 @@
|
||||
"url": "git+https://github.com/5etools-mirror-2/5etools-mirror-2.github.io.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"5etools-utils": "^0.10.0",
|
||||
"5etools-utils": "^0.10.5",
|
||||
"ajv": "^8.11.2",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"commander": "^11.0.0",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user