I'd say get the player to "clear player data cache" (use the "nuclear" button in top right on the "Join Game" screen) as it looks like a portion of the extension hasn't loaded properly.
Printable View
Thanks for the extension, I'll check the additions out...
I had thought about this, but it would have to be hard coded, e.g. "dwarven = dwarven", as it is essentially a list of all of the fonts in the extension and I don't think there is a way of programatically finding a font name that is valid - especially one specific to an extension.
I'll look to add the default languages as hard coded to the /listlanguage command. This would then rely on anyone who added additional fonts to a custom extension to amend the hard coded list as necessary.
Ah, yes, I see. I'd been thinking there might be some way to do it programmatically, but if there isn't, it may not be worth adding a hard-coded list.
I had this happen to a fellow player in our Saturday game. We tracked it down to the use of a parenthesis in the text header to the left of the typed text. It would happen each time I used the /mood command.
The first time it affected one player but the next week it affected a different player and the first no longer had the issue. Clearing the cache didn't help since both players had to do so to fix other problems. We assumed it was the use of the 2.9.x language extension that was doing it and the GM turned it off. The game stopped before we could continue testing though.
Reply #2:
I've looked into this more - and even if there was a problem with the "special message text" due to some other chat functionality this shouldn't stop the chat being displayed in the correct font, as this is not part of the special message handler - it is purely the GM side pushing chat in a specified font. Because the language font in the screenshot showing the issue is just the standard font - this is looking very much like this specific player's FG didn't download the extension correctly (as you supposed above), so it didn't have the available language fonts. If the player's console was open (type /console in the chat window) they would have seen a warning along the lines of "unable to load font elven".
dr_v - How have you configured the "elvish" and "orcish"fonts? The name for these fonts by default in the extension is "elven" and "orc", so I'm curious if you've used the new /setlanguage functionality or modified the extension directly?
If you used the /setlanguage functionality and if this issue occurs again please get the player to log out, clear their data cache and log back in and see if the same issue occurs, hopefully they will have downloaded the extension resources properly next time.
If you have modified the extension directly what changes have you made?
Thanks for that - I like the differentiation between speaks and understands, and the addition of tongues and comprehend languages. :)
I like the 3 new fonts too!
I noticed, like you I guess, that some fonts didn't have changed numbers; I hadn't spotted the problem with capitals.
I've been thinking about the random character addition, perhaps over thinking? I think you're right that what I originally did made things longer than usual in my first attempt at the code. I may re-visit and add/subtract a few characters based on the length of the original word, so this could help to keep the length down on average. Perhaps something like words of 3 or less just have 0-2 characters added, words of 4-6 characters have between -2 and +2 characters, words over 6 have between -3 and +3 characters - this would result in the total sentence on statistical average being slightly longer (based off 3 character or less words being 1 character longer on average), but the longer words would have a statistical net length change of 0.
I don't think I'll do a new release until the issues dr_venture and Nickademus have mentioned are checked and have a fix (if a fix in the extension is the right place).
Thanks for the ideas and the code - I'll definitely combine these into the next release...
I directly edited the extension.xml file to have all of the languages (and spellings) represented - the elvish and orcish entries are thus:
I assume the entries are correct, as everything is just copied-pasted from other entries... or in the case of Elvish, I just changed that entry's spelling.Quote:
<font name="elvish">
<fgffile name="fonts/dnd4eelvish-regular-14.fgf" />
<color value="#000000" />
</font>
<font name="orcish">
<fgffile name="fonts/dnd4edwarvish-bold-14.fgf" />
<color value="#000000" />
</font>
I haven't even looked at the /setlanguage command - which I will do now :)
When you modified the extension did you give it a different name in the extension.xml and the .ext filename?
If you didn't use different names, can you check with the player who was having the issues and see if they have the unmodified extension installed?
I think that if they had a copy of the unmodified extension that it may have been using that and elvish and orcish would not have matched with fonts in base extension.
Just as an FYI - If you modify an extension from the base release, it's best to give it a different name so that players will download your updated extension rather than using the original extension if the names are the same.
Good point! I didn't change the name - I'll do that now. FWIW, Andraax was in the game and he mentioned that he had it installed, too, but he was seeing the languages correctly. That said, name conflicts may cause weirdness to abound, so I'll change the name and see if it clears up. I'll also see if the player who's screenshot I shared had the extension installed.
I'm not 100% convinced that this would cause all of the issues seen (it doesn't explain the unknown special message error), but it is good practice to change the name.
I still think this could be related to the player not downloading the extension correctly - as this would explain the missing font and the special message error.
I wish I could. I wasn't the GM and thus don't know the settings he was using, nor is the game going anymore so we can't continue to experiment. It had an element of randomness since it didn't always affect the same player. Though one thing I know is that it didn't stop any messages from coming through. It just provided an error in addition.
I think I remember one of the players saying that all languages were translating for him while this was occurring. That's all I've got.
Well, I was thinking something similar! I decided to keep it simple at first, but I do think it would be good to also reduce some words in length. Your scheme sounds like a good one. I'd kind of like to do it in one operation, though - with a single random number being scaled by the original word length to add or subtract an appropriate number of characters (down to a minimum of 1). Perhaps that's me over-thinking it!
I'm afraid not, Blackfoot - that's beyond my FG coding skills! As Trenloe said, it only looks in the list of languages on the Notes tab of the character sheet. I intended it mainly for characters who have permanent versions of these spells, but you could use it for impermanent ones, too, by adding the spell name to the languages list when it's cast. Just write yourself a note (in the spell effect on the Combat Tracker, perhaps) to remove it at the end of the duration!
This isn't as hard as you might think... lemme see if I can find the code... I was just working with it.
Or something like that should do the job.Code:local aCLangSpell = EffectManager.getEffectsBonusByType(rTarget, "COMPREHEND LANGUAGES", false, {});
local aTongSpell = EffectManager.getEffectsBonusByType(rTarget, "TONGUES", false, {});
if #aCLangSpell > 0 then
end
if #aTongSpell > 0 then
end
I have a humble request for the next release of this extension. Can you add a slash command called "/font <languageName> <text>" that will display the text in the language's font without the scrambling effect? This would be ideal for English-based languages that the player/GM wants to use a specific font when displaying. (Or just a player-side option to disable the scrambler.)
Unscambled slashandler added to the development list.
There is the /fc <font> <text> options available now (fc = fontchat) but it does use the scrambler - the only difference is that it doesn't check for languages and do translations. Your idea was probably what Tenian had in mind when he originally made the extension, but the scrambling code has since been added across the board. I think there is still a need for /fc to still be scrambled - in case the GM wanted to speak in a specific font without any of the players having a chance to know it - i.e. it isn't a language in the list, but you need to specify a language (font) to get the text to display.
You wouldn't want a player side option to disable the scrambler as that allows a player to stop scrambling and use the copy/paste "cheat" to find out what is being said in a language they don't understand. The "cheat" was the whole reason for language scrambling.
Thank you sir.
While I could have been more clear on the player option, I meant that it would disable the scrambler on /font text, not /lang. This would allow the GM and players to use the /font for English-based fonts or the languages fonts and the GM to still use /lang with the guarantee of no cheating. Otherwise a player couldn't use a custom font unless the GM turned off the scrambler for all languages.
Perhaps I'm just too tired to understand this, but I thought you already implemented the ability to add languages to the list. A GM with a desire for a special language would just add one with a name no one has. I'm not seeing the need for /fc to be scrambled.
Of course, none of that matters if you're adding a slashhandler that would let the players manually type in unscrambled text.
Then for every untranslated language a GM wants to use they would have to /setlanguage for each individual one before they use it - suddenly it is a 2 step process to get untranslated language fonts working. Then the GM probably has to use a custom language name that they are familiar with (so they can remember it for next time), and so there is always the outside chance of a player guessing and putting a bunch of languages in their list, or the GM not knowing the a player has "demon" listed as a language. I try to eliminate any such chances in my code wherever possible - even if they are incredibly remote. /fc being scrambled allows the GM to know that if they type "/fc abyssal Hello there!" there is no chance of translation and players can't use the cheat method to find out what is being said.
There will be at some point. :)
The extension is very nice, and I'm happy to see something like this in the works. I have two things in note, however; One is a suggestion, the other is a bug that I continually experience.
One, in regards to the Language Toggle in development, would it be possible to make it so that certain players or characters speak in a specific language until un-toggled? I ask because it would be very useful in cases where certain characters can only speak some languages, which are removed from the norm (For example, our whole party can speak Common, and makes an effort to communicate with it. Our rogue, however, can only speak Undercommon and Sylvan, due to his race and intelligence bonus, and thus relies on two other characters to translate for him)
Two, I get a strange error whenever I try to use any of the slash-handlers for custom languages. I attempted to use both /listlanguages and /setlanguage, but whenever I try, I get either of the following:
Quote:
Script Error: [string "scripts/fontchat.lua"]:76: attempt to concatenate a nil value
Quote:
Script Error: [string "scripts/fontchat.lua"]:143: bad argument #1 to 'lower' (string expected, got nil)
I've gone through the code and I can see where these 2 errors could occur - it is when the /setlanguage command is used without the correct format.
I will work on making the extension more robust around this code at some point soon.
The fix is to close Fantasy Grounds, edit the db.xml file in your campaign folder and delete any blank <id-XXXXX> entries from the <language_extension> section.
Make a copy of your campaign db.xml file before modifying it! (Just in case).
For example, the following has a problem <id-00002> entry:
Delete <id-00002> and the closing tag </id-00002> to give:Code:<language_extension>
<id-00001>
<fontname type="string">osiriani</fontname>
<languagename type="string">egyptian</languagename>
</id-00001>
<id-00002>
</id-00002>
</language_extension>
Save db.xml and load your campaign. You should be able to use /listlanguages and /setlanguage without errors now. But, make sure you use /setlanguage correctly (until I update the extension to stop this issue) otherwise this error may occur again.Code:<language_extension>
<id-00001>
<fontname type="string">osiriani</fontname>
<languagename type="string">egyptian</languagename>
</id-00001>
</language_extension>
This still work for 3.0.3?
No, I just naturally remove all extensions when a new update is put out until I hear they are compatible.
I kind of came across some issues with the plugin, lately.
It seems that if I set custom languages, they only seem to work for me, and players who attempt to use the languages just get a bunch of garbled words and numbers. For example, I have two custom languages in my campaign: Kerani, which uses the Druidic Font, and Solean, which uses the Osirian font. Both work when I use them, and players can see the font fine. But if the player uses them, there are no fonts, just a random collection of numbers and letters (eg m2m31ml2kmlebube1u2ej22).
Edit: posted on the wrong thread.
Thanks, Trenloe for all the hard work on this extension.
I featured this extension on the Fantasy Grounds YouTube Channel, G+, FB and the Steam Videos section. Very cool work.
I'll have to look at including this type of thing when upgrading The One Ring ruleset. Be nice to see Khuzdul or Quenya characters appear for Dwarf and Elf characters.
Forgive me for not reading the full thread, but is this available for 5E?
Hello,
So the DM was asking me today about something in specific. What he missed in the old language plugin was that you could see "A is speaking in X"" where A is a player and X is the name of the language. If you knew it, it showed the translation. If you didn't, it doesn't. It is like that now, but what he would like is at the very least, an option to possibly turn on as a GM so that it does so still in stead of just "A is speaking:"
Is there a setting we just haven't tried or is this something that can be implemented? I know that asking for it to just be the new default (which would be an old default technically) is probably asking much since everyone's preferences is different, so just wanted to see if there was at least an option to change it or perhaps implementing one.
Thanks!
I can't remember why, but there was a good reason for changing it.
The GM can still see what language is being spoken in the line beneath the language font, it will say "Translated Elven" for example.
EDIT: I looked back in an older thread and the reason the language name was removed from the first line was because everyone sees this, even if hey don't know the language. That is why the layout was changed so that only people who understand the language know what language it is for sure. Others may be able to guess what it is based on the font, but that is all.
Correct. That is what the GM and the group in general want. The GM kinda wants to go to an older version, but he disliked having to manually go in and make a new language set if it needed to be made, not to mention how finicky it was with the language name needing to be spelled I believe in all lower case (I believe capitalizing any single letter including the beginning, it bounced back with an error). I think it also partially has to do with some people remembering which symbol was what (example, Elven being more interesting to look at before vs current elven). Though, based on what its stated here, as long as they have the font, they can change it by finding the font they want to use and placing it into the folder, correct?
Sorry, I'm confused what you're actually asking for now. :)
Post #3 of this thread shows you the list of all fonts available - and their names. You can use lower case or upper case or any combination of case - the extension specifically ignores case.
With the addition of the slash commands to allow campaign custom mapping of language name to font you can pretty much map any language name you want to the fonts included. More info here: https://www.fantasygrounds.com/forum...l=1#post167105
Back to your original request. I currently have no plans to add the old "X is speaking Y" as a campaign option in the immediate future. I take the Smiteworks opinion of trying to match 80-90% of the required functionality and not add too many additional entries to the campaign options menu. I've added it as a feature request in post #2, but make no promises if/when this will be made available.