Candy Logo Copyright © 2025-2026 Candy Arts

Upgrades - Scenes
The upgrade doesn't move your 1.1.3 scenes into 1.2: the new Candy_DE folder starts with 1.2's own scenes, and yours remain in the 1.1.3 copy (Candy_DE/.Install/Candy_DE_1.1.3). The Upgrade Report lists them. Move back the scenes you need by hand. Most 1.1.3 scenes work in 1.2 after a few changes, described below. Their 1.1.3 scripts no longer work, and the Chat scenes can't be reused. Moving Scenes Back • Move each file together with the [file].uid[/file] or [file].import[/file] file beside it. The file then retains its UID, and the scenes that reference it still load it. • 1.2's Candy_UI.tscn, Testing_Scene.tscn and Default.tscn scenes work as they are. Apply your 1.1.3 changes to them, rather than replacing them with your 1.1.3 versions. • A scene folder setting that pointed to a folder you created inside Candy_DE now points to 1.2's default folder. The Upgrade Report names these settings: set them again once your scenes are moved back (see Scene folders, on the Data page). Scripts Every scene requires its corresponding 1.2 script. A scene whose script retains its name and folder in 1.2 receives the 1.2 version of the script through the script's path: Candy_Engine.gd, Choice_Menu.gd, the media players, the bubbles... The others must be attached by hand:
1.1.31.2
Dialogue_Box.gdBox_UI.gd
Portrait.gdMerged into Box_UI.gd (see Portraits, below).
Subtitles.gdSubtitles_UI.gd
Chat_Box.gdReplaced by Chat_Box.gd, Chat_Channel.gd and Chat_Line.gd (see Chat, below).
Backgrounds.gdBG_UI.gd
Bust_Scene.gdVN_UI.gd
History_Display.gdHistory_UI.gd
Input.gdInput_UI/Input_Text.gd
BG_Player.gd, Bust_Player.gdRemoved.
When Godot opens a 1.1.3 scene with a 1.2 script, it discards the stored settings that the 1.2 script doesn't declare, and saving the scene deletes them. Note their values before you save: the 1.1.3 copy retains them. The code you wrote in 1.1.3 scripts, such as hook functions, must be rewritten for 1.2: see Custom Code. Engine Nodes Some Engine settings were renamed, and others now contain names instead of numbers (dialogue_mode, text_to_speech...). Godot doesn't load their 1.1.3 values into the 1.2 script. Set them again in the Inspector, on every Engine node: in Candy_UI.tscn, and in your own scenes, including those outside Candy_DE. The settings are listed under Engine Settings, on the Data page. Default paths The default values of the Engine's paths changed in 1.2. An Engine node that left a path at its 1.1.3 default receives the 1.2 default, so update its paths (media_players_paths, bubbles_npc_path, bubbles_player_path, cs_paths...) to match its nodes. Canvas layers In 1.1.3, the root of Candy_UI.tscn was a CanvasLayer, which drew every UI Element in front of the game world, backgrounds included. In 1.2, the root is a plain Node, and the UI Elements are children of three CanvasLayers: BG_Layer for the Background Scene, drawn behind the game world, VN_Layer for the VN Scene, and UI_Layer for the other UI Elements and the media players (see Drawing Order, on the UI page). Their paths in the Engine's ui_elements_paths and media_players_paths include the CanvasLayer: UI_Layer/DialogueBox, UI_Layer/MediaPlayers/MusicPlayer... • Game code that accesses a node of the scene by its path must include the CanvasLayer: /root/candy_ui/DialogueBox becomes /root/candy_ui/UI_Layer/DialogueBox. • Game code that set the layer or visible property of the scene's root must set them on the CanvasLayers instead. • The EffectPlayer resolves its animation tracks from UI_Layer. A track that targets a node in another CanvasLayer starts with ../, such as ../BG_Layer/Backgrounds:modulate. • A Dialogue UI of your own retains its root node type: an Engine node can be a CanvasLayer, a Node or any other type. Speech Display Text nodes The dialogue_node setting of the dialogue box and the subtitles, and the speaker_node setting of the dialogue box, only accept RichTextLabel nodes. A Label assigned in 1.1.3 is discarded: replace it with a RichTextLabel. Colours Text and speaker colours are BBCode strings in 1.2: enable_text_color and text_color become enable_text_bbcode and text_bbcode, and the same applies to the speaker's colour. In 1.1.3, enable_text_color was enabled by default, with white text (black in bubbles and barks). In 1.2, enable_text_bbcode is disabled by default, and the text is displayed in the RichTextLabel's own colour. Voice players In 1.1.3, a single voice player, listed in the Engine's media players, played the voice of every Line. In 1.2, every UI Element that displays Spoken Lines (dialogue box, subtitles, chat, speech bubbles and bark bubbles) plays its own voice, through the node assigned to its voice_node setting. Add an AudioStreamPlayer with the Voice_Player.gd script to each of them (an AudioStreamPlayer2D or 3D with Voice_Player_2D.gd or Voice_Player_3D.gd for bubbles). A UI Element without a voice player plays no voice. See Voice Players. Portraits The portrait is part of the dialogue box in 1.2. Place your portrait nodes under the dialogue box, or assign them to its portrait settings (portrait_node, portrait_bg, portrait_fg, portrait_effect_player). Then set portrait_area to the node that is shown and hidden with the portrait, if it isn't portrait_node itself. See Dialogue Box. Chat The Chat was rebuilt in 1.2, as three scenes: Chat_Box, Chat_Channel and Chat_Line. A 1.1.3 chat scene can't be converted: build yours from 1.2's templates (see Chat). Changed Defaults Godot only stores the settings that differ from their default value. A setting your 1.1.3 scene left at its default therefore receives 1.2's default, which may differ:
Setting1.1.3 default1.2 default
default_z of the background scene10025
default_z of the bust scene10050
Background frame rates1 fps for frame folders, 10 fps for spritesheets30 fps
Portrait frame rates1 fps for frame folders, 8 fps for spritesheets30 fps
The frame rate settings were renamed too: image_fps becomes default_animated_image_fps, and sprite_fps becomes default_sprite_fps. A value of 0 applies the default of Candy_Properties.gd, 30 fps. If your scenes relied on the 1.1.3 values, set them again. The default file extensions are now empty, and also apply the defaults of Candy_Properties.gd, which are the same as 1.1.3's. Media Players Media players retain their 1.1.3 settings. 1.2 adds an access setting, Private by default: a Private player only obeys the Engine that lists it in its media_players_paths, as every player did in 1.1.3. See Shared Players.