26/06/2025 : VTS 7.1
Main new features
- New generation of characters: Enhanced graphic quality and greater variety in head models representing different ethnicities and ages. 30 character in this first version (15 women and 15 men). New items will be added quickly and regularly.
- Character Configurator: new features on the character creation page, allowing you to select clothing and colors according to your preferences (top, bottom, shoes). Already tens of thousands of possible combinations, not counting colors! In a future version, accessory management (helmets, glasses, etc.) will be added. Documentation
- [AI] Project generation from external content: In the AI-based project generator, you can now import one or more PDF files (or large text blocks) for the AI to use when generating the project content. Documentation
- [AI] 360° sceneries generation: A new scene-editing tool allows users to generate custom 360° environments from a text description. Documentation
- [AI] Generation with Mistral: You can now choose to use the French AI engine Mistral instead of OpenAI for generating projects, blocks, and texts. This offers a European-based alternative with similar quality. This configuration can be done in your VTS client space > Administration > External Services. Image generation still uses OpenAI.
- [AI] Use your own API key: It's now possible to use your own API keys for OpenAI, Mistral, and ElevenLabs, avoiding the use of VTS credits when these tools are used. This configuration can be done in your VTS client space > Administration > External Services.
- New synthetic voices: 40 new synthetic voices (via ElevenLabs) added, available in all languages, with a mix of male and female voices.
- New Flashcard block: An interactive block for reviewing material using flashcards—each card shows an image and a question, and reveals the answer upon user action. Documentation
- Revamped scenario end page: New design for displaying scores and badges at the end of a scenario.
- New project templates: 11 additional project templates available when creating a new project from the VTS Editor homepage. Default availability in 6 languages (English, French, German, Spanish, Italian, Portuguese). If you need another language, the auto-translation tools can support ~20 more languages. Documentation
- Optimized VTS Editor size: VTS Editor size reduced to 0.63 GB (down from 1.16 GB). More content is now downloaded on demand.
The Character Configurator is available for preview. Many new items (heads and clothing) will be arriving soon.
Click on the images to enlarge them
![]() |
![]() |
Other new features and improvements
Homepage
- New advanced search button lets you search across all project content.
- Button to translate multiple selected projects into multiple languages at once.
- New update option allows project update without duplication (though duplicating is still recommended).
- Full project/folder names now show in tooltips when hovered over.
Génération de projet (IA)
- Project title and subject are now separate fields.
- Dropdown to select training level: Beginner / Intermediate / Advanced.
- Pasting multi-line text into key messages splits each line into a separate message.
- AI now automatically selects the most suitable visual theme instead of defaulting to Standard.
- New ON/OFF option to generate background images for presenter scenes (intro, presentation, evaluation, conclusion).
- New ON/OFF option to generate badge images..
Appearance page
- It is now possible to delete a custom color theme.
- In a custom theme, hovering over an image in the list highlights where that image is used in the preview on the right.
- In a custom theme, it is now possible to choose the position of the background pattern.
- In a custom theme, in the advanced options for each image, an option has been added to adjust the thickness of an image's border.
Characters page
- Ergonomic redesign of the synthetic voice selection. It is now possible to listen to a voice without assigning it to the current character, and voices already used by other characters are indicated.
- First and second-gen characters (pre-2018) are no longer included by default and must be downloaded.
Media manager
- Button to bulk reimport selected media (instead of one by one).
- Option to replace media with AI-generated image now available in media details.
- Warning added when a media variable directly equals a media file—suggesting direct use of the media instead.
- On macOS, when the Alt + Click shortcut is used on a media file, the file name is also copied to the clipboard, making it easier to find the file by searching for it.
Badges page
- New ON/OFF option "Show notifications for already earned badges.'
Scores page
- When creating a new skill using AI suggestions, five score brackets (0–100) are added automatically.
Texts & Voices page
- In the list of characters in the filters on the left, a "Settings" button has been added to directly open the character's settings in the Characters page.
- In the automatic translation tool, a new "Context" field has been added to specify the context of the translation, enabling the tool to produce higher-quality results. For example, the French word "serveur" could be translated as "server" (IT) or "waiter" (hospitality); adding "hospitality" in the Context field ensures the correct translation.
- When automatic translation is enabled, the option "Translate notes" now also translates the names of Scene and Group blocks (except Groups in Function mode).
- On macOS, using Alt + Click on a voice playback button also copies the filename to the clipboard, making it easier to locate the file via search.
Texts edition
- Right-click on a word (with no spelling error) shows AI-generated synonyms.
- Text generator now includes a "Shorten" function, alongside "Complete" and "Rephrase."
- New button in the toolbar lets you uppercase selected text or the letter before the cursor (CTRL + T). E.g., type "é" and press CTRL + T to quickly get "É".
- ALT + A: switch to the next language in project settings.
- CTRL + ALT + A: switch to next project language and apply it to the VTS Editor interface (if available).
- When replacing a word using spelling suggestions, previously all instances of the word in the text were replaced. Now, only the clicked word is replaced, allowing for individual handling of each case.
Search tool
- Improved interface ergonomics, notably by adding mode selection [Find Text / Replace Text / Find Block], which now allows replacing text with an empty string—previously not possible as an empty field was treated as a regular search.
Colors
- Improved usability of the color picker. The picker is accessible whenever editing a color zone, appearance theme, or similar.
Scenario creation menu
- If the project contains multiple scenarios, double-clicking a scenario in the list opens its graph (as in versions prior to 7.0).
- If the project contains multiple scenarios, the F2 shortcut now allows renaming the selected scenario in the list.
Scenario preview
- When a preview is launched while accessibility options (e.g., font, interface size, colors) have altered project values, a warning message appears allowing the user to choose between "Launch anyway", "Launch and reset options", or "Cancel", helping avoid confusion from prior accessibility modifications.
- Improved F3 keyboard shortcut: it now correctly fills any green block (auto-selects correct answers in quizzes, correctly matches links in Matching blocks, etc.). Pressing the shortcut again validates the block, which allows adjustments before confirming.
- The keyboard shortcut N for editing the note of the current block becomes CTRL + N.
Graph
- You can now launch a module preview directly from any level in the breadcrumb trail using launch buttons that appear on hover, without needing to open that level.
- You can also launch a preview from any sibling element of a visible breadcrumb level.
- You can now preview a module directly from a bookmarked block via a launch button in the bookmarks list (tools on the left of the graph).
- In End of Scene and End of Group blocks, you can now assign colors to scene/group exits. These colors appear on the Scene/Group block at the higher graph level and also affect Function Call block exits if applied to Function Groups.
- The CTRL + R shortcut now rearranges the graph with straight links and evenly spaced blocks if the graph is linear.
- New keyboard shortcut: ALT + SHIFT + Q to add a "Wait" block in "Infinite" mode.
- You can now drag-and-drop a Note block onto another block to attach it beneath.
- While editing a note attached below a block, the CTRL + N shortcut can now transform it into a standalone Note block.
- When a scenario preview ends due to an unconnected block output, an error message appears at the bottom of the graph to help easily locate the problematic block.
Blocks
- New Reset Score block: allows you to reset either the global score (i.e., all skills) or a specific skill score, without using variables (via the resetScores function).
- Group block: if a Group block set as a Function is used in the scenario, the button above that shows its usages is now highlighted and displays the number of references.
- Group block: when trying to ungroup a Function Group, a confirmation message now appears.
- Speak block: added a button to reformulate all content in a Speak block using AI.
- Text Animation block: this block is now supported in Virtual Reality (VR) exports.
- Sentence Choice block: added an ON/OFF “Immediate Emotion” option in advanced settings to trigger character emotions as soon as the learner starts speaking, rather than waiting for the end of their sentence.
- Pairing block: texts in Pairing blocks could be quickly cut off on smartphones. They now shrink to fit the display area
- Clickage Zones block: optimized opening time of Clickable Zones blocks containing a large number of zones.
- Clickage Zones block: added an option to force the text of a zone to display in uppercase without editing the actual text or using the toUpper function when the text comes from a variable.
- Clickage Zones block: added a tooltip on the zone drag-and-drop button to display its position in the list, useful for referencing in variables.
- Scenery Interaction block: added an option to show/hide the mouse cursor when hovering over a clickable media slot.
- Form block: added an option to choose the size of multiline text fields (small, medium, large).
- Form block: added a "Time" input format to enter hours and minutes. If the module is in English, it uses a 12-hour format with AM/PM; otherwise, it uses a 24-hour format. The resulting variable always uses the 24-hour hh:mm format.
- Form block: added the F2 shortcut to rename the selected input entry.
- Form block: les caractères "vertical tab" (qui peuvent être créés en faisant MAJ + Entrée) saisis par l'apprenant sont maintenant transformés en simples retours à la ligne, ce qui donne un affichage équivalent, et évite certaines erreurs de sérialisation via les fonctions du type toJson.
- Wait block: Wait blocks can now be merged via drag-and-drop, summing their durations. Similar to merging for Speak, Variables, etc.
- Force 360 block: when a new Force 360 block is created, it now initializes with the default camera orientation of the current scene instead of (0, 0).
- Force 360 block: decimals are now accepted in orientation values over 100°..
- Return block : when returning to a Speak block, it now resumes at the line that was left rather than restarting from the beginning. For Wait blocks, it resumes the remaining time only.
- Return block: a third mode, "Continue sequence", has been added, allowing the Return block to proceed to the next output of the last Sequence block it passed through. This allows sequences of actions via the Sequence block without using long bridges of Return blocks.
- Variables block: added a “Breakpoint” mode, enabled via a round icon when a Variables block is selected. When active, the block pauses the scenario right after execution, letting you see which variables were modified and their new values, as well as inspect any other variable before proceeding. Breakpoint blocks are listed at the bottom of the “Variable Usage” window.
- Function Call block: added a SHIFT + F shortcut to replace the block with a Group block duplicating the entire referenced function content. Useful for creating variants. However, best practices recommend using parameters if the variation is minor.
- Web Request block: added an ON/OFF option “Use outputs for response” to skip success/failure outputs, allowing a request to be launched without waiting for feedback or interrupting the graph.
- AI Request block: added an option to use the designer’s VTS credits for testing in VTS Editor, without requiring an OpenAI API key.
- AI Request block: an error is now added to the project’s suggestions if no OpenAI key is set while using AI Request blocks.
Variables
- New variables
- _clickedMediaSlotName, filled when a media slot is clicked via a Scene Interaction block. This name can serve as an identifier if unique in the media slot list. Only the custom name is used, default names like M1, M2 may change if moved, causing errors.
- _vtsPlayerApp identifies whether the module is running in the VTS Player app (across all platforms)..
- _publicationDate contains the module’s publication date. In VTS Editor, it returns the preview launch date.
- New functions
- allowZonesLayerClick: enables/disables clickability of zones based on a layer or layer range.
- hideZonesInLayer: hides zones in a layer, with or without animation time.
- getHours, getMinutes: extract hours and minutes from a hh:mm formatted time (typically from a Form block).
- A variant of formatTime that converts a 24-hour time (e.g., "15:07") to a localized format based on the module’s language (e.g., "03:07 PM" in English).
- indexOf: finds the position of the first occurrence of a value in a list.
- allIndexesOf: finds all positions of a value in a list.
- keyOf: finds the key of the first occurrence of a value in a dictionary.
- allKeysOf: finds all keys of a value in a dictionary.
- getName, getDescription: get the name and description of a badge.
- getImageWidth, getImageHeight: get the width and height of an image media.
- A variable error is now shown if a variable is assigned a different type than previously (still allowed, but discouraged due to confusion/errors).
- Variables linked to media or badges can no longer be selected in the autocomplete list during variable assignment (and cannot be overwritten anymore).
- Most VTS variables (_userLastName, _time, etc.) are now usable in the module’s homepage (launch menu).
- "Variables usage" window
- Added a dropdown to filter by reference type: All / Reads / Modifications / Simple Assignments / Saves / Loads.
- Added a dropdown to filter variable names by: Contains (default) / Exact Match / Starts with / Ends with.
- Added an option to search only within the current Graph level (and its subgraphs), not the entire project or scenario.
- In the "Variable Tests" window, a button has been added to copy the entire contents of the selected Variables block.
Fixes
- VTS Editor home page: deleting a project that was a search result did not remove it from the results list.
- Project export: on macOS, from the VTS Editor home page, exporting a project to an existing file could cause the application to crash.
- Project: The time spent editing a project did not display the number of days (after 24 hours, it would start again at 0).
- Media: Replacing media now correctly updates its display in a media location in the scene being edited.
- Media: on macOS, importing video and sound may not have worked in some cases.
- Texts: on macOS, pressing Shift + Tab to move between text fields could insert a square character.
- Texts & Voices: it is now possible to replace text in unmodified text pronunciations (which creates a modified pronunciation for each corresponding text).
- Texts & Voices: automatic translation could in some cases replace & with &
- Web/SCORM publishing: it is no longer possible to select a GIF media as the background image for a Web/SCORM export, as this is not supported and can cause the export to crash.
- Web/SCORM publishing: it is now possible to copy and paste into text fields for modules running in a browser.
- Web publishing: a URI scheme with a space after url= did not work.
- Project suggestions: the “skill not used” warning appeared even when scoring was disabled for the entire scenario.
- Project suggestions: The “skill not used” warning pointed to the End of Scenario block instead of the Scores page.
- Scene loading: The loading text now uses the project font correctly.
- Scenery configurator: If a media or character slot was added to a custom scenery, and media or a character was placed in that slot, that media or character was not considered referenced in the project, which could cause errors upon publishing.
- Graph: Duplicating a selection in the graph could display an unnecessary warning message if blocks had previously been copied to another project.
- Group block: When ungrouping a Group block in Function mode, the Function Call blocks that referenced it are now updated correctly.
- Text Animation block: The custom background image for Text Animation blocks is now opaque, not semi-transparent.
- Phrase Choice block: It was impossible to generate voices for a Phrase Choice block if the learner's voice was disabled but the “Pre-listen to voices” option was enabled.
- Quiz block: When a question spans two lines in a Quiz Block in Order mode, the question number disappears in certain theme skins.
- Quiz block: When a Quiz Block in Grid format had 7 or more choices, the images for the choices could be blurry.
- Media in Scenery block: the display of videos in a media slot could in some cases stretch and display black bands for 1 second before displaying correctly.
- Text Field and Numeric Field block: sound media did not have the interface to replay the sound.
- Numeric Field block: in Decimal mode, if the expected answer was a whole number (e.g., 100), it would not validate if .0 was written at the end of the number (e.g., 100.0). Conversely, if the expected answer had a .0 at the end, it would not validate if the .0 was omitted.
- Conversation history: if the character's name is displayed in the subtitles, it is now also displayed correctly in the conversation history.
- Resources: when the learner tries to open the resources but there are none available, a message is displayed, and this message did not correctly use the display colors defined in the project.
- Texts: When a voice is played from the toolbar above a text field and the field in question is reselected, the voice is no longer interrupted.
- Group block: when a Group block in Function mode was executed directly via the scenario preview launch button, its parameters are now correctly initialized to their default values.
- Text Variables block: the preview of texts displayed on a Text Variables block in the graph is now correctly updated when the project language is changed.
- Variables: variables assigned to skills are no longer listed in the variable autocomplete menu if scoring is disabled for that scenario.
- Variables: the hover effect on an area was still active even when a Variables block had executed the allowZonesClick(false) command.
- Variables: if allowZoneClick(false) is executed, the next zones created will be non-clickable.
- VTS Player: in some cases, it was impossible to display the badges for a module without having already launched it.
- Module password: the password field was displayed in plain text when launching the Experience.
- ${ child.title }