Frequently Asked Questions
This FAQ covers the most commonly asked about topics or questions from developers like yourself. The information here is updated regularly as systems are improved and new common question trends emerge.
Questions are separated into broad categories relating to specific topics.
Safety
Players making characters say inappropriate things
Inworld’s Safety features ensure a character responds with variations of “I’d rather not discuss that.” for inappropriate topics. Players will typically either end the conversation themselves or try a more acceptable approach after hitting these roadblocks.
Why did my account get banned?
If certain characters are designed in a way that violates our policies or if repeat safety system abuse is detected, your account may be suspended or auto-banned. This is more likely for characters related to genocide, discrimination, and the promotion of self-harm.
If you believe that your account was suspended without justification, contact: support@inworld.ai
Language and Voice
Support for multiple languages?
Inworld is actively expanding its capabilities to include support for multiple languages. Initially, this includes English, Mandarin (Simplified Chinese), and Korean, with more languages to come.
Multilingual support aims to make Inworld's interactive characters accessible to a broader global audience, allowing more users to engage with characters in their native languages.
I already have a voice actor or existing synthetic voice for my character
If you already have a voice actor or synthetic voice prepared for your character, Inworld can work with you to collect voice data and train a custom voice for your character.
The Inworld Voice options are also constantly being worked on and improved, granting you increased options when choosing an AI voice for your character.
My character is mispronouncing a word that’s important to my project
The AI can sometimes struggle with pronouncing specific words when they read them, especially if these words are unique names or proper nouns.
The primary way of solving this is to use the Custom Pronunciation system to craft the word in the way you want it to be pronounced.
Character Behavior
My character talks about things they aren't supposed to know about
If your character is talking about things they shouldn't be talking about, make sure you add details in their Core Description and Personal Knowledge that specifically state topics your character won’t discuss.
Using these fields, can even give the character emotional reactions to certain topics. Perhaps they become uninterested when someone brings up world events and quickly change the subject back to the quest they are trying to deliver.
My character is doing things I don’t want them to do
Getting a character to act precisely as you envision them can take time to iterate and fine-tune.
It is recommended you use our Crafting a Character guide to assist with adjusting and fine-tuning your character's behaviour.
My character’s emotions are too extreme or volatile
If you character is exhibiting extreme emotions or if they are changing emotions too quickly, make sure your character's Mood and Personality Sliders are properly reflecting the behavior you want them to.
Additionally, make sure your character’s emotional sliders are not contradicting each other. For example, maximum Joy combined with maximum Anger.
Also be sure to check your character’s Emotional Fluidity Slider and that it is not set to maximum Dynamic Emotions, the character’s emotions will shift regularly.
Finally, if you are using the Goals system, you can use Emotional Triggers to align your character’s responses with specific emotions.
My character’s responses are too long
If your character is giving overly long responses, you can implement a Custom Dialogue Style that specifies "1 to 5 word" responses (or your preferred length) using the Adjectives field.
With this Custom Dialogue Style set, the character will still occasionally give longer answers if the player says something like "tell me a story" or "tell me every detail", which can be appropriate within specific situations.
If you want to absolutely limit response length, you can add words like "short" or "brief" to the character's Custom Dialogue Style to further reign in the length of responses. However, note that if you do this and the player says "tell me a story", the character will likely just say simply "no" or "I'd rather not."
How do we assign a role to the player?
You can use the Player Profiles settings to define a variety of information related to who a player is and what their interests are.
In addition, if the player character is consistent, you can enter details about the player in the character’s Core Description and Personal Knowledge fields.
Using these fields, you can include information about the player and their relationship to the character that the AI then uses to inform their interactions with them.
Characters that learn from what the player says and does
Using the Long-Term Memory system, characters can remember previous interactions they have had with the player, using these memories to influence future responses.
Updating a character’s behaviour during play
You can use Scene Triggers to create dynamic changes during interactions with the player.
You can also influence how a character acts with a player beforehand through the Facts and Knowledge, Motivations, and Personality fields.
Can characters end a conversation on their own initiative?
Yes. You can use the Goals system to create an instruction to end the conversation.
If you wish, ending a conversation can include a specific goodbye message from the character.
At this time, the player can still continue the conversation after the character’s goodbye. However, an end-of-conversation feature is currently under development.
Sometimes an Emotional Change with a Goal doesn't persist
If an emotional change you have set to trigger with a Goal does not stick, create a blank follow-up instruction with an Emotional Change to either your preferred Base Emotional State or a Neutral state.
The Neutral state acts as a reset to the emotions, allowing new emotions to be be triggered afterwards.
Managing and Testing Characters
Is there a fast way to duplicate a character?
Within Studio, hover over a character’s profile picture and select More.
Them, select Duplicate Character from the options provided.
A confirmation interface for the copied character then appears.
Give the new character a name and select your workspace, then select Duplicate to create them.
Rolling back a character’s design to an earlier version
Standardized save/load capabilities for characters are currently still being developed.
However, in the meantime it recommended you use the Duplicate Character workflow detailed above to save a time-stamped "snapshot" of your character.
This way you have a backup of you want to roll back to a previous version before these changes were made. This allows you to work with confidence when overhauling a character, knowing that the previous version remains untouched.
When you save a version of a character this way, it is recommended you utilize the Tags field in the character's Identity to note they are a different version.
Testing incremental changes to a character
To test a "A version" vs a "B version" of a character, Duplicate the character using the steps given above.
Then, make whatever changes you want to test to the second character.
Once your changes are complete, opening a chat with both characters allows you to compare responses to the same question. Consider using the Regenerate Response option to better determine the character’s response range.
Confirming a report of an unexpected interaction
To examine or confirm any unconfirmed QA bug report on a character, use the Chat Logs to select the relevant chat log.
These logs allow you to access previous conversations that users have had with that character within that workspace.
For safety purposes, all interactions are anonymized by default. Interaction data is available within the workspace where the character originated.
Character Behavior Support
If you require additional support in analyzing unexpected character behaviors, you can submit a Support Intake Form.
When submitting this form, make sure to include the Interaction Session ID in the support request, so the Inworld team can directly reference and investigate the unexpected behavior.
Making sure a character is connected to the session
To assure your character is connected to your ongoing session, use the method that matches your platform, listed below.
Unity
For Unity, use the Inworld Controller to get the Inworld Client. This exposes the connection Status, and to Get/Set Characters to interact with.
Unreal Engine
For Unreal Engine 5, reference the Inworld API Subsystem to get the Connection State and bind an event listener to the On Connection State Change enum.
To check if the player is interacting with a character, you can reference the Inworld Player component to call the Is Interacting and Get Target Character functions.
Web
For Web, you can get the connection status using a reference to the Client, connection = client.build(); and calling isActive();. This is available only if you do not use auto-reconnect and configuration.connection.autoReconnect = false.
To get the current character, you can reference the client, established above as connection, and call connection.getCurrentCharacter();.
LLMs
What LLMs does Inworld's AI use?
Inworld utilizes more than 20 models throughout our platform. In addition to Large Language Models (LLMs), we have text-to-speech, speech-to-text, safety models and more.
In terms of LLMs, Inworld’s platform can be used with both third party models and our own proprietary models. These include some models Built With Llama. We work with our customers to determine the best fit for their use case, taking into account latency, cost and quality.
Can I use my own LLMs?
If needed, you can transfer text and audio input from users to your own LLM, and then later to the Inworld character using a ‘say_verbatim’ action defined in the Goals system.
You can then use a trigger to deliver the response from your LLM as a Trigger activation parameter defined with: say_verbatim: “{{p.parameter}}”