This commit is contained in:
TheGiddyLimit
2024-06-23 22:13:57 +01:00
parent ed9833eefc
commit e5844f8a3f
279 changed files with 38254 additions and 7675 deletions

View File

@@ -0,0 +1,2 @@
<!--5ETOOLS_SCRIPT_ANCHOR-->
<!--5ETOOLS_AD_ADHESION-->

View File

@@ -0,0 +1 @@
<div class="cancer__wrp-leaderboard cancer__anchor"><div class="cancer__disp-cancer"></div><div class="cancer__wrp-leaderboard-inner"><!--5ETOOLS_AD_LEADERBOARD--></div></div>

View File

@@ -0,0 +1 @@
<div class="cancer__wrp-mobile-1 cancer__anchor"><div class="cancer__disp-cancer"></div><!--5ETOOLS_AD_MOB_PLAYER_1--></div>

View File

@@ -0,0 +1 @@
<div class="cancer__wrp-sidebar-rhs cancer__wrp-sidebar-rhs--scrolling-page cancer__anchor"><div class="cancer__disp-cancer"></div><div class="cancer__sidebar-rhs-inner cancer__sidebar-rhs-inner--top"><!--5ETOOLS_AD_RIGHT_1--></div><div class="cancer__sidebar-rhs-inner cancer__sidebar-rhs-inner--bottom"><!--5ETOOLS_AD_RIGHT_2--></div></div>

View File

@@ -0,0 +1 @@
<div class="cancer__wrp-sidebar-rhs cancer__anchor"><div class="cancer__disp-cancer"></div><div class="cancer__sidebar-rhs-inner cancer__sidebar-rhs-inner--top"><!--5ETOOLS_AD_RIGHT_1--></div><div class="cancer__sidebar-rhs-inner cancer__sidebar-rhs-inner--bottom"><!--5ETOOLS_AD_RIGHT_2--></div></div>

View File

@@ -0,0 +1,45 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adLeaderboard" }}
{{> "navbar" }}
{{> "adRhsScrollingPage" }}
<div class="container view-col-wrapper">
<div class="view-col book-contents view-col--wrp-book-contents" id="listcontainer">
<div class="list contents ve-flex-col">
<!-- populate with JS -->
</div>
</div>
<div class="view-col linked-titles book-view">
<table id="pagecontent" class="w-100 stats stats--book stats--book-large">
<tr><th class="border" colspan="6"></th></tr>
<tr><td colspan="6" class="initial-message book-loading-message">Loading...</td></tr>
<!-- (Placeholder text until page loads) -->
<tr><td colspan="6" class="text-muted">{{advBookPlaceholder}}</td></tr>
<tr><th class="border" colspan="6"></th></tr>
</table>
<div class="bk__overlay-loading">
<div class="h-100 w-100 ve-flex-vh-center"><span class="initial-message">Loading...</span></div>
</div>
<div class="cancer__footer-pad w-100"></div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adLeaderboard" }}
{{> "navbar" }}
{{> "adRhsScrollingPage" }}
<div class="container view-col-wrapper">
<div class="view-col" id="listcontainer">
<div class="lst__form-top">
<input type="search" id="search" autocomplete="off" autocapitalize="off" spellcheck="false" class="search form-control" placeholder="Find {{searchName}}...">
<button class="btn btn-default" id="reset">Reset</button>
</div>
<div id="filtertools" class="input-group input-group--bottom ve-flex no-shrink">
{{#each btnsList}}
{{{this}}}
{{/each}}
<button class="btn btn-default btn-xs w-30p mobile__hidden" disabled></button>
</div>
<div class="list list--stats books">
<!-- populate with JS -->
</div>
<div class="ve-text-center mt-3 no-print">
<button class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
</div>
<hr class="hr-3 mt-4">
<div class="books--alt ve-flex-h-center ve-flex-wrap bks__wrp-bookshelf">
<!-- populate with JS -->
</div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,63 @@
<head>
<!--5ETOOLS_CMP-->
<!--5ETOOLS_ANALYTICS-->
<!--5ETOOLS_ADCODE-->
<meta charset="utf-8">
<meta name="description" content="{{pageDescription}}">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>{{#if pageTitle}}{{pageTitle}} - 5etools{{else}}5etools{{/if}}</title>
<link rel="stylesheet" href="css/bootstrap.css">
{{#if isFontAwesome}} <link rel="stylesheet" href="css/fontawesome.css">
{{/if}}
<link rel="stylesheet" href="css/main.css">
{{#each stylesheets}} <link rel="stylesheet" href="css/{{this}}.css">
{{/each}}
<!-- Favicons -->
<link rel="icon" type="image/svg+xml" href="favicon.svg">
<link rel="icon" type="image/png" sizes="256x256" href="favicon-256x256.png">
<link rel="icon" type="image/png" sizes="144x144" href="favicon-144x144.png">
<link rel="icon" type="image/png" sizes="128x128" href="favicon-128x128.png">
<link rel="icon" type="image/png" sizes="64x64" href="favicon-64x64.png">
<link rel="icon" type="image/png" sizes="48x48" href="favicon-48x48.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
<!-- Chrome Web App Icons -->
<link rel="manifest" href="manifest.webmanifest">
<meta name="application-name" content="5etools">
<meta name="theme-color" content="#006bc4">
<!-- Windows Start Menu tiles -->
<meta name="msapplication-config" content="browserconfig.xml"/>
<meta name="msapplication-TileColor" content="#006bc4">
<!-- Apple Touch Icons -->
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon-180x180.png">
<link rel="apple-touch-icon" sizes="360x360" href="apple-touch-icon-360x360.png">
<link rel="apple-touch-icon" sizes="167x167" href="apple-touch-icon-167x167.png">
<link rel="apple-touch-icon" sizes="152x152" href="apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="120x120" href="apple-touch-icon-120x120.png">
<meta name="apple-mobile-web-app-title" content="5etools">
<!-- macOS Safari Pinned Tab and Touch Bar -->
<link rel="mask-icon" href="safari-pinned-tab.svg" color="#006bc4">
<!-- OpenSearch -->
<link rel="search" href="open-search.xml" title="Search 5etools" type="application/opensearchdescription+xml">
<script type="text/javascript" src="sw-injector.js"></script>
<script type="text/javascript" src="js/styleswitch.js"></script>
{{#if redirectHref}}
<meta http-equiv="refresh" content="0; URL={{redirectHref}}"/>
{{else}}
<script type="text/javascript" src="js/navigation.js"></script>
<script type="text/javascript" src="js/browsercheck.js"></script>
{{/if}}
</head>

View File

@@ -0,0 +1,78 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adLeaderboard" }}
{{> "navbar" }}
{{> "adRhsScrollingPage" }}
<main class="container classes">
<div class="row">
<div class="col-md-3" id="listcontainer">
<div class="night__shadow-big">
<div class="lst__form-top" id="filter-search-group">
<div class="w-100 relative">
<input type="search" id="lst__search" autocomplete="off" autocapitalize="off" spellcheck="false" class="search form-control lst__search lst__search--no-border-h">
<div id="lst__search-glass" class="lst__wrp-search-glass no-events ve-flex-vh-center"><span class="glyphicon glyphicon-search"></span></div>
<div class="lst__wrp-search-visible no-events ve-flex-vh-center"></div>
</div>
<button class="btn btn-default px-2" id="reset"><span class="glyphicon glyphicon-refresh"></span></button>
</div>
<div id="filtertools" class="input-group input-group--bottom ve-flex no-shrink">
<button class="ve-col-8 sort btn btn-default btn-xs" data-sort="name">Name</button>
<button class="sort btn btn-default btn-xs ve-grow" data-sort="source">Source</button>
</div>
<div class="list list--stats classes cls__list"></div>
</div>
<div class="ve-flex-vh-center my-3">
<button class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
</div>
</div>
<div class="col-md-9" id="classtable"></div>
</div>
<hr class="mt-0">
<div class="row ve-flex mobile-md__ve-flex-col">
<div class="col-md-3">
<div class="ve-flex-vh-center ve-text-center wrp-btn-readmode mb-3">
<button class="btn btn-default btn-xs no-print mr-1" id="btn-comparemode" title="A pop-up table which can be used to compare subclass features.">Subclass Comparison</button>
<button class="btn btn-default btn-xs no-print mr-1" id="btn-readmode" title="A pop-up reading mode with a layout and content order matching that of the books.">Book View</button>
<div class=" ve-flex-v-center btn-group">
<button class="btn btn-default btn-xs" id="btn-link-export"><span class="glyphicon glyphicon-magnet"></span></button>
<button class="btn btn-default btn-xs" id="btn-sidebar-settings" title="Settings"><span class="glyphicon glyphicon-cog"></span></button>
</div>
</div>
<div id="statsprof"></div>
<div id="sticky-nav" class="cls-nav"></div>
</div>
<div class="col-md-9">
<div class="cancer__wrp-mobile-1 cancer__anchor"><div class="cancer__disp-cancer"></div><!--5ETOOLS_AD_MOB_PLAYER_1--></div>
<div id="subclasstabs" class="w-100 ve-flex mb-2 cls-tabs__wrp"></div>
<table id="pagecontent" class="w-100 stats shadow-big">
<tr><th class="border" colspan="6"></th></tr>
<tr><td colspan="6" class="initial-message">Loading...</td></tr>
<tr><th class="border" colspan="6"></th></tr>
</table>
</div>
</div>
</main>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,25 @@
<div id="contentwrapper" class="view-col{{#if styleContentWrapperAdditional}} {{styleContentWrapperAdditional}}{{/if}}">
<div class="best-ecgen__visible mb-3" id="wrp-encounterbuild-random-and-adjust"></div>
<div class="best-ecgen__visible mb-4" id="best-ecgen__wrp-save-controls"></div>
{{> "listSublistContainerBestiary" }}
{{> "listStatsTabs" }}
{{> "listRhsWrpToken" }}
{{> "listWrpPagecontent" }}
<div class="ve-text-center mt-2 no-print best-ecgen__hidden">
<button type="button" class="btn btn-success btn-xs" id="btn-encounterbuild">Encounter Builder</button>
<div id="wrp-profbonusdice" class="ve-inline-block">
<button type="button" class="btn btn-default btn-xs" id="profbonusdice" title="See the Dungeon Master&apos;s Guide, p263.">Use Proficiency Dice</button>
</div>
<button type="button" class="btn btn-default btn-xs" id="btn-book">Printer View</button>
<button type="button" class="btn btn-default btn-xs" id="btn-show-table" title="View and Download Creatures in Tabular Format">Table View</button>
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
</div>
<div class="best-ecgen__visible--flex-col best-ecgen__wrp pb-1 px-2" id="wrp-encounterbuild-group-and-difficulty"></div>
</div>

View File

@@ -0,0 +1,13 @@
<div id="contentwrapper" class="view-col{{#if styleContentWrapperAdditional}} {{styleContentWrapperAdditional}}{{/if}}">
{{> "listSublistContainerItems" }}
{{> "listStatsTabs" }}
{{> "listWrpPagecontent" }}
<div class="ve-text-center mt-2 no-print">
<button type="button" class="btn btn-default btn-xs" id="btn-book">Printer View</button>
<button type="button" class="btn btn-default btn-xs" id="btn-show-table" title="View and Download Items in Tabular Format">Table View</button>
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
</div>
</div>

View File

@@ -0,0 +1,13 @@
<div id="contentwrapper" class="view-col{{#if styleContentWrapperAdditional}} {{styleContentWrapperAdditional}}{{/if}}">
{{> "listSublistContainer" }}
{{> "listStatsTabs" }}
{{> "listWrpPagecontent" }}
<div class="ve-text-center mt-2 no-print">
<button type="button" class="btn btn-default btn-xs" id="btn-book">Book View</button>
<button type="button" class="btn btn-default btn-xs" id="btn-show-table" title="View and Download Psionics in Tabular Format">Table View</button>
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
</div>
</div>

View File

@@ -0,0 +1,12 @@
<div id="contentwrapper" class="view-col{{#if styleContentWrapperAdditional}} {{styleContentWrapperAdditional}}{{/if}}">
{{> "listSublistContainer" }}
{{> "listStatsTabs" }}
{{> "listWrpPagecontent" }}
<div class="split-v-center mt-2 no-print">
<div class="ve-small ve-muted italic mr-2" title="We gratefully accept any and all corrections in our Discord, a link to which can be found on the homepage.">Please note that allergen and other dietary information may be incomplete and/or inaccurate.</div>
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
</div>
</div>

View File

@@ -0,0 +1,14 @@
<div id="contentwrapper" class="view-col{{#if styleContentWrapperAdditional}} {{styleContentWrapperAdditional}}{{/if}}">
{{> "listSublistContainer" }}
{{> "listStatsTabs" }}
{{> "listWrpPagecontent" }}
<div class="ve-text-center mt-2 no-print">
<button type="button" class="btn btn-default btn-xs" id="btn-book">Book View</button>
<button type="button" class="btn btn-default btn-xs" id="btn-show-table" title="View and Download Spells in Tabular Format">Table View</button>
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
<button type="button" class="btn btn-default btn-xs" id="btn-list-settings" title="Settings"><span class="glyphicon glyphicon-cog"></span></button>
</div>
</div>

View File

@@ -0,0 +1,11 @@
<div id="contentwrapper" class="view-col{{#if styleContentWrapperAdditional}} {{styleContentWrapperAdditional}}{{/if}}">
{{> "listSublistContainer" }}
{{> "listStatsTabs" }}
{{#if isWrpToken}}
{{> "listRhsWrpToken" }}{{/if}}
{{> "listWrpPagecontent" }}
{{> "listRhsWrpFooterControls" }}
</div>

View File

@@ -0,0 +1,8 @@
<div class="lst__form-top" id="filter-search-group">
<div class="w-100 relative">
<input type="search" id="lst__search" autocomplete="off" autocapitalize="off" spellcheck="false" class="search form-control lst__search lst__search--no-border-h">
<div id="lst__search-glass" class="lst__wrp-search-glass no-events ve-flex-vh-center"><span class="glyphicon glyphicon-search"></span></div>
<div class="lst__wrp-search-visible no-events ve-flex-vh-center"></div>
</div>
<button type="button" class="btn btn-default" id="reset">Reset</button>
</div>

View File

@@ -0,0 +1,5 @@
<div id="filtertools" class="input-group input-group--bottom ve-flex no-shrink">
{{#each btnsList}}
{{{this}}}
{{/each}}
</div>

View File

@@ -0,0 +1 @@
<div id="list" class="list list--stats"></div>

View File

@@ -0,0 +1,39 @@
<div class="view-col itm__wrp-lists" id="listcontainer">
<div class="ve-flex-col min-h-0 w-100 itm__wrp-list itm__wrp-list--empty itm__wrp-list--mundane">
<div class="lst__form-top" id="filter-search-group">
<div class="w-100 relative">
<input type="search" id="lst__search" autocomplete="off" autocapitalize="off" spellcheck="false" class="search form-control lst__search lst__search--no-border-h">
<div id="lst__search-glass" class="lst__wrp-search-glass no-events ve-flex-vh-center"><span class="glyphicon glyphicon-search"></span></div>
<div class="lst__wrp-search-visible no-events ve-flex-vh-center"></div>
</div>
<button type="button" class="btn btn-default" id="reset">Reset</button>
</div>
<div id="filtertools-mundane" class="ele-mundane input-group input-group--bottom ve-flex no-shrink">
<button type="button" class="ve-col-3-5 sort btn btn-default btn-xs" data-sort="name" data-sortby="asc">Name</button>
<button type="button" class="ve-col-4-5 sort btn btn-default btn-xs" data-sort="type" data-sortby="asc">Type</button>
<button type="button" class="ve-col-1-5 sort btn btn-default btn-xs" data-sort="cost" data-sortby="asc">Cost</button>
<button type="button" class="ve-col-1-5 sort btn btn-default btn-xs" data-sort="weight" data-sortby="asc">Weight</button>
<button type="button" class="sort btn btn-default btn-xs ve-grow" data-sort="source" data-sortby="asc">Source</button>
</div>
<div class="list list--stats mundane ele-mundane"></div>
<h3 class="ele-mundane"><span class="side-label side-label--mundane clickable"></span></h3>
</div>
<div class="ve-flex-col min-h-0 w-100 itm__wrp-list itm__wrp-list--empty itm__wrp-list--magic">
<div class="no-shrink itm__list-divider ele-mundane-and-magic"></div>
<div id="filtertools-magic" class="ele-magic input-group input-group--bottom ve-flex no-shrink">
<button type="button" class="fullborder ve-col-3-5 sort btn btn-default btn-xs" data-sort="name" data-sortby="asc">Name</button>
<button type="button" class="fullborder ve-col-4 sort btn btn-default btn-xs" data-sort="type" data-sortby="asc">Type</button>
<button type="button" class="fullborder ve-col-1-5 sort btn btn-default btn-xs" data-sort="weight" data-sortby="asc">Weight</button>
<button type="button" class="ve-col-0-6 sort btn btn-default btn-xs" data-sort="attunement" title="Can Be Attuned">A.</button>
<button type="button" class="fullborder ve-col-1-4 sort btn btn-default btn-xs" data-sort="rarity" data-sortby="asc">Rarity</button>
<button type="button" class="fullborder sort btn btn-default btn-xs ve-grow" data-sort="source" data-sortby="asc">Source</button>
</div>
<div class="list list--stats magic ele-magic"></div>
<h3 class="ele-magic"><span class="side-label side-label--magic clickable"></span></h3>
</div>
</div>

View File

@@ -0,0 +1,7 @@
<div class="view-col{{#if styleListContainerAdditional}} {{styleListContainerAdditional}}{{/if}}" id="listcontainer">
{{> "listFilterSearchGroup" }}
{{> "listFiltertools" }}
{{> "listList" }}
</div>

View File

@@ -0,0 +1,6 @@
<div class="ve-text-center mt-2 no-print">
{{#if isPrinterView}}
<button type="button" class="btn btn-default btn-xs" id="btn-book">Printer View</button>
{{/if}}
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
</div>

View File

@@ -0,0 +1 @@
<div id="float-token" class="relative"></div>

View File

@@ -0,0 +1,3 @@
<div class="wrp-stat-tab" id="stat-tabs">
<div id="tabs-right"></div>
</div>

View File

@@ -0,0 +1,10 @@
<div id="sublistcontainer" class="sublist sublist--resizable no-print">
{{> "listSublistsort" }}
{{> "listSublist" }}
<div class="row best-ecgen__hidden ve-small">
<span class="ve-col-6 text-right pr-2">Total:</span>
<span class="ve-col-6 no-wrap pl-0" id="totalcr"></span>
</div>
</div>

View File

@@ -0,0 +1,12 @@
<div id="sublistcontainer" class="sublist sublist--resizable no-print">
{{> "listSublistsort" }}
{{> "listSublist" }}
<div class="row ve-small ve-flex-v-center">
<span class="ve-col-6 text-right pr-2">Total:</span>
<span class="ve-col-2 ve-text-center no-wrap" id="totalweight"></span>
<span class="ve-col-2 ve-text-center no-wrap clickable" id="totalvalue"></span>
<span class="ve-col-2 ve-text-center no-wrap pr-0" id="totalitems"></span>
</div>
</div>

View File

@@ -0,0 +1,5 @@
<div id="sublistcontainer" class="sublist sublist--resizable no-print">
{{> "listSublistsort" }}
{{> "listSublist" }}
</div>

View File

@@ -0,0 +1 @@
<div id="sublist" class="list"></div>

View File

@@ -0,0 +1,5 @@
<div id="sublistsort" class="btn-group sublist__wrp-cols">
{{#each btnsSublist}}
{{{this}}}
{{/each}}
</div>

View File

@@ -0,0 +1,7 @@
<div id="wrp-pagecontent" class="wrp-stats-table{{#if isStyleBook}} wrp-stats-table--book{{/if}}">
<table id="pagecontent" class="w-100 stats{{#if isStyleBook}} stats--book{{/if}}{{#if stylePageContentAdditional}} {{stylePageContentAdditional}}{{/if}}"{{#if onscrollPageContent}} onscroll="{{onscrollPageContent}}"{{/if}}>
<tr><th class="border" colspan="6"></th></tr>
<tr><td colspan="6" class="initial-message">Select an entry from the list to view it here</td></tr>
<tr><th class="border" colspan="6"></th></tr>
</table>
</div>

View File

@@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adRhs" }}
<div class="viewport-wrapper">
{{> "adLeaderboard" }}
{{> "navbar" }}
<div class="view-col-group--cancer h-100 mh-0">
<div class="container view-col-wrapper view-col-wrapper--cancer">
{{> (lookup . "identPartialListListcontainer") }}
{{> "adMobile1" }}
{{> (lookup . "identPartialListContentwrapper") }}
</div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adLeaderboard" }}
{{> "navbar" }}
{{> "adRhsScrollingPage" }}
<main class="container">
<div id="manager" class="flex-col"><div class="w-100 ve-flex-vh-center"><i class="dnd-font ve-muted">Loading...</i></div></div>
</main>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1 @@
<div class="overlay-noise"></div>

View File

@@ -0,0 +1,10 @@
<header class="hidden-xs hidden-sm page__header">
<div class="container ve-flex-v-baseline">
<h1 class="page__title no-wrap my-0{{#if navbarPageTitleStyleAdditional}} {{navbarPageTitleStyleAdditional}}{{/if}}" id="page__title">{{#if navbarTitleHtml}}{{{navbarTitleHtml}}}{{else}}{{navbarTitle}}{{/if}}</h1>
<p class="page__subtitle no-wrap my-0" id="page__subtitle">{{navbarDescription}}</p>
</div>
</header>
<nav class="container page__nav" id="navigation">
<ul class="nav nav-pills page__nav-inner" id="navbar"></ul>
</nav>

View File

@@ -0,0 +1,43 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adLeaderboard" }}
{{> "navbar" }}
{{> "adRhsScrollingPage" }}
<main class="container">
<div class="px-4 mt-4">
<p>
This page allows you to create configurations which &quot;blocklist&quot; site content, hiding it from list pages.
This can be used, for example, in conjunction with homebrew content, to create a campaign JSON file containing additions to the base game,
as well as the removal of extraneous content.
</p>
<p class="mb-0"><i class="text-muted">
With great power comes great responsibility. If you are a DM intending to use this system to remove parts of the game you
consider broken; inconvenient; or otherwise in need of adjustment, please first consider the needs and expectations of your players,
as well as the extensive playtesting and design iteration backing 5th Edition.
If something is in the game, it is probably there for a reason.
</i></p>
</div>
<hr>
<div class="ve-flex-col" id="blocklist-content">
<div class="py-2 ve-flex-vh-center initial-message">Loading...</div>
</div>
</main>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adLeaderboard" }}
{{> "navbar" }}
{{> "adRhsScrollingPage" }}
<main class="container night__shadow-big mt-3" id="pagecontent"><div class="ve-flex-vh-center dnd-font mt-3"><i>Loading...</i></div></main>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,66 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
<div class="viewport-wrapper">
<div class="sidemenu__toggle">
<div class="sidemenu__hotzone"></div>
<div class="sidemenu__burger"></div>
<div class="sidemenu__burger"></div>
<div class="sidemenu__burger"></div>
<div class="sidemenu"></div>
</div>
{{> "adLeaderboard" }}
{{> "navbar" }}
<div class="view-col-wrapper">
<div class="view-col">
<h3 class="conv__head">Input</h3>
<pre id="converter_input" class="inputArea ace_editor"></pre>
<div class="split-v-center">
<div id="wrp-footer-lhs" class="ve-flex-v-center"></div>
<div class="ve-flex-v-center btn-group">
<button id="parsestatblock" class="btn btn-sm btn-default">Parse</button>
<button id="parsestatblockadd" class="btn btn-sm btn-default">Parse and Add</button>
</div>
</div>
</div>
<div class="view-col">
<h3 class="conv__head">Output</h3>
<pre id="converter_output" class="outputArea ace_editor"></pre>
<div class="split-v-center conv__out_control__wrp">
<button id="editable" class="btn btn-sm btn-default">Enable Editing</button>
<div class="ve-flex-v-center">
<button id="preview" class="btn btn-sm btn-default mr-2">Preview</button>
<button id="save_local" class="btn btn-sm btn-default hidden mr-2">Save to Homebrew</button>
<div class="btn-group ve-flex-vh-center">
<button id="btn-output-copy" class="btn btn-sm btn-default">Copy</button>
<button id="btn-output-download" class="btn btn-sm btn-default">Download</button>
</div>
</div>
</div>
<div class="code mt-2 p-2 ve-flex-col ve-hidden conv__disp-message conv__disp-message--warning" id="lastWarnings"></div>
<div class="code mt-2 p-2 ve-flex-col ve-hidden conv__disp-message conv__disp-message--error" id="lastError"></div>
</div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,257 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adLeaderboard" }}
{{> "navbar" }}
{{> "adRhsScrollingPage" }}
<main class="container">
<form id="crcalc" autocomplete="off">
<div class="row">
<div class="col-sm-6">
<div id="croutput">Waiting for calculation...</div>
<button class="btn btn-sm btn-danger crc__reset mt-3" id="crcalc_reset" type="button">Reset</button>
<h4>Instructions</h4>
<ol>
<li>Enter expected CR of the creature.</li>
<li>Fill in the HP, AC, and other defensive attributes of the creature.</li>
<li>Fill in offensives attributes of the creature. DPR is averaged over three rounds!</li>
<li>Add any special Monster Features of creature.</li>
</ol>
<p>
<small>Be sure to read the <em>Dungeon Master's Guide</em> <a href="book.html#dmg,9,creating%20a%20monster,0">section on monster creation</a>, pages 273
through 283. You can click on the table to the right to fill in values for a given and adjust to
taste. You can hover over the individual labels for a short description of how each attribute
contributes to a monster's CR. You can also hover over each feature description to see how that
feature affects the calculations.
</small>
</p>
<hr>
<div class="crc__row">
<label for="expectedcr" class="ui-tip__parent" style="font-size: 1em;">
Expected CR:
<span class="explanation ui-tip__child">
CR calculation begins by determining what you want the final CR of the monster to be.
</span>
</label>
<span class="ve-flex-v-center">
<input type="text" id="expectedcr" value="0" size="2" class="form-control form-control--minimal input-xs">
</span>
</div>
</div>
<div class="col-sm-6 ve-text-center">
<h4>Monster Statistics by Challenge Rating</h4>
<table id="msbcr">
<tr>
<th>CR</th>
<th>XP</th>
<th>Prof.<br>Bonus</th>
<th>Armor<br>Class</th>
<th>Hit<br>Points</th>
<th>Attack<br>Bonus</th>
<th>Damage/<br>Round</th>
<th>Save<br>DC</th>
</tr>
</table>
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-6">
<h4>Defensive</h4>
<div class="crc__row">
<label for="hp" class="ui-tip__parent">
Hit Points:
<span class="explanation ui-tip__child">
A creature's hit points determine its defensive CR before it is adjusted by its AC.
</span>
</label>
<input type="number" id="hp" placeholder="Average HP" value="1" min="0" max="850" class="form-control form-control--minimal input-xs">
</div>
<div class="crc__row">
<label for="ac" class="ui-tip__parent">
Armor Class:
<span class="explanation ui-tip__child">
A creature's AC adjusts its defensive CR.
</span>
</label>
<input type="number" id="ac" placeholder="AC" value="13" min="1" max="40" class="form-control form-control--minimal input-xs">
</div>
</div>
<div class="col-sm-6">
<h4>Offensive</h4>
<div class="crc__row">
<label for="dpr" class="ui-tip__parent">
Damage Per Round:
<span class="explanation ui-tip__child">
A creature's damage per round (DPR) determines its offensive CR, which is offset by its attack bonus or save DC. DPR is determined by averaging its maximum damage output (taking the average of dice rolls, ignoring critics and accuracy) over three rounds. Areas of effect are treated as though they hit two creatures, which fail any involved saving throws.
</span>
</label>
<input type="number" id="dpr" placeholder="Average DPR" value="1" min="0" max="320" class="form-control form-control--minimal input-xs">
</div>
<div class="crc__row">
<label for="attackbonus" class="ui-tip__parent">
Attack Bonus/Save DC:
<span class="explanation ui-tip__child">
A creature's attack bonus or save DC adjusts its offensive CR.
</span>
</label>
<input type="number" id="attackbonus" placeholder="Attack Bonus" value="3" min="-5" max="19" class="form-control form-control--minimal input-xs">
</div>
<div class="crc__row">
<label for="saveinstead" class="ui-tip__parent">
Use Saves?
<span class="explanation ui-tip__child">
If a creature's damage output is more dependent on save-based abilities, its save DC is used for adjusting its offensive CR instead of its attack bonus.
</span>
</label>
<input type="checkbox" id="saveinstead" value="0">
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-6">
<div class="crc__row">
<label for="size" class="ui-tip__parent">
Size:
<span class="explanation ui-tip__child">
A creature's size determines the size of its individual hit dice.
</span>
</label>
<span class="ve-flex-v-center">
<select id="size" class="form-control input-xs">
<option value="Tiny">Tiny</option>
<option value="Small">Small</option>
<option value="Medium" selected>Medium</option>
<option value="Large">Large</option>
<option value="Huge">Huge</option>
<option value="Gargantuan">Gargantuan</option>
</select>
</span>
</div>
<div class="crc__row">
<label for="hd" class="ui-tip__parent">
Hit Dice:
<span class="explanation ui-tip__child">
Unlike player characters, the number of hit dice an NPC gets is completely arbitrary. Adjust this amount to taste.
</span>
</label>
<div class="ve-flex-v-center">
<input type="number" id="hd" value="1" min="1" max="999" class="form-control form-control--minimal input-xs">
<span id="hdval">d8</span>
</div>
</div>
<div class="crc__row">
<label for="con" class="ui-tip__parent">
Constitution:
<span class="explanation ui-tip__child">
A creature's HP is increases by its Constitution modifier for each hit die it has.
</span>
</label>
<input type="number" id="con" value="10" min="1" max="30" class="form-control form-control--minimal input-xs">
</div>
</div>
<div class="col-sm-6">
<div class="crc__row">
<label for="vulnerabilities" class="ui-tip__parent">
Vulnerabilities:
<span class="explanation ui-tip__child">
If a creature is vulnerable to common damage types (especially bludgeoning, piercing, and slashing damage), its effective hit points are halved.
</span>
</label>
<input type="checkbox" id="vulnerabilities" class="form-control form-control--minimal input-xs">
</div>
<div class="crc__row">
<label for="resistances" class="ui-tip__parent">
Resistances/Immunities:
<span class="explanation ui-tip__child">
A monster's HP is multiplied based on the resistances and immunities has to common damage types (non-magical bludgeoning, piercing, and slashing chief among them).
</span>
</label>
<span class="ve-flex-v-center">
<select id="resistances" class="form-control input-xs">
<option value="0" selected>None</option>
<option value="res">Resistances</option>
<option value="imm">Immunities</option>
</select>
</span>
</div>
<div class="crc__row">
<label for="flying" class="ui-tip__parent">
Flies and can deal damage at range (CR 0-9 only):
<span class="explanation ui-tip__child">
A monster's effective AC is increased by 2 if it can fly and deal damage at range, though only if its expected challenge rating is 10 or lower.
</span>
</label>
<input type="checkbox" id="flying">
</div>
<div class="crc__row">
<label for="saveprofs" class="ui-tip__parent">
Save Proficiencies:
<span class="explanation ui-tip__child">
Increase a creature's effective AC by 2 if it has 3 or 4 saving throw proficiencies, or by 4 if it has 5 or 6.
</span>
</label>
<span class="ve-flex-v-center">
<select id="saveprofs" class="form-control input-xs">
<option value="0" selected>0-2</option>
<option value="2">3-4</option>
<option value="4">5-6</option>
</select>
</span>
</div>
</div>
</div>
</form>
<hr>
<div class="row">
<div class="col-sm-12" id="monsterfeatures">
<h4>Monster Features</h4>
<div class="crc__hdr_mon_features ve-flex-v-center">
<div class="ve-col-1"></div>
<div class="ve-col-2">Name</div>
<div class="ve-col-2">Example Monster</div>
<div class="ve-col-7">Feature Description</div>
</div>
<div class="crc__wrp_mon_features">
<!-- populate with JS -->
</div>
<p>
<small><em>Note: Not all monster features are covered here. The DMG has specific instructions on how to
manage other features.</em></small>
</p>
</div>
</div>
</main>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
<div class="viewport-wrapper">
{{> "navbar" }}
<div class="dm-screen min-h-0">
<div class="sidemenu__toggle">
<div class="sidemenu__hotzone"></div>
<div class="sidemenu__burger"></div>
<div class="sidemenu__burger"></div>
<div class="sidemenu__burger"></div>
<div class="sidemenu"></div>
</div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,191 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "navbar" }}
<div class="container">
<!--GITHUB_DISCLAIMER-->
<!-- <div class="alert alert-warning">-->
<!-- <p><strong>Discord update:</strong> A recent bot-hijack resulted in many accounts being banned from our Discord server, along with a general server reset. Besides bans, no user accounts were affected, and the server has largely been restored to its former state. <a class="alert-link" href="https://discord.gg/5etools" target="_blank" rel="noopener noreferrer">You can rejoin here.</a></p>-->
<!-- </div>-->
</div>
{{> "adRhsScrollingPage" }}
<div class="home__stripe">
<div class="home__split relative">
<div class="home__stripe-header text-right home__h-player"><div class="w-100 text-left mobile__text-center">Players</div></div>
<div class="ve-flex ve-flex-wrap relative home__split-spaced home__split-spaced--gutter home__split-spaced--no-header home__wrp-buttons">
<a class="home__btn-page btn btn-default mr-3 home__btn-player" href="races.html">
<div class="fal fa-users home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Races</h4>
</a>
<a class="home__btn-page btn btn-default mr-3 home__btn-player" href="classes.html" title="Quickly browse the official classes, and their associated subclasses.
Unearthed Arcana content can be accessed by cycling the &quot;All Sources&quot; button.">
<div class="fal fa-hat-wizard home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Classes</h4>
</a>
<a class="home__btn-page btn btn-default mr-3 home__btn-player" href="feats.html">
<div class="fal fa-award home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Feats</h4>
</a>
<a class="home__btn-page btn btn-default home__btn-player" href="optionalfeatures.html" title="A searchable, filterable list of feature choices, including Eldritch Invocations for the Warlock Class, and Maneuvers for the Fighter's Battlemaster subclass.">
<div class="fal fa-drafting-compass home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Options<br>&amp; Features</h4>
</a>
<!-- mobile only -->
<a class="home__btn-page btn btn-default home__narrow-visible home__btn-player" href="backgrounds.html">
<div class="fal fa-portrait home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Backgrounds</h4>
</a>
<a class="home__btn-page btn btn-default home__narrow-visible home__btn-player" href="items.html">
<div class="fal fa-helmet-battle home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Items</h4>
</a>
<a class="home__btn-page btn btn-default home__narrow-visible home__btn-player" href="spells.html">
<div class="fal fa-book-spells home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Spells</h4>
</a>
<a class="home__btn-page btn btn-default home__narrow-visible home__btn-player" href="statgen.html">
<div class="fal fa-tally home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Stat<br>Generator</h4>
</a>
</div>
<div class="ve-flex ve-flex-wrap home__wrp-buttons home__narrow-hidden">
<a class="home__btn-page btn btn-default mr-3 home__btn-player" href="backgrounds.html">
<div class="fal fa-portrait home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Backgrounds</h4>
</a>
<a class="home__btn-page btn btn-default mr-3 home__btn-player" href="items.html">
<div class="fal fa-helmet-battle home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Items</h4>
</a>
<a class="home__btn-page btn btn-default mr-3 home__btn-player" href="spells.html">
<div class="fal fa-book-spells home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Spells</h4>
</a>
<a class="home__btn-page btn btn-default home__btn-player" href="statgen.html">
<div class="fal fa-tally home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Stat<br>Generator</h4>
</a>
</div>
</div>
<div class="my-4 home__mobile-hidden home__narrow-hidden"></div>
<div class="my-4 home__mobile-hidden home__narrow-visible"></div>
<div class="my-4 home__mobile-hidden"></div>
<div class="home__split">
<div class="ve-flex ve-flex-wrap relative home__split-spaced home__split-spaced--gutter home__wrp-buttons">
<div class="home__stripe-header home__h-rule"><div class="w-100 text-left mobile__text-center">Rules</div></div>
<a class="home__btn-page btn btn-default mr-3 home__btn-rule" href="adventures.html" title="All the official adventures published by Wizards of the Coast.">
<div class="fal fa-dungeon home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Adventures</h4>
</a>
<a class="home__btn-page btn btn-default mr-3 home__btn-rule" href="books.html" title="All the official sources published by Wizards of the Coast.">
<div class="fal fa-books home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Books</h4>
</a>
<a class="home__btn-page btn btn-default mr-3 home__btn-rule" href="quickreference.html" title="A searchable selection of commonly used rules and tables.">
<div class="fal fa-info-square home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Quick<br>Reference</h4>
</a>
<a class="home__btn-page btn btn-default home__btn-rule" href="conditionsdiseases.html" title="A searchable, filterable list of the conditions found in the Player's Handbook, and various diseases found in the Dungeon Master's Guide and beyond.">
<div class="fal fa-skull-crossbones home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Conditions</h4>
</a>
</div>
<div class="my-4 home__mobile-visible"></div>
<div class="ve-flex ve-flex-wrap relative home__wrp-buttons">
<div class="home__stripe-header home__h-dm"><div class="w-100 text-left mobile__text-center">Dungeon Masters</div></div>
<a class="home__btn-page btn btn-default mr-3 home__btn-dm" href="bestiary.html" title="A searchable, filterable list of the more than 1,000 stat blocks in D&amp;D 5e. An encounter builder is included, and creature Challenge Rating can be scaled according to the &quot;Creating Quick Monster Stats&quot; table in the Dungeon Master's Guide.">
<div class="fal fa-dragon home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Bestiary</h4>
</a>
<a class="home__btn-page btn btn-default mr-3 home__btn-dm" href="dmscreen.html" title="A fully-customizable Dungeon Master's screen, featuring an initiative tracker; a unit converter, embedded images, videos, and sites; and the majority of 5etools' content.">
<div class="fal fa-map home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">DM Screen</h4>
</a>
<a class="home__btn-page btn btn-default mr-3 home__btn-dm" href="lootgen.html" title="A random loot generator for both individual and hoards of treasure.">
<div class="fal fa-treasure-chest home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">Loot<br>Generator</h4>
</a>
<a class="home__btn-page btn btn-default home__btn-dm" href="crcalculator.html" title="A verbose, in-depth Challenge Rating calculator, for determining the CR of homebrew creatures.">
<div class="fal fa-abacus home__icn-page"></div>
<h4 class="ve-text-center home__lbl-page">CR<br>Calculator</h4>
</a>
</div>
</div>
<div class="my-4"></div>
<hr class="no-shrink w-100 my-0">
</div>
<main class="container">
{{> "adLeaderboard" }}
<div class="w-100">
<div class="mb-2" id="wrp-patreon"></div>
<h3>Use Discord?</h3>
<p>Join the <a href="https://discord.gg/5etools" target="_blank" rel="noopener noreferrer">fan server</a> for announcements, updates, and feature voting.</p>
<h3>Use <a href="https://foundryvtt.com/" rel="noopener">Foundry</a>?</h3>
<p>No? <span class="help" title="Please note that Foundry Gaming, LLC. and The Norr Group Ltd. are in no way affiliated, and that Foundry Gaming, LLC. does not condone the use of their software in violation of your local laws.">Well, you should!</span> Foundry is a modernized, better-than replacement for Roll20, which prioritizes modding support. It is the 5etools platform of choice for VTT integrations.</p>
<p>To install the <a href="plutonium.html">Plutonium</a> module, and start using all of 5etools' content in your game, paste the manifest URL<sup class="ve-small">[<a title="Plutonium manifest URL for most recent supported Foundry version" href="https://raw.githubusercontent.com/TheGiddyLimit/plutonium-next/master/module.json" target="_blank" rel="noopener noreferrer">current</a>/<a title="Plutonium manifest URL for Foundry v11" href="https://raw.githubusercontent.com/TheGiddyLimit/plutonium-next/master/module-foundry11.json" target="_blank" rel="noopener noreferrer">v11</a>/<a title="Plutonium manifest URL for Foundry v10" href="https://raw.githubusercontent.com/TheGiddyLimit/plutonium-next/master/module-foundry10.json" target="_blank" rel="noopener noreferrer">v10</a>]</sup> into your Foundry server's module installer. See the <a href="plutonium.html">Plutonium Features</a> page for an overview of the functionality the module provides.</p>
<p>You can also install the <a href="plutonium.html#rivet-browser-extension">Rivet</a> browser extension (<a rel="noopener noreferrer" href="https://chrome.google.com/webstore/detail/rivet/igmilfmbmkmpkjjgoabaagaoohhhbjde">Chrome</a>/<a rel="noopener noreferrer" href="https://addons.mozilla.org/en-GB/firefox/addon/rivet/">Firefox</a>) to import content from the site with a single click.</p>
<h3>Use Roll20?</h3>
<p>Install <a href="https://ssstormy.github.io/roll20-enhancement-suite/" rel="noopener noreferrer">
Roll20 Enhancement Suite</a> and Tampermonkey (<a
href="https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo" rel="noopener noreferrer">Chrome</a>/<a
href="https://addons.mozilla.org/firefox/addon/tampermonkey/" rel="noopener noreferrer">Firefox</a>), and get the betteR20 script using
this <a href="https://github.com/TheGiddyLimit/betterR20/raw/development/dist/betteR20-5etools.user.js" id="betteR20_link" rel="noopener noreferrer">link</a>.</p>
<p>Check the <a href="https://wiki.tercept.net/en/betteR20" rel="noopener noreferrer">wiki</a> for an installation guide, and for information on how to use the script.</p>
<h3>FAQ</h3>
<p><b>Is there a wiki?</b> <a href="https://wiki.tercept.net/" rel="noopener noreferrer">Here.</a> Contributions are welcome.</p>
<p><b>Is it free?</b> Yes! You can even <a href="https://github.com/5etools-mirror-2/5etools-mirror-2.github.io/releases/latest" rel="noopener noreferrer">download the source code</a>. See the <code>README</code> or the <a href="https://wiki.tercept.net/en/5eTools/InstallGuide" rel="noopener noreferrer">wiki</a> for help.</p>
<p><b>Can I contribute?</b> The source is available on <a href="https://github.com/5etools-mirror-2/5etools-mirror-2.github.io" rel="noopener noreferrer">GitHub</a>. See the <a href="https://github.com/5etools-mirror-2/5etools-mirror-2.github.io/blob/main/CONTRIBUTING.md" rel="noopener noreferrer">Contributing</a> guidance.</p>
<p><b>Browser and device support?</b> The latest desktop versions of Chrome and Firefox.</p>
<p><b>Where's my stuff?</b> There's no account system. Everything is stored in cookies. If you wipe those, or close your incognito window, it's gone forever. You can download your data for safekeeping via the Settings menu.</p>
<p><b>Anything else I should know?</b> Hold <kbd>SHIFT</kbd> when hovering to lock a window in place. Everything has tooltips. You will forever be a DM.</p>
<h3>Self-Hosting</h3>
<p>You can host a copy of 5etools on anything that can run a basic webserver&mdash;examples include <a href="https://developer.mozilla.org/en-US/docs/Learn/Common_questions/set_up_a_local_testing_server" rel="noopener noreferrer">your computer</a>, <a href="https://play.google.com/store/apps/details?id=com.sylkat.apache" rel="noopener noreferrer">your phone</a>, a <a href="https://www.raspberrypi.org/products/" rel="noopener noreferrer">Raspberry Pi</a>, or a free <a href="https://aws.amazon.com/free" rel="noopener noreferrer">EC2</a>/<a href="https://cloud.google.com/free" rel="noopener noreferrer">Compute Engine</a> instance. <a href="https://github.com/5etools-mirror-2/5etools-mirror-2.github.io/releases/latest" rel="noopener noreferrer">Download the files</a> and <a href="https://github.com/5etools-mirror-2/5etools-img/releases/latest" rel="noopener noreferrer">images</a>, <a href="https://wiki.tercept.net/en/5eTools/InstallGuide" rel="noopener noreferrer">copy them into your server's root directory</a>, and enjoy!</p>
<h3 title=":^)">Disclaimer</h3>
<p title=":^)">5etools is intended as an easily-accessible digital reference for products you already own. Please ensure you only access content in accordance with your local laws.</p>
</div>
</main>
<footer class="container">
<p class="ve-text-center">
Version
<a id="version_number" href="#">?</a>
| <span style="text-decoration: red line-through">&nbsp;&copy;&nbsp;</span><span id="current_year">2019</span> 5etools
| <a href="privacy-policy.html">Privacy Policy</a>
<a id='unic-gdpr' onclick='__tcfapi("openunic");return false;' style='display:none;cursor:pointer;'>Change Ad Consent</a>
<a id='unic-ccpa' onclick="window.__uspapi('openunic')" style='display:none;cursor:pointer;'>Do not sell my data</a>
<br>
<i>5etools&reg; is a Registered Trademark of The Norr Group Ltd. All rights reserved.</i>
</p>
</footer>
<div class="cancer__footer-pad"></div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adRhs" }}
<div class="viewport-wrapper">
{{> "adLeaderboard" }}
{{> "navbar" }}
<main class="container h-100 min-h-0 pb-0" id="page-content">
<div class="flex-vh-center initial-message">Loading...</div>
</main>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,56 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adRhs" }}
<div class="viewport-wrapper">
{{> "adLeaderboard" }}
{{> "navbar" }}
<div class="view-col-wrapper ve-flex-col px-4">
<div class="ve-flex-v-center mb-3">
<button class="btn btn-xs btn-default mr-2" id="btn__run">Run</button>
<button class="btn btn-xs btn-default mr-2" id="btn__validate">Validate</button>
<button class="btn btn-xs btn-default mr-2" id="btn__resolve_dynamics">Resolve Dynamics</button>
<button class="btn btn-xs btn-default mr-2" id="btn__validate_dynamics">Validate Dynamics</button>
<select class="form-control input-xs rlng__sel-sample" id="sel__sample"><option disabled value="-1">Select sample</option></select>
</div>
<div class="ve-flex w-100 h-100">
<div class="ve-flex-col w-33">
<div class="mb-2 small-caps">Input</div>
<div class="ve-flex-col h-100 w-100 ve-flex-1"><textarea id="ipt" class="w-100 h-100 form-control mb-2 code resize-none"></textarea></div>
<div class="mb-2 small-caps">Context</div>
<div class="ve-flex-col h-100 w-100 ve-flex-1" id="wrp_context"></div>
</div>
<div class="ve-flex-col w-33 px-2">
<div class="mb-2 small-caps">Lexed</div>
<div class="ve-flex-col h-100 w-100 ve-flex-1"><pre class="w-100 h-100 m-0 mb-2" id="out_lexed"></pre></div>
<div class="mb-2 small-caps">Parsed</div>
<div class="ve-flex-col h-100 w-100 ve-flex-1"><pre class="w-100 h-100 m-0" id="out_parsed"></pre></div>
</div>
<div class="ve-flex-col w-33 h-100 px-2">
<div class="mb-2 small-caps">Result</div>
<div class="w-100 h-100 ve-flex-vh-center rlng__output" id="out_result"></div>
</div>
</div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,91 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adLeaderboard" }}
{{> "navbar" }}
{{> "adRhsScrollingPage" }}
<main class="container">
<div class="ve-flex no-print">
<div class="form-group ve-col-2-4 mr-2">
<label for="race">Race</label>
<select class="form-control form-inline" id="race" disabled><option>Loading...</option></select>
</div>
<div class="form-group ve-col-2-4 mr-2">
<label for="cha">Charisma Modifier</label>
<select class="form-control form-inline" id="cha" disabled><option>Loading...</option></select>
</div>
<div class="form-group ve-col-2-4 mr-2">
<label for="race">Background</label>
<select class="form-control form-inline" id="background" disabled><option>Loading...</option></select>
</div>
<div class="form-group ve-col-2-4 mr-2">
<label for="race">Class</label>
<select class="form-control form-inline" id="class" disabled><option>Loading...</option></select>
</div>
<div class="form-group ve-col-2-4">
<label for="age"><i>Age</i></label>
<select class="form-control form-inline" id="age" disabled><option>Loading...</option></select>
</div>
</div>
<div class="ve-flex no-print">
<div class="form-group ve-col-12">
<button class="btn btn-default" onclick="pRoll()">Generate</button>
</div>
</div>
<div class="ve-flex-col no-print py-0 px-5">
<p>Based on the tables and rules in <a href="#" id="xge_link">Xanathar's Guide to Everything</a>, pages 61-73.</p>
<p><i>NOTE: Text displayed in italics is generated for the sake of ease and speed of use, and does not correspond to a table in the original generator. Ignore it as you see fit.</i></p>
</div>
<hr class="life__output" style="display: none; background: transparent">
<div class="ve-flex-col life__output night__shadow-big ve-hidden">
<div class="wrp-sect-head"><h4>Parents</h4><button class="btn btn-xs btn-default btn-reroll" onclick="pSectParents()"></button></div>
<p id="parents"></p>
</div>
<div class="ve-flex-col life__output night__shadow-big ve-hidden">
<div class="wrp-sect-head"><h4>Birthplace</h4><button class="btn btn-xs btn-default btn-reroll" onclick="sectBirthplace()"></button></div>
<p id="birthplace"></p>
</div>
<div class="ve-flex-col life__output night__shadow-big ve-hidden">
<div class="wrp-sect-head"><h4>Siblings</h4><button class="btn btn-xs btn-default btn-reroll" onclick="pSectSiblings()"></button></div>
<p id="siblings"></p>
</div>
<div class="ve-flex-col life__output night__shadow-big ve-hidden">
<div class="wrp-sect-head"><h4>Family and Friends</h4><button class="btn btn-xs btn-default btn-reroll" onclick="sectFamily()"></button></div>
<p id="family"></p>
</div>
<div class="ve-flex-col life__output night__shadow-big ve-hidden">
<div class="wrp-sect-head"><h4>Personal Decisions</h4><button class="btn btn-xs btn-default btn-reroll" onclick="sectPersonalDecisions()"></button></div>
<p id="personal"></p>
</div>
<div class="ve-flex-col life__output night__shadow-big ve-hidden">
<div class="wrp-sect-head"><h4>Class Training</h4><button class="btn btn-xs btn-default btn-reroll" onclick="sectClassTraining()"></button></div>
<p id="clss"></p>
</div>
<div class="ve-flex-col life__output night__shadow-big ve-hidden">
<div class="wrp-sect-head"><h4>Life Events</h4><button class="btn btn-xs btn-default btn-reroll" onclick="sectLifeEvents()"></button></div>
<p id="events"></p>
</div>
</main>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adRhs" }}
<div class="viewport-wrapper">
{{> "adLeaderboard" }}
{{> "navbar" }}
<div class="view-col-group--cancer h-100 mh-0">
<div class="py-2 ve-flex-vh-center initial-message initial-message--large h-100" id="wrp-loading">Loading...</div>
<div class="container view-col-wrapper view-col-wrapper--cancer ve-hidden" id="wrp-content">
<div class="view-col ve-flex-4 mb-0" id="lootgen-lhs"></div>
<div class="cancer__wrp-mobile-1 cancer__anchor"><div class="cancer__disp-cancer"></div><!--5ETOOLS_AD_MOB_PLAYER_1--></div>
<div class="view-col ve-flex-6" id="lootgen-rhs"></div>
</div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,46 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adRhs" }}
<div class="viewport-wrapper">
<div class="sidemenu__toggle" style="display: none;">
<div class="sidemenu__hotzone"></div>
<div class="sidemenu__burger"></div>
<div class="sidemenu__burger"></div>
<div class="sidemenu__burger"></div>
<div class="sidemenu"></div>
</div>
{{> "adLeaderboard" }}
{{> "navbar" }}
<div id="page_loading" class="container view-col-wrapper">
<div class="h-100 w-100 ve-flex-vh-center"><span class="initial-message">Loading...</span></div>
</div>
<div id="page_source" class="container view-col-wrapper" style="display: none"></div>
<div id="page_main" class="container view-col-wrapper" style="display: none">
<div class="view-col">
<div id="content_input"></div>
<div id="content_input_controls" class="ve-text-center"></div>
</div>
<div class="view-col" id="content_output"></div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adRhs" }}
<div class="viewport-wrapper">
{{> "adLeaderboard" }}
{{> "navbar" }}
<div class="container view-col-wrapper mt-2">
<div class="view-col ve-overflow-y-auto" style="flex: 3;">
<p>This tool can be used to create data compatible with the <a href="https://rpg-cards.vercel.app" rel="noopener noreferrer">RPG Cards</a> app.</p>
<p>Icons are taken from the open-source <i>RPG Cards</i> code, which is in turn sources icons from <a href="https://game-icons.net/" rel="noopener noreferrer">Game-icons.net</a>. Most of the icons available there should be available here.</p>
<hr class="hr-0">
<h4>Configuration</h4>
<div id="wrp_config"></div>
</div>
<div id="wrp_main" class="view-col ve-flex-col" style="flex: 7;"></div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
<div class="viewport-wrapper ve-flex-col">
{{> "adLeaderboard" }}
{{> "navbar" }}
<div id="content" class="maps ve-flex h-100 mobile__h-initial mobile__ve-flex-col min-h-0">
<div class="ve-flex-vh-center h-100 w-100">
<div class="ve-flex initial-message initial-message--large px-3">Loading...</div>
</div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,95 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adLeaderboard" }}
{{> "navbar" }}
{{> "adRhsScrollingPage" }}
<main class="container">
<div class="row">
<div class="ve-col-12">
<p>An overview of the features available in Plutonium can be found below. To those familiar with our now-deprecated Roll20 script &quot;betteR20,&quot; we aim to expand on the feature set it provided, while improving user experience.</p>
<p><b>Please note that the videos on this page are updated much less frequently than the module itself.</b> For a (more) complete list of Plutonium's features, see <a href="https://wiki.tercept.net/en/Plutonium" rel="noopener noreferrer">the wiki</a>.</p>
<hr>
<h3>Importing</h3>
<p>The module can import content to the sidebar, to a compendium, or to a character sheet. It can import most content found in 5etools, including:</p>
<ul>
<li>Classes and Subclasses, Backgrounds, Races, Feats, and other character options</li>
<li>Creatures, Spells and Items</li>
<li>Adventures, Books, and Tables</li>
</ul>
<p>By default, the module imports data provided by 5etools, but also includes the option to import from the <a href="https://github.com/TheGiddyLimit/homebrew" rel="noopener noreferrer">homebrew repository</a>, the <a href="https://github.com/TheGiddyLimit/unearthed-arcana" rel="noopener noreferrer">prerelease repository</a>, URLs, and file uploads.</p>
<h4>Importing Creatures</h4>
<a href="img/plutonium/creatures.gif" target="_blank" id="wrp-img-creatures"></a>
<h4>Importing Spells to a Character Sheet</h4>
<a href="img/plutonium/sheet-spells.gif" target="_blank" id="wrp-img-sheet-spells"></a>
<h4>Importing Tables</h4>
<a href="img/plutonium/tables.gif" target="_blank" id="wrp-img-tables"></a>
<hr>
<h3 id="rivet-browser-extension">Rivet Browser Extension</h3>
<p>With Rivet installed, and provided you have 5etools and Foundry open in the same browser, you can send content and rolls from 5etools straight to your Foundry game with the click of a button.</p>
<h4>Send to Foundry</h4>
<a href="img/plutonium/rivet.gif" target="_blank" id="wrp-img-rivet"></a>
<hr>
<h3>Quality of Life Tools</h3>
<p>The module includes a selection of tools to streamline the VTT experience.</p>
<h4>Journal Cleaner</h4>
<a href="img/plutonium/cleaner.gif" target="_blank" title="Sadly incapable of cleaning crappy GIF encoding." id="wrp-img-cleaner"></a>
<h4>Journal Bulk Item Mover</h4>
<a href="img/plutonium/mover.gif" target="_blank" id="wrp-img-mover"></a>
<h4>Mass &quot;Spell Prepared&quot; Toggler</h4>
<a href="img/plutonium/sheet-spell-toggler.gif" target="_blank" id="wrp-img-sheet-spell-toggler"></a>
<hr>
<h3>Customization Options</h3>
<p>Plutonium is designed to be easily configurable, and contains a wide selection of options enable user customization.</p>
<h4>Import Folder Specification</h4>
<a href="img/plutonium/folder.gif" target="_blank" id="wrp-img-folder"></a>
<h4>Configuration Options</h4>
<a href="img/plutonium/config.webp" target="_blank" id="wrp-img-config"></a>
<hr>
<h3>Foundry UI Enhancements</h3>
<p>While overhauling the Foundry user experience is not one of Plutonium's goals, a handful of optional tweaks have been included. These include:</p>
<ul>
<li>Red colorization of &quot;Delete&quot; icons, improving glance value</li>
<li>Faster animations, removing a layer of artificial delay between input and action</li>
<li>Reworked ESC key, to provide an &quot;escape last&quot; function rather than an &quot;escape all&quot; function</li>
</ul>
<div class="ve-flex">
<div class="ve-flex-col px-3">
<h4>Compact Directory Styling</h4>
<a href="img/plutonium/compact-directory.webp" target="_blank" id="wrp-img-compact-directory"></a>
</div>
<div class="ve-flex-col px-3">
<h4>Compact Chat Styling</h4>
<a href="img/plutonium/compact-chat.webp" target="_blank" id="wrp-img-compact-chat"></a>
</div>
</div>
</div>
</div>
</main>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adLeaderboard" }}
{{> "navbar" }}
{{> "adRhsScrollingPage" }}
<main class="container">
<div class="row">
<div class="ve-col-12">
<p>The Norr Group Ltd. and its affiliates (collectively &ldquo;Norr Group&rdquo;, &ldquo;we&rdquo; and &ldquo;us&rdquo;) respect your privacy. <br>We do not require that you provide, nor do we collect, any personal information if you are just browsing the Site. We may offer certain functionality and services, such as accessing future services and submitting content (eg product reviews, comments, metadata) that may require you provide certain personal information or may in which in the process of submitting such content inadvertently supply us with personal information. We will not disclose your personal information to any third party unless: 1) it is necessary in order to provide you with a particular Service you have requested; 2) it is required of us in order to comply with a legal process in any applicable jurisdiction (e.g., court order, subpoena, search warrant, law enforcement request); 3) Norr Group determines, in its sole discretion, that disclosure is necessary to protect the rights, property, and safety of Norr Group, its subsidiaries, affiliates, co-brand partners or other parties under contract with Norr Group, our users, or others; or 4) you have provided such data through a partner's site hosted by us, in which case we may provide your personal data to that partner (Norr Group is not responsible for its partners' privacy policies or their use, storage and processing of data collected on their web sites).</p>
<p>In certain instances, we may request that you provide secondary information (e.g., demographic information), which we may use, for example, to learn more about our customers and to develop and improve our services. We may compile your personal information with that collected from other customers to create aggregate data. Aggregate data is information about groups of customers and, once compiled, will in no way identify you as an individual. We may disclose aggregate data to our business affiliates, advertisers, and other parties.</p>
<p>Our web servers collect from Site visitors&rsquo; statistical information regarding what pages are visited, the date and time of the visits, how long it took a user to download a page, and the TCP/IP address of the user. These automated server functions do not collect this information in a manner intended to identify your individual use of the Site. This information is collected to assist us in maintaining a high quality site, provide necessary traffic information to our advertisers and tune our website to provide a better experience for each user. We currently contract with several online partners to help manage and optimize our Internet business and communications. In order to learn more about our users and what services and feature are most attractive to our visitors we utilize cookies to assist us in collecting relevant site usage info by our visitors. We also utilizes the assistance of third party tools to understand how its site is being used (including Google Analytics, Google Adsense, etc.) and these parties may utilize cookie technology to ascertain how the Site is being accessed by visitors.</p>
<p>In conjunction with our in-house advertising, we use third-party advertising companies to place customized advertisements on the pages you view on the Site (eg Google Adsense). Our third-party advertising companies also separately place or recognize a cookie file on your browser in the course of delivering advertisements to the Site. These companies may use non-personal information collected by the cookies about your visits to the Site and other web sites in order to provide you with advertisements about goods and services of interest to you.</p>
<p>The Site contains links to web sites of third parties. Norr Group is not responsible for the actions of these third parties, including their privacy practices and any content posted on their web sites. We encourage you to review their privacy policies to learn more about what, why and how they collect and use personal information. Norr Group adheres to industry recognized standards to secure any personal information in our possession, and to secure it from unauthorized access and tampering. However, as is true with all online actions, it is possible that third parties may unlawfully intercept transmissions of personal information, or other users of the Site may misuse or abuse your personal information that they may collect from the Site.</p>
<p>We uses third-party advertising companies to serve our ads and collect information when users visit the Site. These third-party advertising companies employ cookie and 1x1 pixel .gifs or web beacons to measure and improve the effectiveness of ads for their clients. These companies may use information (not including your name, address, email address or telephone number) about your visits to our website and other websites in order to provide advertisements on our site, other websites and other forms of media about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, check out <a href="http://www.networkadvertising.org/managing/opt_out.asp">http://www.networkadvertising.org/managing/opt_out.asp</a>.</p>
</div>
</div>
</main>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
<main class="container ve-flex-vh-center w-100w h-100h">
<h3>
Click <a href="{{redirectHref}}">here</a> to be redirected to {{redirectMessage}}.
</h3>
</main>
</body>
</html>

View File

@@ -0,0 +1,45 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adRhs" }}
<div class="viewport-wrapper">
{{> "adLeaderboard" }}
{{> "navbar" }}
<div class="view-col-wrapper">
<div class="view-col no-print" id="wrp-jsoninput">
<pre id="jsoninput" class="inputArea ace_editor"></pre>
<div class="ve-flex-h-right">
<select class="form-control input-sm mr-2" id="demoSelectRenderer">
<option value="html">HTML</option>
<option value="md">Markdown</option>
<option value="cards">RPG Cards</option>
</select>
<button class="btn btn-default btn-sm mr-2" id="demoRender">Render</button>
<button class="btn btn-default btn-sm" id="demoReset">Reset</button>
<span id="message"></span>
</div>
</div>
<div id="wrp-output" class="view-col">
<table id="pagecontent" class="w-100 stats">
<!-- populate with JS -->
</table>
</div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adLeaderboard" }}
{{> "navbar" }}
{{> "adRhsScrollingPage" }}
<main class="container" id="main_content"><div class="ve-flex-vh-center initial-message w-100 h-100">Loading...</div></main>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adRhs" }}
<div class="viewport-wrapper">
{{> "adLeaderboard" }}
{{> "navbar" }}
<div class="container container--main h-100 min-h-0">
<div class="ve-flex-col w-100 h-100 pt-2" id="statgen-main">
<div class="ve-flex-vh-center initial-message initial-message--large w-100 h-100">Loading...</div>
</div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>

View File

@@ -0,0 +1,29 @@
<script type="text/javascript" src="lib/jquery.js"></script>
{{#each scriptsLibAdditional}}<script type="text/javascript" src="lib/{{this}}"></script>
{{/each}}
{{#each scriptsLibAdditionalRemote}}<script type="text/javascript" src="{{this}}"></script>
{{/each}}
<script type="text/javascript" src="js/parser.js"></script>
<script type="text/javascript" src="js/utils.js"></script>
<script type="text/javascript" src="js/utils-ui.js"></script>
<script type="text/javascript" src="lib/localforage.js"></script>
<script type="text/javascript" src="js/omnidexer.js"></script>
<script type="text/javascript" src="js/omnisearch.js"></script>
<script type="text/javascript" src="js/filter.js"></script>
<script type="text/javascript" src="js/utils-dataloader.js"></script>
<script type="text/javascript" src="js/utils-brew.js"></script>
<script type="module" src="js/utils-config.js"></script>
{{#each scriptsUtilsAdditional}}<script type="text/javascript" src="js/{{this}}"></script>
{{/each}}
<script type="text/javascript" src="js/render.js"></script>
<script type="text/javascript" src="js/render-dice.js"></script>
{{#each scriptsRenderAdditional}}<script type="text/javascript" src="js/{{this}}"></script>
{{/each}}
<script type="text/javascript" src="js/scalecreature.js"></script>
<script type="text/javascript" src="js/hist.js"></script>
{{#each scripts}}<script type="text/javascript" src="js/{{this}}"></script>
{{/each}}
{{#each scriptsModules}}<script type="module" src="js/{{this}}"></script>
{{/each}}
<script type="text/javascript" src="js/list2.js"></script>
<script type="text/javascript" src="lib/elasticlunr.js"></script>

View File

@@ -0,0 +1,47 @@
<!DOCTYPE html>
<html lang="en">
{{> "head" }}
<body>
{{> "overlayNoise" }}
{{> "adRhs" }}
<div class="viewport-wrapper">
{{> "adLeaderboard" }}
{{> "navbar" }}
<div class="container view-col-wrapper">
<div class="view-col" id="listcontainer">
<div class="input-group btn-group search-box ve-flex">
<div class="w-100 relative">
<input type="search" id="lst__search" autocomplete="off" autocapitalize="off" spellcheck="false" class="search form-control lst__search br-0">
<div id="lst__search-glass" class="lst__wrp-search-glass no-events ve-flex-vh-center"><span class="glyphicon glyphicon-search"></span></div>
</div>
<button class="btn btn-default reset" id="reset" type="button">Reset</button>
</div>
<div class="flex-col ve-overflow-y-scroll min-h-0 pr-2" data-name="tablepage-wrp-list">
<!-- populate with JS -->
</div>
</div>
<div class="view-col" id="tablecontainer">
<div class="rolltable" id="contentwrapper">
<table id="pagecontent" class="w-100 stats stats--book stats--book-large">
<!-- populate with JS -->
</table>
</div>
</div>
</div>
</div>
{{> "adFooter" }}
{{> "scripts" }}
</body>
</html>