RPG in a Box Changelog

What's new in RPG in a Box 1.0.8.6

Sep 30, 2023
  • New Features/Changes:
  • Added initial implementation of ranged enemy projectiles in free movement (i.e. projectiles will no longer track the player when fired in free movement)
  • Added initial support for using skills during tactical turn-based battles (via the "Use Skill" action if the active character has any available skills)
  • Added initial support for using skills during menu-driven turn-based battles (via the "Use Skill" menu if the active character has any available skills)
  • Added "Cooldown (Turn-Based)" setting to the Skills section of the Stats Editor for specifying a skill's cooldown when used during turn-based battles
  • Added "Usable in combat" setting to the Skills section of the Stats Editor for indicating whether or not a skill is able to be used during battles
  • Added "Tick On Apply" setting for "Healing/Damage Over Time" status effects to indicate if the effect should tick when first applied to a character
  • Added "Duration (Turn-Based)" and "Duration (Roguelike)" settings for the temporary stat buff and debuff skill effects in the Stats Editor
  • Added "Party" as a target option for skills in the Stats Editor (when using a script as an effect, the $target variable will contain an array of members)
  • Added "VHS/CRT Monitor Effect" feature to the Map Editor for enabling the effect on a per map basis, with settings for customizing its appearance
  • Added ability to assign placeholder images to storage, equipment, and crafting slots (i.e. an image that will be displayed whenever the slot is empty)
  • Added ability to use custom currencies for an item's cost in the Item Editor (used by widget shop slots when the player buys an item from the slot)
  • Added new "Select Attach Point" mode for the attach point tool in the Voxel Editor for selecting and deleting attach points via the 3D viewport
  • Added ability to cut, copy, and paste single objects and characters in the Map Editor via the Ctrl + X, Ctrl + C, and Ctrl + V shortcut keys
  • Added support for removing enemies and party members via script during tactical turn-based battles, either via damage or the "Remove Entity" function
  • Updated Stats Editor to prevent a custom stat from being removed if it's tied to a custom currency (an informational dialog will display indicating this)
  • Updated free movement disclaimer dialog to indicate that bugs can now be submitted and that the use of free movement should be noted in the bug report
  • Updated About dialog to include credit to Peter Höglund of Godot Shaders for the VHS/CRT monitor effect used by the Map Editor and in-game functionality
  • Bug Fixes:
  • Fixed issue where the "Interval (Turn-Based)" setting for status effects in the Stats Editor was not being properly saved when modified
  • Fixed issue where using the "Put Player" function in first-person free movement mode could cause the orientation of the player model to become out of sync
  • Fixed issue where any skills assigned to a character were lost when their model was changed using the "Set Entity Model" scripting function
  • Fixed issue where the "Effect Details" section was incorrectly displaying when the selected skill in the Stats Editor didn't have any effects assigned to it
  • Fixed issue where custom stats added in the Stats Editor would not show in the "Associated Stat" dropdown for currencies until the project was reopened
  • Fixed issue where the mouse cursor wasn't being hidden/shown when using the "Change Camera" function to switch between camera types in free movement
  • Fixed issue where the player was unable to seamlessly transition into strafing left/right in first-person grid-based mode when holding down a strafe key
  • Fixed issue where dragging an item outside of a widget could cause the item to disappear when using free movement with the management screen disabled
  • Fixed issue where defeated enemies could still move in roguelike mode if they had a "death" animation and the "Remove Defeated Enemies" setting was disabled
  • Fixed issue where a battle could fail to start if it was the first one created in the Combat Editor without changing maps and no "combat.json" file existed yet
  • Fixed issue where the built-in player health bar would display during tactical turn-based battles even with the "Show Player Health" setting disabled
  • Fixed issue where floating health bars were not being properly removed when using "Remove Entity" to remove a character or a tile occupied by characters
  • Fixed issue where any existing floating health bars for the current map were not being hidden when transitioning to a turn-based battle
  • Fixed issue where widgets were not being updated when a skill with a stat buff/debuff effect was used (e.g. text labels displaying the stat)
  • Fixed issue where the main player character would disappear after transitioning from a free movement map to another map for a menu-driven turn-based battle
  • Fixed issue where the camera could become incorrectly offset after transitioning between free movement maps (camera is now reset when loading a free movement map)
  • Fixed issue where the dialogue window would remain visible if the "Restart Game" scripting function was called while the window was being displayed
  • Fixed issue where the dialogue window would remain visible if the "Load Map" scripting function was called while the window was being displayed
  • Fixed issue where entity tooltips would remain visible if the "Restart Game" scripting function was called while the tooltip was being shown for an entity
  • Fixed issue where entity tooltips would remain visible if the "Load Map" scripting function was called while the tooltip was being shown for an entity
  • Fixed issue where the "death" sound effect would play after finishing a tactical turn-based battle then damaging an enemy in free movement
  • Fixed issue where enemy spawns containing a character stored within a subfolder could cause the spawn to break when killing an enemy or loading a save
  • Fixed issue where the "Character Collides" trigger event for objects was incorrectly triggering in free movement mode when the player entered the object's tile
  • Fixed issue where the "When Player Collides" NPC behavior was incorrectly triggering in free movement mode when the player entered the NPC's tile
  • Fixed issue where the "Interact" control icon/text was not being hidden whenever a dialogue or message was being shown in free movement mode
  • Fixed issue where dialogue couldn't be progressed by clicking the left mouse button (only using the space bar) if the screen was currently faded out
  • Fixed issue where entities could no longer be interacted with by the mouse cursor if a clamped or one-time animation was played followed by a looping animation
  • Fixed issue where a "Remove Entity" error would sometimes display in the debug console after the player character had been defeated by a projectile
  • Fixed issue where deleting an entity in the Map Editor then undoing the action would not properly add the entity's ID back to the map's entity ID lookup
  • Fixed issue where the eyedropper tool in the Map Editor would not always select the proper model if there were multiple with the same name within subfolders
  • Fixed issue where undo/redo actions were not being created when assigning an entity ID to an entity from the Map Properties tab in the Map Editor
  • Fixed issue where the Voxel Editor would be marked as having changes when switching to an attach point with scale values differing from the previously selected one
  • Fixed issue where cancelling out of the "New Attach Point" dialog then changing to the "Attach Voxels" tool could cause the cursor to inadvertently add voxels
  • Fixed issue where conditional expressions in the Dialogue Editor would show the default expression in compact mode after saving and reopening the dialogue
  • Fixed issue where duplicating a "Display Choices" node in the Script Editor would use the "Assign Value" node for the copy instead of "Display Choices"
  • Fixed issue where compound operators (+=, -=, *=, /=) were not working properly when used to modify the value of a custom numeric item property
  • Fixed issue where built-in entity properties were not being accepted when used with a local variable and the "==" operator in a conditional expression
  • Fixed issue where names for items assigned to a container in the Map Editor would display as blank if a translations file didn't exist for the default locale

New in RPG in a Box 1.0.8.4 (Aug 29, 2023)

  • New Features/Changes:
  • Added "Disable Action" and "Enable Action" scripting functions for disabling/enabling input actions via script (e.g. "move_up", "jump", "zoom_camera_in", etc.)
  • Added "Floating Health Bars" setting to "General" section of the Stats Editor for toggling the bars shown during battles or when a character has lost health
  • Added "Damage/Healing Popups" setting to "General" section of the Stats Editor for toggling the popups shown when a character is damaged or healed
  • Added "Level/XP Popups" setting to the "General" section of the Stats Editor for toggling the popups shown when a character receives XP or levels up
  • Added ability to assign custom equipment slot configurations (created in the Stats Editor) per character from the Model Properties tab in the Voxel Editor
  • Added ability to customize or disable the default "death" sound effect in the Combat Editor (played whenever a character has been defeated)
  • Added "Strafe Left" and "Strafe Right" as bindable actions to the Game Configuration dialog (default of Q/E keys, only applicable to first-person grid-based)
  • Added "End Turn" scripting function for ending the active character's turn during turn-based battles or ending/passing a turn for the roguelike action system
  • Added "Change Player" to the "Available Functions" list in the Script Editor (uses a "Source Code" node until a visual node is implemented in a future release)
  • Updated "End Turn" input action ("T" key by default) to also work while the roguelike action system is active (will end/pass a turn for the player)
  • Updated management screen to store separate layouts per character in order to maintain widget positioning/visibility when swapping between player characters
  • Updated real-time health bars in grid movement to only display once a character is hit by a projectile, rather than displaying as soon as the projectile was fired
  • Updated dialog for changing an input binding's action with icons indicating when an action is restricted to certain modes (first/third-person, grid/free movement)
  • Updated "noclip" debugging feature so its movement controls will now work with the new input binding system (free movement uses jump/crouch for up/down)
  • Updated "Change Player" scripting function to throw an error to the debug console when used in free movement mode until it can be properly implemented
  • Bug Fixes:
  • Fixed issue where the player would continue moving in free movement after certain events like starting dialogue, opening item containers, dying, etc.
  • Fixed issue where the player was incorrectly starting at coordinate (0, 0, 0) when loading a game in free movement (camera would also be out of sync in third-person)
  • Fixed issue where the first-person camera's vertical mouse look limits could become out of sync after loading another map while the view was off-center
  • Fixed issue where pressing the movement keys in free movement during dialogue would cause the player character's walk animation to start playing
  • Fixed issue where the visual movement squares for tactical turn-based battles were shown on tiles even if they were a prohibited terrain type for that character
  • Fixed issue where the enemy counter text was not updating at the very start of an enemy's turn during tactical battles, only after they had started moving
  • Fixed issue where real-time health bars were not displaying for characters when damaged by projectiles in free movement, only by melee weapons
  • Fixed issue where the player's XP and Level Up popups in free movement were incorrectly displaying at the map's origin instead of the player's current position
  • Fixed issue where the "Request Entity" function was not working properly when used with first-person free movement (cursor for selecting an entity wouldn't appear)
  • Fixed issue where entity tooltips ("Tooltip" setting in the Map Editor) were not displaying in free movement when hovering over the entity with the mouse cursor
  • Fixed issue where the "death" sound effect was not playing when characters were killed by a status effect in real-time or via the "Damage Entity" function
  • Fixed issue where the equipment widget would no longer function properly after using "Set Entity Model" to change the model of the player character
  • Fixed issue where the "Attack Cooldown", "Real-Time Fire Mode", and "Min/Max Range" settings for weapons were not being applied when used as default equipment
  • Fixed issue where using the "Change Player" function was not properly updating the management screen's equipment widget to reflect the active character's equipment
  • Fixed issue where a duplicate of the original player character would be present after using "Change Player" to switch to an NPC then restarting the game
  • Fixed issue where the inventory widget would incorrectly display when first opening the management screen even with the inventory toolbar button disabled
  • Fixed issue where equipment widgets weren't properly updating when switching between player characters in real-time via the "Change Player" function
  • Fixed issue where widgets that had been displayed via script were not being hidden when quitting to the title screen or restarting the game
  • Fixed issue where the player could still zoom the camera in and out even when the binding actions for "Wheel Up" and "Wheel Down" were set to "None"
  • Fixed issue where the equipment slot configurations in the Stats Editor were not being properly cleared out when closing a project then opening another
  • Fixed issue where placeholder expressions in widget text elements would show the literal expression instead of the evaluated result after restarting a game

New in RPG in a Box 1.0.8.3 (Aug 16, 2023)

  • Added initial support for enemies to use ranged weapons in tactical turn-based combat (weapon will be automatically used when given and equipped)
  • Added initial support for status effects to tactical and menu-driven turn-based combat (status effects will tick at the beginning of a character's turn)
  • Added "Interval (Turn-Based)" setting to the Stats Editor for configuring how often an applicable status effect will tick when applied during turn-based battles
  • Added "Default Equipment" section for characters to the Voxel Editor's Model Properties tab (items will be automatically given and equipped on startup)
  • Updated standard camera functionality for tactical turn-based combat to now track enemy characters during their turn instead of only party members
  • Updated limit for the camera zoom's maximum value in the Game Configuration dialog to 1000 voxel units instead of the previous limit of 300
  • Updated "Attach Effect" failure message from an error to a warning when attempting to attach an effect to an entity without the specified attach point
  • Updated signature hints used by the Script Editor and debug console's auto-complete to bring it up to date (37 event functions, 18 utility functions)
  • Fixed issue where "On Hit" scripts were not being properly triggered when enemies equipped with melee weapons would attack a player character
  • Fixed issue where real-time health bars were not displayed or updated for characters that were being damaged by a "Damage Over Time" status effect
  • Fixed issue where a status effect's image and description were inadvertently cleared out in the Stats Editor when the "Effect Type" setting was changed
  • Fixed issue where the "Interval (Roguelike)" setting in the Stats Editor was not being hidden for status effects of type "Stat Buff" or "Stat Debuff"
  • Fixed issue where enemies with the "Attackable in Real-Time" setting enabled were able to attack player characters in real-time during tactical turn-based battles
  • Fixed issue where enemies that had spawned via an enemy spawn could not be attacked with the left mouse button after saving then loading a game
  • Fixed issue where current counts for enemy spawns were not being stored when saving a game, causing the spawn limit to potentially be exceeded when loading
  • Fixed issue where a player character's idle animation wouldn't trigger after having attacked an enemy with a ranged weapon then stopping on a tile
  • Fixed issue where the "Two-Dimensional" setting in the Voxel Editor was not properly preventing characters from rotating towards their movement direction
  • Fixed issue where the "Character Stops on Tile" event (global and per tile) was not being triggered when an NPC was moved via "Put Entity" (only the player)
  • Fixed issue where widget element properties (<element>.text, <element>.script, etc.) were not properly being allowed as operands in conditional expressions
  • Fixed issue where shop item slots were being inadvertently cleared out if the game was restarted instead of being reset to their original state
  • Fixed issue where an input binding could not be added back again after being removed unless it was also removed from the other keyboard layout first

New in RPG in a Box 1.0.8.0 (Jul 29, 2023)

  • New Features/Changes:
  • Free Movement: Added initial implementation of projectiles for ranged weapons in free movement (improvements to come in subsequent releases)
  • Free Movement: Added initial crouching mechanic implementation with settings on the Game Configuration's physics tab to enable/disable it and adjust its speed multiplier
  • Free Movement: Added "idle_crouch" and "walk_crouch" to the Predefined Animation Names dialog in the Voxel Editor (triggered in free movement when the character is crouched)
  • Free Movement: Added "Gravity" setting to the Game Configuration's physics tab, along with a "global.gravity" Bauxite property to change the value via script
  • Free Movement: Added Ctrl key as a default input binding for attacking in free movement (in addition to the existing Left Mouse Button binding)
  • Added "On Hit Script" option for weapon items ($weapon will contain the weapon item's codex, $target the hit entity, $damage the damage amount, and $projectile the projectile entity)
  • Added most of the built-in game bindings to the Game Configuration's Input Bindings tab with the ability to change what each control does (tab name changed from Key Bindings)
  • Added "Available Actions" popup dialog to the Input Bindings tab, containing 35 new built-in actions (Move Up, Move Down, etc.) and a "None" option to disable the binding
  • Added "Schemes" dropdown to the Input Bindings tab of the Game Configuration dialog (for now this consists of the built-in grid/free movement schemes)
  • Added Space, Print Screen, Insert, Delete, Home, End, Page Up, Page Down, Escape, Up/Down/Left/Right Arrows, Control, Alt, and Shift as available key bindings
  • Added "X" key binding for triggering the player to exit their vehicle (will use the configured exit/options priority, defaults to front, left, right, back, then current tile)
  • Added "Exit Options/Priority" setting to the Entity Properties tab in the Map Editor for specifying possible directions when exiting from a vehicle
  • Added "Enter Vehicle" scripting function for triggering a character to enter a vehicle (optional second parameter for character, e.g. enter_vehicle(entity["ship"]))
  • Added "Exit Vehicle" scripting function for triggering a character to exit a vehicle (two optional parameters for target tile and character, e.g. exit_vehicle())
  • Added "Use Item" scripting function for triggering an item to be used via script, with optional second parameter for the character (e.g. use_item("ITEM_0001"))
  • Added "Quit To Title" and "Quit Game" scripting functiosn for returning to the Main Menu and quitting the game via script (e.g. quit_to_title(), quit_game())
  • Added "Pause Game" and "Resume Game" scripting functions for pausing and resuming the game via script (e.g. pause_game(), resume_game())
  • Added "Insert Expression" button to the Script Editor and Quick Script Builder for inserting an expression into the code via the Expression Builder dialog
  • Added "Entity", "Player", "Party Member", "Attachment", "Map Name", and "Map Groups" to the Expression Builder in the Script Editor
  • Added "Item", "Item Tags", "Item Property", "Quest", "Quest Name", "Quest Description", and "Quest Tags" to the Expression Builder in the Script Editor
  • Added "Widget", "Widget Theme", "Widget Element", "Global Theme", "Global Time", and "System Time" to the Expression Builder in the Script Editor
  • Added "Data File", "Camera Direction", "Camera View Model", and "Cursor Target" to the Expression Builder in the Script Editor
  • Added "Entity Type", "Cardinal Direction", "Navigation Type", "Terrain Mode", "Tile Script Trigger", and "Stretch Mode" to the Expression Builder in the Script Editor
  • Added functions without visual nodes to the Script Editor functions list (Change Player, Clear Log, Request Coordinate, Request Entity, Set Entity Scale, and Set Terrain Types)
  • Added "Stop Player" scripting function to the Script Editor functions list (has a visual node but was missing from the list of available functions)
  • Added in-game keyboard bindings for controlling the pitch of the camera via Shift + Up Arrow and Shift + Down Arrow (Alt + Up/Down now controls zoom)
  • Added "Allowed Item Tags" setting to the Widget Editor for item storage slots and crafting input slots (will restrict slots to items with specified tags)
  • Added "cursor.target" built-in variable to Bauxite for referencing the entity, widget, or widget element currently under the mouse cursor via script
  • Added global event script for when the cursor's target changes (the new "cursor.target" built-in variable can be referenced in the script)
  • Added ability to change/retrieve UI themes on a per widget basis via script using the new "theme" property (e.g. widget["xyz"].theme = "Custom Theme")
  • Added audio section to the in-game options menu for adjusting sound-related settings (with initial settings for sound volume and music volume)
  • Added submenus to the in-game options menu for controls and video/graphics settings and moved the corresponding options into each one
  • Added "Quit to Title" button to the pause menu for returning to the Main Menu (only available when the Main Menu is enabled in the Game Configuration)
  • Added "BLK NX64" by BlackedIRL to the default set of color palettes available in the Voxel Editor and Image Editor (successor of "BLK NEO" palette)
  • Added setting to the Theme Editor for changing the shadow color of dialogue text (including transparency value, which can be used to disable the shadow)
  • Updated vehicle functionality so when the player character disembarks from a vehicle they will be rotated to face the direction in which they exited
  • Updated attach point offset limits in the Voxel Editor to allow values outside of the model's grid (up to a full grid length in each direction)
  • Updated first-person view model functionality to consider the rotation values of the "camera" attach point when attaching the model to the camera
  • Updated "Show Credits" function to fall back to the default ones if custom credits don't exist, added "Made with RPG in a Box" to the default credits
  • Updated "Apply Status Effect" visual scripting node to have a step of 0.1 instead of 1 in order to allow the use of more precise values (e.g. 2.5)
  • Updated dialogue color setting in the Theme Editor to support editing of its transparency value ("Font Color" setting on the UI properties tab)
  • Updated in-game screenshot capturing to no longer display text in the corner in order to prevent it from appearing in the images when multiple are taken in a row
  • Updated tutorials page for the built-in documentation to include episodes 7 and 8 of Stumpy's "How to Make a Game" series ("Layering Wall Tiles" and "Doors")
  • Updated Steam rich presence logic to support the Effect Editor so its name is displayed as the current rich presence status while in the editor
  • Changed default scale of attach points in the Voxel Editor from 1.05 to 1.0 (be aware that this may now cause z-fighting when using the default of 1.0)
  • Changed in-game camera controls to use Alt + Up Arrow and Alt + Down Arrow for zooming the camera in and out (Shift + Up/Down now controls pitch)
  • Bug Fixes:
  • Free Movement: Fixed issue with the "Put Player" and "Put Entity" scripting functions not working properly when used to move the player character
  • Free Movement: Fixed issue where the mouse scroll wheel could be used to zoom the camera in free movement even when the camera was locked
  • Fixed issue with pushable objects where the player could pull an object even when up against an obstacle (causing navigation paths to break)
  • Fixed issue where vehicles would not turn when attempting to move up against an obstacle (to match the behavior of the player character when doing the same)
  • Fixed issue where the space bar keyboard binding for interacting with adjacent entities would not work when attempting to enter a vehicle
  • Fixed issue where the player was not able to enter a vehicle if standing on the same tile as the vehicle (would only work from adjacent tiles)
  • Fixed issue where adding an existing party member to a map via "Add Character" then removing it with "Remove Entity" would break the party member functionality
  • Fixed issue where using a cardinal direction for the "Move Direction" behavior setting and "Reverse Direction" for "Reaction to Obstacle" would cause NPCs to get stuck
  • Fixed issue where the custom interaction cursor would not display for a scripted object with one assigned (only for tiles and characters)
  • Fixed issue where custom interaction cursors could fail to work properly when the name assigned to the cursor contained a space
  • Fixed issue where the Game Configuration's cursors section would expand off the edge of the dialog if the project contained an image with a long filename
  • Fixed issue where the default scale was not being applied to objects that were attached to other models (only the scale of the attach point itself was applied)
  • Fixed issue where the "automatically attach" setting in the Voxel Editor was not being properly saved when toggled off for an object or effect
  • Fixed issue where progress bars would sometimes not display the correct value when loading a game via the "Continue" button on the Main Menu
  • Fixed issue where tactical turn-based battles could become stuck when an enemy without a death animation was defeated and the damage shake/flash effect was enabled
  • Fixed issue where music would not play when starting a menu-driven battle using a map with background music assigned in the Map Properties
  • Fixed issue where the game would become stuck if the player character was defeated by an enemy using a ranged weapon in real-time
  • Fixed issue where the "Open in Voxel Editor" buttons in the Item Editor would not work when attempting to open an object model assigned to a weapon
  • Fixed issue where item icon popups were incorrectly showing for characters other than the main player character (e.g. giving an item to an enemy)
  • Fixed issue where NPCs were not properly walking around on Main Menu background maps when the "NPC Movement in Map" setting was enabled
  • Fixed issue where the game would incorrectly return to the Main Menu after credits were displayed even when disabled (quit/restart prompt will show instead)
  • Fixed issue where the "Play Sound" scripting function would fail to work when called after other functions and also storing the sound ID into a variable
  • Fixed issue where the tool item icon in the upper right corner was not being hidden when displaying credits via the "Show Credits" function
  • Fixed issue where a widget's "On Close" script was not being triggered if the widget was closed using a button with the "Close Widget" action
  • Fixed issue where the "count" property was not correctly updating the available amount for a shop item slot (e.g. widget["shop"].element["0001"].count = 10)
  • Fixed issue where using the built-in "item" property to change a shop slot's item via script (or clear it by setting it to null) was not working properly
  • Fixed issue where a value of zero (infinite) couldn't be used in the duration field of the "Apply Status Effect" visual scripting node
  • Fixed issue where the Entity Expression Builder would not open when clicking the wizard button on the "Add Waypoint" visual scripting node
  • Fixed issue where the eyedropper tooltip in the Map Editor (shown when holding Alt) would become stuck if moving the mouse outside of the viewport while holding Alt
  • Fixed issue where Ctrl + Left Arrow and Ctrl + Right Arrow were not properly rotating the camera in the Map Editor while using the default camera mode
  • Fixed issue where Shift + Arrow Keys couldn't be used together to zoom and rotate the camera simultaneously (could also cause the player to start moving)

New in RPG in a Box 1.0.7.3 (May 8, 2023)

  • Free Movement Updates:
  • Added initial support for hitscan ranged weapons to free movement (instant/direct damage weapons, with projectile weapons coming later)
  • Added "sprint" as a predefined animation name that will automatically play whenever the player character is sprinting
  • Added "Fire Mode" option to the Combat Editor to set the default method by which the player's attacks can be triggered (single vs. automatic)
  • Added "Fire Mode" option to the Item Editor to set the method by which a weapon item can be triggered when used (single vs. automatic)
  • Added "Collision Override" option for characters in the Voxel Editor to allow use of the new collision shape functionality
  • Added "Collision Debugging" setting to the "Quick Play" section of the Editor Settings dialog for displaying collision shapes in-game
  • Added support for "player.direction" to allow setting of the player character's direction via script (e.g. player.direction = NORTH)
  • Added button to the Voxel Editor toolbar for toggling the display of collision shapes when the model is using a custom collision override
  • Updated camera smoothing in third-person free movement to be snappier when tracking the player character's movements
  • Fixed issue where the player character would walk in place if holding multiple movement keys at once that should cancel each other out
  • Fixed issue where the attack animation override for a weapon wasn't being applied unless the player was directly attacking an enemy
  • Fixed issue where collision wasn't being properly created for characters added via enemy spawns or the "Add Character" scripting function
  • Fixed issue where characters configured as passable were colliding with the player character instead of letting them pass through
  • Fixed issue where the mouse cursor was not being hidden after opening and then closing the pause menu while in first-person mode
  • Fixed issue with the "jump" debug console command no longer working and changed the expected velocity value to be in voxels/second to match the editor
  • New Features/Changes:
  • Added "Attack Cooldown" setting to the Voxel Editor for customizing the cooldown per character ("Default" uses the global cooldown configured in the Combat Editor)
  • Added "Attack Cooldown" setting to the Item Editor for customizing the cooldown of a specific weapon item (can use global default, character default, or custom value)
  • Added "Object Model (View Model)" setting to the Item Editor for specifying the object to attach to the view model (if present) when the item is equipped
  • Added "Spawn Script" setting for enemy spawns in the Combat Editor that's triggered whenever an enemy is generated ("self" will contain a reference to the character)
  • Added "On Open Script" setting for item containers that will run before the container UI is displayed to the player (available on the Entity Properties tab)
  • Added "When Player Collides" behavior setting for NPCs that's triggered when the player collides with the NPC (with initial option to run a script)
  • Added ability to customize the font and font size for widget titlebars (available on the Widget Properties tab below the "Titlebar Text" setting)
  • Updated model animation functionality to automatically play the same animation for any objects attached to that model when one is triggered
  • Bug Fixes:
  • Fixed issue where equipment objects were not being attached to the first-person view model when equipped via the "Equip Item" scripting function
  • Fixed issue where attached objects would sometimes display in the wrong position when an animation was played for the attachment or certain offsets were used
  • Fixed issue where the default scale for billboard sprite characters was not being applied when spawned via enemy spawns or the "Add Character" scripting function
  • Fixed issue where the default scale for billboard sprite objects was not being applied when added via the "Add Object" scripting function
  • Fixed issue where the built-in player health bar was not displaying the correct value after loading a saved game where their health had changed
  • Fixed issue where enemy health bars would sometimes reappear at incorrect locations after damaging the enemies then dying and restarting the game
  • Fixed issue where enemy health bars would not display when returning to a map with previously damaged enemies until one was damaged again
  • Fixed issue where hitboxes for billboard sprites were not being adjusted to the correct size when using a scale other than the default
  • Fixed issue where the details for a loot drop item would sometimes not display after deleting an item from the loot drop in the Combat Editor
  • Fixed issue where the currency amount wouldn't display on the default inventory widget when using a custom name for the base currency
  • Fixed issue where the base currency would be missing from the list after clearing out a previously assigned custom name for the base currency
  • Fixed issue where some settings were being inadvertently changed when switching between behavior presets in the Game Configuration dialog
  • Fixed issue where the "Collision Shapes" section would sometimes not display when using the "Custom" collision override option for objects in the Voxel Editor
  • Fixed issue where the settings area for collision shapes would incorrectly stay visible after changing the collision override option from "Custom" to another option
  • Fixed issue where the collision shape color box was not updating for the currently opened object after changing the default collision color (if using default)
  • Fixed issue where modifying editor settings when a model was open that used custom collision without any shapes defined could cause an error in the console window
  • Fixed issue where mouse input from certain widget elements could potentially interfere with other UI elements (e.g. inadvertently progressing dialogue)
  • Fixed issue where the player was unable to move up and down (i.e. only left or right) when the management screen was disabled and their inventory was open
  • Fixed issue where the player was inadvertently able to move left and right and interact with objects/characters via spacebar while the management screen was open
  • Fixed issue where signal errors would sometimes display in the console window if an enemy was damaged multiple times in a row in quick succession
  • Fixed issue where the "Wait" scripting function was inadvertently displaying twice in the list of available functions in the Script Editor
  • Fixed issue with missing localization text for the skill slot description that's displayed when selecting the skill slot element on the Widget Tools tab
  • Documentation:
  • Added initial version of built-in docs for the "Add Waypoint" scripting function and fixed issue with its link incorrectly opening "Add To Group"
  • Updated "Give Item" and "Remove Item" built-in docs to include info about the optional parameter for specifying the target character
  • Updated "NPC Behavior" built-in docs to include the new "collide_with_player" setting that's triggered when the player collides with an NPC
  • Fixed issue with missing localization text for the "Pushing" topic that's displayed in the main index list of the documentation viewer

New in RPG in a Box 1.0.7.2 (Apr 23, 2023)

  • Free Movement Updates:
  • Added initial implementation of free melee attacking for the player character (left mouse button to attack at any time)
  • Added ability to create custom collision shapes in the Voxel Editor for tiles and objects (using cubes and prisms, more to come)
  • Added "Collision Override" option for objects in the Voxel Editor to allow use of the new collision shape functionality
  • Added "Physics" tab to the gameplay section of the Game Configuration dialog for adjusting physics-related settings
  • Added "Jumping" and "Vertical Velocity" settings to the "Physics" tab for toggling jumping and adjusting the vertical velocity for jumping
  • Added "Sprinting" and "Speed Multiplier" settings to the "Physics" tab for toggling sprinting and adjusting the speed multiplier for sprinting
  • Updated collision functionality so that NPCs can now trigger scripts assigned to an object's "Character Collides" event when touching the object
  • Updated collision shapes for characters to be per animation frame and to be box-shaped for better collision detection
  • Updated player movement functionality to trigger "Character Enters Tile" and "Character Exits Tile" scripts
  • Updated player movement functionality so that hostile NPCs will now attempt to attack the player from adjacent tiles
  • Updated player movement functionality to properly support the auto-hiding feature (i.e. hiding groups with the "-hide" suffix)
  • Updated debug console so "self" will reference the entity within interaction range that the player is looking at while in first-person mode
  • Fixed issue where "Character Interacts" scripts could not be triggered when assigned to objects configured as passable
  • Fixed issue where damage/healing numbers were displaying at the center of the map instead of over top of the player character
  • Fixed issue where the "player.direction" variable was not returning the proper cardinal direction when referenced in a script
  • Fixed issue where maps could fail to load when they contained any passable objects configured as billboard sprites
  • Fixed issue where "self" was not returning the player entity when used in the debug console with the cursor over the player character
  • Fixed issue where the collision box for a player character with a smaller/larger default scale was not being created at the correct size
  • Fixed issue where a player character with an empty model or consisting of only attachments would cause the game to not start
  • New Features/Changes:
  • Added "Field of View" camera setting to the gameplay section of the Game Configuration dialog for adjusting the camera's field of view in degrees
  • Added ability to customize the default player attack cooldown and the default NPC attack cooldown from the Combat Editor's general section
  • Added ability to configure a custom "miss" sound effect in the Combat Editor (played whenever a character misses their attack)
  • Added "Line Mode" setting for text fields to indicate whether it should behave as a single-line field (e.g. for player name entry) or a multi-line field
  • Updated "Character Collides" event for object scripts so that NPCs can now trigger them upon entering the tile with that object (grid-based movement)
  • Updated first-person mode to hide any objects attached to the player character if a view model is defined in the Game Configuration
  • Updated first-person view model functionality to auto-attach an equipped item's object model to the view model if a matching attach point exists
  • Removed old "Free Movement" setting from the experimental section of the Game Configuration dialog as it's now been replaced by the new system
  • Bug Fixes:
  • Fixed issue where items could not be crafted in-game unless the recipe's ingredients/materials were in numerical order by item ID
  • Fixed issue where the "Move Player" scripting function would no longer work properly and would instead display an error in the debug console
  • Fixed issue where using the "Set Dialogue" function to change a spawned NPC's dialogue could affect other NPCs when both were using "Standard" behavior
  • Fixed issue where modifying the "Triggerable by NPCs" script setting would affect other entities of the same type that had a default script when added to the map
  • Fixed issue where character stats and skills were not being properly restored after loading a saved game (needs a new save to work)
  • Fixed issue where widget text elements were incorrectly showing the placeholder expression after loading a saved game (needs a new save to work)
  • Fixed issue where text fields that had been edited by the player were not being properly restored when loading a saved game (needs a new save to work)
  • Fixed issue where certain widget elements could not be clicked on with the mouse after loading a saved game where the widget was visible when saved
  • Fixed issue where mouse input was being interfered with in the editor when a widget in the active project contained a text field with scrollbars
  • Fixed issue with the stairs in the house of the Default Example Game project template being positioned one voxel too high above the floor
  • Documentation:
  • Updated "Import Resources" built-in docs to include info about dragging and dropping files onto the application window

New in RPG in a Box 1.0.7.1 (Apr 7, 2023)

  • New Features/Changes:
  • Added ability to modify the "hostility" setting of an NPC via script (e.g. self.behavior["hostility"] = "always", see docs for all values)
  • Added ability to set an NPC's behavior to null to clear out their behavior via script (as an alternative to assigning an empty string)
  • Added ability to call global functions from the in-game debug console (i.e. those defined in the Game Configuration dialog)
  • Added ability to retrieve or modify a specific position of a string by numeric index (e.g. $x = "Text"; $x[2] = "s"; print($x); will print "Test")
  • Updated "Move Character" scripting function to add an optional third parameter (boolean) to indicate if it should pause until the movement is complete
  • Updated "Behaviors" section in the Game Configuration dialog to no longer redundantly store the name of the behavior preset within its settings
  • Removed "Experimental" from the Global Illumination setting label located on the Map Properties panel in the Map Editor
  • Bug Fixes:
  • Fixed issue where colors were being applied to the default texture instead of the current one when painting in the Voxel Editor with "Voxel" or "Face" mode
  • Fixed issue where quick slots with items assigned were not being properly restored after loading a saved game (needs a new save to work)
  • Fixed issue where scripts assigned to entities via "Set Entity Script" were not being properly restored after loading a saved game (needs a new save to work)
  • Fixed issue where widgets that were visible when a game was saved were not being displayed after loading (needs a new save to work)
  • Fixed issue where the visibility of elements in a widget was not being properly restored after loading a saved game (needs a new save to work)
  • Fixed issue where entities added to groups or removed from groups were not being properly restored after loading a saved game (needs a new save to work)
  • Fixed issue where entities could be added to the same group multiple times when using the "Add To Group" scripting function
  • Fixed issue where real-time enemies were not attacking the player if given a new behavior with "Attackable in Real-Time" enabled
  • Fixed issue where the "Experience Points" value wasn't being saved when editing behaviors from the Game Configuration dialog
  • Fixed issue where using the "Move Character" scripting function would cause a script to get stuck and not execute the rest of the script
  • Fixed issue where the default scale was not being applied to placed characters or objects in the Map Editor when configured as billboard sprites
  • Fixed issue where player choices would not be visible in dialogues if the "Typing Effect" game configuration setting was disabled
  • Fixed issue where the text of a widget's text field or text label was no longer being updated when modified via script
  • Fixed issue where interactions via space bar were not working for item containers without a script or objects with a character on the same tile
  • Fixed issue where the interaction controls would incorrectly display when the player was adjacent to an object with a collision script
  • Documentation:
  • Updated "NPC Behavior" built-in docs to include info about the "hostility" setting and its possible values
  • Updated "Move Character" and "Scripting Reference" built-in docs to include info about the optional "pause" parameter

New in RPG in a Box 1.0.7 (Apr 2, 2023)

  • New Features/Changes:
  • Added base implementation (v0.1) of the new free movement system, enabled per map from Map Properties (most gameplay will not work yet, use at your own risk!)
  • Added "Character Collides" trigger event for object scripts to the Entity Properties tab in the Map Editor (for both grid-based and free movement)
  • Added "Pitch Control" camera setting to the Game Configuration dialog for allowing the player to control the pitch, with min/max settings
  • Added "Focal Offset" camera setting to the Game Configuration dialog for vertically offsetting the camera's focal point in third-person views
  • Added "Locked Axes" camera settings to the Game Configuration dialog for locking the X, Y, and/or Z-axis (e.g. lock the Y-axis for a sidescroller effect)
  • Added "Top-Down Camera" as an option for the Map Editor's default camera (available from the Editor Settings dialog)
  • Added "jump" as an option to the list of predefined animation names when defining a character animation in the Voxel Editor
  • Added debug console command for adjusting the player's jump height in free movement maps (e.g. "jump X", where X is from 0 to 10)
  • Added "Spotlight" as a light source option to the Voxel Editor, with initial settings for range (in voxels) and angle of the spotlight
  • Added "Hostility" behavior setting for NPCs to determine how they behave when attackable (always hostile, hostile if attacked, or never hostile)
  • Added ability to apply noise to existing voxels in the Voxel Editor (all or selection), with option to save presets and set the seed value
  • Added ability to select all voxels of a specific color in the Voxel Editor via Alt + Left Click while the selection tool is active
  • Added ability to use the "Capture Image to File" feature while in "Mesh Preview" mode in the Voxel Editor (useful with Marching Cubes, etc.)
  • Added ability to set a custom position for a character's HP bar by defining an attach point named "hp_bar" in the first frame (or others to override)
  • Added ability to retrieve the tool items currently held in a character's inventory (e.g. "player.tools", returned as an array of codices)
  • Added ability to get and set a character's active tool (e.g. player.active_tool = "ITEM_0001", when retrieving the active tool the item codex will be returned)
  • Added ability to retrieve and modify the current view model for the camera using "camera.view_model" (e.g. camera.view_model = "cam_mech")
  • Added ability to retrieve the current camera type via script using "camera.type" (value will be either STANDARD, ISOMETRIC, or FIRST_PERSON)
  • Added ability to retrieve the configured gameplay settings as a codex via the "global.gameplay" syntax (values are read-only for now)
  • Added gameplay setting to the Game Configuration dialog to allow loading/continuing from the game menus when saving is disabled (e.g. for checkpoint systems)
  • Added "Typing Effect" setting to the Game Configuration dialog for disabling the dialogue typing effect (i.e. any spoken text will instantly display)
  • Added "Codex" as an option to the expression builder in the Script Editor, with a wizard for adding key/value pairs to the codex
  • Added icons for each option in the expression builder in the Script Editor to provide more visual distinction between each expression type
  • Added description box to the bottom area of the expression builder in the Script Editor for displaying helpful information about the selected type
  • Added support for directional animations when the attack animation override setting is used for a weapon item (e.g. "sword_swing_east")
  • Added "Stop Sound" scripting function for stopping a sound using its ID returned from the "Play Sound" function, with optional fade out (e.g. stop_sound(0, 2))
  • Added "Stop Music" scripting function for stopping any music that's currently playing, with optional fade out (e.g. stop_music(2))
  • Added "Clear Log" scripting function for clearing all text from the message log (i.e. any text displayed via the "Log Message" function)
  • Added ability to retrieve and modify an object's XYZ offset via script (e.g. self.offset = array[1, 2, 5], self.offset_x = 3, etc.)
  • Added ability to retrieve and modify an object's XYZ rotation via script (e.g. self.rotation = array[10, 0, 45], self.rotation_z = 25, etc.)
  • Added ability to manually set the current value and maximum value of a progress bar via script using "value" and "max_value" syntax (e.g. $my_element.value = 10)
  • Added ability to retrieve or change an object's display name via script using the built-in "name" property (e.g. entity["book01"].name = "New Name")
  • Added four new effect presets to the Effect Editor: fountain, portal, rain, and snow (available when creating a new effect)
  • Added "Preprocessing Time" setting to the Effect Editor, which processes the particles in advance by the specified number of seconds
  • Added "Explosiveness" setting to the Effect Editor, which determines how many of the particles emit at once (at max, all emit simultaneously)
  • Added "Fixed FPS" setting to the Effect Editor, which can be used to limit the framerate of the effect's particles
  • Added "Randomness" setting to the Effect Editor for applying randomness to the scale of the generated particles
  • Added "Local Space" setting to the Effect Editor, which when enabled will lock particle movement to the parent object's local space
  • Added ability to press the ESC key to cancel out of the capture when capturing an image or character portrait in the Voxel Editor
  • Added options to the "Import Resources" dialog for selecting all, selecting none, and changing the model type for all selected models
  • Added several assets from Stumpy the Squirrel's "How to Make a Game" tutorial series to the built-in Asset Library
  • Updated in-game widget system to significantly improve performance when using placeholder expressions in text labels and text fields
  • Updated "Play Sound" scripting function to include support for looping the sound and setting a play interval (e.g. play_sound("sound.wav", true, 1))
  • Updated "Play Sound" scripting function to return a unique sound ID for later referencing the sound (e.g. to stop via "Stop Sound")
  • Updated "Play Music" scripting function to include two new optional parameters, fade in (in seconds) and loop mode (true = loop, false = play once)
  • Updated "Missing Dependencies" dialog in the Map Editor to auto-select resources whenever there's a single match on the name (e.g. in a subfolder)Updated Voxel Editor to only generate meshes for frames that have applicable changes instead of every frame when saving a model
  • Updated attach points dropdown in the Voxel Editor so it will attempt to keep the same one selected when switching between animation frames
  • Updated Effect Editor to properly support transparent colors for effects using cubes, spheres, or billboards without an image assigned
  • Updated limit for the camera zoom's minimum value in the Game Configuration dialog to 10 instead of the previous limit of 30
  • Updated "Offset" camera setting in the Game Configuration dialog so it's available for the perspective camera type even when rotation is disabled
  • Updated Map Editor to support copying and pasting of entity properties between two different maps instead of only within the same map
  • Updated light attenuation setting in the Voxel Editor to have a minimum value of 0.01 to prevent potential lighting issues in maps
  • Updated game cursor to automatically refresh whenever the "Set Entity Script" function is called (in case the cursor is hovering over that entity)
  • Updated Game Explorer to allow the creation of a new effect from the context menu when right-clicking the "Effects" folder
  • Updated Script Editor to display a confirmation dialog when attempting to close the script when there are pending changes to the Bauxite source code
  • Updated About dialog to include credit for the default game UI font (PixelMplus) on the "Resources" tab with a link to the creator's website
  • Updated expression builder in the Script Editor to automatically select the corresponding expression type and values when an expression is manually entered
  • Changed name of the variable expression builder in the Script Editor to "Expression Builder" to better represent what the dialog is used for
  • Changed name of the "Variable" option in the variable expression builder to "Local Variable" to help clarify its scope and usage
  • Removed "None" from the "Navigation Type" dropdown of the "Replace Navigation" visual scripting node since it's not applicable for that parameter
  • Bug Fixes:
  • Fixed issue where "party.member["player"]" syntax would return null instead of the main player character after saving and loading a game
  • Fixed issue where the player's quests would be missing after saving and loading a game (i.e. "player.quests" would return an empty array)
  • Fixed issue where the player was no longer able to right-click consumable items to use them after saving and loading a game
  • Fixed issue where objects and characters added and then removed prior to saving a game would still be present after loading (at center of map)
  • Fixed issue where "nonexistent signal: storage_slot_item_changed" error message would sometimes display when loading a saved game
  • Fixed issue with positioning of objects in the Map Editor when rotating one with an offset assigned or using Alt + Click to pick it in place mode
  • Fixed issue where null was being returned instead of the skill ID when attempting to access a skill slot via script
  • Fixed issue where mouse interaction on an entity would stop working after using the "frame" property to change its current frame
  • Fixed issue where using the group scripting syntax on the left side of a contains expression would not evaluate as true even if the entity was in the group
  • Fixed issue where the "substr" scripting function would not work properly if the third length parameter was omitted
  • Fixed issue where custom functions were not yielding when called unless storing a return value into a variable via assignment
  • Fixed issue where appending a value to an array using a binary "+" operation would incorrectly result in the original array's data being modified
  • Fixed issue where global properties were being reset to null after a game was restarted (e.g. via player defeat or the "Restart Game" function)
  • Fixed issue where calling the "Give Item" function from a widget button's script would fail if item icon popups were enabled
  • Fixed issue where a character's level, MP, Max MP, and custom stats were not being carried over when using "Set Entity Model" to change their appearance
  • Fixed issue where the "Character is Damaged" global event script wasn't being triggered when the player dealt melee damage to an enemy in real-time
  • Fixed issue where "initiator" always referred to the player character instead of the attacking character when an enemy used a ranged weapon in real-time
  • Fixed issue where calling "Give Item" or "Remove Item" function with the character specified and storing the return value was not being accepted as valid
  • Fixed issue where attempting to call "Reset Entity Rotation" without having first called "Rotate Entity Towards" wasn't being properly caught and logged
  • Fixed issue where the "Put Player" scripting function was not triggering a visibility update for any groups auto-hidden via the "-hide" suffix
  • Fixed issue where the "Configure Attached Objects/Effects" dialog was not remembering any attached objects residing in subfolders when returning to the dialog
  • Fixed issue where any effects that resided in subfolders were not being listed properly in dropdown boxes (e.g. "Attach Effect" visual script node, etc.)
  • Fixed issue where the "Permanent" setting for Fog of War would not display until the Game Configuration dialog was closed and opened again
  • Fixed issue where changing the Y and Z scale values for attach points in the Voxel Editor would sometimes fail to update the attached object's scale
  • Fixed issue where the Y and Z scale values for attach points would be switched when using the "Copy Settings" and "Paste Settings" buttons
  • Fixed issue where an undo action would trigger in the Voxel Editor when attempting to press the "Accept" button during an image/portrait capture
  • Fixed issue where the "F4" and "4" Voxel Editor shortcut keys were not switching to the fill tool while in texturing mode
  • Fixed issue on the Model Properties panel where enabling the "Light Source" setting would not properly scroll the light settings panel fully into view
  • Fixed issue where the Effect Editor was sometimes being incorrectly marked as having changes when first opening an effect
  • Fixed issue where a text label's alignment in the Widget Editor would reset to "Left" after changing the font size of the text
  • Fixed issue where widget buttons could be inadvertently activated via space bar after being pressed once (as a result of capturing keyboard focus)
  • Fixed issue where widgets would potentially not have updated values immediately after loading a map (e.g. a character's coordinate)
  • Fixed issue where enemy spawn timers would be started again every time the player returned to a map with spawns (resulting in the enemy limit being exceeded)
  • Fixed issue where a map could fail to load if an enemy spawn assigned to a group in that map had been removed from the Combat Editor
  • Fixed issue with the shake effect applied to characters not bumping the damaged character in the correct direction when hit
  • Fixed issue where setting an attack animation override for a weapon in the Item Editor would cause tactical turn-based battles to become stuck
  • Fixed issue where the built-in player HP bar would stop working properly when using the "Player Override" map setting to change the character model
  • Fixed issue where the player character model was not reverting back to the default player character when travelling to a map with no override assigned
  • Fixed issue where dragging a nested player node onto its parent player choice node could result in a dialogue with broken connections
  • Fixed several issues in the Dialogue Editor related to modifying and saving values for the "Go To" node while in compact mode
  • Fixed issue where dialogues added as favorites were not being displayed on the "Favorites" tab (only highlighted in the Game Explorer)
  • Fixed issue where the "Projectile Object Model" field in the Item Editor wouldn't initially display after switching a weapon's type to "Ranged"
  • Fixed issue with the attack animation of the "goblin" character from the built-in Asset Library not being configured properly
  • Fixed issue with the "sk_bush_02" object model failing to open in the Voxel Editor after being imported from the Asset Library
  • Fixed issue where the incorrect editor would sometimes be displayed when clicking on the main editor tabs along the top of the application
  • Fixed incorrect date for the v1.0.6.5 release in the "What's New in RPG in a Box!" dialog (year shown was 2022 instead of 2023)
  • Documentation:
  • Added initial version of "2D Games" tutorial that walks through setting up a 2D project similar to the Kenney Tiny Dungeon template
  • Added initial version of built-in docs for "Free Movement" with details about current functionality, issues, and planned features
  • Updated "Vehicles" built-in docs to remove the known issue listed at the bottom now that the issue has been fixed
  • Updated "Tile" built-in docs to include properties that return connected tiles (e.g. $my_tile.north_tile is tile to the north)
  • Updated "Character" built-in docs to include info about the "skills" and "quests" properties for getting a character's skills and quests
  • Updated "Map Properties" built-in docs to include info about the "Player Override" setting only changing the visual appearance
  • Updated "Entity Properties" built-in docs to include info about $object variable that's available to the pushing-related tile scripts
  • Updated "Data Files" built-in docs to include .json file extensions in Bauxite examples since an extension is now required
  • Updated "Scripting Reference" built-in docs to include info about referencing main player character via "party.member["player"]"
  • Updated "Scripting Reference" built-in docs to include "Stop Music" function and updated signatures for "Play Music" and "Play Sound"
  • Updated "Scripting Reference" built-in docs to include info about retrieving gameplay settings as a codex via "global.gameplay"
  • Updated "Script Syntax" built-in docs to include info about the "Duplicate" function along with some Bauxite code examples
  • Updated "Stop Player" built-in docs to include a more clear description of how the function affects the player's movement
  • Updated "Groups" built-in docs to include a note that auto-hiding does not trigger if the Fog of War setting is enabled
  • Updated "Import Resources" and "Sound" built-in docs to include info about video file support (WEBM and OGV) and OGG support for sound effects
  • Updated "Widget Editor" built-in docs to indicate that custom widgets are now added to the management screen from the UI Editor's "Screens" tab

New in RPG in a Box 1.0.6 (Nov 30, 2022)

  • 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(<image_name>, <duration>, <background_color>, <stretch_mode>))
  • 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(<string>, <start_position>, <length>) - 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

New in RPG in a Box 1.0.5.1 (Oct 21, 2022)

  • Fixed issue with not being able to use the built-in "direction" property to rotate a tile or object from a script.

New in RPG in a Box 1.0.5 (Oct 20, 2022)

  • New Features/Changes:
  • Added top-down orthogonal camera mode to the Map Editor for easier 2D/overhead map creation (located next to the isometric camera button)
  • Added "Panorama Sky" background option to the Map Properties panel of the Map Editor (image needs to be an equirectangular sky map)
  • Added new option to the "Reaction to Obstacle" NPC behavior setting for running a custom script upon encountering an obstacle
  • Added ability to control pushable objects using the mouse by clicking on a valid tile in front of the object or behind the player character
  • Added ability to release a pushable object currently held by the player character by clicking on it (in addition to the G key)
  • Added "Object is Grabbed" and "Object is Released" global event scripts ("self" contains object, "initiator" contains character)
  • Added "Object is Pushed" global event script ("self" contains object, "initiator" contains character, tiles are stored in $previous_tile and $target_tile variables)
  • Added ability to scale objects and characters being placed into a map (Shift + Scroll Wheel scales by 0.05, Ctrl + Scroll Wheel scales by 0.1)
  • Added "Copy Settings" and "Paste Settings" buttons to the Model Properties panel for copying the offset/scale/rotation values between attach points
  • Added ability to separately scale the X, Y, and Z values of attach points in the Voxel Editor from the Model Properties panel
  • Added setting to the Widget Properties panel which, when enabled, will pass mouse input through areas of the widget not occupied by elements
  • Added "on close" script setting to the Widget Properties panel that gets triggered when the widget's "X" close button is pressed ("self" contains widget)
  • Added "UI Scale" option to the Editor Settings dialog so that the interface can be scaled for high DPI displays
  • Added "Free Movement" experimental setting to the Game Configuration dialog (only basic movement/interaction supported, full gameplay not yet possible)
  • Increased maximum in-game zoom distance to 300 (adjustable from the Gameplay section of the Game Configuration dialog)
  • Updated eyedropper tool in the Map Editor (Alt + Left-Click) to also get the scale of the selected object or character
  • Updated "Predefined Animation Names" dialog in the Voxel Editor to include directional animation names ("idle_north", "walk_north", etc.)
  • Updated character animation functionality to auto-trigger corresponding walk/idle/attack animations on any attached objects when played
  • Updated About dialog to include credit to andysphinx for the "Box of Colors" default Voxel Editor palette
  • Bug Fixes:
  • Fixed several in-game issues with the pushable object functionality when used with the first-person camera
  • Fixed issue with the player being able to release a pushable object in the middle of two tiles while pushing it
  • Fixed issue with default scale not being properly applied when the player character was configured as a billboard sprite
  • Fixed issue with characters configured as "Two-Dimensional" being incorrectly rotated upon reacting to an obstacle (via behavior setting)
  • Fixed issue with holding Ctrl + Middle Mouse Button and dragging up/down to zoom not working properly in the Map Editor when isometric camera was enabled
  • Fixed issue with Voxel Editor being marked as having changes when pressing ESC to deselect all selected voxels
  • Fixed issue where "Request Coordinate" and "Request Entity" scripting functions could be triggered even when one was already being requested
  • Fixed issue where the "type" built-in property was not being accepted as valid syntax when used with a variable (e.g. $my_entity.type)
  • Fixed issue with using compound operators (+=, -=, etc.) to modify stat values via scripts not working correctly (literal value would be assigned to the stat)
  • Fixed error that could occur when using "Capture to Image" in the Voxel Editor then later switching to the "Mesh Preview" mode

New in RPG in a Box 1.0.4 (Sep 29, 2022)

  • New Features/Changes:
  • Added "Box of Colors" palette to the Voxel Editor (the new default/official palette of RPG in a Box, created by community member andysphinx)
  • Added cooldown setting for specifying a skill's real-time cooldown in seconds (zero if none), updated skill slot to darken and show timer when cooldown is active
  • Added mouse sensitivity setting to the in-game options menu for adjusting the mouse sensitivity when looking around in first-person mode
  • Added ability to directly reference a character's behavior via script (e.g. entity["some_npc"].behavior returns a codex of their behavior properties)
  • Added ability to modify individual behavior settings for a character via script (e.g. entity["some_npc"].behavior["move_direction"] = NORTH)
  • Added ability to modify or remove a storage/quick slot's item via script (e.g. widget["my_widget"].element["0001"].item = "ITEM_0001")
  • Added ability to modify the stack size of a storage slot's item via script (e.g. widget["my_widget"].element["0001"].count += 1)
  • Added ability to modify the scale of billboard sprites in the Map Editor (X/Y/Z values will be locked together)
  • Added ability to stop the currently playing animation in the Voxel Editor by pressing the ESC key
  • Increased maximum widget size in the Widget Editor to 64 columns by 36 rows (will allow a widget to cover the entire screen at 1920x1080)
  • Updated Bauxite syntax to allow direct references to a character's inventory, which returns an array of codexes or null if a slot is empty (e.g. player.inventory)
  • Bug Fixes:
  • Fixed issue in the default example game where console errors would display after taking the coins then returning to the chest to open/close it again
  • Fixed issue with "Go To" dialogue node not jumping to the correct node in some cases when using the "Go To Node" option
  • Fixed issue where null was being returned when getting the entity ID of an entity when stored in a variable (e.g. $my_entity.id)
  • Fixed issue with accessing properties of "front_tile" and other related references not being accepted as valid syntax (e.g. player.front_tile.id)
  • Fixed issue with the height of the default inventory widget being one row too large when displayed in the Widget Editor

New in RPG in a Box 1.0.2 (Jun 20, 2022)

  • Added initial implementation of subfolder support for resources (all types except maps, folders must be created outside of the editor until a future update)
  • Added new functionality to the "Loot Drops" section of the Combat Editor, allowing multiple items per loot drop (with a chance for each and a fixed or random amount)
  • Added ability to generate loot for the selected loot drop in the Combat Editor with a percentage chance for each loot drop
  • Added initial version of "Character Stats" section to The Stats Editor, which includes a list of the built-in stats and Bauxite examples
  • Added ability to define custom stats for characters in the Stats Editor
  • Added ability to define maximum values for both custom stats and any applicable built-in stats in the Stats Editor
  • Added "next_level" and "next_xp" stats for getting a character's next level and XP required for that level
  • Added ability to define custom equipment slot configurations in the Stats Editor (to use a custom one, set the desired slot configuration as default)
  • Added "Status Effects" section to the Stats Editor with initial options for "Stat Buff" and "Stat Debuff"
  • Added "Currency" section to the Stats Editor with initial options for changing the base currency name/image and adding custom currencies for future functionality
  • Added currency option to the Item Editor for specifying the associated currency for the item's cost
  • Added "Tool Item Changes" global event script that's triggered when the player's active tool changes
  • Added ability to set a projectile model override for ranged weapons in the Item Editor to use instead of the weapon/ammo's model
  • Added ability to pack an image into a widget so it can be used in other projects without needing the source image file
  • Added ability to change the colors of progress bars in the Widget Editor
  • Added Fog of War setting in the Game Configuration's gameplay section for making the fog permanent
  • Updated lighting preset functionality to store the map's background color so it will change along with the lighting
  • Updated "New Resource" dialog to properly check for invalid characters in the resource name
  • Updated "Predefined Animation Names" dialog in the Map Editor to include "spawn" for titles and objects and "revive" for characters
  • Updated slot ID dropdown on "Element Properties" panel for equipment slots to allow selection of slots from custom equipment slot configurations
  • Updated default inventory widget to include an icon and text label that displays the player's currency amount (i.e. player. stat["c urrency"))
  • Updated "Set Entity Script" scripting function to support tool item triggers by using the item's ID as the trigger (e.g. set_entity_script(self, "my_script", "ITEM_0001"))
  • Updated "Set Character Name" scripting function to allow entity references (i.e. player) in addition to entity IDs
  • Updated maximum timer value of enemy spawns in the Combat Editor to allow up to 3,600 seconds (i.e. how often an enemy can potentially spawn)
  • Updated Combat Editor to have "Loot Drops", "Random Encounters", and "Enemy Spawns" sections expanded by default
  • Updated Combat Editor and Stats Editor to create backups of the "combat.json" and "stats.json" files when saving
  • Updated line of sight logic for ranged weapons to catch some cases that were being missed, allowing the player to shoot through wall tiles in certain scenarios
  • Updated tactical turn-based combat to refresh the current player characters movement area if their "move_range" stat is updated during their turn
  • Updated Steam rich presence logic to support the Quest Editor so its name is displayed as the current rich presence status while in the editor
  • Updated Patreon credits in the About dialog to reflect the up-to-date levels for each patron based on the number of months pledged at each tier
  • Removed placeholder encounter message that was displayed before the battle whenever the player triggered a random encounter
  • Removed unnecessary "under construction" message from the Stats Editor (RPG in a Box will always be expanding and improving throughout!)
  • Fixed issue where an NPC/enemy's "On Death" script was not being triggered when killed via the "Damage Entity" scripting function
  • Fixed issue where enemies that had respawned from a real-time enemy spawn or via "Revive Character" would no longer be attackable in some cases
  • Fixed issue with ranged weapons not working properly when an object model wasn't assigned to the weapon or ammo item
  • Fixed issue where the "speed" stat bonus for weapons was not being properly removed when the weapon was unequipped
  • Fixed issue with objects using the multi-directional billboard sprite option not working properly in-game (i.e. not displaying as multi-directional)
  • Fixed issue where the "Remove surfaces along grid boundaries" setting in the Voxel Editor was being applied to all voxels instead of only the transparent ones
  • Fixed issue with "Continue and "Load Game" options not properly showing on the Main Menu and Pause Menu when a save file existed
  • Fixed issue with fog of war where tiles underneath the player would be incorrectly hidden in some cases (e.g. starting on a bridge with a river tile underneath)
  • Fixed issue where using the "clear" array function would not work properly to remove all entities from a group (e.g. group("my_group").clearo)
  • Fixed issue where the $item_id local variable was null instead of containing the item's ID when using an item from a quick slot
  • Fixed issue where "initiator" built-in variable was null when calling a script from a dialogue (also affected item icon popups when giving an item during dialogue)
  • Fixed issue where item tooltips were not being hidden when using ESC to close the inventory (when the management screen was disabled)
  • Fixed issue where clicking the "V button to close a widget could cause the player to start moving if the mouse button was over a walkable tile
  • Fixed issue with custom interaction cursor not displaying when set for an attackable enemy and the player had a weapon equipped
  • Fixed issue where the cursor image was not being updated when the "Request Entity" scripting function was called
  • Fixed issue where the cursor image was not being updated after an entity was selected via the "Request Entity" scripting function
  • Fixed issue where sound/music files failed to import if the project folder was missing the "sounds"/"music" subfolders
  • Fixed issue where the event details were incorrectly displaying for random encounters and enemy spawns after closing and reopening a project
  • Fixed issue with random encounters in the Combat Editor allowing more than a total of 100% for the possible battles defined for an encounter
  • Fixed issue with some UI components not being updated properly when selecting random encounters and enemy spawns in the Combat Editor
  • Fixed issue with some UI components in the Quest Editor and Combat Editor not using the Godot editor theme when selected
  • Fixed issue with some options for the "Default Editor Tab" setting not working properly (Quest Editor, Combat Editor, Stats Editor, and Documentation)
  • Fixed "invalid operands" error that would display in the external console window if the first map loaded in a game had "Use Day/Night Cycle" disabled
  • Documentation: Added initial version of built-in docs for "Stats Editor" (including a list of all character stats currently available)
  • Documentation: Added initial version of built-in docs for "Codex" data type (including some scripting examples)
  • Documentation: Updated "Predefined Animation Names" built-in docs to include new "revive" animation (triggered when "Revive Character" function is used)
  • Documentation: Updated "Predefined Animation Names" built-in docs to include info about the "push" and "pull" animations for characters
  • Documentation: Updated "Shop Item Slot" built-in docs to include info about changing the cost of an item in a shop item slot
  • Documentation: Updated "Item Editor" built-in docs to include info about $item_id variable with the item's ID being available from a usable item's script

New in RPG in a Box 0.9.9 (May 9, 2022)

  • Added ability to rename lighting presets in the Map Editor and moved button toolbar to allow more room for the preset dropdown
  • Added warning message to Map Editor that displays when the pending tile would overwrite an existing tile at the current coordinate
  • Added setting to the Map Editor section of the Editor Settings dialog for disabling the tile overwrite warning
  • Added global event script for when a character gets damaged ($damage variable contains damage amount, self is character that was damaged, initiator is entity that dealt the damage)
  • Added titlebar button to player choice nodes in the Dialogue Editor as an alternate method of splitting a node out into a multiple choice branch
  • Added weapon minimum/maximum damage settings to the Item Editor (random value between these numbers is added onto a successful hit)
  • Added ability to cycle left and right through the player's available tool items using the left/right square bracket keys
  • Added information about the "noclip" free camera mode command to the in-game debug console's usage text
  • Added models by community members andysphinx, Fonk, skumleren, and Joseph DiPerla to the built-in Asset Library (6 tiles, 33 objects, and 19 characters)
  • Updated tile bounding box in the Map Editor to turn yellow when the pending tile would overwrite an existing tile at the current coordinate
  • Updated "Apply Lighting Preset" scripting function to fall back to the global presets if the specified one doesn't exist for the current map
  • Updated icon of management screen button for the default RPG in a Box theme to match the style of the other management screen icons
  • Updated Patreon credits in the About dialog to reflect the up-to-date levels for each patron based on the number of months pledged at each tier
  • Moved "Tool Item UI" game configuration setting from the Experimental section to the User Interface section (may need to enable again if being used)
  • Moved "Item Icon Popups" game configuration setting from the Experimental section to the Gameplay section's "Other" tab (now enabled by default)
  • Fixed issue with models failing to open in the Voxel Editor when an object set to be auto-attached no longer existed
  • Fixed issue with models not displaying properly as billboards in some cases when configured as a billboard sprite
  • Fixed issue with "Open in Script Editor" buttons not being enabled in some cases for the completion/failure scripts in the Quest Editor
  • Removed "alpha" suffix from the RPG in a Box version number displayed on the About dialog box
  • Documentation: Updated "Set Entity Script" built-in docs to include info about fourth parameter (triggerable by NPCs)

New in RPG in a Box 0.9.0 (May 4, 2022)

  • Added initial implementation of Quest Editor with ability to define quests (with settings for name, description, completion script, failure script, and tags)
  • Added built-in Quest Log widget to display the player's current quests (accessed in-game via management screen, can be disabled in Screen Editor)
  • Added initial implementation of first-person menu-driven combat to allow simple turn-based dungeon crawler style combat
  • Added "Give Quest" scripting function for giving a quest to the player using its unique ID (e.g. give_quest("QUEST_0001"))
  • Added "Complete Quest" scripting function for completing a quest that was previously given to the player (will trigger quests's "Completion Script")
  • Added "Fail Quest" scripting function for failing a quest that was previously given to the player (will trigger quests's "Failure Script") - Added "Quest Editor" as an option for the "Default Editor Tab" setting in the General section of the Editor Settings dialog
  • Added support for OBJ exporting to the Voxel Editor (via "Export to External Format" toolbar button, with toggle setting for "One file per frame")
  • Added ".objects" scripting syntax for getting objects that currently exist on a tile (returned as an array, or null if no objects exist)
  • Added "comma-separated tags" placeholder text to the Tags field in the Item Editor to help clarify how the item's tags should be entered
  • Updated Bauxite source code generation in the Script Editor to always include semicolons after statements, even for those that are the last in a set
  • Removed "under construction" messages from the top of the Combat Editor and bottom of the Widget Editor and Screen Editor
  • Removed debug messages that would display in the console when creating a new voxel group in the Voxel Editor
  • Fixed some issues that could occur when attempting to duplicate an existing battle in the Combat Editor

New in RPG in a Box 0.8.0 (Apr 20, 2022)

  • New Features/Changes:
  • Added project template section to the Game Manager with options for blank project, bare bones project, default example game, and a new example game based on Kenney's 1-Bit assets
  • Added new models to the Asset Library that are based on Kenney's 1-Bit assets and are used by the new example game (21 tiles, 19 objects, and 3 characters)
  • Added "Fixed Vertical Axis" setting for billboard sprites to the Model Tools panel that keeps the sprite vertically upright regardless of camera angle (best suited for first-person)
  • Added "Controls" tab to the Gameplay section of the Game Configuration dialog for specifying which control types (mouse/keyboard/controller) are enabled for movement and interaction
  • Added ability to override the editor locale by creating a "locale.txt" file in the root installation folder containing a locale code (e.g. ja for Japanese)
  • Updated angle of directional light in the built-in example game's "overworld" map to match that of the default map settings
  • Updated Asset Library to not have the "fighter_01" model selected by default to prevent it from being inadvertently imported
  • Updated default example game to include an explanation of vehicle controls, moved welcome message to the startup script, and changed message of the house sign
  • Updated Patreon credits in the About dialog to reflect the up-to-date levels for each patron based on the number of months pledged at each tier
  • Bug Fixes:
  • Fixed issue with multi-directional sprite functionality not working properly for the player character when the camera was rotated by the player
  • Fixed issue where the player character was being forced to continue climbing a climbable tile even when forced climbing was disabled
  • Fixed issue with grouping in the Voxel Editor where groups were being created for all frames of a model instead of only the current frame in some cases
  • Fixed "invalid get index" error that would display in the console when using the "Set Entity Model" function to change an object's model

New in RPG in a Box 0.7.4.0 Alpha (Mar 29, 2022)

  • Added billboard sprite support to character models (8 directional sprites are generated from the 3D model, with support for manual sprite drawing coming later)
  • Added "Multi-Directional Sprite" checkbox to the Model Tools panel for indicating whether a model should show 8 directional sprites or only its front
  • Added button to the the palette area for enlarging the size of the color boxes (i.e. the old size prior to the 256-color palette)
  • Added ability to set the horizontal alignment of text labels in the Widget Editor from the Element Properties panel
  • Fixed issue where auto-hiding was not taking effect immediately after a map was loaded (only once the player character had moved)
  • Fixed issue with projectiles no longer dealing damage when the player used a ranged weapon to attack an enemy
  • Fixed issue with more than one of a character being added to the same tile in the Map Editor when the character was set as passable

New in RPG in a Box 0.7.3.1 Alpha (Mar 18, 2022)

  • Added support to the Voxel Editor for transparent colors when using the "Billboard Sprite" mesh option
  • Updated "Billboard Sprite" option in the Voxel Editor to work properly with the texturing functionality (i.e. multiple textures per model frame)
  • Increased maximum limit of camera zooming when using the isometric camera mode in the Map Editor
  • Fixed issue where using transparent or emissive colors in a model could cause the Voxel Editor to freeze when saving
  • Fixed issue with "Replace Color" tool not working when adding new voxels to a model then using the tool on the new voxels of a non-default texture
  • Fixed issue with importing a palette from a PNG file having more than 64 colors (only the first 64 colors were included in the imported palette)
  • Fixed issue where the eyedropper cursor would display in the Voxel Editor when holding Shift + Alt to deselect voxels with the selection tool
  • Fixed issue with "Textures" dropdown on the Model Tools panel incorrectly reverting to "Default" in some cases when switching between models
  • Fixed issue with "Texturing Mode" box not displaying and grid dimensions/move panels not being hidden when first adding a new model texture in the Voxel Editor
  • Fixed issue with "Texturing Mode" box not being hidden when undoing the creation of a new model texture in the Voxel Editor
  • Fixed issue with documentation button on the Translations tab of the Game Configuration dialog no longer working
  • Fixed issue where the documentation button on the Key Bindings tab of the Game Configuration dialog was opening the localization documentation
  • Fixed missing localization text for RENAME_TEXTURE, CONFIRM_TEXTURE_DELETION, and PRESS_KEY_TO_BIND strings

New in RPG in a Box 0.7.3.0 Alpha (Mar 15, 2022)

  • New Features/Changes:
  • Added support for custom functions to the Bauxite scripting language (see "Script Syntax" docs for syntax and example function)
  • Added support for multiple textures per model frame in the Voxel Editor (add/switch textures from the Model Tools panel)
  • Added "Set Entity Texture" scripting function for changing an entity's texture (e.g. set_entity_texture(player, "Pajamas"))
  • Added ability to set the initial texture of an entity's model after placed into a map (via the Entity Properties panel)
  • Added built-in "textures" entity property for getting an array of all texture names (as strings) defined for an entity (e.g. entity["xyz"].textures)
  • Added "Request Entity" scripting function that prompts the player for an entity (e.g. $selected = request_entity("validate_entity") - visual node coming soon)
  • Added "Request Coordinate" scripting function that prompts the player for a tile coordinate (e.g. $selected = request_coordinate(0, -64, 64, 16, "validate_coord") - visual node coming soon)
  • Added "Set Entity Scale" scripting function for setting the X/Y/Z scale of an object or character (with optional duration, e.g. set_entity_scale(player, 1.5, 1.5, 1.5, 2) - visual node coming soon)
  • Added "scale" entity property to get or set the scale of an object or character from a script (via number or array, e.g. player.scale = 1.5 or player.scale = array[1, 1, 1.5])
  • Added "scale_x", "scale_y", and "scale_z" entity properties to get or set the scale of an object or character from a script (e.g. player.scale_z = 0.5)
  • Added ability to define terrain types for pushable objects in the Map Editor (similar to vehicle terrain types)
  • Added "Set Terrain Types" scripting function to change the terrain types of characters/vehicles/pushable objects (e.g. set_terrain_types(entity["xyz"], PROHIBIT_FROM, array["water"]) - visual node coming soon)
  • Added ALL, PROHIBIT_FROM, RESTRICT_TO constants to the Bauxite scripting language for use with the "Set Terrain Types" function
  • Added in-game free camera mode for debugging and other purposes (toggled via "noclip" command from the debug console)
  • Added absolute value, floor, and ceiling math functions to the Bauxite language (e.g. abs($num), floor($num), ceil($num))
  • Added ability to get and set the cost of an item in a widget's shop item slot using the ".cost" syntax (e.g. widget["my_shop"].element["0001"].cost)
  • Added ability to get the cost of an item (as defined in the Item Editor) from a script using the ".cost" syntax (e.g. item["ITEM_0001"].cost)
  • Added ability to hide/show widget elements using a new "visible" property (e.g. widget["my_widget"].element["0001"].visible = false)
  • Added "Missing Dependencies" check to the Map Editor when saving maps in order to prevent them from becoming corrupted in cases where models they used were renamed or deleted
  • Added buttons to the About dialog for Reddit and YouTube that link to the official subreddit and YouTube channel for RPG in a Box
  • Added button to the About Dialog for viewing the license text of SFXR (on which the Sound FX Generator is based) in a popup box
  • Added "Connect with RPG in a Box" section at bottom of Game Manager with links for social media and other related sites
  • Updated pushing functionality to also allowing pulling by directing the player character away from the object being pushed
  • Updated color palette in the Voxel Editor and Image Editor to support up to 256 colors instead of only 64
  • Updated "Predefined Animation Names" dialog in the Voxel Editor to include "push" and "pull" for character models (triggered when pushing/pulling objects)
  • Updated "Set Entity Tooltip" scripting function to support a third optional Boolean parameter to indicate whether or not the tooltip should always show
  • Updated editor to prevent deletion of models that are currently open in the Voxel Editor or that are used in any maps currently open
  • Updated Patreon credits in the About dialog to reflect the up-to-date levels for each patron based on the number of months pledged at each tier
  • Updated About dialog to include Oryx Design Lab credit for the Tiny Dungeon tileset (on which the Dungeon in my Pocket assets are based)
  • Bug Fixes:
  • Fixed issue where the player would move in unexpected directions when using the standard camera with "relative to camera" movement and the camera was at a 45-degree increment
  • Fixed issue where the movement control type setting for projects would incorrectly default to "Tank" instead of "Relative to Camera" in certain scenarios
  • Fixed issue with Global Illumination in the Map Editor not recalculating map boundaries until toggled off then back on again (now only a "Bake" is required)
  • Fixed issue with data being null when using the "Load Data" function to load a JSON file that was previously stored without a password using the "Save Data" function
  • Fixed issue with "Set Entity Tooltip" not immediately updating the tooltip text when the entity's tooltip was currently being displayed
  • Fixed issue with visual scripts where nodes would display above the darkened overlay after moving them and then editing the source code
  • Fixed error that would occur in the Script Editor when the "Put Player" function was used without explicitly including the "Player Direction" argument (after applying the source code)
  • Documentation:
  • Updated "Script Syntax" built-in docs to include info about custom functions along with some example code
  • Updated "Script Syntax" built-in docs to include info about math functions ("round", "mod", "pow", "sqrt", "abs", "floor", and "ceil")
  • Updated "Scripting Reference" built-in docs to include function signatures for "Request Coordinate", "Request Entity", "Set Entity Scale", "Set Entity Texture", and "Set Terrain Types"

New in RPG in a Box 0.7.2.0 Alpha (Dec 17, 2021)

  • New Features/Changes:
  • Added initial (experimental) implementation of enemy spawns (configured in the Combat Editor then assigned to a group from the Map Properties panel in the Map Editor)
  • Added initial (experimental) implementation of pushable functionality (enabled for objects via the "Pushable" toggle button in the Map Editor, with a setting for push speed)
  • Added "Climb (One-Way)" navigation option to the right-click context menu when connecting climbable tiles in the Map Editor (to restrict characters to one direction)
  • Added "Forced/Automatic Climbing" setting for climbable tiles, which will force characters to continue climbing in their current direction when reaching that tile
  • Added animation override setting for climbable tiles to the Entity Properties panel in the Map Editor (will override the character's default "climb" animation)
  • Added ability to adjust the scale of objects and characters in the Map Editor from the Entity Properties panel
  • Added ability to raise and lower the placement grid level in the Map Editor in half tile width increments using Alt + Scroll Wheel
  • Added ability to create/edit 16x16 and 32x32 item images in the Item Editor (via the "plus" and "pencil" buttons next to the "Image" dropdown in the "Item Overview" area)
  • Added "Key Bindings" section to the Game Configuration dialog for defining custom key bindings that will perform in-game actions (either run a script or toggle the display of a widget)
  • Added ability to import from PNG image files into the Voxel Editor via the "Import from External Format" toolbar button (with a setting for X/Y pixel offset)
  • Added Voxel Editor settings for default state of the grid lines, voxel outlines, surface edges, ambient occlusion, and ground when opening models in the editor
  • Added ability to the Voxel Editor to select all voxels in the model's current frame by pressing the key combination Ctrl + A
  • Added ability to the Voxel Editor to cut the voxels currently selected to the clipboard by pressing the key combination Ctrl + X
  • Added "Default Scale" setting to the Model Properties panel in the Voxel Editor which will be automatically applied when an object or character is added to a map
  • Added built-in "spawn" animation type for entities that are added to the scene via "Add Tile", "Add Object", "Add Character", or enemy spawn
  • Added ability to define custom death animations based on which weapon item killed a character(e.g. look for animation named "death_ITEM_0001" if killed with the item having ID "ITEM_0001")
  • Added "Allow Mouse Look" gameplay setting to the Game Configuration dialog to allow disabling of mouse look when using the first-person camera type
  • Added "Limit Mouse Look" gameplay setting to the Game Configuration dialog to restrict the range of mouse looking (with settings for the maximum horizontal and vertical offset)
  • Added "Always Show Tooltip" setting to the Entity Properties panel in the Map Editor to indicate that the entity's tooltip should always display instead of only on mouse hover
  • Added "Quick Play" section to the Editor Settings dialog with an option for toggling availability of visual navigation debug paths (now disabled by default for performance)
  • Added "Save Data" scripting function for saving custom data with optional password parameter for encryption (e.g. save_data($my_var, "my_file", "password"))
  • Added "Load Data" scripting function for loading custom data with optional password parameter when loading encrypted files (e.g. $my_var = load_data("my_file", "password"))
  • Added "Save Game" and "Load Game" scripting functions for calling the built-in save/load functionality (via the syntax "save_game()" and "load_game()")
  • Added "Change Player" scripting function for swapping out the player character for another character (see documentation for usage details)
  • Added "codex" data type to the Bauxite language for storing a set of key/value pairs, where the key is a unique string and its value is any valid data type (e.g. $x = codex["id": "ITEM_0001", "count": 5])
  • Added support to the Bauxite language for referencing an objects attached to entities' attach points (e.g. player.attachment["right_hand"] will be the object on the player's "right_hand" attach point)
  • Added random noise support to the Bauxite language (functions "get_noise_2d(x, y)" and "get_noise_3d(x, y, z)" will return a value between -1 and 1 for given position)
  • Added ability to seeds for random number generation and noise generation by assigning integer values to "global.random_seed" and "global.noise_seed"
  • Added debug console warning when attempting to use a non-numeric value for the index of an array in an assignment statement (e.g. $my_array["x"] = "value")
  • Added informational message to the debug console when using the "exec" command to indicate that the script has been successfully triggered
  • Added "Apply and Save" button when editing Bauxite code in the Script Editor that will apply changes and save the editor in one step
  • Added ability to press the ESC key while editing a script's source code in the Script Editor to cancel out of editing mode
  • Added 16x16 base feminine and masculine characters to the Asset Library (originally created as part of the monthly Patreon assets)
  • Updated "Add Tile", "Add Object", and "Add Character" scripting functions to return the newly added entity (e.g. to store in a variable: $new_tile = add_tile("grass", coord[0, 0, 0]))
  • Updated "Put Player" and "Put Entity" scripting functions to also support a coordinate or tile entity reference for the destination tile
  • Updated ranged weapon functionality in first-person mode to rotate the camera towards the target enemy if attacking from an angle
  • Updated weapon functionality to trigger attack animations for attached weapon objects if they have one that matches that of the animation name triggered for the character
  • Updated scripting to not throw an error when referencing a data file that doesn't exist (instead, null is returned and the script will proceed)
  • Updated filename validation when creating new assets to prevent creation of files with the same name but having different case
  • Updated data file functionality to now require ".json" extension when referencing custom data files from a script (i.e. data["myfile.json"])
  • Updated "Justin" character in the Asset Library to include several new animations ("push", "throw", "shoot", and "slide")
  • Updated "Sarah" character in the Asset Library to include hand attach points and several new animations ("climb", "interact", "attack", and "death")
  • Updated speed of walk animations for space ranger characters in the Asset Library to match the speed of the new 16x16 base characters
  • Updated purple slime and red slime characters in the Asset Library to include spawn animations and made the purple slime's color more vibrant
  • Updated speed of walk animations for the purple slime and red slime characters in the Asset Library to achieve two bounces per tile instead of one
  • Updated Patreon credits in the About dialog to include levels for each patron based on the number of months pledged at each tier
  • Changed "Copy" and "Paste" buttons on the Model Tools panel to be icons only, added new button for "Cut" as well as tooltip text with shortcut key for each function
  • Changed ambient occlusion in the Voxel Editor to be disabled by default when opening models (default state can now be adjusted in the Editor Settings)
  • Changed wording of source code headers in the Script Editor, Map Editor, and Quick Script Builder from "Source Code" to "Bauxite Code"
  • Removed debugging text from the message that displays when the player has triggered a random encounter upon entering a tile
  • Bug Fixes:
  • Fixed issue with the "Set Entity Script" function not working properly if no trigger type was explicitly specified when assigning a script to a tile
  • Fixed issue where using the "Unlimited Use" consumption type for weapons was preventing ranged weapons from working properly
  • Fixed issue with ranged weapons sometimes not working in first-person mode when the character's attack animation included a "projectile" attach point
  • Fixed issue with custom attack animations not working properly when configured for melee weapons (i.e. anything other than the default of "attack")
  • Fixed issue that occurred when using the "Wait" function in a character's "On Death" script where the rest of the script would fail to execute
  • Fixed issue with starting the player character on a climbable tile when using the "Load Map" function (character would behave as if on a normal tile)
  • Fixed issue where some tile scripts were not triggering properly when climbing, mounting, or dismounting climbable tiles
  • Fixed issue where the climb up/down controls were not showing/hiding in certain cases when using the mouse to move the player character
  • Fixed issue with positioning of characters on climbable tiles not working properly in some cases when using "climb" attach points
  • Fixed issue with "Move Character" function not working for NPCs when required to climb up/down a climbable tile adjacent to their current tile
  • Fixed issue with quick slot bar interfering with mouse input when it's disabled in Game Configuration (e.g. when attempting to rotate the camera with the mouse)
  • Fixed issue that would occur when choosing the "Use Global Script" option for a tool item then saving the Item Editor without selecting a script
  • Fixed issue where the "Use ID string only" checkbox was sometimes not displaying in the Entity Expression Builder when initializing the dialog from an ID string
  • Fixed issue with string values not being enclosed in quotes when contained within an array and the containing array is printed or displayed
  • Fixed issue with not being able to use references to values by index in arithmetic operations (e.g. $x = $my_array[0] + 1)
  • Fixed issue where using an assignment statement to set a value by key within data loaded from a JSON file was not properly changing the value (e.g. $my_data["key"] = "value")
  • Fixed issue where the subsequent frame of a model would incorrectly display when a "Ping Pong" or "Ping Pong Once" animation had the same start frame and end frame
  • Fixed issue where "Load Game" and "Continue" would incorrectly display on the Option/Pause menus if the game had been previously saved and then "Saving" was disabled
  • Fixed issue with "Add Item To Container" function not properly returning the number of items that were successfully added to the container
  • Fixed issue with "Add Item To Container" function not working properly for containers that were initially empty (unless they had been opened once by the player)
  • Fixed issue that would occur when following a scripting function with an assignment expression that stored a value returned from a function into a variable
  • Fixed issue where item icon popups weren't displaying when enabled and calling "Give Item" as part of an assignment statement (e.g. $count = give_item("ITEM_0001", 5))
  • Fixed issue where capturing an image in the Map Editor would result in an image format error in the console and the target image file would be empty
  • Fixed issue where the positions of marker icons were not being updated when changing the initial frame of an entity in the Map Editor
  • Fixed issue with invalid sound effect assigned to the "dungeon_gate" sample model's animations causing a debug console error to display when the animation was triggered
  • Documentation:
  • Added initial version of built-in docs for the "Apply Lighting Preset" and "Change Player" scripting functions
  • Updated "Global Event Scripts" built-in docs to include info for "Character's Health Changes", "Character Enters a Tile", "Character Stops on a Tile", and "Character Exits a Tile"
  • Updated "Climbing" built-in docs to include info for one-way climbing, forced/automatic climbing, and climb animation override
  • Updated "Put Player" and "Put Entity" built-in docs to reflect that the target tile can now be an entity reference or coordinate
  • Updated "Map Editor" built-in docs to include info about using Alt + Scroll Wheel to raise and lower the placement grid level in half tile width increments
  • Updated "Map Editor" built-in docs to include info about holding ~/` to hide all visual indicators or Shift + ~/` to toggle all of them off
  • Updated "Tile" built-in docs to include info about most recent properties (type, model, frame, animations, terrain type, attach points, and waypoints)
  • Updated "Object" and "Character" built-in docs to include a list of all properties that can be accessed from scripts
  • Updated "Game Controls" built-in docs to include info about pressing F12 to take an in-game screenshot and where they are stored
  • Updated "Pre-Defined Animation Names" built-in docs to include info about latest types ("climb" for characters, "move" and "attack" for vehicles, and "spawn" for all entities)
  • Updated "Scripting Reference" built-in docs to include signatures for latest scripting functions

New in RPG in a Box 0.7.1.0 Alpha (Oct 16, 2021)

  • New Features/Changes:
  • Added ability to drag and drop existing nodes (without children) in the Dialogue Editor to move them to a different position within the dialogue
  • Added new "compact mode" for nodes in the Dialogue Editor that can be toggled on and off via a button on the node's titlebar
  • Added support for new "Offset" portrait position to the Theme Editor and related dialogue functionality (image is displayed outside of the dialogue box along the side)
  • Added ability to specify which side a character's portrait should be displayed on (i.e. left vs. right) to the "Player" and "NPC" node types in the Dialogue Editor
  • Added ability to specify that a character's portrait should be flipped horizontally to the "Player" and "NPC" node types in the Dialogue Editor
  • Added option to the Dialogue Editor section of the Editor Settings dialog for customizing the color of connection lines
  • Added option to the Dialogue Editor section of the Editor Settings dialog for customizing the color of the pending placement indicator/highlight
  • Added option to the Dialogue Editor section of the Editor Settings dialog for enabling the "compact mode" setting on the Dialogue Tools panel by default
  • Added option to the General section of the Editor Settings dialog specifying the default model filter (i.e. filter by name vs. filter by tag)
  • Added ability to set the sun's latitude and longitude (i.e. height and direction) from the Procedural Sky Settings dialog in the Map Editor
  • Added ability to rotate the preview camera on the Procedural Sky Settings dialog (with direction indicator and buttons to reset the camera and invert the mouse y-axis)
  • Added ability to set the default initial frame for a model in the Voxel Editor which will determine the frame that is shown by default when added to a map
  • Added option to the "Preview Attached Objects" dialog in the Voxel Editor to allow selection from any available attach points on the object being attached
  • Added button to the Voxel Editor toolbar for hiding/showing the indicators (i.e. boxes with link icons) shown at the model's attach point locations
  • Added ability to save camera positions in the Voxel Editor via the camera view panel in the lower right hand corner of the viewport
  • Added Global Event Script option for "Character Enters a Tile" (in the script, "self" will reference the tile and "initiator" will reference the character)
  • Added Global Event Script option for "Character Stops on a Tile" (in the script, "self" will reference the tile and "initiator" will reference the character)
  • Added Global Event Script option for "Character Exits a Tile" (in the script, "self" will reference the tile and "initiator" will reference the character)
  • Added Global Event Script option for "Character's Health Changes" (in the script, "self" will reference the character and the variable "$amount" will reference the amount their health changed by)
  • Added option to the Map Editor for saving lighting settings into presets which can then be applied within the editor or in-game via the new "Apply Lighting Preset" function
  • Added new scripting function "Change Camera" for switching the camera between Standard and First-Person
  • Added new scripting function "Apply Lighting Preset" to apply a lighting preset to a map over a duration of time or instantly
  • Added new scripting function "Set Ambient Light Intensity" to change the intensity of the map's ambient light (instantly or over time)
  • Added new scripting function "Set Directional Light Intensity" to change the intensity of the map's directional light (instantly or over time)
  • Added visual script nodes to the Script Editor for the "Apply Lighting Preset", "Set Ambient Light Intensity", and "Set Directional Light Intensity" functions
  • Added constants for entity types (TILE, OBJECT, CHARACTER) to the Bauxite language (equivalent to the strings "tile", "object", and "character")
  • Added new built-in entity properties for getting various string type values: ".model" (name of model, e.g. "grass"), ".type" (constant value: TILE, OBJECT, or CHARACTER) and ".terrain_type"
  • Added new built-in entity properties for getting various array type values: ".animations", ".attach_points", and ".waypoints"
  • Added new built-in entity property ".frame" for getting or setting an entity's current animation frame (e.g. self.frame = 2)
  • Added initial support for emissive colors to the Voxel Editor (for use along with the "Global Illumination" and "Glow" map lighting options)
  • Added initial support for glow lighting effect to the Map Editor (for use along with the "Global Illumination" option and emissive colors)
  • Added ability to disable all visual indicators in the Map Editor by pressing Shift + ~/` (previously the only option was to hide them temporarily by holding the ~/` key)
  • Added "Hide Invalid Tiles" option to the Editor Settings dialog for hiding tiles on the resource panel that don't match the currently active map's tile width
  • Added initial support for random encounters to the Combat Editor (with option to define a list of possible battles and the chance that each can occur)
  • Added ability to take screenshots by pressing F12 in-game (images are saved into the user's pictures folder within a subfolder for the game)
  • Added icon for the enemy count setting shown when an enemy is selected in the Combat Editor's "Battles" section
  • Updated Script Editor to disable the visual graph when editing the source code of a script to prevent changes to the visual nodes
  • Updated script, item container, platform, and vehicle sections of the Entity Properties panel in the Map Editor to scroll as much into view as possible when expanded
  • Updated Voxel Editor and related model functionality to support odd voxel grid dimensions for models (previously limited to only even dimensions)
  • Updated calculations for vertical positioning of characters to consider height of voxels on both sides of the center line (for tiles with even dimensions)
  • Changed default angle of the directional light in newly created maps to be pointing straight down (i.e. high noon)
  • Changed filter box along top of the tile/object/character panels to filter by name as the default option (instead of by tag)
  • Changed some of the sections in the Combat Editor to be collapsed initially (those other than the General, Battles, and Enemies sections)
  • Updated icon for the "Battles" header in the Combat Editor to a new crossed swords icon in place of the original single sword icon
  • Updated hover highlighting for placeholder dialogue nodes in the Dialogue Editor to match the pending placement color (customizable from the Editor Settings dialog)
  • Changed label wording on the Map Properties panel to use "Intensity" instead of "Energy" to match the scripting functions for lighting
  • Removed OBJ option from the Voxel Editor's "Export to External Format" dialog until the functionality has been fixed for a future update
  • Bug Fixes:
  • Fixed issue where using a duration of zero for the "Set Ambient/Directional Light Color" and "Set Entity/Group Light Color" functions would cause them to fail
  • Fixed issue where using a duration of zero for the "Set Entity Light Intensity/Diameter/Attenuation" functions would cause them to fail
  • Fixed issue with "Add Character" scripting function not considering the passability of characters on the target tile
  • Fixed issue where double-clicking a function in the script function list added it to the visual graph instead of the source code when editing the script's source code
  • Fixed issue with sound dropdown on the "Play Sound" visual script node not clipping sound names that were longer than the width of the dropdown
  • Fixed issue with player character's "direction" property not being correct in some cases when climbing a climbable tile and accessing the property via script
  • Fixed issue where using "player.direction" to set the player character's direction in first-person mode wasn't updating the camera's direction
  • Fixed issue where a vehicle's model wasn't rotating when the player turned while operating the vehicle in first-person mode
  • Fixed issue with climbing functionality not working in first-person mode (pressing "C" to climb will now properly cause the player to start climbing)
  • Fixed issue with attaching an object to a model in the Voxel Editor when the current frame didn't have an attach point with the ID being assigned
  • Fixed issue with the "Remove surfaces along grid boundaries" transparency setting in the Voxel Editor no longer working properly
  • Fixed issue where platform-related properties weren't being carried over to the new tile when replacing an existing tile in the Map Editor
  • Fixed errors that could occur when using box mode to place tiles in the Map Editor and adjusting the dimensions of the pending area
  • Fixed issue where the Map Editor crosshair was not being hidden when holding down the ~/` key to hide extras
  • Fixed issue where part of the Map Editor crosshair graphic would sometimes incorrectly display after releasing the ~/` key to hide/show extras
  • Fixed issue where newly created maps that hadn't been edited/saved would be marked as having changes the first time being opened in the Map Editor each session
  • Fixed issue with initial angle of a newly created map's directional light not being consistent with the horizontal/vertical values displayed on the Map Properties panel
  • Fixed issue where models created using the "Save As" feature weren't displayed in the recent file list until the application was restarted
  • Fixed errors that would occur when disabling the "Light Source" setting for a model and then opening a map using that model in the Map Editor
  • Fixed issue where the camera could sometimes not be zoomed in or out during menu-driven combat
  • Fixed issue with the portrait preview image sometimes displaying incorrectly after changing its position in the Theme Editor
  • Fixed issue where dragging a function onto a blank line in the source code area of the Script Editor created an extra semicolon on its own line
  • Fixed issue with incorrect vertical scrollbar colors in the Dialogue Editor when using the Obsidian theme
  • Fixed typo in description of the "Reset Map" function in the list of scripting functions in the Script Editor

New in RPG in a Box 0.7.0.0 Alpha (Jul 31, 2021)

  • New Features/Changes:
  • Added initial implementation of ranged weapons (with settings for range, projectile speed, and consumption types for unlimited use, single use, and requiring ammo items by ID or tag)
  • Added "Weapon" setting to the Item Editor for indicating that an equippable item should behave as a weapon (with options for "Melee" and "Ranged" and an attack animation override)
  • Added ability to preview objects on attach points in the Voxel Editor (via buttons on main toolbar and next to attach point list on the Model Properties panel)
  • Added button to the Voxel Editor toolbar for toggling the visibility of objects currently attached to the model's attach points
  • Added ability to specify that an object attached to a model's attach point in the Voxel Editor should also be automatically attached in-game
  • Added ability to define mesh type overrides for voxel groups in the Voxel Editor (e.g. to force a group to use the classic mesh type when the base type is set to Marching Cubes)
  • Added button to the Model Tools panel for adding selected voxels to a group as an alternative to using the "G" shortcut key
  • Added "Display Choices" scripting function that presents a set of choices to the player in a dialogue box and returns the resulting choice for storing/evaluating
  • Added optional second parameter to the "Display Message" scripting function for specifying a speaker entity (e.g. display_message("Hello, I'm the player!", player))
  • Added shortcut key ("Y") for toggling the "Random Rotation" option on and off when using the Map Editor's placement tool
  • Added shortcut key ("U") for toggling the "Auto-Connect Navigation" option on and off when using the Map Editor's placement tool
  • Added "Run Script" option to the "Interaction by Player" and "Next to Player" NPC behavior settings on the Entity Properties panel in the Map Editor
  • Added "On Death" option to the NPC behavior settings in the Map Editor for triggering a script after the NPC is killed
  • Added initial implementation of menu-driven combat (available as a new battle type named "Menu-Driven Turn-Based" in the Combat Editor)
  • Added battle settings to the Combat Editor for defining scripts to trigger based on the battle's outcome (i.e. victory or defeat)
  • Added ability to adjust the Bauxite code's font size in the Script Editor and Quick Script Builder using Ctrl + Scroll Wheel
  • Added ability to resize the Quick Script Builder by clicking and dragging the sides or corners of the dialog box
  • Added "Array" as an option for the Variable Expression Builder dialog for easily setting up an array from a list of values
  • Added "Variable" as left and right operand options for the Conditional Expression Builder dialog and as an option for the Variable Expression Builder dialog
  • Added "Recent" tab for quickly accessing recently opened files (alongside the "Game Explorer" and "Favorites" tabs)
  • Added button to the Game Explorer and Favorites toolbar for quickly accessing the Game Configuration dialog (as an alternative to double-clicking the Game Explorer list item)
  • Added option to the Editor Settings dialog for choosing which file tab to show by default upon startup of the application (Game Explorer, Favorites, or Recent)
  • Added ability to change the data type of existing custom properties on the Model Properties and Entity Properties panels (by clicking icon that displays the current type)
  • Added ability to change the data type of existing properties on the Global Properties tab of the Game Configuration dialog (by clicking icon or text that displays the current type)
  • Added ability to set custom images (normal and hover) for the management screen's close button from the properties panel of the Screen Editor
  • Added ability to specify a custom widget to use for a character's equipment on the Model Properties tab (to override the built-in "equipment" widget)
  • Added buttons to the properties panel of the Screen Editor for hiding/showing the inventory and equipment toolbar buttons on the management screen
  • Added informational area to source code section's header in the Script Editor to display item info or function's signature and help button based on the cursor's current location or selection
  • Added ability to auto-fill parameter hints for scripting functions in the in-game debug console by entering a function name then pressing the Tab key
  • Added informational popup that displays when attempting to rename a platform waypoint to a name that already exists
  • Added background panel to tool buttons (zoom in/out, etc.) in the Script Editor viewport to match the style of other editor panels
  • Added shortcut key (F8 or 8) to the Voxel Editor for switching to the "Create Attach Point" tool (for adding attach point locations to a model)
  • Updated type dropdown of "Custom Properties" section on the Model Properties and Entity Properties panels to include icons for each data type (i.e. String, Number, and Boolean)
  • Updated script syntax to support coordinate x/y/z values on the left side of assignments when the coordinate is stored in a local variable (e.g. $my_coord.x += 1)
  • Updated "contains" scripting syntax to support references to character inventories other than the primary player character (e.g. if party.member["Sarah"].inventory contains "ITEM_0001" then)
  • Updated "contains" scripting syntax to support strings (for example, to check if a string contains one or more occurrences of another string)
  • Updated "Display Message" visual script node to include a field for specifying an optional speaker entity to speak the message
  • Updated vehicle functionality to trigger the vehicle's "attack" animation and face towards the target when attacking from a vehicle
  • Updated "Predefined Animation Names" dialog in the Voxel Editor to include "attack" for object models (triggered when fighting from an object used as a vehicle)
  • Updated platform waypoint list on the Entity Properties panel to allow renaming or removal of the platform's "Default" waypoint
  • Updated Variable Expression Builder dialog to ensure that the currently selected type in the list is visible when first opening the dialog
  • Updated consumable item functionality to store the consumed item's ID into a local variable ($item_id) for its assigned script to reference
  • Updated maximum value for item cost in the Item Editor to 1 billion instead of the previous limit of 1 million
  • Updated "Recent Items" section (shown in the center of applicable editors when no files are opened) to include an hourglass icon next to the header text
  • Updated "Remove Item" scripting function to also consider items in the character's equipment slots instead of only storage slots
  • Updated "Give Item" and "Remove Item" scripting functions to support an optional third parameter to specify the target character (defaults to current player character)
  • Changed "Give Item" and "Remove Item" scripting functions to affect the active party member during turn-based battles instead of always the primary player character
  • Updated "Equip Item" scripting function to now require the target character to first have the item before equipping it
  • Updated "Equip Item" and "Unequip Item" scripting functions to also equip/unequip the item into/from equipment slots in applicable widgets
  • Changed "self" keyword in widget button scripts to reference the button element itself instead of the parent widget ($widget variable can be used to get the parent widget)
  • Changed wording of default mesh type on the Model Tools panel in the Voxel Editor from "Default" to "Classic"
  • Changed ordering of "Add to Favorites" button on the Game Explorer toolbar to be positioned before the "Delete Resource" button
  • Moved "Management Screen Widgets" setting from the Game Configuration dialog to the management screen's properties panel in the Screen Editor
  • Bug Fixes:
  • Fixed issue with "Override Animation" scripting function not working properly in some cases when triggered for the same animation multiple times in a row
  • Fixed issue where references to properties of widget elements (i.e. text, image, script, item) was not being accepted as valid syntax when the element was stored in a variable
  • Fixed issue where the "Passable" character property was not being considered when using keyboard controls to move (preventing the player from moving through NPCs set as passable)
  • Fixed issue where the "Custom Properties" list in the Voxel Editor was not being refreshed when opening an object or character
  • Fixed issue where properties for entities in the "Custom Properties" list could lose their values after being renamed more than once
  • Fixed issue where using Ctrl+D to duplicate a frame in the Voxel Editor was sometimes handled by the most recently opened model tab instead of the currently visible one
  • Fixed issue where the player character's attachments were not being updated in "3D Model" widget elements when objects were attached/detached via a script
  • Fixed issue where the camera type would revert to "Standard" after choosing "First-Person" and then returning to the Game Configuration dialog
  • Fixed issue where changing a character's health in the Voxel Editor was not being propagated to characters already placed into a map
  • Fixed issue where a waypoint could be added to a platform tile at a coordinate with a waypoint already defined
  • Fixed issue where a widget wouldn't be hidden when returning to the game if it was hidden via the "Hide Widget" function while the management screen was open
  • Fixed issue where the pause menu wouldn't open (or the inventory/item container widget wouldn't close) when ESC was pressed with the management screen disabled
  • Fixed issue where cursor image wasn't displaying the item count when picking up an item stack from an equipment slot
  • Fixed issue where the Item Editor would sometimes display translation IDs instead of the translated item names when localization was enabled
  • Fixed issue with "For Loop" and "Assign Value" visual script nodes where a variable name was being accepted as valid in some cases where it shouldn't be
  • Fixed issue with "Add Tile" scripting function incorrectly allowing tiles of the wrong dimensions to be added to a map
  • Fixed issue where the player would start strafing in first-person mode when holding the turn left/right key and then letting go of the forward key or running into an obstacle
  • Fixed issue where player's movement direction wasn't changing in first-person mode when holding down the forward key and then using mouselook to change the view direction while walking
  • Fixed several inventory/equipment widget issues when using the management screen for a party member during turn-based combat
  • Fixed several debug console error messages for the "Equip Item" and "Unequip Item" functions to properly show the required data type when an incorrect type was used
  • Fixed some in-game crashes that could occur when modifying a widget's text label or when a widget was refreshed after a property's value had changed
  • Fixed console error that could occur when toggling the "Stackable" property for a newly created item in the Item Editor
  • Fixed item related errors that would sometimes display in the console when exiting to the Game Manager
  • Documentation:
  • Added initial version of built-in docs for the new "Display Choices" scripting function
  • Updated built-in docs for "Script Syntax" to include additional "For Loop" example showing how to iterate over an entire array
  • Updated built-in docs for "Scripting Reference" to add some missing optional parameters and a note about optional parameters being marked with an asterisk
  • Updated built-in docs for "Entity" to include note about the "player" keyword returning the active or most recently active party member during turn-based battles
  • Updated built-in docs for "Entity" to include note about using "player" as a party member ID to get the primary player character (i.e. party.member["player"])
  • Updated built-in docs for "Button" to include note about "self" keyword referencing the button element and the $widget variable referencing the parent widget
  • Updated built-in docs for "Display Message" to include info about the optional "speaker" parameter and to fix a formatting issue with the "Visual Demo" header
  • Updated built-in docs for "Equipment Slot" to correct some info about tag requirements for items equipped to equipment slots

New in RPG in a Box 0.6.4.0 Alpha (May 1, 2021)

  • New Features/Changes:
  • Added initial implementation of climbable tiles and related functionality (see "Climbing" documentation for more details)
  • Added ability to assign scripts to objects in the Map Editor that are triggered by tool items (similar to tiles)
  • Added placeholder UI for tool item selection in-game (enable "Tool Item UI" in Game Configuration's experimental section, click button to cycle through any tool items in your inventory)
  • Added "Interaction Range" setting for items defined as tools in the Item Editor ("adjacent" or "unlimited", with unlimited indicating that the entity can be anywhere in the map)
  • Added ability to set up default custom properties for models in the Voxel Editor which will be automatically assigned when the tile/object/character is placed into a map
  • Added rotation type dropdown for the orthogonal camera to the Gameplay settings (locked at 90-degree intervals, locked at 45-degree intervals, free rotation)
  • Added checkbox to the Gameplay settings for starting the camera with a 45-degree offset (only applicable to the "locked at 45/90-degree intervals" options)
  • Added button next to the "Camera Pitch" field in the Gameplay settings to set the angle value to default (55 degrees)
  • Added button next to the "Camera Pitch" field in the Gameplay settings to set the angle value to isometric (only applicable to orthogonal)
  • Added visual script node for the "break" command (for breaking out of while loops and for loops) to the Script Editor
  • Added "Item Icon Popups" setting to the Game Configuration's experimental section for showing icon popups when the player receives an item via "Give Item"
  • Added setting to the Combat Editor for indicating whether or not enemies should be removed from the map upon being defeated
  • Added "Global Illumination" setting to the Map Properties panel in the Map Editor (see "Global Illumination" documentation for more details)
  • Added "Used in Baked Light" setting to the Entity Properties panel in the Map Editor for indicating whether or not the entity should be included in global illumination
  • Added new Steam achievement "Hi, I'm Justin!" for dragging and dropping the Justin guide 10 times
  • Added new Steam achievement "Game Exporter" for using the "Export Game" feature to export your project to a standalone game
  • Updated the built-in example game to include many of the new features and functionality that have been added since its original release (more details to be announced separately)
  • Updated the "Camera Pitch" field in the Gameplay settings to allow up to two decimal places in the angle value
  • Updated Entity Properties panel to automatically choose the first trigger event with a script assigned, if applicable, when an entity is initially selected in the Map Editor
  • Updated "Justin guide" to open the "Vehicles" documentation when dropped onto the "Vehicle" settings on the Entity Properties panel for objects
  • Updated "Justin guide" to open the "Climbing" documentation when dropped onto the "Climbable" setting on the Entity Properties panel for tiles
  • Updated "Justin guide" to open the "Marching Cubes" documentation when dropped onto the "Mesh" components of the Model Tools panel
  • Updated "Justin guide" to open the "Global Illumination" documentation when dropped onto the "Global Illumination" settings on the Map Properties panel
  • Updated the About box to include palette credits for the editor icons (AAP-64 by Adigun A. Polack), Bauxite coloring (BLK NEO by BlackedIRL), and visual script nodes (Journey by PineTreePizza)
  • Updated the About box to include a link button for opening RPG in a Box's Patreon page in a web browser
  • Changed "Enemy Turn X/X" and "End Turn" text displayed during combat to use the game's default dialogue font to allow better language support
  • Changed background color of the editor startup splash to better match the editor's default theme colors
  • Bug Fixes:
  • Fixed issue with the Ctrl+V shortcut to paste voxels in the Voxel Editor not working properly in certain scenarios
  • Fixed issue where the Voxel Editor was not ensuring that at least one voxel was selected before allowing a copy to be performed
  • Fixed issue where the action system would revert to real-time when using roguelike mode and the "Restart Game" function was triggered
  • Fixed issue where the message log area (for "Log Message" function) would be inadvertently cleared out when starting a dialogue
  • Fixed issue where dialogues would get stuck when reaching a comment node until the player pressed Space or left-clicked to continue
  • Fixed issue where an entity's "direction" value was not being set when rotated in the Map Editor (a particular entity may need rotated again in the Map Editor if the initial value is referenced in a script)
  • Fixed issue where the speed multiplier setting for tiles was not being applied and would therefore not affect a character's speed
  • Fixed issue where the "passable" property for characters was not being updated for characters already placed into a map when changed in the Voxel Editor
  • Fixed issue where the player was not able to attack enemies and enemies would not properly wait to attack when using the roguelike action system
  • Fixed issue where the damage sound effect could break if the Combat Editor was saved after opening a project without a "combat.json" file
  • Fixed issue where pressing certain keyboard controls could cause the player to move even when movement had been locked
  • Fixed issue where using keyboard controls while on a moving platform could result in unexpected behavior
  • Fixed issue with hiding extras (`/~ key) in the Voxel Editor while an animation was playing (only attach points markers for the current frame were being hidden)
  • Fixed issue with "$variable.<property>" syntax failing to parse properly when used on the left side of a "contains" conditional expression (e.g. $tile1.tags contains "grass")
  • Fixed issue with "$variable.x", "$variable.y", and "$variable.z" syntax failing to parse properly when getting the x, y, or z value of a coordinate stored in a variable
  • Fixed issue with Ctrl+S in the Map Editor causing the map to be saved even if there weren't any changes at the time
  • Fixed issue with "Create Door" functionality in the Map Editor not working properly in certain scenarios
  • Fixed issue with "Show Credits" scripting function not working (error would display in the console window and the credits would fail to start)
  • Fixed issue with "str" scripting function not working properly to convert a coordinate value into a string value (e.g. str(coord[1, 2, 3]))
  • Fixed issue with "initiator" syntax not working properly when used in a consumable item's script (should now reference the player character)
  • Fixed issue with style of "Scripts" header on Entity Properties panel not updating when the editor theme was changed
  • Fixed issue with "Random (Forced)" option for NPC movement not working consistently when their movement was restricted to an area
  • Fixed issue with container name not displaying in the titlebar of the item container widget when one was assigned
  • Fixed pathfinding error that would display in the console during turn-based battles when the cursor was moved over an enemy while a player character's attack animation was playing
  • Fixed some issues that could cause navigation path inconsistencies when replacing existing tiles with impassable tiles in the Map Editor
  • Fixed "signal is already connected" console errors that would display when opening the Game Configuration dialog more than once
  • Fixed console error that would occur when the "Move Camera at Speed" function was triggered and the calculated distance to move was zero
  • Fixed console error that would occur when a moving platform without an entity ID assigned reached a waypoint
  • Fixed console error that would occur in certain scenarios in the Script Editor when a "Move Platform" function was used without the "pause" parameter explicitly set
  • Fixed error that could occur when using "Save As" in the Voxel Editor to save a character as a tile or object
  • Fixed issue where certain rooms in the example game's dungeon map were not being hidden initially due to missing global properties
  • Documentation:
  • Added initial version of built-in docs for "Climbing", "Marching Cubes", and "Global Illumination"
  • Updated built-in docs for "Voxel Editor" to include info about adding to/subtracting from the current selection and "G" hotkey for adding voxels to a group
  • Updated built-in docs for "Tile" to include a list of properties that can be accessed from scripts
  • Updated built-in docs for "Script Syntax" to include info about the "str" and "num" functions for converting between strings and numbers
  • Updated built-in docs for "Script Syntax" to include a note about the "Array" documentation now containing info regarding array manipulation functions
  • Updated built-in docs for "Placeholder Expression" to include an informational note about using them sparingly in scripts
  • Updated built-in docs for "Script Syntax" (and various others with Bauxite examples) to include semicolons at line endings to minimize issues when copying code
  • Updated built-in docs for "Data Files" to include the dollar sign prefix for variable names in the Bauxite examples

New in RPG in a Box 0.6.3.2 Pre-Alpha (Feb 25, 2021)

  • New Features/Changes:
  • Added support for multiple scripts per tile (scripts can now be assigned for each trigger event instead of being limited to just one)
  • Updated script section of properties panel for objects to include "Trigger Event" dropdown (with only the existing "Character interacts" option for now)
  • Updated "Add Object" and "Add Character" scripting functions to support a direct tile reference for the target instead of requiring its ID or coordinate
  • Updated error handling for the "Add Object" scripting function to properly catch invalid types passed as parameters
  • Updated error handling for the "Set Entity Script" scripting function to properly catch invalid trigger type values for tile scripts
  • Updated style of the Ambient Light and Directional Light sections of the Map Properties panel to match other settings sections
  • Bug Fixes:
  • Fixed issue where attach points couldn't be moved after being renamed in the Voxel Editor (until the model was re-opened)
  • Fixed issue where dialogue marker icons were not being removed when placing a character with a default dialogue in the Map Editor then undoing the action
  • Fixed issue where the states of widget elements (items in slots, text within fields, toggle button states, etc.) were not being stored when saving a game
  • Fixed issue where equipped items were not being stored when saving a game (causing "Unequip Item" attempts to fail after loading the saved game)
  • Fixed issue where a character's currency amount was not being stored when saving a game and therefore not being restored after loading the saved game
  • Fixed issue with "Add Object" scripting function where objects could be placed onto tiles already occupied by an object or NPC
  • Fixed issue with "Add Tile", "Add Object", and "Add Character" scripting functions not properly validating the entity ID when provided
  • Fixed issue where platforms would not resume their movement upon returning to a map when the player left the map while the platform was still moving
  • Fixed issue with global properties not being reset after a game was restarted (after the player is defeated or via the "Restart Game" function)
  • Fixed issue with references to party members (i.e. party.member["member_id"]) stored in variables or properties not working correctly when later referenced
  • Fixed issue with widgets not being visible after a game was restarted (after the player is defeated or via the "Restart Game" function)
  • Fixed issue with widget text fields sometimes reverting to their original text value (e.g. when modifying the text of another element)
  • Fixed issue where the states of widget elements were not being properly reset when a game was restarted
  • Fixed issue with the widget toolbar not displaying on the management screen when an item container was opened without having first opened the management screen
  • Fixed issue with item tooltips not being hidden when the widget containing the corresponding item slot was hidden with the "Hide Widget" function
  • Fixed issue with entity tooltips not being hidden after the corresponding entity was removed from the scene

New in RPG in a Box 0.6.3.1 Pre-Alpha (Feb 14, 2021)

  • New Features/Changes:
  • Added initial functionality for dropping items (left click anywhere in the game world to drop the item currently being held with the cursor)
  • Added "Can Be Dropped" setting to the Item Editor for specifying whether or not an item can be dropped (enabled by default)
  • Added "Tool Item" setting to the Item Editor for indicating that an item is a tool (in preparation for future functionality)
  • Added options to the Game Configuration's Sound Effects section for "Item Grab" and "Item Drop" (played when grabbing/dropping items within widgets or from/onto the ground)
  • Added console command to enable a new debug mode ("debug on" and "debug off" to enable/disable), with initial functionality of displaying IDs in item tooltips
  • Updated usage text for the debug console to include the new debug mode command and to combine the "nav on"/"nav off" usage info into one line
  • Updated wording of the labels for the toolbar icon fields on the Widget Properties panel to be more descriptive (i.e. "Toolbar Icon" instead of "Image")
  • Bug Fixes:
  • Fixed issue where using Shift + Left Click to transfer items between the player's inventory and containers wasn't checking to ensure an open slot existed
  • Fixed issue where the item container screen would be empty when opening a container after having previously displayed a message via "Display Message"
  • Fixed issue where defeated real-time enemies were not being removed from the map when damage shake/flash was disabled
  • Fixed issue where the player could exit a vehicle via Ctrl + Left Click while the vehicle was still moving
  • Fixed issue with the fill tool in the Map Editor causing a crash when used with the contiguous option on certain map layouts
  • Fixed issue with the inventory widget not reappearing after a dialogue/message if it had been opened prior to the start of the dialogue/message
  • Fixed issue with mouse input that would sometimes occur when closing an inventory widget then reopening the management screen and the widget
  • Fixed release date year for the v0.6.3.0 change log from 2020 to 2021

New in RPG in a Box 0.6.3.0 Pre-Alpha (Feb 6, 2021)

  • New Features/Changes:
  • Added the ability to copy and paste voxels in the Voxel Editor (via Ctrl+C and Ctrl+V or the "Copy" and "Paste" buttons on the Model Tools panel)
  • Added ability to combine items into a stack and to split item stacks by holding Ctrl key to grab one at a time
  • Added gameplay mechanic setting to the Game Configuration dialog for adjusting the fog of war distance
  • Added setting to widgets for displaying an "X" close button in the titlebar (configurable from the Widget Properties panel when the titlebar is enabled)
  • Added tooltip and hover graphics functionality for widget item slots (storage slots, equipment slots, and crafting input slots)
  • Added preliminary built-in widget for Equipment with a player model element and slots for the default slot IDs of "head", "left_hand", and "right_hand"
  • Added "Capture Image to File" functionality to the Map Editor for capturing a region of the viewport to a PNG file (similar to Voxel Editor)
  • Added "Embark Script" option for objects configured as vehicles in the Map Editor (triggers when the player character enters the vehicle)
  • Added lock icons next to the built-in widgets in the Widget Editor toolbar dropdown to indicate that they can't be edited
  • Added option to the Main Main Editor for specifying whether or not NPCs are allowed to move around when the Main Menu uses a background map
  • Added Steam rich presence value for "Game Configuration" that will display while in the game config dialog
  • Added "General" section to the Combat Editor with initial options for changing the default damage sound effect and toggling the damage shake/flash effect
  • Added editor setting for selection color to the Voxel Editor section and changed the default color to #DFFF00
  • Added placeholder "Screens" tab to the UI Editor in preparation for future functionality (currently this tab only displays a preview of the management screen)
  • Converted the built-in inventory and item container windows over to the new widget system to allow for easier customization in the future
  • Improved keyboard and gamepad movement to be more fluid when controlling the player character (should require less releasing/pressing to continue moving)
  • Changed item quick slot controls to use left-clicking for item usage and right-clicking for clearing the quick slot
  • Updated Widget Editor to allow built-in widgets (inventory, item container, and quick slot bar) to be duplicated into a custom widget
  • Updated item quick slots to display hover graphics and hand interaction cursor when appropriate
  • Updated shop item slots to show an item tooltip upon hovering (including the cost of the item set in the Item Editor)
  • Updated in-game cursor to display how many of an item is currently being held when transferring stacked items
  • Updated "Show Toolbar" and "Hide Toolbar" scripting functions to only work when the Management Screen is enabled
  • Updated turn-based battles to display a health bar over the main player character instead of only over the other party members
  • Updated health bar in the lower left corner to display the active party member's health during turn-based battles (and to be hidden during an enemy's turn)
  • Updated turn-based battle interface to hide the "End Turn" text while the Management Screen is open
  • Updated vehicle interaction to require the "Walk and Interact" path type between the player character's tile and the vehicle's tile
  • Updated Management Screen in-game to remember any custom widgets that were opened when closing then re-opening the Management Screen
  • Moved "Management Screen" options to the "User Interface" section of the Game Configuration dialog (which is now enabled by default)
  • Moved script settings for "Trigger When" and "Triggerable by NPCs" below the source code area on the Entity Properties panel of the Map Editor
  • Enabled caret blinking functionality for various text fields throughout the editor interface
  • Changed default cursor color to #A040FF and default surface edge color to #FF0080 in the Voxel Editor
  • Bug Fixes:
  • Fixed issue where "Craft Item by ID" widget buttons were not working properly when a recipe required more than one of a particular item
  • Fixed widget element errors that would fill the console when changing the player character's model using the "Set Entity Model" function
  • Fixed issue with 3D model widget elements not being updated when the player character's model was changed
  • Fixed issue with the player's minimap position not being updated in widgets after the player's character model was changed
  • Fixed issue with the indicator for the player's position displaying in the incorrect location in minimap widget elements
  • Fixed issue where items equipped to the player via scripts would not be reflected in 3D model widget elements (when configured with attach points)
  • Fixed issue with item tooltips not being hidden when using the "I" key to close the inventory
  • Fixed issue with entity tooltips not being hidden when using the "I" key to open the inventory
  • Fixed issue with item slot hover graphic not being cleared when using the "I" key to close the inventory
  • Fixed issue where the game cursor and entity tooltip were not being properly cleared when the mouse cursor moved into a widget
  • Fixed issue with positioning of fixed (i.e. non-draggable) widgets when the game was fullscreen or using a window size greater than 1280x720
  • Fixed issue with dialogues failing to start when they were triggered from a button's script within a widget
  • Fixed issue with the frame image not showing properly for newly created widgets (showed as solid blue background instead of the default graphics with rounded borders)
  • Fixed issue with moving an element onto an invalid position in the Widget Editor (element will now revert to its original position instead of being removed)
  • Fixed issue where a element's type icon would inadvertently reappear after moving the element when type icons were disabled on the Widget Editor toolbar
  • Fixed issue where a newly duplicated widget sometimes couldn't be selected from the dropdown in the Widget Editor until re-opening the project
  • Fixed issue with entity references in scripts not being properly converted to strings before being concatenated with another value and displayed
  • Fixed some cases where a script or dialogue could fail when the built-in "self" variable referenced an entity that was previously removed from the scene
  • Fixed issue where items couldn't be equipped to equipment slots if the project did not yet have a "stats.json" file
  • Fixed issue where the matrix dropdown was not being hidden when first importing a QB model into the Voxel Editor and then selecting a VOX file to import
  • Fixed issue where the maximum value for "Initial Frame" was not being properly set in the Map Editor based on the selected entity
  • Fixed issue where "Initial Frame" was not being applied to the model in the Map Editor until focusing another field or selecting another entity
  • Fixed error that occurred in the Map Editor when selecting an item container containing an item that no longer exists
  • Fixed issue where item containers would display with an empty slot in-game when an item in the container had been removed from the item database
  • Fixed surface edge issues that could occur when importing a VOX model with multiple frames into the Voxel Editor
  • Fixed issue where pressing the Enter key in direct entry fields of visual script nodes would insert a line break
  • Fixed issue where the properties tab would incorrectly display Widget Properties when a project was first opened
  • Fixed issue with changes to item costs not working properly in the Item Editor and costs inadvertently defaulting to 15 in-game
  • Fixed wording on "Terrain Types" dialog when setting the terrain types for a vehicle in the Map Editor (changed "character" to "vehicle")
  • Documentation:
  • Added initial version of built-in docs for "Vehicles" and "Terrain Types"

New in RPG in a Box 0.6.2.0 Pre-Alpha (Dec 13, 2020)

  • New Features/Changes:
  • Added "Item Storage Slot" as an available element type in the Widget Editor (slot that allows the player to store items into)
  • Added "Equipment Slot" as an available element type in the Widget Editor (allows the player to equip an item to a particular slot ID)
  • Added "Crafting Input Slot" as an available element type in the Widget Editor (slot that is used along with a button having the "Craft Items" action type)
  • Added "Shop Item Slot" as an available element type in the Widget Editor (with initial settings for item and item count)
  • Added "Button" as an available element type in the Widget Editor (with settings for text and image and action options of "Run Script", "Close Widget", "Craft Items", and "Craft Item by ID")
  • Added "Text Field" as an available element type in the Widget Editor (with initial settings for font, font size, and read-only state)
  • Added "Text Label" as an available element type in the Widget Editor (with initial settings for font and font size)
  • Added "Progress Bar" as an available element type in the Widget Editor (with ability to set expressions for current value and maximum value)
  • Added "3D Model" as an available element type in the Widget Editor (initially limited to displaying the player character's model)
  • Added "Minimap" as an available element type in the Widget Editor (initially limited to the existing minimap functionality displayed within the element's area)
  • Added visual script nodes to the Script Editor for "Show Widget" and "Hide Widget" functions
  • Added "Help" button to the Widget Editor toolbar that will jump to the editor's built-in documentation
  • Added description text box and "View Full Documentation" button at the bottom of the Widget Tools panel
  • Added toolbar button to Voxel Editor for capturing an image to a file (from a region of the viewport, similar to character portrait capturing)
  • Added initial management screen functionality in-game (off by default for now, can enabled in settings via Game Configuration -> Experimental)
  • Added initial auto-tiling functionality to the Map Editor ("Single" placement mode only for now - use the new "Create Auto-Tiles" button on the Map Editor toolbar to set up a tileset)
  • Added initial functionality for multi-tile (2x2) characters (to use, set the character's "Size in Tiles" property in the Voxel Editor before placing them into a map)
  • Added options to the "Default Tab" editor setting for each specific UI Editor sub-tab (Theme, Widgets, Main Menu, and Credits)
  • Updated item references in scripting to include support for getting ID and count (for item slot widget elements: $widget.element["0001"].id)
  • Changed tag and name filtering for models in the right-hand side preview list to be case-insensitive
  • Bug Fixes:
  • Fixed issue with attach point scale values not being properly applied when the values differed throughout a model's animation
  • Fixed issue where attach point markers were not being hidden when capturing a portrait/thumbnail or holding back quote to hide extras in the Voxel Editor
  • Fixed issue with the default zoom level in gameplay settings being incorrectly limited to the current min/max zoom values when "Allow Zooming" was disabled
  • Fixed issue with custom speaking sounds for characters not working properly during dialogues (default would always be used instead)
  • Fixed issue with maximum margin values not being updated based on image size when an image element was selected in the Widget Editor
  • Fixed issue with the game's theme not properly reverting to default settings after ending a dialogue where the last node had a theme override
  • Fixed issue where tiles would sometimes fail to be deleted in the Map Editor and errors would be displayed in the console window when attempting to remove them
  • Fixed issue with the Widget Editor inadvertently catching "Delete" key presses while in the Map Editor, preventing the key from properly deleting tiles and objects
  • Fixed issue with turn-based battles getting stuck when an enemy character had a movement range of zero
  • Fixed issue where using the "Navigation/Interaction" context menu in the Map Editor was not creating an undo action or marking the editor as having changes
  • Fixed issue where using "Load External Image" from the Image Editor dialog would sometimes result in the loaded image becoming distorted
  • Fixed issue with selection markers not being removed in the Widget Editor after selecting an element within a widget then switching to another widget
  • Fixed issue in the Item Editor where changes to an item's details would be lost if filtering the item list without first saving the changes
  • Fixed issue where saving the Item Editor when the item list is filtered would only save the items that were currently visible in the list
  • Fixed issue where dialogues could get stuck when the NPC's model was changed or when the NPC entity was removed during the conversation
  • Fixed issue where the control variable would have an extra dollar sign prefix when duplicating "For Loop" nodes in the Script Editor
  • Documentation:
  • Added initial version of built-in docs for "Widget Editor", "Widget", and "Management Screen"
  • Added initial version of built-in docs for widget elements "Item Storage Slot", "Item Quick Slot", "Equipment Slot", "Shop Item Slot", and "Crafting Input Slot"
  • Added initial version of built-in docs for widget elements "Text Label", "Text Field", "Button", "Image", "Progress Bar", "3D Model", and "Minimap"
  • Added initial version of built-in docs for "Attach Points" functionality (example images to come in a future update)
  • Added built-in docs for the "Show Widget" and "Hide Widget" scripting functions
  • Updated built-in docs for "Item" to include information about accessing an item's various properties via scripting
  • Updated built-in docs for "Voxel Editor" to include info about "Create Attach Points" mode and "Display Ambient Occlusion" toolbar button
  • Updated old "Decimal" data type text and link to the "Number" data type in the "Print" function documentation

New in RPG in a Box 0.6.1.0 Pre-Alpha (Sep 20, 2020)

  • New Features/Changes:
  • Added initial Quick Slot Bar functionality to the game engine (drop an item on a slot to assign it, right-click to use, grab and drop outside of the widget to unassign it)
  • Added setting to the Game Configuration's "User Interface" section for enabling/disabling the quick slot bar (currently disabled by default)
  • Added "Item Quick Slot" as an available element type in the Widget Editor (for use in widgets like the Quick Slot Bar)
  • Added "Image" as an available element type in the Widget Editor (with initial settings for image stretch mode and left, right, top, and bottom margins)
  • Added ability to select and delete elements from a widget in the Widget Editor (left click to select then Delete key to remove)
  • Added ability to move previously placed elements within a widget in the Widget Editor (hold left mouse button and drag to move)
  • Added ability to resize elements within a widget in the Widget Editor (select element then left-click and drag one of the handle squares)
  • Added ability to toggle display of the frame image and titlebar for widgets in the Widget Editor
  • Added ability to set the titlebar text of widgets from the properties panel when the titlebar is enabled
  • Added ability to set the display name of widgets from the properties panel (text displayed in the "Widgets" toolbar dropdown)
  • Added "Element Properties" tab that will display when an element within a widget is selected in the Widget Editor (double-click element to force display of its properties tab)
  • Added save button to the Widget Editor toolbar for saving changes made to custom widgets
  • Added toolbar buttons to the Widget Editor for adding new widgets, duplicating widgets, and deleting widgets
  • Added toolbar button to the Widget Editor for toggling display of element type icons (e.g. potion icon for item quick slots)
  • Added toolbar button to the Widget Editor for opening the project's "widgets" folder in the operating system's file browser
  • Added placeholder list to the Widget Tools panel for elements that will be available in the future but are not yet implemented
  • Added "Create Door" option to the right-click context menu in the Map Editor for quickly generating door scripts (door object and related tiles must first be selected)
  • Added toggle button to the Map Tools panel for disabling auto-connection of navigation paths while in Place mode
  • Added new scripting function "Show Widget" for showing a widget with the specified ID (e.g. show_widget("quick_slot_bar"), visual node to be added in future update)
  • Added new scripting function "Hide Widget" for hiding a widget with the specified ID (e.g. hide_widget("quick_slot_bar"), visual node to be added in future update)
  • Added array function for inserting a value into an array at a specific index/position (e.g. $my_array.insert(1, "A") inserts "A" into the array's second position)
  • Added array function for removing a value from an array at specific index/position (e.g. $my_array.remove(1) removes the value at the second position)
  • Added array functions for clearing an array and for getting the number of elements in the array (e.g. $my_array.clear() and $size = $my_array.size())
  • Added array functions for pushing values onto the beginning or end of an array (e.g. $my_array.push_front("A") and $my_array.push_back("Z"))
  • Added array functions for popping values off the beginning or end of an array (e.g. $first = $my_array.pop_front() and $last = $my_array.pop_back())
  • Added optional fourth parameter to the "Set Entity Script" function for setting tile scripts as triggerable by NPCs (e.g. set_entity_script("my_tile", "spikes", ENTER_TILE, true))
  • Added ability to filter tiles, objects, and characters by name (button next to filter box now lets you switch between "Tag List", "Filter by Tag", and "Filter by Name")
  • Added setting to the in-game options menu for window size (when using "Windowed" display mode), disabled manual window resizing to ensure proper aspect ratio is maintained
  • Added various helpful error messages to the in-game debug console related to invalid array and index references in scripts
  • Moved dropdown for selecting the active widget from the Widget Properties panel to the Widget Editor toolbar
  • Adjusted size of font for the in-game debug console to fix some issues with the vertical alignment of brackets
  • Updated "Duplicate Frame" functionality in the Voxel Editor to carry the frame length multiplier value over to the new frame
  • Updated "Import from External Format" dialog in the Voxel Editor to sort the matrix list alphabetically when importing from a Qubicle file
  • Changed "Random Rotation" setting on the Map Tools panel to an icon toggle button instead of a checkbox
  • Bug Fixes:
  • Fixed some issues related to changing the initial frame for an entity in the Map Editor when its model contained empty frames
  • Fixed some issues related to the evaluation of conditional expressions when using a relative operator with incompatible operands
  • Fixed some issues related to parsing and order of evaluation when using parentheses in arithmetic and boolean expressions
  • Fixed issue where "Wait" functions in child scripts (via "Execute Script") could inadvertently affect timing of functions in the parent script when running in parallel
  • Fixed issue with entity properties not being accepted in scripting functions where a reference to an entity was expected
  • Fixed issue with variable/group references to moving platform tiles breaking after the tile had been moved to another waypoint
  • Fixed issue with moving platform tiles not properly resuming their movement after loading a saved game
  • Fixed issue with Widget Properties not being hidden when switching to another editor with no properties to display
  • Fixed issue with custom themes not being populated in the Theme Properties panel when the UI Editor was set as the default tab
  • Fixed issue with the script parser breaking when there was an unmatched "end" in a script or the script was empty
  • Fixed issue where party members other than the main player character would sometimes not be able to move during turn-based battles
  • Fixed issue where the player could interact with tiles or objects when an item was currently being transferred with the cursor
  • Fixed issue where the "Replace Navigation" scripting function was no longer working properly with entity groups
  • Fixed issue where objects positioned on platform tiles would remain in place instead of moving along with the tile to its waypoint
  • Fixed issue where using Alt + Left Click in the Map Editor while in single placement mode will inadvertently place a tile
  • Fixed issue with loading a game when the player character was standing on a tile that had its model swapped prior to the game being saved
  • Fixed issue with disabling localization for a dialogue when the game didn't have any translations defined
  • Fixed issue with the credits getting stuck on a black screen, game will now return to the main menu after they have finished
  • Fixed issue where the dialogue window was not being hidden when the last node of the dialogue was a script (until the script had completed)
  • Fixed issue with "n" not being properly converted to a line break when used with the "Log Message" scripting function
  • Fixed issue where entities within nested arrays would not be displayed properly when logged via the "Log Message" scripting function
  • Fixed issue where the script parser would fail to return a result when a While Loop condition contained a variable name without the dollar sign prefix
  • Fixed "signal is already connected" console errors that would sometimes display when starting a turn-based battle
  • Fixed "set_bg_music" console error when clearing the background music (i.e. setting to "None") in the Credits Editor

New in RPG in a Box 0.6.0.5 Pre-Alpha (Aug 16, 2020)

  • Added test widget to the Widget Editor with the ability to adjust the number of columns and rows (this widget is only for testing purposes currently)
  • Added toolbar button to the Widget Editor for toggling display of the grid lines (only applicable to the test widget for now)
  • Added Widget Tools panel to the Widget Editor for dragging and dropping elements onto the test widget
  • Added usage information and a list of available commands to the in-game debug console (displayed in the console at startup)
  • Added "help" command to the in-game debug console for displaying the usage information and command list at any time
  • Added "Scale Factor" to the attach point settings in the Voxel Editor for defining how much to scale the attached object by
  • Changed "Detach Object" scripting function to not stop the script if an object couldn't be detached and instead log an error message
  • Updated Voxel Editor to automatically select newly added attach points in the Model Properties panel
  • Updated font used by the default UI theme (PixelMplus) to include Polish diacritic characters (ACELNÓSZZacelnószz)
  • Fixed issue where local variables within scripts were not being properly restored when loading a saved game
  • Fixed issue with "for" loops and "while" loops within scripts not resuming properly when loading a saved game
  • Fixed issue with the way entities were being stored in variables and properties, which could cause problems when using "Set Entity Model" or loading a saved game
  • Fixed issue with script parser not allowing the global property syntax where entities are expected (e.g. remove_entity(global.property["x"])
  • Fixed issue with script parser not allowing $my_variable.coord syntax to get an entity's coordinate when the entity is stored in a local variable
  • Fixed issue where deleting the first node in a visual script then undoing the deletion will not update the source code
  • Fixed issue where attach points in a model would sometimes move after opening another model of the same type
  • Fixed issue with script trigger type being lost after changing a tile's model via the "Set Entity Model" function
  • Fixed issue where printing or displaying an array containing entities would inadvertently replace the entity references with their display string
  • Fixed issue with entities not being converted properly for display as a string when inside nested arrays
  • Fixed issue with mouse input in certain editors when the "Item Container" widget was currently selected in the Widget Editor
  • Fixed issue where the Dialogue Editor was not being marked as having changes when dropping new nodes onto placeholders or adding multiple player choices
  • Fixed issue where the "Move Up" arrow button would not work properly for the last node in a series of player choices when its branch was at the bottom of the dialogue
  • Fixed issue with the "Move Up" and "Move Down" arrow buttons not appearing for new player choice nodes until the dialogue was re-opened
  • Fixed issue with the "Move Up" and "Move Down" arrow buttons getting stuck with a "pressed" appearance after being used to move a player choice within a dialogue
  • Fixed caret position error when using the up/down arrows keys to navigate through the command history of the in-game debug console

New in RPG in a Box 0.6.0.4 Pre-Alpha (Aug 1, 2020)

  • Added placeholder for the upcoming quickslot bar to the dropdown on the UI Properties panel of the Widgets Editor
  • Added "Code Highlighting" section to the Editor Settings for changing the syntax colors of code displayed in the Script Editor, Quick Script Builder, and other editor text fields
  • Added debug console message that will display when the game attempts to execute a script that doesn't exist (e.g. a tile/object script that has been deleted)
  • Added startup tip about double-clicking within the source code area of the Script Editor to unlock it for editing
  • Added startup tip about changing navigation between two tiles using the "Navigation/Interaction" submenu on the right-click context menu while in "Edit" mode
  • Added syntax highlighting to the command line of the in-game debug console (for coloring of script code manually entered into the text field)
  • Added "BLK NEO" 46-color palette (created by BlackedIRL) to the Voxel Editor's built-in set of palettes
  • Changed default syntax highlighting colors for code displayed in the Script Editor, Quick Script Builder, and other editor text fields
  • Changed font for Script Editor and Quick Script Builder to use a better monospaced version of Noto Sans
  • Fixed issue with collision detection on attached objects not working properly (will now detect mouse input and pass it to the parent entity)
  • Fixed issue where model changes (and potentially other properties) were being lost after using "Set Entity Model", then saving a game, loading, and saving again
  • Fixed issue where specifying the target entity by just its ID as a standalone string was not working properly for the "Attach Object" or "Detach Object" scripting functions
  • Fixed several display issues that would occur in the Map Editor when deleting a script that was currently assigned to an entity in the map
  • Fixed issue with undoing deletion of frames in the Voxel Editor where the old current frame was not being hidden and could cause frames to appear overlapped
  • Fixed issue with vehicle settings incorrectly displaying for tiles and characters in the Map Editor (instead of only for objects)
  • Fixed issue with terrain type of "All" not working properly when selected for a vehicle in the Map Editor
  • Fixed issue with parsing of conditional expressions when combining a "contains" expression with another Boolean expression via "and"/"or"
  • Fixed issue with the "Assign Value" template code not including the "$" prefix on "my_variable" when added to a script
  • Fixed issue with the minimum value of the "Z Offset" slider being too low for attach points in the Voxel Editor
  • Fixed issue with some Polish characters not displaying when typed into text fields in the editor
  • Fixed issue with Russian localization for in-game text missing the translations for "Yes" and "No"
  • Fixed issue with incorrect Obsidian theme colors for the Behavior Settings header of the Entity Properties panel in the Map Editor
  • Fixed issue in the Widget Editor where the inventory/item container window textures would not be pixel perfect at certain application window sizes
  • Documentation: Updated "Script Syntax" built-in docs to use the new "$" prefix syntax for variable names
  • Documentation: Updated images and linked various text for "Override Animation", "Play Sound", "Play Animation", "Play Group Animation", "Put Entity", and "Put Player" built-in docs
  • Localization: Added Russian translations for "Add To Group", "Ambient Light", "Animation", and "Animation Types" documentation
  • Localization: Added French translations for "Add To Group" documentation

New in RPG in a Box 0.6.0.3 Pre-Alpha (Jul 24, 2020)

  • Added ability to rename attach points in the Voxel Editor (either for all frames of the model or for the current frame only)
  • Fixed issue where the terrain type property was not carrying over to tiles already placed within existing maps (tiles will need to be saved again in the Voxel Editor)
  • Fixed issue with evaluation of coordinates in scripts not properly catching null/invalid X, Y, and Z values, error is now logged to the in-game debug console
  • Fixed issue with evaluation of colors in scripts not properly catching null/invalid hex codes, error is now logged to the in-game debug console
  • Fixed issue with "Add Object" scripting function not properly catching null value for tile ID/coordinate, error is now logged to the in-game debug console

New in RPG in a Box 0.6.0.2 Pre-Alpha (Jul 21, 2020)

  • Hi everyone! This update contains mostly bug fixes, but there is a change relating to the syntax of local variables that I wanted to call out specifically: going forward, local variable names must now begin with a dollar sign ($). This is to help distinguish variables in scripts and to prevent their names from conflicting with reserved words. Scripts that are already parsed will not be affected, however if you edit a script or create a new one, the parser will give an error when a variable name is missing the "$" prefix. As I understand it may be tedious to fix existing scripts, I am more than happy to help update them for anyone if you have large scripts using a lot of local variables (or even many small ones).
  • Changed syntax for local variables to require a dollar sign ($) prefix in front of the variable name (e.g. $my_var = 10), updated parser to display appropriate error message
  • Added "duplicate" function for duplicating an array or JSON data (e.g. $array_copy = duplicate($my_array) or $data_copy = duplicate(data["my_file"]))
  • Added "break" keyword to the scripting language for breaking out of either a "for" loop or a "while" loop
  • Added startup tip about holding the right mouse button down to look around freely while in first-person games
  • Added ability to drag and drop script functions into the source code area of the Script Editor (similar to Quick Script Builder)
  • Added error popup that displays when attempting to save a visual script containing variables without the "$" prefix (editor will also revalidate all visual node fields)
  • Updated drag and drop of script functions to insert the source code after the line over which the function is dropped (instead of always at the end of the script)
  • Updated expression builder dialogs in the Script Editor to display error message about the "$" variable name prefix for the exclamation icon's tooltip
  • Updated direct entry fields on visual script nodes to display error message about the "$" variable name prefix for the exclamation icon's tooltip
  • Updated "Attach Object" scripting function to support an additional parameter so the target entity's attach point ID can be different than that of the object's (e.g. attach_object("sword", player, "handle", "right_hand"))
  • Fixed issue with attach points where attaching an object to an attach point was not first removing the existing object on that same attach point
  • Fixed issue with the Dialogue Editor where dialogue text would sometimes be missing when using the default built-in RPG in a Box theme
  • Fixed issue where built-in translations for the game UI would not display when specifying a default locale other than "en"
  • Fixed issue with the game configuration setting for fallback locale not working properly in-game
  • Fixed camera clipping issue that could occur when using orthogonal projection for the default type then loading a map after the previous one used a "Standard" override
  • Fixed issue where using "Reset Camera" functions after the camera was locked and another map had been loaded could result in unexpected behavior (may need to add a "Lock Camera" to some existing scripts)
  • Fixed issue with the "null" keyword not being included in the syntax highlighting logic for scripts
  • Fixed issue with variable name validation on "For Loop" and "Assign Value" visual script nodes where the name would remain invalid when erasing and then re-entering the same text
  • Fixed issue with dialogue/battle marker icons not displaying in the Map Editor when an NPC had the "When Next to Player" behavior setting assigned
  • Fixed error that displays in the console window when capturing a thumbnail for a model in the Voxel Editor
  • Fixed issue where the movement interval values for NPC behavior settings were not being applied properly and would not trigger a change
  • Fixed issue with the "Add Waypoint" function not applying properly in the visual script when manually entered into a script's source code
  • Fixed issue with scripts not parsing correctly when using a local variable for the left operand of a "contains" conditional expression
  • Fixed issue with incorrect line being marked by the script parser when there were syntax errors with "elseif" conditions
  • Fixed error that would occur when manually entering an "elseif" block without any statements into the Script Editor
  • Fixed issue with incorrect Obsidian theme colors for the wizard info box on builder dialogs in the Script Editor (Conditional Expression Builder, etc.)
  • Fixed "is_vehicle" error that would occur when the player clicked on a non-adjacent character to interact (error was displayed upon interaction)
  • Fixed "move_interval" error that would occur in certain scenarios while an NPC's movement behavior was being processed
  • Fixed "marching_cubes" function error that would sometimes display in the console window when saving a model in the Voxel Editor

New in RPG in a Box 0.6.0.1 Pre-Alpha (Jul 14, 2020)

  • Updated "Duplicate Frame" functionality in the Voxel Editor to include attach points when copying the frame
  • Fixed issue with Linux and MacOS binaries where an A* error would cause games to get stuck after loading a map
  • Fixed issue with choosing a language in the game options menu if the language currently stored in the user's settings file was no longer an available option
  • Fixed issue where custom font settings were not being applied to the Options Menu or Pause Menu if the Main Menu was disabled in the game's configuration
  • Fixed issue where the "Attach Point" tool button would stay highlighted after switching to another voxel tool
  • Fixed issue in the Game Configuration dialog where the "Preset" dropdown was not being disabled when "Custom" was selected for the gameplay type
  • Fixed issue in the Game Configuration dialog where the camera projection dropdown was not being disabled when a built-in gameplay preset was selected
  • Fixed issue where using the "Reset Map" function to reset the current map could result in the script getting stuck or the game crashing
  • Fixed issue where attach points could sometimes not be added at certain heights (validation logic was incorrectly switching grid depth and grid height values)
  • Fixed issue where using the "Detach Object" function and then immediately using "Attach Object" for the same attach point ID would result in the new object disappearing
  • Localization: Added Russian translations for the startup tips shown on the Game Manager dialog

New in RPG in a Box 0.6 Pre-Alpha (Jul 12, 2020)

  • Added Marching Cubes as a mesh option to the Voxel Editor (group areas of voxels to mesh them separately from others, uncheck "Apply at grid boundaries" to not apply smoothing at grid boundaries)
  • Added ability to define terrain types for tiles (e.g. "water", set from the Model Properties panel in the Voxel Editor)
  • Added ability to define terrain types for characters (options of "All", "Prohibited From", and "Restricted To", set from the Model Properties panel in the Voxel Editor)
  • Added initial functionality for vehicles (select an object in the Map Editor and toggle the "Vehicle" button from its properties - includes options for speed, terrain types, and disembark script)
  • Added game controls for disembarking from a vehicle (Ctrl + Left Click on an adjacent tile, or Ctrl + Arrow Key in the direction of the tile)
  • Added initial functionality for attach points (to add an attach point for a frame, use the new tool with the "link" icon and click a voxel - position/rotation can be adjusted from the Model Properties panel)
  • Added new default editor theme (Obsidian) and ability to change themes from the editor settings (with original Godot theme as an option)
  • Added support for groups to the Voxel Editor, select voxels and press "G" to add to a group (currently only used with Marching Cubes option to allow for separate meshing of voxel groups)
  • Added camera projection option to the Gameplay settings for choosing between perspective and orthogonal when using the standard camera
  • Added new scripting function "Attach Object" for attaching an object to an entity's attach point (e.g. attach_object("axe", player, "right_hand") or attach_object("torch", entity["wall_01"], "decoration"))
  • Added new scripting function "Detach Object" for detaching an object from an entity's attach point (e.g. detach_object(player, "right_hand") or detach_object(entity["wall_01"], "decoration"))
  • Added new scripting function "Reset Map" for resetting a map to its original state
  • Added new scripting function "Create Platform" for configuring a tile as a moving platform and assigning its speed (e.g. create_platform(tile_entity, 20))
  • Added new scripting function "Add Waypoint" for adding a waypoint to a platform tile (e.g. add_waypoint(tile_entity, "waypoint_01", coord[1, 2, 3]))
  • Added function to scripting language for converting a value to a string, for example to append a numeric value to some text (e.g. "123" + str(2 * 2) will return the string "1234")
  • Added function to scripting language for converting a value to a number (e.g. num("17") will return 17 as a numeric value)
  • Added "round" math function to the scripting language for rounding numeric values (e.g. round(16.8) will return 17)
  • Added "mod" math function to the scripting language for performing modulo operations (e.g. mod(8, 3) will return 2)
  • Added "pow" math function to the scripting language for performing "power of" operations (e.g. pow(2, 5) will return 32)
  • Added "sqrt" math function to the scripting language for calculating square roots (e.g. sqrt(16) will return 4)
  • Added ability to change an entity's interaction cursor via scripts using the syntax <entity>.interact_cursor (e.g. entity["dungeon_entrance"].interact_cursor = "stairs")
  • Added ability to set a value within an array by index using assignment statements (e.g. my_array[0] = 10 will set the first value in the array to 10)
  • Added grouping functionality to the Voxel Editor for defining groups of voxels for each frame (select voxels and press "G", defined groups are displayed on the Model Tools panel)
  • Added button at bottom of the Tiles/Objects/Characters model tabs for quickly adding a new resource of that type
  • Added button to grid height control panel in the Map Editor for locking the tile placement grid at its current height
  • Added language dropdown to the built-in documentation viewer to select from the available translations for the current tab
  • Added toolbar button to the Voxel Editor for toggling display of ambient occlusion in the 3D viewport
  • Added size info to the Image Editor when editing UI images (displays the actual pixel dimensions of the file generated when saved)
  • Added startup tip about configuring model animations to play in reverse frame order
  • Added startup tip about importing custom palettes from Lospec.com (PNG Image or Hex File)
  • Added startup tip about the "Apply Palette" tool in the Voxel Editor for fitting a model's colors to a specific palette
  • Added startup tip about the "Preview Game Mesh" button on the Voxel Editor toolbar
  • Added support for the isometric camera to the "Camera Orientation" map setting to indicate its initial direction
  • Added "Widgets" tab to the UI Editor in preparation for future functionality (only for display purposes at this time, specifically to view the built-in inventory and item container windows)
  • Added dropdown to the Item Properties section of the Item Editor for assigning an object model to an item (used for equipment attach points and other future functionality)
  • Updated pathfinding logic to consider terrain types of tiles and the character's allowed terrain types
  • Updated Dialogue Editor to use font and font size from the theme that's currently set as default for text in the NPC, Player, and Message nodes
  • Updated "data" scripting syntax to allow reading of external JSON files within the game folder (via a relative path, e.g. "files/my_file.json")
  • Updated Voxel Editor to allow a maximum of 999 frames per voxel model instead of 99
  • Changed lower limit of the standard camera's pitch to zero in the Game Configuration's gameplay settings
  • Changed icon for button that opens the online wiki version of a documentation page
  • Updated documentation for scripting functions to not use syntax highlighting in the "Signature" code block
  • Tweaked color of "Voxel Outlines" and "Surface Edges" buttons on the Voxel Editor toolbar to stand out more from some of the other icons
  • Title of currently opened game project is now displayed in the application window's titlebar
  • Bug Fixes:
  • Fixed pathfinding issue where the Z value of tile coordinates was being used in the cost calculations, which would cause some tiles to be improperly avoided in certain scenarios
  • Fixed some issues that could occur in the Voxel Editor when selecting voxels in a frame with others in another frame still selected
  • Fixed issue where the collision override setting for tiles was not overriding the collision area for mouse detection (only the terrain height values)
  • Fixed issue where tile size warning icons were not being refreshed after replacing a map's missing dependencies
  • Fixed issue where using "Save As" to save a 32x32 object as a tile would improperly offset and crop the model
  • Fixed issue that could occur in-game when loading a map having a player override of the same model as the current character
  • Fixed issue with the "Camera Orientation" map setting not working when camera rotation was disabled in the gameplay settings
  • Fixed issue where code blocks within documentation pages could be typed into if focused via the Tab key
  • Fixed error that would occur when an NPC was set to seek out the player and was standing on the same tile as the player
  • Fixed navigation issue that could occur when clicking to interact with an item container while standing on the same tile as the container
  • Fixed issue where the isometric camera override option was not using the proper angle when the game's default camera was set to standard with rotation disabled
  • Fixed camera clipping that would sometimes occur on high/distant objects when using the isometric camera
  • Fixed "remove_from_group" errors that could occur in certain scenarios when loading a map
  • Fixed issue where scripts could become stuck when using the "Hide Group" function to hide a group that was already hidden
  • Fixed issue with the Theme Editor not remembering the currently selected theme when returning to the tab
  • Fixed issue where theme changes were sometimes being lost after switching to another tab and then back to the Theme Editor or after saving and restarting
  • Fixed issue where the "When Next To" settings weren't being checked if an NPC's behavior was changed while next to the player
  • Fixed issue where double quotes in an item's name or description were not being escaped and would prevent the item database from loading
  • Fixed character interaction errors that would sometimes display after calling the "Show Credits" function
  • Documentation:
  • Updated images and linked various text for "Quick Script", "Quick Script Builder", "Replace Navigation", "Remove Entity", "Recent Files", and "Random Number" built-in docs
  • Added built-in docs for the new "Reset Map" scripting function
  • Added Japanese translations for "Add Character" and "Map" documentation
  • Added French translations for "Add Character", "Add Item To Container", "Add Object", "Add Party Member", and "Add Tile" documentation
  • Added Russian translations for "Add Character", "Add Item To Container", "Add Object", "Add Party Member", and "Add Tile" documentation

New in RPG in a Box 0.5.9.4 Pre-Alpha (May 23, 2020)

  • Added "Clear" button to the Model Tools panel for erasing all voxels from the current frame in the Voxel Editor
  • Added "Range of Numbers" and "Array (List of Values)" as options to the Iterable Expression Builder (for range(...) and array[...] syntaxes)
  • Added ability to double-click the title bar of dialogue tree nodes with children as an alternate method for collapsing/expanding them
  • Added startup tip about clicking the frame number on the Voxel Editor animation toolbar to bring up a draggable slider
  • Added startup tip about assigning colors to a custom palette in the Voxel Editor by clicking the middle mouse button on a color slot
  • Updated Dialogue Editor's color scheme and style to match that of the new visual script graph
  • Updated "Execute Script" function so local variables will now get passed from the current script into the triggered script
  • Updated "Language" dropdown in the Editor Settings dialog to display native language names followed by the current language's translation
  • Replaced message about map's tile size on the "New Resource" dialog with an info icon tooltip
  • Fixed issue with nested "For" loops where the control variable value was not being passed to the inner loop
  • Fixed issue where the game title was not updated in the Main Menu preview when changed from the Game Configuration dialog
  • Fixed issue with built-in translations for the in-game interface not working properly
  • Fixed issue where search field in the Item Editor was incorrectly populated with the placeholder text
  • Fixed issue where editor would be incorrectly undimmed after closing the "Available Tags" popup in the Asset Library, added tooltip for its button
  • Fixed wizard button tooltip on "For Loop" visual script node to have the proper text ("Iterable Expression Builder" instead of "Conditional Expression Builder")
  • Localization: Added Japanese localization (selectable from the general editor settings) and credit in About dialog for michyo (?? ???)
  • Localization: Fixed some cases where text in the editor was displaying in English instead of the current language
  • Documentation: Updated images and linked various text for "Startup Script", "Map", "Reset Camera", "Reset Camera At Speed", "Reset Camera Over Time", and "Reset Entity Rotation" built-in docs

New in RPG in a Box 0.5.9.3 Pre-Alpha (May 15, 2020)

  • New Features/Changes:
  • Added ability to customize font, font size, color, and spacing for the Main Menu title and text from the Main Menu editor (settings also apply to the options menu and pause menu)
  • Added new scripting function "Log Message" for appending text to a message log (for now, this is displayed in the top left corner, customization to come later)
  • Added ability to use "self" keyword when running scripts from the debug console ("self" will reference the entity that the cursor is over)
  • Added "item" syntax to the scripting language for getting an item's name, description, image, or tag list (e.g. item["ITEM_0001"].name, item["ITEM_0002"].description, etc.)
  • Added syntax to the scripting language for getting the tile(s) that a character or object is occupying (e.g. entity["bench"].tiles returns an array of tiles the "bench" entity is on)
  • Added syntax to the scripting language for getting the character(s) that are occupying a tile (e.g. tile[3, 2, 0].characters returns an array of characters occupying that tile, or null if there are none)
  • Added "Source Code" visual script node as a fallback for brand new functions that don't have their corresponding visual nodes implemented yet
  • Added editor settings to remember the last used import and export paths for the Voxel Editor across sessions
  • Added credits in the About dialog to DrPetter for SFXR and to Pixeltier for the example game's item icons, with a link to his RPG icon packs
  • Added button to the Main Menu properties panel for restoring all settings to their default values
  • Added "data" keyword to script syntax highlighting so it gets marked with the appropriate color in script source code
  • Added "Sounds" section to the Game Configuration dialog for overriding certain default sound effects (menu hover, menu select, and speaking for now, with more to come)
  • Added "Import" button to the main toolbar for importing external resource files (images, fonts, models, sounds, etc.)
  • Updated script parser to support the "Box Drawing", "Block Elements", and "Geometric Shapes" Unicode value blocks (U+2500-U+25FF) within strings
  • Updated Voxel Editor to allow animations to be played while in "mesh preview" mode
  • Updated startup tip about the debug console to include alternate shortcut key (backslash)
  • Updated default in-game sound effects for the menu hover and menu select sounds
  • Changed default in-game menu font to PixelMplus (to match the default dialogue font and to allow Japanese kanji and kana characters by default)
  • Changed Debug Console and Main Menu to be enabled by default in the Game Configuration settings
  • Increased speed of "slide down" animation when opening and closing the in-game debug console
  • Adjusted comment node borders in the Script Editor to match the new visual node style
  • Adjusted overall volume of sound effects in the editor and in-game to be slightly lower
  • Bug Fixes:
  • Fixed issue where speed/time-based camera scripting functions would sometimes fail to trigger when one was used right after another
  • Fixed issue where the Theme Editor's "unsaved changes" state was not being properly updated after deleting a theme that had unsaved changes
  • Fixed issue where scripts would get stuck when calling "Show Group" for a group that had not been previously hidden
  • Fixed issue with setting a theme as default in the Theme Editor when it has unsaved changes (default name would incorrectly include the (*) indicator text)
  • Fixed issue with exporting models to PNG where the frame number was not being appended to the filename (so only the last frame would be saved)
  • Fixed issue where the Enter key was not working when pressed in the source/destination field to submit the dialog for importing and exporting models in the Voxel Editor
  • Fixed issue where the cursor color was not being restored when using the "Revert Changes" toolbar button in the Main Menu Editor
  • Fixed issue with the "map.name" syntax not parsing properly in scripts
  • Fixed issue where the game title text was not being reset to "Game Title" when exiting to the Game Manager
  • Fixed issue where the toolbar buttons in the Main Menu editor were not being disabled when exiting to the Game Manager
  • Fixed issue where visual scripts were not being generated and saved properly when opening a script file without a corresponding .scn file
  • Fixed issue where backslash would close the debug console instead of typing the character, allowed ESC to close the debug console
  • Fixed issue where backslash would not work to open the debug console while on the pause menu
  • Fixed first-person control issue when moving backward then strafing left or right
  • Documentation:
  • Added built-in docs for the "Data Files" functionality (under "Scripting" heading)
  • Updated images and linked various text for "Set Global Property" and "Set Entity Property" built-in docs and included info about setting values with assignment statements
  • Updated images and linked various text for "Set Entity Script" built-in docs and included info about optional "trigger when" argument for tiles
  • Updated images and linked various text for "Set Entity Tooltip" built-in docs and included info about using placeholder expressions within tooltip text
  • Updated images and linked various text for "Rotate Camera", "Rotate Camera Over Time", "Rotate Entity Towards", "Rotate Player To Direction", "Set Character Name", "Set Dialogue", "Set Ambient Light Enabled", "Set Animation Speed", "Set Entity Model", "Set Entity Light Enabled", "Set Entity Light Color", "Set Entity Blocks Sight", "Set Directional Light Enabled", "Set Directional Light Color", "Set Group Light Enabled", "Set Group Light Color", "Start Battle", "Set Language", and "Sound FX Generator" built-in docs
  • Brought built-in docs for "NPC Behavior", "Animation Types", "Cardinal Direction", "Character", "NPC", "Enemy", and "Font" up to date

New in RPG in a Box 0.5.9.2 Pre-Alpha (Apr 26, 2020)

  • Added a default style for entity tooltips and the ability to change their background color and border color from the Theme Editor (in tooltip styles section)
  • Added ability to increase a character's level using the "stat" syntax (e.g. player.stat["level"] += 1 will give the player enough XP to reach the next level)
  • Added a "Did You Know?" section to the bottom of the Game Manager for displaying random helpful tips (includes 20 tips initially, with more to come!)
  • Added ability to assign a tooltip to the player character using the "Set Entity Tooltip" scripting function
  • Added ability to change the preview background color in the Theme Editor
  • Added description text to the Script Editor for the "Restart Game" scripting function
  • Added a button to the Item Editor for copying the current item's ID to the clipboard
  • Updated "Assign Value" visual script node with hover tooltip text for the "Value/Expression" field
  • Updated "Set Dialogue" scripting function to support entity references instead of just ID string
  • Updated "Modify Navigation" visual script node to support entity references in parameter fields instead of just ID strings
  • Updated "Assign Entity ID" scripting function to not stop the script when an entity with the specified ID already exists
  • Fixed issue where calling "Lock Camera" with the camera already locked would cause the script to stop
  • Fixed issue where NPCs added via "Add Character" function wouldn't trigger tile scripts (if configured to do so)
  • Fixed issue where line numbers for syntax errors were sometimes incorrect when the script contained comments
  • Fixed issue where certain NPC behaviors were not working properly after using the "Set Entity Model" function to replace a tile's model
  • Fixed issue with deleting the default theme in the Theme Editor (will now properly fall back to the built-in RPG in a Box theme)
  • Fixed script parser issue with accessing entity stats on the right side of assignment statements when the entity was stored in a local variable
  • Fixed crash that could occur when adding XP to an NPC using an assignment statement
  • Documentation: Added built-in docs for "Add To Group", "Remove From Group", "Assign Entity ID", and "Restart Game" scripting functions
  • Documentation: Updated built-in docs for "Modify Navigation" scripting function to indicate support for entity references instead of just IDs
  • Documentation: Updated built-in docs for "Entity" with note about being able to supply just the ID string for Entity argument types
  • Documentation: Brought built-in docs for "Animation" up to date and included example images
  • Documentation: Updated images and linked various text for "Hide Toolbar", "Show Toolbar", "Show Inventory", "Show Credits", "Set Vision Height", "Lock/Unlock Player Interaction", "Lock/Unlock Player Movement", and "Set Movement Speed" built-in docs

New in RPG in a Box 0.5.9.1 Pre-Alpha (Apr 17, 2020)

  • Added "Ignore Fog of War" checkbox to the Entity Properties panel in the Map Editor to indicate that the entity should always be visible when Fog of War is enabled
  • Added support for arrays to the "inverse" scripting function (reverses the order of the values within the array) (e.g. my_array = [1, 2, 3]; reverse_array = inverse(my_array))
  • Added support to the scripting language for appending values to arrays using "+" or "+=" operator (e.g. my_array = array["A", "B"]; my_array += "C")
  • Increase maximum value for character movement speed from 100 to 1000000 voxels per second
  • Updated scripting language to properly allow direct access of arrays stored in global or entity properties (e.g. print(global.property["my_array"][2]))
  • Fixed issue with custom entity properties being lost when a tile was replaced in the Map Editor
  • Fixed issue where search functionality for the scripting function list was not translating function names before filtering
  • Fixed issue where calling the "Reset Camera" function without the camera being previously locked was causing some scripts to fail
  • Fixed issue with "Add To Group" and "Remove From Group" functions not working properly when passing entity ID string for entity parameter
  • Fixed issue with scripts stopping after calls to the "Add To Group" or "Remove From Group" functions
  • Fixed issue with script parser where missing "end" syntax error was not being properly reported in some cases (only a generic error)
  • Fixed issue with "speed" stat assignment statements not being applied properly (e.g. entity["slime01"].stat["speed"] = 100)
  • Fixed issue with "hp" stat assignment statements causing the game to crash (e.g. entity["slime01"].stat["hp"] = 5)

New in RPG in a Box 0.5.9 Pre-Alpha (Apr 15, 2020)

  • Added new scripting functions "Add To Group" and "Remove From Group" for adding an entity to a group or removing it from a group
  • Added new scripting function "Restart Game" for manually restarting the game
  • Added new scripting function "Equip Item" for equipping an item to character's equipment slot (eg equip_item(player, "right_hand", "ITEM_0001"))
  • Added new scripting function "Unequip Item" for unequipping an item from a character's equipment slot (eg unequip_item(player, "right_hand"))
  • Added "Equipment" section to the Stats Editor (currently only displays some basic information about the default equipment slots)
  • Added initial settings to the Item Editor for defining an item as equippable and its associated effect when equipped (only basic stat boost for now)
  • Added button to the Game Configuration dialog's Translations tab for importing data from a CSV file
  • Added support for using the "direction" syntax in assignment statements to change an entity's direction (eg entity["id"]directon = WEST)
  • Added support to scripting language for getting the current map's name (as string) and groups (as array) (using syntax: mapname and mapgroups)
  • Added debug console error messages that are displayed for "tile by coordinate" expressions when values for X, Y, and Z are invalid
  • Added option to the Main Menu editor for changing the arrow cursor's color
  • Updated style and color scheme of visual script nodes in the Script Editor
  • Updated top right panel in Map Editor to include buttons for adjusting the tile grid up/down in steps (as an alternative to Ctrl + Scroll Wheel) and to display current grid height
  • Updated Noise Generator dialog to include a help button that opens its built-in documentation
  • Updated Surface Level panel in the Voxel Editor to open its corresponding built-in documentation when dragging-and-dropping the guide icon
  • Updated "Modify Navigation" function to support entity references (self, entity["id"], tile[0, 0, 0], etc) instead of only IDs
  • Updated "Set Entity Script" function to support optional parameter for specifying when to trigger tile scripts (using a value of ENTER_TILE, STOP_ON_TILE, or EXIT_TILE)
  • Updated "Execute Script" function to support additional optional parameter to indicate whether the current script should pause until the triggered script has completed
  • Changed "Export to CSV File" on Translations tab to use system's desktop location as the default export path instead of installation folder
  • Fixed issue with Shift + Arrow Keys not snapping to 90-degree increments when game camera is in isometric mode
  • Fixed issue where pressing F2 in the Voxel Editor would switch the properties panel to Map Properties in certain cases
  • Fixed issue with "Assign Entity ID" function call no longer working in conditional expressions or as a Boolean value
  • Fixed issue where local variables were not able to be used as conditional expressions (eg if my_var then end)
  • Fixed issue with Boolean expressions using the "and" or "or" operator were not evaluating properly in some cases
  • Fixed issue with "When Next to Player" behavior setting for NPCs not triggering if the player approached the NPC first
  • Fixed issue where party members weren't getting placed back into the turn order if revived during a turn-based battle
  • Fixed issue where triggering a "Display Message" function from an NPC's "When Next to Player" dialogue would not work properly
  • Fixed issue with using the "Set Entity Model" function to change a character's model during turn-based battles
  • Fixed issue where an array's values were not being deserialized properly when loaded in-game
  • Fixed issue with item dropdowns when item names were localized and an item didn't have an image
  • Fixed issue with "Set Dialogue" scripting function not working properly
  • Fixed issue with Entity Expression Builder where party member ID was not being updated in the expression field, removed "Use ID string only" checkbox for party member option
  • Fixed first-person control issue when moving backward then turning left/right
  • Fixed some timing issues that could occur with functions called from inside "while" loops and "for" loops
  • Localization: Added localization for Spanish (selectable from the general editor settings) and credit in About dialog for Pablo
  • Localization: Added localization for Dutch (selectable from the general editor settings) and credit in About dialog for Ernst
  • Documentation: Added built-in docs for the "Noise Generator" functionality (under "Application Interface" heading)
  • Documentation: Added built-in docs for the "Surface Level" functionality (under "Terminology & Concepts" heading)
  • Documentation: Added built-in docs for the "Execute Script" scripting function to include info about optional "pause" argument
  • Documentation: Updated example image and linked some additional keywords in the "Voxel" built-in docs
  • Documentation: Updated visual node example images for "Start Dialogue" and "Stop Player" scripting functions
  • Documentation: Updated examples for "Boolean" data type's built-in docs