
This is my attempt at using handouts as searchable custom dictionaries. Summary This is my !whatis dictionary tool that turns a cleanly formatted handout into a searchable , linkable , Subject & Topic dictionary that you and your players can leverage to reference custom rules and game content. It's entirely driven from a single handout that you construct, leveraging the Header 1 & Header 2 titles to keep everything clean and ordered, and it also supports bulleted lists! This makes it easy to craft guides, timelines, rules, really any content that you can cram in a cleanly formatted handout, that players can jump around through. You can even use it to announce or share specific entries with players, just in case they forget a reference. You can pair it with my handout cleaner script to help ensure your handouts have a clean searchable format. Features List topics in an easy-to-interact with way. Whispered to you so you don't interrupt gameplay. Show the subjects under specific topics, in numbered , alphabetical order, with previews of content. And yes, paging is built-in! Search! Use keywords and see matches throughout your dictionary, highlighted, and easy to follow! Example Command: !whatis @subjects Example Command: !whatis "Sample Subject A" Example Command: !whatis pos Command Reference Cmd Description !whatis Show the whatis handout's intro section content. !whatis @subjects Show a list of all known subjects with buttons to jump to their respective topics. !whatis [subject] [topic] Show the contents of a specific subject and/or topic (use quotes if they have spaces). !whatis [...search terms] Perform a general search with one or more search terms. !whatis @search [...search terms] Same as above, but forces the search, even if a term directly matches a subject/topic. !whatis to@[playername] […] Send the results of a following !whatis command to the specified player. You can also specify "everyone" to send to everyone in the game, or "gm" to send to the GM of the game. !whatis @table [tablename] [# or #-#] Examine a rollable table and show contents, optionally specifying a specific roll at the given entry number (or range). !whatis @reload GM-only. Attempts to reload (re-parse) your whatis document. !whatis @init GM-only. Creates a new, fresh WhatIs handout to start with. Recommendations By default, the script looks for a handout called "WhatIs" (case-insensitive), but you can specify the ID or name in the script if desired. Avoid using odd characters in Topic and Subject names, stick to alpha-numeric with spaces, ideally in Capital Case so it's easy for your players to follow them. HTML in handouts can get really messy. It's strongly recommended that you create clean content for the the handout that doesn't use special styling. The go-to procedure for effective parsing is to write your handout in markdown, then copy the rendered version into the handout notes. Once that is saved, run the !cleaner script on the handout to normalize it. Then you can run !whatis @reload to re-parse the handout. If this is done properly, you'll see your subjects listed with: !whatis @subjects Setup Add the script to your game. Run the command !whatis @init in chat as the GM to create a fresh WhatIs handout. The !whatis script will load and parse your script and turn it into a searchable dictionary. Header 1's become Subjects Then you have two options for creating Topics under each Subject : A. Use Header 2's - The content under the header 2's become the content of the topic. example: B. Use a bulleted list with the Topic preceding, and bolded, followed by a colon, then the content. example: Anytime you update the handout, just run !whatis reload as the GM and the document will be re-parsed and loaded. That's it, you and your player's can now start searching with the !whatis command! Fun Things Want to add a button link to another subject or topic? Just add a markdown link in the content with the proper command! Example: [Click Me](!whatis super-spell) Did you know you can also pull descriptions and share them from rollable tables? Try !whatis @table [tablename] [#] Want to tweak the help message? No problem! It's pulled from the top of your WhatIs document, before a horizontal line. Modify it as you'd like and it'll be shown to user's when they run: !whatis