Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

[Script] Tongues - a simple language script

1507758815

Edited 1530810494
Hi there! You can find the script and its usage instructions here: Tongues Script Description I'm DMing a D&D campaign and wanted my players to actually speak some weird words while using other languages than Common and yet other users of the language get to understand them. I created this simple script which replaces words written by a same length word from the languages specific vocabulary lists. I had this idea after World of Warcraft's cross-faction communication system which translates your words when they are displayed to an opposite faction's player as they "don't understand your language". I wanted to share in order to other groups take advantage of this. The final result is a pseudo-translator which sends the translated text to everyone but whispers the orginal text to those who can speak the language used to translate. Note: the original text is always whispered to the GM, which could cause replication if you are also tagged as a character's controller since the script whispers both the GM and the characters. I hope someone find this useful! Changelog v1.0.0 - Release v2.0.0 - Improved parsing (special thanks to The Aaron) Now languages are loaded and parsed on script startup or whenever created, changed or deleted. Tongues will look for any handout prefixed with "Tongues: ". Restricted  !tongues --create [name]  command to only GMs. This command now also automatically prefixes languages handouts Added new examples & screenshots. v2.1.0 - Improved character parsing The script now searches for full names when checking the speakers of a language, no more nicknames, now you must write the full name of the character. Leaving empty rows on a language list doesn't causes the script to malfunction. If no vocabulary exists (empty rows) for a language, every word will be translated by sequences of '?' depending on word length. Will not send whispers to characters without any player in its "Can Be Edited & Controlled By" field, avoiding replication of whispers for GMs when talking through an NPC. v3.0.0 - Improved translation via hash (special thanks to Corin S.) Tongues now uses a hash to translate words, resulting in getting always the same translation to a given word. May cause weird translated sentences if not enough vocabulary is available. v4.0.0 - Dictionary, ignoring text and language knowledge Dictionary functionality which allows translation of specific sets of words to a given translation (ex: [Hello, Goodbye: Hellobye] will translate every "Hello" or "Goodbye" to "Hellobye") . This feature also supports sentences (ex: [You will burn in hell: Ag naz logash] ). New languages created by the command --create have a new template with a functional example. Translation is done from top to bottom, that means if [Hello: Hi] is declared before [Hello: Hey], only the first one will apply as every "Hello" will be translated to "Hi" first. Text between two $ symbols are ignored by the script. (ex: A message such as "Hi $John$ how are $you today$" will translate as "Az John jag nag you today"). Ignored text will be displayed in grey color when translating. Tongues now supports knowledge of a language, when writting down the speakers of language you must specify their level of knowledge with a ":" next to its name followed by a percentage (ex: Mannimarco:100%, Goblin Warrior: 50%) . This affects both speaking and understanding of a language. Every word has a difficulty between 1 and 100, a language speaker only will speak/understand those words that meet their % of knowledge. Any words not translated by the speaker (character who is sending the message doesn't have enough knowledge) will display in blue color when translating. Any words not understood by the listener (character who is reading the message doesn't have enough knowledge) will display in red color when translating. If you don't want to use this feature just give every speaker a knowledge of 100%. Read me inside Github is updated including the new features. v4.0.1 - Fixed GM Notes parsing Fixed an issue when parsing GM Notes not seprated by space after comma. Also, when speakers are written without a knowledge value after a ":" the script defaults the knowledge level to 100. Preventing parsing errors when swaping to the new version or just don't want to use the knowledge feature and keep GM Notes cleaner. v4.1.0 - Non-english characters parsing Now tongues parses every Unicode letter as a valid character for translation. v4.3.1 - New configuration commands Github's repository readme has a new section with all the available commands with their usage and examples. New command: !tongues --ability which creates/updates a token macro named "Tongues" for all the languages the selected character knows. New command: !tongues --set (language:knowledge%) which adds or updates the selected character's name on the provided language handout. You can optionally provide a knowledge % for the provided language, which will be added to the character's name on the handout. New command: !tongues --unset (language) which removes the selected character's name from the provided language handout. Both !tongues --set and - -unset commands after adding or removing a character from the handout will seek for an ability macro named "Tongues" on the selected character, if found, a command !tongues --ability will be executed for the character affected. v4.4.0 - New configuration command for GMs New command: !tongues --speaker (name) which saves the name to be used as the speaker's name when a !tongues (language) (message) command is issued by a GM without a token selected. This speaker name is saved across API Sandbox restarts so you will find that once you used this command once, the script will always remember your last saved name. Speaker name defaults to John Smith on fresh scripts. v4.5.1 - New configuration commands and bugfixes Fixed a bug with !tongues --set which caused a "null" entry when used on a language not yet spoken by anyone. Fixed a bug where a token without an associated character will display "character" as a name. Now the script tries to use the token's name if no character is found. If the token name is blank it will use the saved speaker name instead. New command: !tongues --config (parameter:true/false) which allows to allow or disable the new features. !tongues --config show Will display your current configuration settings. !tongues --config reset Will reset your script data to a fresh start. Useful when updating your version in order to avoid compatibility problems. !tongues --config showTokenName:true/ false While true will display the token's name rather than the character's name. Defaults to false on fresh scripts. !tongues --config displayLanguageName:true / false While true it will display the language name on the translated message. While false only the GM and characters which know the spoken language will see the language name. Defaults to true on fresh scripts. v4.5.2 - Bugfixes & One-Click Install Hopefully fixed all the bugs related to handout parsing. I've been asked to add the script to One-Click install feature and I'm working on it. Examples & Screenshots I'm also leaving a few screenshots of some languages I configured for my own game for you to take as example: Disclaimer: my english is not perfect since i'm not a native speaker
1507761373
The Aaron
Pro
API Scripter
Nice! I notice you're parsing the handout on every message, you could do that once at startup, then have an on('change:handout',...) event to reparse it if it ever changes.  That should make message display much faster.
1507761568
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Looks very promising! I like this approach much better than the creating extra characters method.
1507791447
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Do players also have the ability to send a foreign language text? If so, does the GM get the translation? For instance, if the two PC elves in the party wanted to make fun of the barbarian's haircut and still keep all their limbs, and would the GM be aware of what is being said?
1507793625

Edited 1507801787
keithcurtis said: Do players also have the ability to send a foreign language text? If so, does the GM get the translation? For instance, if the two PC elves in the party wanted to make fun of the barbarian's haircut and still keep all their limbs, and would the GM be aware of what is being said? Yes, only GMs can create a language template, but every player in the game can use the speak command, the script was created after that purpose. If the token they have selected represents a character and that character's name appears on the GM Notes of the language, the script will do the job. If the character is not listed on the GM Notes, a "you can't speak that language" message is sent to the player using the command. Regardless the characters it controls, the GM always gets the original text whispered. In my game my players are supposed to run the command, then say by voice the translated text and then any speaker of the language can see what that really means in their chat as the whisper works like some kind of "subtitles" for what a player is saying.
This is very neat! Thanks.
1507799021
Loki
Sheet Author
Haven't tested it due to lack of an opportunity, but it sounds really nice! Thanks!
The Aaron said: Nice! I notice you're parsing the handout on every message, you could do that once at startup, then have an on('change:handout',...) event to reparse it if it ever changes.  That should make message display much faster. Took your suggested approach to parsing handouts and it really works much faster. Thank you for that. Will upload the changes as soon as I can.
1507824068
The Aaron
Pro
API Scripter
Cheers!  =D
1507830306

Edited 1507981321
New  version is now available. v2.0.0 - Improved parsing (special thanks to The Aaron) Now languages are loaded and parsed on script startup or whenever created, changed or deleted. Tongues will look for any handout prefixed with "Tongues: " to load and parse them to make translations faster Restricted !tongues --create [name] command to only GMs. This command also will automatically prefix languages handouts it creates Added new examples & screenshots Thank you all!
1507830867
The Aaron
Pro
API Scripter
Looks great!  You even handled the removal of handouts, kudos!
1507846904

Edited 1507847364
I've made a little  update v2.1.0 - Improved character parsing The script now searches for full names when checking the speakers of a language, no more nicknames, now you must write the full name of the character. This will prevent malfunction because of characters with similar names. Leaving empty rows on a language list now doesn't causes the script to malfunction. If no vocabulary exists (empty rows) for a language, every word will be translated by sequences of '?' depending on word length. Will not send whispers to characters without any player in its "Can Be Edited & Controlled By" field, avoiding replication of whispers for GMs when talking through an NPC. Thank you all!
Coolbeans..
1507866954

Edited 1507867002
Corin S.
Sheet Author
This, uh, might not be proper coder's etiquette, but I made a slightly altered fork that uses a hash instead of a random selection, if you're interested. Results in the same word always being translated to a given word, though obviously there might be some overlap, and I'm not entirely sure if the distribution for translations will be roughly evenly distributed, but still.
Corin S. said: This, uh, might not be proper coder's etiquette, but I made a slightly altered fork that uses a hash instead of a random selection, if you're interested. Results in the same word always being translated to a given word, though obviously there might be some overlap, and I'm not entirely sure if the distribution for translations will be roughly evenly distributed, but still. That's great! I would like to take a look at that, can you provide a link?
Here we are:&nbsp;<a href="https://github.com/cwstra/Tongues-Script" rel="nofollow">https://github.com/cwstra/Tongues-Script</a>
1507981279

Edited 1509139163
Corin S. said: Here we are:&nbsp; <a href="https://github.com/cwstra/Tongues-Script" rel="nofollow">https://github.com/cwstra/Tongues-Script</a> Liked your approach more than the random one and implemented it into my own. I fixed an issue since hash can return negative values and then try to pick a word from a negative index of the array. Also I ensured that every word is hashed at lower case, resulting in the same translation for: "Hello" and "hello". Thank you very much! New version&nbsp; available . v3.0.0 - Improved translation via hash (special thanks to Corin S.) Tongues now uses a hash to translate words, resulting in getting always the same translation to a given word. May cause weird translated sentences if not enough vocabulary is available..
1508018417

Edited 1508018436
Corin S.
Sheet Author
Glad you like it! In regards to the repeated vocabulary, we can just pretend it's some kind of enunciation thing. :P
I installed the script and I like it. I've found it is a little wonky finding players whose names are on the GM portion of the handout. I've found it's mostly characters with multi-part names that seem problematic My players like it, but the script crashed while we were playing. I had to disable the script and reset the API. I didn't manage to copy the error unfortunately. If the script crashes again, I'll make sure to copy the error and share it here. Suggestion . Maybe make a folder with files for languages that we can copy and easily add to our games. Anyways, good job. Looking forwards to future updates.
I'm wondering if i can add a "language" such as "Thieves Cant"&nbsp; and have it set to translate only between people who know thieves cant? Thanks!
That's exactly what this script allows. The players who can't speak cant will just see different text. Thieves cant is an interesting idea. I have Elvish and Giant setup for my Storm King's Thunder campaign. These are languages shared by some party members.
Spaceweasels said: I installed the script and I like it. I've found it is a little wonky finding players whose names are on the GM portion of the handout. I've found it's mostly characters with multi-part names that seem problematic My players like it, but the script crashed while we were playing. I had to disable the script and reset the API. I didn't manage to copy the error unfortunately. If the script crashes again, I'll make sure to copy the error and share it here. Suggestion . Maybe make a folder with files for languages that we can copy and easily add to our games. Anyways, good job. Looking forwards to future updates. I have names on my campaign like Therenvarys Ther Solaris or Eldon "Eyebrows" and the script is reading them well from the GM notes. Would you mind to explain how is it wonky? As for the error, the script may be unpolished, I also detected some errors and are trying to recreate and solve them. If it ever happens again on your game and you post the error here I will try to fix it. Regarding the folder with languages I pick most of them from WoW's wiki language section. They have a lot of them and they provide the words the game uses to generate the language. Anyways, I will upload mine to the GitHub as examples.
1508342794

Edited 1508342818
Terrelle S. said: I'm wondering if i can add a "language" such as "Thieves Cant"&nbsp; and have it set to translate only between people who know thieves cant? Thanks! Yes, as Spaceweasels replied that's the script purpose. I'm working on a dictionary functionality that will allow you to declare a specific translation for a given word which the script will take if available before trying to hash the word. That will work specially well for Thieve's Cant as you can translate things like "steal" to "buy" or "assassinate" to "hug", since Thieve's Cant is more of a code language.
Sarkamist said: I have names on my campaign like Therenvarys Ther Solaris or Eldon "Eyebrows" and the script is reading them well from the GM notes. Would you mind to explain how is it wonky? It was wonky, but after I restarted the API, everything seems fine now. I'll keep you posted.
This is what I setup for my Thieves Cant. There are a lot of recognizable words, but the script will mix them up in a confusing stew. cant 1-letter words: [I, O, E] cant 2-letter words: [Ye, Ya, Ne, Ni, Oi, Do, Yo, It, To, Al, Hi, Lo, De, He, My, An, Is] cant 3-letter words: [Ace, Tha, Tho, Oft, Bum, Aft, Wit, Cor, Dim, Fit, Gag, Gob, Kip, Dem, Mug, Jab, Jut, Ful, Yon, Pas, Pis, Jit, Jig, Ale, Fur, Puf, Ire, Pip, Rat, Dog, Row, Sad, Sod, Row, Waz, Wat, Sky, Kit, Hit, Haz] cant 4-letter words: [Daft, Crap, Faff, Dull, Duck, Flog, Grem, Grub, Hast, Knob, Mate, Mush, Naff, Nesh, Nick, Twit, Nowt, Quid, Goat, Ring, Suss, Well, Kill, Skip, Rule, Ahoy] cant 5-letter words: [Dicky, Dishy, Haggy, Jammy, Jolly, Knock, Lurgy, Parky, Twats, Pinch, Pisst, Quite, Potty, Right, Tools, Knows, Rumpy, Senda, Quids, Pulls] cant 6-letter words: [Diddle, Crikey, Luvvly, Jubbly, Shirty, Rugger, Smarmy, Smegly, Sodall, Sorted, Todger, Nitwit, Watcha] cant 7-letter words: [Jollies, Shagged, Scrummy, Rubbish, Snogger, Sloshed, Squidgy, Squiffy, Wangles, Measure] cant 8-letter words: [Knockers, Shambles, Smashing, Stonkers, Waffler, Wobblers] cant 9-letter words: [Shambolic, Scrumming, Snookered, Stonkings, Yakkingly] cant 10-letter words: [Six-sevens] cant 11-letter words: [Pork'nbeans] cant 12-letter words: [Deep-stevens]
1508366453

Edited 1508428884
I've uploaded all the languages I use in my own campaign to a&nbsp; new folder inside the script's GitHub repository.
1509139114

Edited 1509904239
Have a bunch of new features now available&nbsp; here . Examples on github are updated including the new features. v4.0.0 - Dictionary, ignoring text and language knowledge Dictionary functionality which allows translation of specific sets of words to a given translation (ex: [Hello, Goodbye: Hellobye] will translate every "Hello" or "Goodbye" to "Hellobye") . This feature also supports sentences (ex: [You will burn in hell: Ag naz logash] ). New languages created by the command --create have a new template with a functional example. Translation is done from top to bottom, that means if [Hello: Hi] is declared before [Hello: Hey], only the first one will apply as every "Hello" will be translated to "Hi" first. Text between two $ symbols are ignored by the script. (ex: A message such as "Hi $John$ how are $you today$" will translate as "Az John jag nag you today"). Ignored text will be displayed in grey color when translating. Tongues now supports knowledge of a language, when writting down the speakers of language you must specify their level of knowledge with a ":" next to its name followed by a percentage (ex: Mannimarco:100%, Goblin Warrior: 50%) . This affects both speaking and understanding of a language. Every word has a difficulty between 1 and 100, a language speaker only will speak/understand those words that meet their % of knowledge. Any words not translated by the speaker (character who is sending the message doesn't have enough knowledge) will display in blue color when translating. Any words not understood by the listener (character who is reading the message doesn't have enough knowledge) will display in red color when translating. If you don't want to use this feature just give every speaker a knowledge of 100%. Read me inside Github is updated including the new features. Hope you enjoy those new features!
1509149429
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Those are some really slick enhancements. I'm almost motivated to build a scenario around this script.
1509161555

Edited 1509162361
I get an error with V4. Seems the trim function is undefined or causing a conflict. For reference, the error message generated was: TypeError: Cannot read property 'trim' of undefined TypeError: Cannot read property 'trim' of undefined &nbsp;&nbsp;&nbsp; at apiscript.js:491:78 &nbsp;&nbsp;&nbsp; at Function._.each._.forEach (/home/node/d20-api-server/node_modules/underscore/underscore.js:153:9) &nbsp;&nbsp;&nbsp; at apiscript.js:487:35 &nbsp;&nbsp;&nbsp; at /home/node/d20-api-server/api.js:717:7 &nbsp;&nbsp;&nbsp; at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:560 &nbsp;&nbsp;&nbsp; at hc (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:39:147) &nbsp;&nbsp;&nbsp; at Kd (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:546) &nbsp;&nbsp;&nbsp; at Id.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:489) &nbsp;&nbsp;&nbsp; at Rd.Ld.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:94:425) &nbsp;&nbsp;&nbsp; at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:111:400 I tried restarting my API, but I still get this error on startup.
1509186420

Edited 1509186451
Spaceweasels said: I get an error with V4. Seems the trim function is undefined or causing a conflict. For reference, the error message generated was: TypeError: Cannot read property 'trim' of undefined TypeError: Cannot read property 'trim' of undefined &nbsp;&nbsp;&nbsp; at apiscript.js:491:78 &nbsp;&nbsp;&nbsp; at Function._.each._.forEach (/home/node/d20-api-server/node_modules/underscore/underscore.js:153:9) &nbsp;&nbsp;&nbsp; at apiscript.js:487:35 &nbsp;&nbsp;&nbsp; at /home/node/d20-api-server/api.js:717:7 &nbsp;&nbsp;&nbsp; at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:560 &nbsp;&nbsp;&nbsp; at hc (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:39:147) &nbsp;&nbsp;&nbsp; at Kd (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:546) &nbsp;&nbsp;&nbsp; at Id.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:93:489) &nbsp;&nbsp;&nbsp; at Rd.Ld.Mb (/home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:94:425) &nbsp;&nbsp;&nbsp; at /home/node/d20-api-server/node_modules/firebase/lib/firebase-node.js:111:400 I tried restarting my API, but I still get this error on startup. This is probably because you still have your old languages, you need to update all the handouts and set the level of knowledge of every speaker (ex on GM Notes: "John, Charles" must be "John:100%, Charles:100%" now). If you don't want to use the knowledge level, just give every speaker a 100%.
Looks really great. One thing that I noticed, though: In the GM notes, it is important to keep a space after the comma. E.g. "Mighty Dragon: 100%, Charles:20%". If you write "Mighty Dragon:100%,Charles:20%", then Charles gets a language boost and becomes fluent in Draconic...&nbsp;
Arthur B said: Looks really great. One thing that I noticed, though: In the GM notes, it is important to keep a space after the comma. E.g. "Mighty Dragon: 100%, Charles:20%". If you write "Mighty Dragon:100%,Charles:20%", then Charles gets a language boost and becomes fluent in Draconic...&nbsp; Thanks for reporting this, will take a look at that.
Sarkamist said: This is probably because you still have your old languages, you need to update all the handouts and set the level of knowledge of every speaker That was exactly the problem. Works perfectly now.
1509218994

Edited 1510332945
Arthur B said: Looks really great. One thing that I noticed, though: In the GM notes, it is important to keep a space after the comma. E.g. "Mighty Dragon: 100%, Charles:20%". If you write "Mighty Dragon:100%,Charles:20%", then Charles gets a language boost and becomes fluent in Draconic...&nbsp; Fixed this in a little update. Available&nbsp; here . v4.0.1 &nbsp;- Fixed GM Notes parsing Fixed an issue when parsing GM Notes not seprated by space after comma. Also, when speakers are written without a knowledge value after a ":" the script defaults the knowledge level to 100. Preventing parsing errors when swaping to the new version or just don't want to use the knowledge feature while keeping GM Notes cleaner.
Awesome! Thanks!
Will there be the ability to target multiple tokens with this eventually?&nbsp; It is cool, just would be nice to send the message to multiple people
Athedia said: Will there be the ability to target multiple tokens with this eventually?&nbsp; It is cool, just would be nice to send the message to multiple people You mean the ability to select multiple tokens and then using the command to make them all speak the same text in a given language? If not, care to give an example of what do you mean?
Hiya, love the script, but I have a small problem. Me and my group, being swedish and playing in swedish, have noticed that the script doesn't recognize and translate any of the "non-english" letters (Å, Ä and Ö). Can they be added or is that too much of a hassle?&nbsp;
Ravenknight said: Hiya, love the script, but I have a small problem. Me and my group, being swedish and playing in swedish, have noticed that the script doesn't recognize and translate any of the "non-english" letters (Å, Ä and Ö). Can they be added or is that too much of a hassle?&nbsp; I'm working exactly on this, currently trying to parse every unicode character in order to parse them as part of the translated words.&nbsp; I'm Spanish myself and play with my group in spanish, we spotted the problem with Ñ or characters with stress accent on them.
Sounds great!&nbsp;
Sarkamist said: Athedia said: Will there be the ability to target multiple tokens with this eventually?&nbsp; It is cool, just would be nice to send the message to multiple people You mean the ability to select multiple tokens and then using the command to make them all speak the same text in a given language? If not, care to give an example of what do you mean? Yep, that was the idea instead of having to send it multiple times. If not thats fine
1510332924

Edited 1510333000
New version available&nbsp; here dealing with non-english characters problem. As for the ability to talk with every selected token, I'm working on it. v4.1.0 &nbsp;- Non-english characters parsing Now tongues parses every Unicode letter as a valid character for translation.
Sarkamist said: New version available&nbsp; here dealing with non-english characters problem. As for the ability to talk with every selected token, I'm working on it. v4.1.0 &nbsp;- Non-english characters parsing Now tongues parses every Unicode letter as a valid character for translation. Just in time for saturday's game. Thanks a lot!
Hmm, I don't get how this works.&nbsp; I set up a handout just as you said I believe (From Tongues): [Draconic] language template succesfully created! &nbsp;but I get this message: !tongues Draconic hello (From Tongues): Draconic does not exist as a Tongues valid language!
Omegaman said: Hmm, I don't get how this works.&nbsp; I set up a handout just as you said I believe (From Tongues): [Draconic] language template succesfully created! &nbsp;but I get this message: !tongues Draconic hello (From Tongues): Draconic does not exist as a Tongues valid language! Check that you have a handout named "Tongues: Draconic". You have to provide the handout's name without the "Tongues: " prefix. When using the !tongues --create command maybe you provided the name between brackets? If that's the case you have to use !tongues [Draconic] in order to speak the language. You can rename the handout manually to "Tongues: Draconic" in order to use !tongues Draconic (text) , the script will reparse it.
Vocabulary: Infernal 1-letter words: [A, X, T, I, Y, '] Infernal 2-letter words: [Ya, Kk, Ax, Yx, T'i, Ma, Nx, Dy, Tx, Yv, Kx, Tw, Kn, Yr] Infernal 3-letter words: [Yrx, Brx, Yyt, Lar, Btx, Xtv, Yrk, Bor, Kar, Las, K'n, T'x, Y'k, Yvy] Infernal 4-letter words: [Brax, Xx't, Yrta, Braka, N'Ka, K'wa, T'rax, N'ga, Wrak, N'ga, Y'gay, Voyr, Klag, Ytar, Bark, Lark, Krak, N'tra, Nxch] Infernal 5-letter words: [Kobarx, X'laka, Yktor, Abalk, Kark'x, Minak, T'oxal, Jamak, Torak, R'aklax, Tarvo, Exeka, Arbak, Vaxka, Emira, Oblax, Xxalk] Infernal 6-letter words: [R'kalak, Ol'kalt, Exa'kla, Ytrava, Mantrav, Bachtax, Ubach, Jubak'n, Labrak] Infernal 7-letter words: [Nag'hack, Kublakx, Kalax'nx, Kubrhach, Ingarack, Achamax, Ubyrich, Inghala'n, Khal'nac, Iberacha, Tar'knach] Infernal 8-letter words: [Exoracha, Klach'tar, Knach'txa, Jyvax'yta, E'nrxtrav'n, Krach'Krach, N'gra'blach, Tra'ya'ngy, Agray'nch'x] Infernal 9-letter words: [Brach'la'tach, Labrach'nga, Chach'xxa, Xabrach'ya, Dorak'vaha, Machingaxtha, Thabraxha'lak, Hobrach'hova, Yiharax'nxch] Infernal 10-letter words: [Yatha'nxchy, Brach'aharch, Hayaxovach, Larkx'nga'yach, Karbach'nuya'ach, Ach'nx'gnhuya, Enyux'ny'xcach, Larbaraxakak] Infernal 11-letter words: [Tarbarax'ncho, Arxach'tgnach, Ubarachaxara'ng, Rah'barachak, Malachotarax, Xxaracha'ngroa, Blarachkarax, Xarurava'ngx] Infernal 12-letter words: [Omarax'txaboyrach, Jarak'graxal'benkrat, Brairak'krachax, Myddarach'ngach] Infernal 13-letter words: [Exekalarkachax, Larbarakh'nghay, Lobarochkaray, Ybach'nargh'liktor, Mamarax'naratkth] Infernal 14-letter words: [Racho'rach'krach, Umarach'nx'thabrak, Qxnarach'lak'yaharax, Vaxnarax'ngrtaraxha, Joblax'cha'bracharaxy] Some infernal I wrote up while being bored at work. So many X:s
now if only it was simpler to use... aka gibberish for all pcs who dont have the language listed in there&nbsp;&nbsp;Other Proficiencies & Languages section. i would have to separate&nbsp;out each known language then use common spelling for each. then simply have the api scan the list to know which pc speaks which language. then a macro to call a list of languages&nbsp;to speak in. so in essence&nbsp;the pc clicks the macro and drop down selects a known to them language writes there message. that gets output&nbsp;to chat those with it see the message without gibberish. those without get gibberish. Gm sees all
1510849487

Edited 1510849938
Sarkamist said: Omegaman said: Hmm, I don't get how this works.&nbsp; I set up a handout just as you said I believe (From Tongues): [Draconic] language template succesfully created! &nbsp;but I get this message: !tongues Draconic hello (From Tongues): Draconic does not exist as a Tongues valid language! Check that you have a handout named "Tongues: Draconic". You have to provide the handout's name without the "Tongues: " prefix. When using the !tongues --create command maybe you provided the name between brackets? If that's the case you have to use !tongues [Draconic] in order to speak the language. You can rename the handout manually to "Tongues: Draconic" in order to use !tongues Draconic (text) , the script will reparse it. **Edit**&nbsp; I had to remove the brackets around Draconic on each line of the handout as well.&nbsp; Got it.&nbsp; That's nice.&nbsp; Now I just need macros to let people pick from the dropdown which language they want to use.&nbsp; Awesome work.&nbsp; I love it. Thank you for your help, this worked perfectly.&nbsp; Now, however, I notice another issue.&nbsp; This is the export when I say something and it shows the word Draconic over and over. and this is what the handout looks like
lordmage said: now if only it was simpler to use... aka gibberish for all pcs who dont have the language listed in there&nbsp;&nbsp;Other Proficiencies & Languages section. i would have to separate&nbsp;out each known language then use common spelling for each. then simply have the api scan the list to know which pc speaks which language. then a macro to call a list of languages&nbsp;to speak in. so in essence&nbsp;the pc clicks the macro and drop down selects a known to them language writes there message. that gets output&nbsp;to chat those with it see the message without gibberish. those without get gibberish. Gm sees all The script is intended to be both system and sheet agnostic, so configuring it to get the speakers of a language from their sheets attributes its not the intended behaviour. About the macro, it can be done on a sheet basis as character abilities are system & sheet agnostic. I like the idea, maybe in the future I configure a command which allows you to select a token and it automatically creates the macro for all the languages it can speak.
Omegaman said:&nbsp; *Edit**&nbsp; I had to remove the brackets around Draconic on each line of the handout as well.&nbsp; Got it.&nbsp; That's nice.&nbsp; Now I just need macros to let people pick from the dropdown which language they want to use.&nbsp; Awesome work.&nbsp; I love it. Glad you solved the issue and liked the script!
Vocabulary: Celestial 1-letter words: [A, E, I, O] Celestial 2-letter words: [Ac, Be, Ci, De, Ec, Fi, Ga, Ho, Il, Jo, Ke, Ma, No, Ox, Pe, Qe, Re, Si, Te, Ue, Ve, Xe, Yu, At, Eu, Es, Fe, Tu, Ex] Celestial 3-letter words: [Ait, Amo, Arx, Aut, Nos, Bie, Cei, Deu, Eux, Feu, Gau, Hea, Ile, Jeu, Kau, Lie, Man, Nau, Ore, Cum, Til, Xau, quo, Yil, Fir, Tum, Via, Hos] Celestial 4-letter words: [Clu, Arma, Novo, Aue, Pro, Bei, Deus, Deux, Feux, Duco, Faux, Rota, Reus, Glau, Gile, Faue, Haue, Ordo, Ileu, Spes, Sedo, Juli, Kauo, Feur, Reni, Canu, Que, Unus, Unis, Tunc] Celestial 5-letter words: [Usque, Asper, Ascit, Autus, Auris, Barba, Credo, Dulcum, Erepo, Ideam, Nocens, Nuper, Ocius, Orbis, Otium, Uredo, Velum, Velut, Umbra, Ustilo, Solio, Sidus, Rigor, Etiam, Quasi, Ourus, Purus, Pulpa] Celestial 6-letter words: [Ventus, Ignoro, Lucrum, Iustus, Oculus, Videor, Vomica, Tribuo, Servio, Septem, Rursus, Rhetor, Reptum, Pulsum, Necdum] Celestial 7-letter words: [Undique, Epistula, Argentum, Lucerna, Instructus, Sumptus, Suggero, Stultus, Sive seu, Sapiens, Rex rigis, Revenio, Requiro, Repente, Ryxidis, Putator, Punctum] Celestial 8-letter words: [Tumultus, Baiulus, Opdormio, Offensio, Utpote, Tres tria, Seductor, Lamenta, Non secus, Rusticus, Receptum, Quoniam, Plurimus, Quilibet, Quicquid, Quamquam, Pudendus, Pregravo, Ouniceus] Celestial 9-letter words: [Velociter, Atrebatum, Calamitas, Confessus, Consultum, Iurandum, Hodiernus, Paupertas, Jumentum, Legatarius, Liberatio, Traiectum, Suspensum, Surrectum, Lacertosus, Summissus, Reliquum, Queritor, Quercetum, Phasmatis, Perversum] Celestial 10-letter words: [Vestigium, Canonicus, Brocherota, Constrixi, Elementum, Opportunus, Gratia agere, Infortunatus, Tornacense, Sophismata, Sepulchrum, Quodammodo, Quapropter, Pugnaculum, Promeritum, Potissimus, Menapiorum] Celestial 11-letter words: [Sollicitudo, Benevolentia, Brabatensium, Sanctimonia, Recuperatios, Quadraginta, Proinde quam, Nivellensem, Dare mutuum, Munimentum] Celestial 12-letter words: [Trium-Fontium, Somniculosus, Atque or quam, Quadruplator, Nichilominus, Moguntienses, Lenocinium, Interceptum] Celestial 13-letter words: [Traiectensium, Suppellectilus, Frofui profusum, Praetorgredior, Labefactum, Incompositus] Celestial 14-letter words: [Taceo tacuitacitum, Non solum sed etiam, Quotienscumque, Indux inductum,] Celestial 15-letter words: [Trado tradidi traditum, Traho traxi tractum, Lethargus, Imperceptus, Consui consutum, Comprovincialis] Celestial 16-letter words: [Tollo sustuli sublatum, Tondeo totondi tonsum, Lesciense, Incido in mentionem, Impraesentiarum, Chirographum] A jab on celestial. Persons fluent in latin should probably cover their eyes or something. :P