Text Randomizer add-on for Google Sheets

Features

Text Randomizer converts a spreadsheet into a customizable random text generator suitable for use with tabletop role-playing games. Compose random words, phrases, numbers, and names to generate more complex text - for example, detailed characters, objects, foes, locations, or anything you need to add a spark of unpredictability and spontaneity to your game sessions. Build your generators using simple syntax, then generate results with the click of a button. Includes the option to generate random names and words to match the flavor of your campaign.

A usage reference is included in the add-on menu, as well as example data to get started. Text Randomizer is completely free.

Links:

Usage Reference

Text Randomizer converts a spreadsheet into a customizable random text generator. Once installed in a Google Sheet, it can be accessed from the Add-ons menu. First, construct random text generators - this process is described below. Once generators are constructed, access the Text Randomizer interface by selecting "Open" from the Text Randomizer menu. Text can be generated from the interface with the click of a button.

There are four main tools for constructing random text generators: making a random selection, generating a random number, making a one-time selection, and assigning random results to a variable. Each utilizes curly braces { } (note that curly braces { } should never be placed inside another set of curly braces.)

Any number of sheets may be used, but two special sheet names are reserved - Endpoints and Names. These are discussed below.



Use column headers to define a label for a random selection of possible options. Labels should be written without spaces. For example: "rare_gem"
Use the rows beneath a given label to define the possible options for that label:

rare_gem
diamond
ruby
black opal
sapphire
moonstone

Once a random selection has been defined, it can be used in other options by surrounding the label with curly braces { }

rare_gem treasure
diamond a magic ring
ruby a sparkling {rare_gem}
black opal
sapphire
moonstone

Use a pound # character to generate a random number. The minimum and maximum possible values are separated by a dash - . Note that negative numbers cannot be generated (as a workaround, simply place a "-" sign before the curly brackets).

rare_gem treasure
diamond a magic ring
ruby a sparkling {rare_gem}
black opal {#100-300} silver coins
sapphire
moonstone

Define a one-time selection by placing a list of options inside square braces [ ] separated by vertical bars | . This is useful for situations where defining a whole column of options would be overkill.

rare_gem treasure
diamond a magic ring
ruby a sparkling {rare_gem}
black opal {#100-300} {[grubby copper|silver|gold]} coins
sapphire
moonstone

Lastly, define a variable using the at @ character. The first time a variable is used it must be assigned a value by following it with a colon : and any of the generator options defined above - a random selection label, a random number, or a one-time selection. Then the randomly assigned value can be reused by referencing the variable name. Variable names cannot have spaces.

rare_gem treasure
diamond a magic ring
ruby a sparkling {rare_gem}
black opal {#200-300} {[grubby copper|silver|gold]} coins
sapphire a crown with a small {@crown_gem:rare_gem} on each point, and a huge {@crown_gem} in the center
moonstone

There are two special Sheets that Text Randomizer treats differently - Endpoints and Names.



A sheet named Endpoints is required. It is where the top-level random generators are defined which will appear as buttons in the Text Randomizer interface. Using the example labels above, the following example endpoints might be defined:

Single Treasure Treasure Hoard
{treasure} {treasure},
{treasure},
and {treasure}

When the Text Randomizer interface is opened, two buttons will be present - a button for "Single Treasure", which generates a single random treasure, and a button for "Treasure Hoard", which generates three random treasures. The Endpoints sheet has a couple of key usage differences:
  1. The headers, which will determine the button names in the interface, can have spaces and punctuation.
  2. Multiple rows are used to generate a multi-line result, not to provide multiple possible options.



Inclusion of a sheet called Names is optional. Use the Names sheet to randomly generate new words or names. As in a regular sheet, each column header defines a label that can be used in curly braces { } to produce a randomized result. However, the rows below the header consist of sample names that will be used to generate new names, rather than a list of predefined options. For example:

sword_name monster_name
excalibur balrog
callandor dracula
longclaw godzilla
stormbringer falkor
glamdring modron

Labels defined in the Names sheet can be used just like other random selection labels.

rare_gem treasure
diamond a magic ring
ruby a sparkling {rare_gem}
black opal {#200-300} {[grubby copper|silver|gold]} coins
sapphire a crown with a small {@crown_gem:rare_gem} on each point, and a huge {@crown_gem} in the center
moonstone the fabled sword {sword_name}

Be aware that name generator results are dependent on the quality and quantity of sample names provided. A minimum of 30 sample names is suggested, and 100 or more are recommended for best results. If too few samples are provided, it is possible that the generator may produce results identical to the samples names.



Select Load examples from the Text Randomizer menu to see these examples in action.


Privacy Policy

The Text Randomizer add-on requires access to the active spreadsheet only. Data in the active spreadsheet is used only to define names and options for randomized text generators that are made accessible to the user in the sidebar interface. No additional user data is accessed, collected, stored, used, or shared in any way. The services that invoke authorizations from the user are the Spreadsheet service (allows the app to read data from the active spreadsheet to generate randomized text and insert required sheets and example data into the active spreadsheet) and the Ui service (allows the app to display the sidebar interface and user reference dialog window).

Terms of Service

These Terms of Service (“Terms”) are a legal agreement between the developer of Text Randomizer, Max White, herein “I” or "me", and the person or entity agreeing to the terms herein (“You”, “you”, or "your"). By using or accessing any part of Text Randomizer (the “Service”), You agree that You have read, understand, and agree to be bound by all of the terms and conditions contained herein. If You do not agree to these Terms, You must not use or access the Service.

Text Randomizer is Google Sheets add-on which requires a G Suite account that will be the owner of any files managed by the Service. You may connect to the Service using any Internet browser supported by the Service. You understand and acknowledge that You are solely responsible for obtaining the Internet access and all equipment necessary to use the Service and for appropriately configuring Your G Suite account. You also understand and agree that content you store through your use of the Service will be made available to Google as part of Google providing the G Suite service.

I reserves the right to update and change the Terms of Service upon notice from time to time. You will be provided notice of any such modification by the publishing of such on the website http://www.maxjwhite.com/text-randomizer. You may terminate your use of the Service if the Terms are modified in a manner that substantially affects your rights in connection with use of the Service. Your continued use of the Service after any such changes shall constitute your consent to such changes. You can review the most current version of the Terms of Service at any time at http://www.maxjwhite.com/text-randomizer.

I may make changes to the Service from time to time. I will notify you of any material changes or modifications. Any updates, upgrades, additions or new features to the Service, including the release of new tools and resources, shall be subject to these Terms and may require you to agree to additional terms and conditions.

You are solely responsible for granting the Service access to your G Suite files and revoking such access when you cease use of the Service. Subject to your compliance with these Terms and the Google Acceptable Use Policy (available at https://cloud.google.com/terms/aup) I hereby grant you a limited, revocable, non-transferable non-exclusive, non-sublicensable license to access and use the Service, solely for your own internal use.

You acknowledge that Text Randomizer relies on the functioning of G Suite and that should Your use of Google’s G Suite be in violation of Google’s applicable terms of service, there may be disruptions in the use of Text Randomizer. In addition to all other terms and conditions contained herein, you shall not:

  • USE THE SERVICE IN MISSION-CRITICAL SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL SYSTEMS, DIRECT LIFE SUPPORT MACHINES, WEAPONS SYSTEMS, OR IN-LINE MANUFACTURING IN WHICH THE FAILURE OF THE SERVICE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE OR HIGH NON FATAL DAMAGES (“HIGH RISK ACTIVITIES”). I SPECIFICALLY DISCLAIM ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES;
  • Use the Service for spamming or any other illegal or unauthorized purpose or engage in illegal or deceptive trade practices;
  • Use of the Service in violation of any laws in your jurisdiction (including but not limited to copyright laws);
  • Process or store any content on or through the Service that is subject to the International Traffic in Arms Regulations maintained by the Department of State;
  • Use the Service to store any content that is controlled for export laws;
You understand and agree that your use of the Service requires the use of G Suite. You agree that you shall not and shall not permit others to:
  • Copy, modify, create a derivative work of, reverse engineer, decompile, translate, disassemble, or otherwise attempt to extract the source code of G Suite or any component thereof;
  • Use the G Suite or any component thereof IN MISSION-CRITICAL SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL SYSTEMS, DIRECT LIFE SUPPORT MACHINES, WEAPONS SYSTEMS, OR IN-LINE MANUFACTURING IN WHICH THE FAILURE OF THE SERVICE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE OR HIGH NON FATAL DAMAGES (“HIGH RISK ACTIVITIES”). I SPECIFICALLY DISCLAIM ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES;
  • Sublicense, resell, or distribute G Suite or any component thereof;
  • Use G Suite or any component thereof to create, train, or improve (directly or indirectly) a substantially similar product or service, including any machine translation engine;
  • Use G Suite or any component thereof to operate or enable any telecommunications service or in connection with any application that allows end users to place calls to or to receive calls from any public switched telephone network; or
  • Process or store any data that is subject to the International Traffic in Arms Regulations maintained by the U.S Department of State or any other applicable law.
I reserve the right to suspend or terminate your access to Service with or without cause and with or without notice, for any reason or no reason, or for any action that I determine is inappropriate or disruptive to the Service or to any other user of this Service. Google may suspend your G Suite account if: (a) your use of G Suite is in violation of Google’s Acceptable Use Policy, which could disrupt: (i) G Suite; (ii) other users’ use of G Suite; or (iii) the Google network or servers used to provide G Suite services; or (b) there is unauthorized third party access to G Suite.

You agree to indemnify and hold me harmless from and against any and all costs, damages, liabilities, and expenses (including attorneys’ fees and costs of defense) I or any other indemnified party suffers in relation to, arising from, or for the purpose of avoiding, any claim or demand from a third party that your use of this Service or the use of Service by any person using your Account (including without limitation, Your Content (as defined below)) violates any applicable law or regulation, or the copyrights, trademark rights or other rights of any third party.

As between you and me, you retain all right, title and interest in any and all data, text, personally identifiable information, and other content that You and upload or submit to the Service (collectively, “Your Content”). You may not upload, post or otherwise make available through the Service any material protected by copyright, trademark, or any other proprietary right without the express permission of the owner of such copyright, trademark or other proprietary right owned by a third party, and the burden of determining whether any material is protected by any such right is on you. You shall have sole responsibility for the accuracy, quality, integrity, legality, reliability, appropriateness, and intellectual property ownership or right to use any and all of Your Content. You represent and warrant that you have all rights, permissions and consents necessary (a) to make Your Content available on or through the Service, and (b) to grant me the limited rights to use Your Content set forth in these Terms.

You agree that I may use Your Content to provide the Service and its features, including by making it available for viewing, download and modification by other Users with access rights to Your Content. You hereby grant me a non-exclusive, perpetual, royalty-free, worldwide license to access, use, transmit, modify, adapt, reformat, and display Your Content as required for the purpose of providing the Service to you.

You understand and agree that I do not have the ability to grant or revoke the Service’s access to your G Suite domain data and files or other content and materials stored in your G Suite account. Therefore, You are solely responsible for granting the Service access to such G Suite files and revoking such access when You cease use of the Service. I shall not be responsible and shall have no liability for any damages that result from Your failure to grant or revoke such access.

Warranty Disclaimer

THE SERVICE IS PROVIDED ON AN “AS IS” BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. I MAKES NO WARRANTY THAT (I) THE SERVICE IS FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS; (II) THE SERVICE WILL BE ERROR-FREE OR UNINTERRUPTED (INCLUDING, WITHOUT LIMITATION, INTERRUPTIONS THAT OCCUR IN THE CONTEXT OF REGULARLY SCHEDULED MAINTENANCE); (III) ANY INFORMATION OR ADVICE OBTAINED BY YOU IN CONNECTION WITH THE SERVICE WILL BE ACCURATE OR COMPLETE; OR (IV) THE RESULTS OF USING THE SERVICE WILL MEET YOUR REQUIREMENTS. SOME STATES DO NOT ALLOW EXCLUSION OF AN IMPLIED WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO YOU.

Limitation of Liability

IN NO EVENT SHALL I BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, INDIRECT, SPECIAL, PUNITIVE, OR OTHER LOSS OR DAMAGE WHATSOEVER (INCLUDING BUT NOT LIMITED TO LOSS OF DATA, LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, COMPUTER FAILURE, LOSS OF BUSINESS INFORMATION), ARISING OUT OF OR CAUSED BY YOUR USE OF OR INABILITY TO USE THE SERVICE, EVEN IF I HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOUR SOLE AND EXCLUSIVE REMEDY FOR ANY DISPUTE WITH ME RELATED TO ANY OF THE SERVICE SHALL BE TERMINATION OF SUCH SERVICE.