Added ability to offset objects within their tile by adjusting XYZ values from the Entity Properties panel in the Map Editor
Added ability to add multiple objects per tile in the Map Editor (Z offset will be automatically set when hovering over an existing object, e.g. a table)
Added ability to rotate objects around the X and Y axes (in addition to the Z axis) from the Entity Properties panel in the Map Editor
Added "View Model" camera setting to gameplay configuration for assigning a model to attach to the camera while in first-person (model needs attach point with ID of "camera")
Added special global property "view_model" as a temporary way of referencing the view model attached to the camera (e.g. play_animation(global.property["view_model"], "anim_name"))
Added "Background Image" option to NPC, Player, and Message nodes for displaying a background image during dialogue (located on node toolbar next to style override)
Added "speak" pre-defined animation for characters that will automatically play whenever they're the active speaker during dialogue
Added "Behaviors" section to the Game Configuration dialog for managing NPC behavior presets without needing to use the Map Editor
Added "Display Name" setting to the Voxel Editor and Map Editor for assigning an object's display name (used when interacting with multiple scripted objects via keyboard)
Added "Custom Properties" section to the Item Editor for defining custom item properties (string, number, or boolean types)
Added "Loading Image Override" setting to the Map Properties panel for overriding the default loading screen image per map
Added popup dialog when enabling free movement from the Game Configuration dialog with information about the feature being in an alpha state
Updated attach point tool in the Voxel Editor to allow attach points to be created by clicking directly on the grid without the need for an existing voxel
Updated "Duplicate Frame" functionality in the Voxel Editor to copy any existing textures to the newly created frame
Updated alpha slider in the Voxel Editor to allow values between 0 and 0.9 and changed the increment value from 0.05 to 0.01 for allow for finer tuning of transparency
Updated alpha slider in the Voxel Editor to include icons on each end of the slider to make it more apparent which end is which (min vs. max alpha)
Updated movement speed setting for tile platforms to allow speeds in increments of 0.1 instead of requiring an integer value
Updated "On Equip" and "On Unequip" item script functionality to store the equipment slot ID in a local variable named $slot for use in the script
Updated "Add Effect" scripting function to properly validate the effect name parameter to ensure the value is a string
Updated "Detach Object" failure message from an error to a warning when attempting to detach an object from an attach point with nothing attached
Updated dialogue functionality to not use typing effect when called from the "Display Choices" function without a speaker entity specified
Updated stretch mode for background image in the Main Menu Editor to default to "Keep Aspect Covered" for best compatibility
Bug Fixes:
Fixed issue that would sometimes cause a crash if the player saved the game after having dealt damage to an enemy or having received damage
Fixed issue where directional attack animations for characters ("attack_north", etc.) were not being properly triggered in certain scenarios
Fixed issue where disabling mouse movement controls in the gameplay configuration would prevent tool item scripts from working on tiles
Fixed issue where the player's mouse sensitivity setting was losing the correct sensitivity value after restarting the game
Fixed issue with "When Player Interacts" and "When Next to Player" resource dropdowns not being hidden when an NPC was set to be attackable from their behavior settings
Fixed issue with the obstacle reaction script dropdown on the NPC behavior settings panel not being populated with values until clicked on
Fixed issue with the obstacle reaction script dropdown not being hidden on the NPC behavior settings panel when switching to a move direction of "None" or "Random"
Fixed issue where undo/redo actions were not being created when an entity's scale was changed from the Entity Properties panel
Fixed issue that could occur in-game or in the Map Editor when editing or referencing a tile that previously had a character on it but the character had been removed
Fixed issue in the Map Editor where a tile sometimes couldn't be deleted from the map ("remove_entity_id_lookup" error was displayed in console)
Fixed issue where the Y and Z values of an entity's scale were switched on the Entity Properties panel when selecting an object or character in the Map Editor
Fixed issue where models with transparency could be seen through the marker icons that are shown above entities in the Map Editor
Fixed issue with "Add Object" scripting function where attempting to use an invalid tile coordinate was not being properly handled and displayed in the console
Fixed issue with "Hide Group" and "Show Group" scripting functions not working properly when used to hide/show effects
Fixed issue with "Display Image" scripting function not working properly unless both the duration and background color were explicitly specified
Fixed issue where the "Character enters tile" event wasn't being triggered after the player character was moved with "Put Player" then walked to another tile
Fixed issue where the "Character stops on tile" event wasn't being triggered after the player character was moved with "Put Player"
Fixed issue in Combat Editor where the battle map dropdown was not being updated when switching to a menu-driven turn-based battle
Fixed issue that could occur when attempting to attack with an unlimited use ranged weapon that didn't have an object model defined
Fixed issue where characters configured as "Two-Dimensional" were being rotated when firing a ranged weapon instead of only triggering their directional attack animation
Fixed issue in Dialogue Editor where a player node could be dragged back on itself, which would then result in a broken dialogue
Fixed issue in Dialogue Editor where player nodes would be dragged when attempting to drag and select the dialogue text while in compact mode
Fixed issue in Main Menu Editor where the background image's appearance was not being updated properly when switching images until the editor was resized
Fixed issue with the stretch mode for main menu background images and loading screen images not working properly when the image was larger than the screen size
Fixed issue where changing properties in the Effect Editor would affect another effect after using "Save As" to copy an effect then opening the original effect
Fixed issue with Y and Z scale values on the Model Properties panel being reversed for attach points in the Voxel Editor
Fixed issue with UI theme not being properly applied to equipment slots, shop item slots, and crafting input slots
Fixed issue where the editor was not properly checking for changes to the Quest Editor or clearing out the quest list when closing the project
Documentation:
Added initial version of built-in docs for "Pushing", which includes a basic walkthrough of how to set up a pushable object
Added initial version of built-in docs for "Skill Slot", which includes basic info about the skill slot element and a scripting example
Updated "Scripting Reference" built-in docs to include list of global, map, camera, party, and system variables
Updated "Entity Properties" built-in docs to include descriptions for each tile trigger event (including new events for pushable objects)
Updated "Tile", "Object", and "Character" built-in docs to include info about the "textures" property, which returns an array of textures for the entity
Updated "Tile", "Object", and "Character" built-in docs to include info about "attachment["x"]" and "effect["x"]" properties for referencing attachments and effects
Updated "Character" built-in docs to include info about the "behavior" property for retrieving and modifying a character's behavior
Updated "Map Editor" built-in docs to include info about using Shift and Shift + Alt to add/remove entities from the current selection
Updated "Global Event Scripts" built-in docs to include info about several global event scripts that were missing
Updated "Conditional Expression" built-in docs to include info about the "!contains" syntax (i.e. "doesn't contain")
Updated "Debug Console" built-in docs to include info about using "self" keyword to reference the entity at the mouse cursor's location
Updated "Codex" built-in docs to include a code example of inserting a new key/value pair into a codex
Updated "Array" built-in docs to include info about the "remove" function and a code example of using it with an array
Updated "Give Item", "Remove Item", and "Add Item To Container" built-in docs to include info about return values (i.e. number of items added/removed)
Updated "Add Tile", "Add Object", and "Add Character" built-in docs to include info about return values (i.e. reference to new entity)
Updated "Assign Entity ID" built-in docs to include info about return value (i.e. true if the ID was successfully assigned, false otherwise)
Release Notes for v1.0.6.4
New Features/Changes:
Added initial background map implementation for menu-driven turn-based battles (assigned in Combat Editor, party members spawn starting at center of map going eastward)
Added "Object enters tile", "Object stops on tile", and "Object exits tile" trigger events for tiles for use with pushable objects ($object variable contains object)
Added "On Equip Script" and "On Unequip Script" settings to the Item Editor for equippable items, which get triggered when the item is equipped/unequipped (self is character, $item is item)
Added "Random Speaking Pitch" character setting to the Voxel Editor which will randomize the pitch of a character's voice as they speak
Added "Scroll Wheel Grid Controls" editor setting for the Map Editor to turn off Shift/Ctrl + Scroll Wheel grid level controls
Added confirmation dialog to the Script Editor when pressing ESC or clicking the cancel button and the Bauxite source code field has been edited
Updated "Duplicate Frame" functionality in the Voxel Editor to copy any voxel groups to the newly created frame
Updated menu-driven turn-based battles to play death animations for enemies when applicable instead of immediately removing them from the map
Updated "Replace Navigation" scripting function to force the player to release a pushable object if navigation was removed between them and the object
Updated "Set Entity Model" scripting function to only replace the model when different than the current model in use
Updated Bauxite syntax highlighting to include "map" as a built-name variable name (e.g. when used with "map.name" or "map.groups")
Bug Fixes:
Fixed roguelike issue where mouse movement was inadvertently being allowed even when disabled by interacting with something from a distance
Fixed issue in the Voxel Editor with the option to automatically attach an object in-game not working properly
Fixed issue where voxel groups were not being updated when using the arrow buttons or the move tool to move grouped voxels
Fixed issue in the Map Editor where the scale of the pending character/object couldn't be adjusted with Shift + Scroll Wheel if the grid level was locked
Fixed issue where the new tile's collision override was not being applied when replacing a tile's model with "Set Entity Model"
Fixed issue with navigation paths not being properly updated in some scenarios when the player would push an object to a new tile
Fixed issue with "Duplicate" functionality not working properly when attempting to duplicate an effect from the Game Explorer
Fixed issue with "Reset Entity Rotation" function not properly resetting the character's direction after being rotated with "Rotate Entity Towards"
Fixed issue with "mp" and "max_mp" stats not working properly in-game when attempting to access or modify their values
Fixed issue with "quests" and "skills" character properties not being accepted as valid syntax when used in a "for" expression (e.g. for $quest_id in player.quests)
Fixed issue with the Asset Library where the OK and Cancel buttons were outside of the dialog box when using the Russian localization
Fixed "nonexistent signal" error that would display in the console window when opening an item container
Documentation:
Updated "Map Editor" built-in docs to include info about pressing Delete in Connect/Navigation mode to remove all navigation paths to a tile
Updated "Map Editor" built-in docs to include info about Ctrl and Alt modifiers for picking a resource and/or grid level while in place mode
Updated "Character" built-in docs to include info about "name" property and "portrait" property
Release Notes for v1.0.6.1
Added "Positional Sound" setting to the Voxel Editor for specifying that an animation's sound effect should be played positionally in 3D space
Added "Apply Status Effect" scripting function for applying a status effect to a character for a duration of time (e.g. apply_status_effect("STATUS_0001", player, 5))
Added "Remove Status Effect" scripting function for removing a status effect from a character (e.g. remove_status_effect("STATUS_0001", player))
Added "Clear Status Effects" scripting function for clearing all status effects from a character (e.g. clear_status_effects(player))
Fixed issue with particle effects configured to be automatically attached to models not displaying for entities that were already placed into a map (model resave needed)
Fixed issue with the Bauxite code missing commas between parameters for the "Display Image" function when placed into a visual script
Fixed issue with the color picker button not properly setting the alpha value when manually coding the "Display Image" function into a script
Fixed issue with not being able to assign a widget to the "Toggle Widget" action when setting up a key binding in the Game Configuration dialog
Fixed issue where the lock icon was showing for all widgets instead of only the built-in widgets when choosing one to assign to a key binding
Release Notes for v1.0.6
New Features/Changes:
Added initial implementation of the Effect Editor for creating particle effects (e.g. flames, fountains, weather, environmental effects, visual status indicators, etc.)
Added "Attach Effect" scripting function for attaching a particle effect to an entity's attach point (e.g. attach_effect("flame", entity["xyz"], "attach_id"))
Added "Detach Effect" scripting function for detaching a particle effect from an entity (e.g. detach_effect(entity["xyz"], "attach_id"))
Added "Add Effect" scripting function for adding a particle effect at a coordinate, with optional entity ID (e.g. add_effect("rain", coord[0, 0, 100], "rain_id"))
Added "Disable Effect" scripting function for disabling the emission of particles for an effect (e.g. disable_effect(entity["rain"]))
Added "Enable Effect" scripting function for enabling the emission of particles for an effect (e.g. enable_effect(entity["rain"]))
Added "Add Item To Tile" visual script node to the Script Editor for placing an item drop onto a tile that the player can pick up
Added "Delete Data" visual script node to the Script Editor for deleting a custom data file that was previously saved to disk via the "Save Data" function
Added "Delete Save" visual script node to the Script Editor for deleting a saved game ("savegame01" if no filename is specified)
Added "Give Loot" visual script node to the Script Editor for generating items for a loot drop then giving them to a specified character
Added "Give Skill" visual script node to the Script Editor for giving a skill to a character (defaults to the main player character)
Added "Remove Skill" visual script node to the Script Editor for removing a skill from a character (defaults to the main player character)
Added "Use Skill" visual script node to the Script Editor for triggering the usage of a skill for a character (defaults to the main player character)
Added "Cooldown (Roguelike)" to the Stats Editor for configuring the cooldown of a skill when used in roguelike mode (measured in actions)
Added two new status effect types to the Stats Editor, "Healing Over Time" and "Damage Over Time" for applying healing/damage at intervals
Added ability to specify both real-time and roguelike interval for status effects in the Stats Editor (measured on seconds and actions, respectively)
Added support for global functions that can be called from any script (configured from the "Global Functions" tab in the Game Configuration dialog)
Added "Footstep Sound" and "Footstep Rate" settings to the Voxel Editor for characters (sounds are played positionally, rate is in footsteps per second)
Added ability to freely rotate objects in the Map Editor from the Entity Properties panel (instead of being locked to 90-degree increments)
Added "Display Image" scripting function for displaying an image to the player (usage: display_image(, , , ))
Added image stretch mode constants for scripting (STRETCH_X, where X is either SCALE, TILE, KEEP, KEEP_CENTERED, KEEP_ASPECT, KEEP_ASPECT_CENTERED, or KEEP_ASPECT_COVERED)
Added "Play Video" scripting function for playing video files (supported formats are WEBM and OGV, can be imported by dragging and dropping onto application)
Added "Open Container" scripting function for manually triggering the opening of an item container within the current map
Added "quests" syntax to the Bauxite language for getting an array of quest IDs for a character (e.g. player.quests)
Added "global.theme" scripting variable for changing the current UI theme (e.g. global.theme = "My Theme")
Added "system.time" scripting variable for getting current time from the OS (returns a codex with "hour", "minute", and "second" values)
Added Bauxite scripting syntax for getting an effect attached to an attach point (e.g. entity["xyz"].effect["attach_id"])
Added "EFFECT" scripting constant for checking if an entity is an effect (similar to TILE, OBJECT, and CHARACTER, e.g. if entity["xyz"] == EFFECT)
Added "substr" scripting function for getting part of a string (usage: substr(, , ) - length parameter is optional)
Added "len" scripting function for getting the length of a string, size of an array, or number of keys in a codex (e.g. len($my_array))
Added "quest[$quest_id]" syntax for getting quest properties based on ID (specifically name, description, or tags, e.g. quest["QUEST_0001"].name)
Added "portrait" property for characters to Bauxite scripting syntax (e.g. player.portrait to get or change the portrait, null will clear the portrait)
Added "Two-Dimensional" setting for objects in the Voxel Editor in order to prevent the rotation of vehicle objects when needed
Added entity script setting to disable the automatic playing of the initiating character's "interact" animation
Added "default" and "move" directional animation names for use by vehicles with the "Two-Dimensional" setting enabled (e.g. "default_west" or "move_north")
Added Effect Editor as a "Default Tab" option on the Editor Settings dialog to have it active by default on application startup
Added two new project templates to the Game Manager, "Mini Caves of ZZT" and "Kenney Tiny Dungeon (2D)", and added their associated assets to the Asset Library
Added assets previously exclusive to the Patreon to the built-in Asset Library (147 tiles, 55 objects, and 8 characters)
Added several music tracks by Aleix Ramon to the Asset Library, including "The Adventure Begins" (official RPG in a Box theme song)
Added "shore_corners" (water with shore at two opposite corners) to the Asset Library for use in the default example game
Added Italian translations for the editor interface and in-game text (selected from the "General" section of the Editor Settings dialog)
Updated roguelike mode to also consider interacting with objects and characters as an action (e.g. opening a door, pulling a lever, etc.)
Updated "Controls" section in the Game Configuration dialog to split out the movement and interaction options
Updated description field in the Quest Editor to be a multi-line text field instead of being limited to one line
Updated color data type to support optional alpha value (e.g. color[0, 255, 0, 128] is green with 50% transparency level)
Updated error message for the "Equip Item" scripting function to be more descriptive (e.g. character needs item in inventory, slot doesn't exist, etc.)
Update "Enable Container" and "Disable Container" functions to allow direct entity references instead of only an entity ID
Updated coordinate values in visual scripts nodes (e.g. the "Move Camera" function) to allow decimals for more precise positioning
Updated "str" scripting function to return "null" when the value is null instead of throwing an error to the debug console
Updated "Request Coordinate" and "Request Entity" functionality to disable mouse input for widgets while requesting a value
Updated Bauxite scripting syntax to support Korean characters when used inside of text strings
Updated "Default Example Game" project template to include an auto-tile configuration for the grass and water tiles
Updated filtering functionality in the Asset Library to no longer be case-sensitive when searching for tags
Updated Patreon credits in the About dialog to only reflect the patrons who are currently active for each tier
Bug Fixes:
Fixed issue with transparent surfaces of models showing through billboard sprite characters and objects
Fixed issue with death animations not properly triggering for billboard sprite characters when defeated
Fixed issue with camera positioning that could occur when loading a map and the camera had been previously locked
Fixed issue with setting a image element's image on a widget to null not properly clearing the image
Fixed issue that could occur when adding quest-related visual script nodes to a script without having any quests defined
Fixed issue with $item_id in item's script being null when using a consumable item from a quick slot via number hotkey
Fixed issue with the "Pass Mouse Input" widget setting not properly passing mouse input through the widget in some cases
Fixed issue with the positioning of objects when attached to other objects that were themselves also attached to an entity
Fixed issue where "interact" animations would keep playing even if a character started walking after interaction
Fixed issue with character's level not being saved when saving a game (only XP value was saved, not level itself)
Fixed issue with the player's party members not being properly restored when saving then loading a game
Fixed issue with scale not being applied to an object in the Map Editor if selecting another entity without focusing on another field first
Fixed issue where cursor was not being automatically updated if over an item container while a script enabled or disabled it
Fixed issue with duplicate play buttons showing next to music items in the Game Explorer after importing songs from the Asset Library
Fixed issue where attach point cubes were displaying after capturing a thumbnail for a model even if they weren't previously enabled
Fixed issue where the skill bar widget was incorrectly showing in the viewport of the Screen Editor
Fixed issue with Themes tab in the UI Editor incorrectly showing as "Theme" instead of "Themes" in some scenarios
Fixed issue with Item Editor and Quest Editor incorrectly showing the item/quest details area before a project was opened when set as the default tab
Fixed issue with "Recent Files" box not displaying dialogues when "All Types" was checked
Fixed issue where semi-transparent colors in PNGs were being ignored when importing them into the Voxel Editor
Fixed error that could occur when using "Capture Portrait" tool in the Voxel Editor multiple times in a row
Fixed issue with control variable in the "For Loop" visual script node not being validated correctly
Fixed console errors when giving a quest to the player then subsequently moving the player character
Fixed crash that can occur when using "return" without a return value in the Script Editor and Quick Script Builder
Fixed issue with some of the default example tiles in the Asset Library causing clipping when walked over by a billboard sprite character
Fixed some errors that that would display in the external console window when opening the Asset Library dialog
Fixed issue with "Enter name to filter by" placeholder text on the asset tabs not being properly translated to the current language
Fixed issue with missing localization for "LOOT_DROP_ALREADY_EXISTS" text when attempting to create a loot drop with a name that already existed
Documentation:
Updated "Tutorials" built-in-docs to include YouTube links for Stumpy's "How to Make a Game" series and Sarah's tutorial series
Updated "Character" built-in docs to include convenience variables which get tiles relative to a character ("front_tile", "north_tile", etc.)
Updated "Codex" built-in docs to include an example of how to modify an existing value within a codex
Updated "Climbing" built-in docs to fix an issue with the "Known Issue" text being cut off