New Features/Changes:

  • 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 to easily test out the randomly generated results
  • Added ability to assign multiple loot drops to an enemy 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 (player.stat["my_stat"] will access the stat with ID "my_stat")
  • Added ability to define maximum values for both custom stats and any applicable built-in stats in the Stats Editor
  • Added ability to increase custom stats when characters level up by specifying increase values in the "Leveling" section of the Stats Editor
  • Added "next_level" and "next_xp" stats for getting a character's next level and XP required for that level (e.g. player.stat["next_level"] and player.stat["next_xp"])
  • 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" (for future functionality, more options coming soon)
  • 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 (for future shop item slot functionality)
  • Added "Tool Item Changes" global event script that's triggered when the player's active tool changes ($item_id variable will have the tool item's ID, or null if none)
  • Added ability to set a projectile model override for ranged weapons in the Item Editor to use instead of the weapon/ammo's model (e.g. for unlimited use guns)
  • Added ability to pack an image into a widget so it can be used in other projects without needing the source image file (via button next to image dropdown)
  • Added ability to change the colors of progress bars in the Widget Editor (filled color, background color, and border colors)
  • Added Fog of War setting in the Game Configuration's gameplay section for making the fog permanent (i.e. revealed areas won't stay revealed)
  • Updated lighting preset functionality to store the map's background color so it will change along with the lighting (e.g. to have a darker color at night)
  • Updated "New Resource" dialog to properly check for invalid characters in the resource name, specifically the following characters: \ / : * ? " < > |
  • Updated "Predefined Animation Names" dialog in the Map Editor to include "spawn" for tiles 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["currency"])
  • 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 character's 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!)

Bug Fixes:

  • 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"].clear())
  • 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 "X" 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)
  • Updated "Predefined Animation Names" built-in docs to include new "revive" animation (triggered when "Revive Character" function is used)
  • Updated "Predefined Animation Names" built-in docs to include info about the "push" and "pull" animations for characters
  • Updated "Shop Item Slot" built-in docs to include info about changing the cost of an item in a shop item slot
  • 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