This is a Javascript-based vocabulary generator for conlangs based on Mark Rosenfelder's Gen. Enter your syllable types in the syllable boxes, using any categories you want (e.g. R for liquids). Define the phonemes that make up those categories in the categories box. Hit Generate to create a random wordlist. Use cut and paste to save your work. Click on the small question marks ? for help, or go read through the tutorial I wrote.

Categories:?This is where you define categories of sounds. The format is X=abcde where X is the category (any single character) and abcde is a run of characters that are assigned to the category. Categories are used in the syllable boxes. When a category is chosen, a character is chosen from its run according to a utilization rate that favors the characters at the beginning of the run. The rate can be changed via the Dropoff selector.
Rewrite rules:?These are used to perform global replacements on generated words. Since categories only output one character at a time, you can use this for two-letter phonemes. For instance, you might use T||th to change the generated word Tem into them.

Both sides use Javascript regex expressions. The left side also accepts %X and !%X expressions where X is the label of a category: %X is replaced with [a-z] and !%X is replaced with [^a-z], where a-z is the run of characters in that category.

Predefs use rewrite rules to remove long runs of letters, modify letters based on the letters around them, and more.

SWord-initial syllables:?If the generator asks for a multi-syllable word, syllables in this box will be used for the first syllable in the word.

Syllables are strings made up of one or more Categories. For example, if the categories C=bd and V=ai exist, a syllable CV might output ba, bi, da, or di. If a character in a syllable isn't a category, it will be outputted directly. (For example, CoV could output boi.)

?If unchecked, more options will appear, and the generator will take them into account when generating words. Leave this checked if your syllables don't have special rules as to when they appear in different parts of a word.
Single-word syllables:?If the generator asks for a single-syllable word (a monosyllable), it will pull a syllable from those in this box. See Word-Initial Syllables for more information.
Mid-word syllables:?If the generator asks for a multi-syllable word, the syllables in this box will be used to form syllables that are neither the first nor last in the word. See Word-Initial Syllables for more information.
Word-final syllables:?If the generator asks for a multi-syllable word, syllables in this box will be used for the final syllable in the word. See Word-Initial Syllables for more information.
Output type:?This choice determines what will appear in the Output section below. Text output will output a pseudo-text. Wordlist outputs a columnized list of 150 words. Giant wordlist gives you 750 words, presented one per line. All possible syllables presents all possible syllables, one per line, ignoring Dropoff and Monosyllables settings.

Dropoff:?This choice determines how fast the utilization rate declines. (See Categories.) Assume you're using S=tspkThfS. Fast makes the t appear much more than s, which appears much more than p, and so on. Molasses has a less steep decline, but t still shows up more than s, and so on. Equiprobable gives all choices an equal chance.

graph is an approximation

Monosyllables:?This choice determines how often single-syllable words are generated, from Rare producing very few, to Always giving nothing but.

?If checked, syllable boundaries will be marked with a dot: ·

NOTE: This renders all rewrite rules useless across syllable boundaries.

?Normally, syllables at the top of a syllable box will be chosen more often than syllables lower down. If checked, this is still true, but upper syllables will not have as much of an edge over lower syllables.
?Clicking Save to Browser will store the current input to your browser's localStorage, if your browser supports it, and create a new Custom Settings Default. If you already have info stored, this will overwrite it!

NOTE: This should not be considered a long-term storage solution, as your browser might delete it if you run out of cache or localStorage space. Use Export Settings to keep an offline backup.
?Clicking Clear from Browser will delete any information stored on your browser by the Save button. ?Clicking Import Settings will open a box where you can paste information formatted by Export Settings. Clicking Import below the box will load your settings. Clicking Cancel will close the box. ?Clicking Export Settings will open a box and fill it with formatted information based on the settings currently active. Copy and save it for your own records, and use Import Settings to reload it at a later date.
?Clicking the Generate button starts the generator, printing output into the Output section below. The Output Type option determines what kind of information gets printed. ?Clicking the Erase Output button erases everything in the Output below. ?Clicking the Clear Input button erases everything in the syllable, category and rewrite boxes, unchecks all checkboxes, and sets dropoff, output type and monosyllables to their initial values. ?Clicking the Extra Characters button puts a bunch of IPA, Latin, Cyrillic, Armenian, Greek and Coptic characters into the Output section. (You can then cut and paste them into any of the boxes above!) Note: some characters may not print, especially if on a mobile device. ?Choosing a selection from the drop-down list and then clicking the Load Predef button will load a set of pre-defined categories, rewrite rules and syllables for you to use. Other checkboxes and options may change, too.