Sigg

  • 14 days ago
  • Joined Oct 14, 2023
  • :)

  • New Features/Changes

    • Added initial Steam Workshop functionality for uploading tiles, objects, and characters to the workshop (see docs for step-by-step guide)
    • Added ability to download tiles, objects, and characters from the Steam Workshop directly into your project (see docs for step-by-step guide)
    • Added Steam achievements for uploading your first tile, object, and character to the Steam Workshop and for uploading five of each type
    • Added Steam achievements for downloading your first tile, object, and character from the Steam Workshop and for downloading five of each type
    • Added "Achievements" dialog for displaying your Steam achievements, accessible via the trophy icon on the upper right (locked ones will be greyed out)
    • Added "Inn" functionality for hanging out with your Steam friends within RPG in a Box (initial support includes sending chat messages to each other)
    • Added retro screen effect to the Map Properties tab of the Map Editor, with settings for resolution scale, color depth, and dithering
    • Added initial support for importing OBJ files when using mesh-based models (via the popup or "Import from External Format" toolbar button)
    • Added "Mesh-Based" option to the "New Resource" dialog when creating tiles, allowing for Blockbench files and OBJ files to be imported into tile models
    • Added applicable properties to the Model Properties tab for mesh-based models in the Model Maker (e.g. tags, character stats, custom collision, etc.)
    • Added support for importing GIFs into your game project (drop file onto the RPG in a Box window or use the "Import Asset" toolbar menu)
    • Added support for using GIFs for image elements in widgets (simply import a GIF as noted above then select it from the element's "Image" dropdown)
    • Added support for using GIFs with the "Display Image" Bauxite scripting function (after importing a GIF it will be selectable in the visual node)
    • Added "Bosca Ceoil Blue" to the new "Sounds & Music" menu which opens a dialog with information about the music tool and how to import music files into your project
    • Added support for importing WAV files as music (drop file onto the RPG in a Box window or use the "Import Asset" toolbar menu then select "Music" for type)
    • Added "Fog of War" setting to the Map Properties tab in the Map Editor for overriding the global "Fog of War" gameplay setting on a per map basis
    • Added optional second parameter to the "Enable Screen Effect" and "Disable Screen Effect" Bauxite functions for specifying which effect (see docs for details)
    • Added support to the "Set Screen Effect Property" Bauxite function for the new retro screen effect (see docs for list of properties and possible values)
    • Added several optional parameters to the "Shake Screen" Bauxite function for customizing various aspects of the screen shake (see docs for details)
    • Added button to the "Shake Screen" visual node in the Script Editor for testing the current values for two seconds and a button for restoring the default values
    • Added support for using the "Shake Screen" Bauxite function while other screen effects are active (previously, using it would disable the VHS/CRT monitor effect)
    • Added second parameter to the "Enable Action" and "Disable Action" Bauxite functions for specifying the script name when used with the "Run Script" action
    • Added ability to change/retrieve the title of a widget via script using the new ".title" property (e.g. widget["my_widget"].title = "New Widget Title")
    • Added support for placeholder expressions in the text of widget buttons (see placeholder expression docs, e.g. ${global.property["button_text"]})
    • Added credit to the About dialog for the GodotSteam module used for the workshop, achievements, and rich presence (created by Gramps, see godotsteam.com)
    • Renamed Voxel Editor to "Model Maker" to bring the name more in line with its capabilities now that it has expanded beyond voxel-based models only
    • Reworded some buttons on the Game Manager dialog (e.g. "Create a New Game" is now "Start a New Adventure") and the titlebar of the "Create a New Game" dialog
    • Changed "Export Game" button on the main toolbar to an "Export" menu that includes the "Export Game" option (preparing for future functionality)
    • Changed "Sound FX Generator" button on the main toolbar to a "Sounds & Music" menu that includes the "Sound FX Generator" option and a "Built-In Music" option
    • Combined "Import" and "Asset Library" toolbar buttons into one button with options for "Asset Library", "Steam Workshop", and "Files from External Folder"
    • Updated location of the "Camera Positions" setting on the Map Properties tab to be higher up and closer to the other camera-related settings
    • Updated "Exit to Game Manager" and "Exit RPG in a Box" buttons on the main toolbar to now be combined into a single "Exit" dropdown menu
    • Updated Model Maker to keep voxels selected after copying and pasting them so it's easier to take further action on those voxels once pasted
    • Updated Asset Library to now display all assets at once within a scrollable list and improved the initial opening speed of the dialog
    • Updated "New Game" button on the Game Manager dialog, the "New Game" dialog titlebar, and Game Explorer project icon to use the adventure disk icon
    • Updated editor startup splash image for "The Workshop", including a selection of models from the Steam Workshop (see About dialog for creator credits)
    • Updated "Connect with RPG in a Box" section of the About dialog to include an Epic Games button that links to RPG in a Box's Epic Games store page
    • Updated Patreon credits in the About dialog to reflect the currently active patrons (Dungeon Master, Hero, NPC, and Slime tiers)
    • Updated "Enable/Disable Screen Effect" and "Set Screen Effect Property" Bauxite functions to include an parameter to specify which screen effect (see docs for details)
    • Removed "Apply Camera Preset" function from the list of Bauxite functions in the Script Editor as it was mistakenly added before being fully implemented
    • Removed Twitter button from the "Connect with RPG in a Box" section of the About dialog since the Twitter account is no longer being used

    Bug Fixes

    • Fixed issue where the "Preview in Map Editor" button on the Map Properties tab was incorrectly enabled when opening a map with the VHS/CRT monitor effect enabled
    • Fixed issue where pressing the ESC key (or input bound to "back") while an image was being shown via the "Display Image" function could cause the game to become stuck
    • Fixed issue where subfolders without any models in them were not being displayed on the right-hand side asset tabs (i.e. tiles, objects, and characters)
    • Fixed issue where the "Up" folder button wasn't being created if there were subfolders in the right-hand side asset tabs until the project was closed and reopened
    • Fixed issue where auto-attached effects in subfolders weren't being selected in the "Configure Attached Objects/Effects" dialog dropdown when leaving then returning
    • Fixed issue where changing frames or playing animations in the Model Maker's mesh view for multi-directional sprite-based models was not showing the correct sprite angle
    • Fixed issue where modifying the "Default Initial Frame" setting for tiles and characters in the Model Maker would not trigger that a change was made or would be saved
    • Fixed issue where the "Center Current View" button was not showing after selecting a saved camera position in the Model Maker then moving the camera
    • Fixed issue where models within subfolders were not being properly added to the recent items list when saved in the Model Maker
    • Fixed issue where pressing the Enter key while in the "Game Title" field of the "New Game" dialog would cause the application to crash
    • Fixed issue where having a project folder that ended in the file extension expected in that folder (e.g. ".scn" for models) could cause various problems
    • Fixed issue with French translations for "Then" and "Else" used in the Script Editor and Dialogue Editor (now translated as "Alors" and "Sinon")

    Documentation

    • Updated built-in docs for the "Fire Projectile" Bauxite function to include a description of the function and each parameter, as well as a usage example
    • Updated built-in docs for the "Enable Screen Effect" Bauxite function to include a description, example, and info about the new screen effect ID parameter
    • Updated built-in docs for the "Disable Screen Effect" Bauxite function to include a description, example, and info about the new screen effect ID parameter
    • Updated built-in docs for the "Set Screen Effect Property" Bauxite function to include a description, example, and list of properties for the retro effect
    • Updated built-in docs for the "Shake Screen" Bauxite function to include info about the new strength, factor, and magnitude parameters
    • Updated built-in docs for the "Enable/Disable Action" Bauxite functions to include descriptions, examples, and info about the new parameter for the "Run Script" action
  • I also encountered this bug many times. Approved +1

  • Hello, my friends! The v1.2.2 update is here, which brings a few improvements to sprite-based models, as well as 30 additional bug fixes. Thank you so much to everyone for your suggestions and for taking the time to submit reports for issues that have arisen throughout your game making adventures. You're helping make RPG in a Box better for the entire community!

    New Features/Changes

    • Added "Billboard" toggle setting for sprite-based models and voxel-based models using the sprite mesh type (if disabled, the sprite won't always face the camera)
    • Added initial support for directional jump animations in free movement (e.g. "jump_east", if defined, will be played if the player is facing east when jumping)
    • Added Bluesky button to the "Connect with RPG in a Box" section of the About dialog that opens the official Bluesky account for RPG in a Box in your default browser
    • Added built-in documentation for the "Set Time" and "Set Day" scripting functions for changing the in-game time/day (includes code examples and usage ideas)
    • Changed "Pixel Size" setting for sprite-based models to use voxel units (Model Properties tab in the Voxel Editor and Entity Properties tab in the Map Editor)
    • Changed "Billboard Sprite" mesh option for voxel-based models on the Model Tools panel to be listed as "Sprite" now that the "Billboard" behavior is a separate setting
    • Changed Entity Properties tab in the Map Editor to show a pixel size field for sprite-based models (instead of scale fields) to be consistent with the Voxel Editor
    • Changed minimum/maximum values for the camera focal offset option to -100 and 100 (configured via Game Configuration -> Settings -> Camera -> Focal Offset)
    • Increased maximum vertical velocity for jumping in free movement to 1,000 (configured via Game Configuration -> Settings -> Gameplay -> Physics -> Vertical Velocity)
    • Updated "Map Editor" built-in documentation to include information about camera controls using the space bar to move, rotate, and zoom the camera

    Bug Fixes

    • Fixed issue where the quick slot bar and skill bar widgets (when enabled in the game configuration) would no longer be visible after restarting the game
    • Fixed issue where the minimum values for the "Grid Width" and "Grid Height" sliders in the Widget Editor were not being properly updated after resizing an element
    • Fixed issue where impassable entities could not be interacted with via the mouse cursor in grid-based movement when set up with custom collision in the Voxel Editor
    • Fixed issue where entities with custom collision would revert to default collision in some cases after an animation was played (causing unexpected behavior with projectiles, etc.)
    • Fixed issue where interaction with entities would stop working in free movement when using the "Change Camera" function to switch from third-person to first-person
    • Fixed issue where changing the player character's model visually (e.g. via the "Set Entity Model" function) would cause their currency to reset to zero
    • Fixed issue where the player character's walk animation wasn't being sped up while sprinting when using directional animation names ("walk_east", etc.) with no "sprint" animation
    • Fixed issue where overriding the player character's walk or sprint animation in free movement would cause the new animation to become stuck on the first frame
    • Fixed issue where the player character, while crouching, was unable to stand back up or jump while under/in a passable entity (character, projectile, etc.) or a passable zone
    • Fixed issue where the "On Hit" script for a ranged weapon that consumes ammo by item ID or tag was not properly triggering (the ammo item itself had to have an "On Hit" script)
    • Fixed issue where projectiles would sometimes stop damaging the player character after they had previously visited a map with a visual player override assigned
    • Fixed issue where projectiles spawned within a particular map were persisting across other maps instead of being contained to the map in which they were spawned
    • Fixed issue where status effects were not being cleared when a character was defeated and status effects could be applied to a defeated character
    • Fixed issue where the player's direction would inadvertently change even when defeated if rotating the camera while holding a directional key in third-person relative free movement
    • Fixed issue where the player character was incorrectly able to free attack (i.e. Ctrl key in grid-based and left click in free movement) while the management screen was open
    • Fixed issue where pressing a number key to select a choice during dialogue would inadvertently also consume a quick slot item if an item was in the corresponding slot number
    • Fixed issue where using the "+=" operator to append one string value onto another in a Bauxite script would fail with an error about the variable not having a valid value
    • Fixed issue where the "Grab" control was not displaying in the bottom right corner if the player was next to a pushable object and then faced it via a scripted direction change
    • Fixed issue where currency names and skill descriptions configured in the Stats Editor were not being properly translated in the game UI when using localization
    • Fixed issue where the "Pixel Size" setting was being ignored for sprite-based entities added via the "Add Character" or "Add Object" function and for sprite-based player models
    • Fixed issue where the "Fixed Vertical Axis" setting for sprite-based models in the Voxel Editor was not being properly applied to all frames of the model when enabled
    • Fixed issue where billboard sprites with the "Fixed Vertical Axis" setting enabled were being changed to have a non-fixed vertical axis if they were selected in the Map Editor
    • Fixed issue where the "Rotation" settings were displaying on the Entity Properties tab in the Map Editor for billboard sprites (rotation is not applicable to billboard sprites)
    • Fixed issue where previews of sprite-based models (displayed on the right-hand side asset panel) were not being properly generated when a model was saved
    • Fixed issue where saving a sprite-based model in the Voxel Editor on a frame other than the first one would cause both of the frames to display concurrently in-game
    • Fixed issue where the preview image for the right-hand side asset panel would fail to save properly if a model within another subfolder had the same name
    • Fixed issue where a model's tab in the Voxel Editor wasn't being marked as having changes when using the "Clear All" button on the "Configure Attached Objects/Effects" dialog
    • Fixed issue where the Game Configuration Wizard that's shown when a startup script or player character hasn't been assigned wasn't displaying resources in subfolders correctly
    • Fixed issue where errors related to "common_parent" would display in the external console window when saving in-game if a previously visited map contained any NPCs
    • Fixed issue where errors related to "process_movement" would display in the external console window when loading a saved game then returning to a map with NPCs (see above)
  • Thank you for all the continued effort and support you put into RPG In A Box Justin!

    I understand and appreciate arron's struggles, but I just wanted to reassure you that we all appreciate the time and effort you are putting into this engine.

    We are all excited for when this update comes out!
    Keep up the good work! 🙂

  • The new Model Maker will include an Outliner tab which, as its name suggests, displays an outline of the elements within your model. Beyond using it to view the structure of your model, you'll also be able to hide/show elements, rename them, nest them beneath others, and more!

  • In RPG in a Box 2.0, you'll also have the ability to customize the look of your game even further through the use of shaders! Cel-shading, retro pixel shading - the possibilities are endless! 🕹ī¸

  • Creating a 2D or 2.5D game, or just want to add details to your 3D model as billboard sprites? Add a sprite layer to your model! In the teaser video, the grass sprouts are made of sprites. Additionally, you'll even be able to import sprite sheet animations into the Model Maker, a commonly requested feature that will be extremely useful for 2D and 2.5D games!

  • Want to have more control over the editor layout in RPG in a Box? In 2.0, you will! One of the new options coming is the ability to rearrange tabs in the side containers, either by dragging them or using a popup menu to select a tab's location. Stay tuned for another exciting new feature related to editor layout that I'll be sharing about soon!

  • New Features/Changes

    • Added "Attackable in Real-Time" and "Hostility" settings for enemy spawns in the Combat Editor to specify each enemy's behavior upon spawning
    • Updated default behavior for enemies spawned in real-time via spawns configured in the Combat Editor to be attackable and hostile by default

    Bug Fixes

    • Fixed issue where the strength value was not being respected when applying noise to voxels in the Voxel Editor
    • Fixed issue where ranged weapons were not hitting enemies under certain circumstances when using the grid-based movement system
  • I updated my Beyond 1.0 roadmap graphic to reflect the major new features planned for RPG in a Box 2.0! My goal is to integrate all of these into the design of 2.0 as I build everything from the ground up, rather than trying to fit them in later on. As you can see, there's a reason why I'm calling it RPG in a Box 2.0! 😉

  • Over the past few days I've mostly been getting up to speed on everything that's new to GDScript in Godot 4. For those unfamiliar with it, GDScript is Godot's programming language (thus what RPG in a Box is written in). I want to be sure to take advantage of everything that's available, follow best practices, and generally write the most performant and efficient code that I can this time around!

    The migration to Godot 4 is going to help bring so many new things to RPG in a Box, both large and small! Beyond the major, flashier features, there should be many quality of life improvements. One cool change I've already come across is the built-in ability to navigate dropdowns via key presses. As shown in the GIF below, you can move up and down using the arrow keys, or even jump to a specific item by typing a name! On top of this, long lists now also display a scrollbar that can be dragged as an alternative to scrolling the mouse wheel.

    Keep an eye on this thread for more exciting news as I continue to gain momentum towards 2.0!

  • There's currently no way to effectively check if a sound is currently playing or not.

    If you try to stop a sound that already stopped, console throws an error about invalid Sound ID.
    However you might want to use stop_sound for instances where you need to ensure one sound stops before the script plays another.

    If possible, what would be useful is if the play_sound function could automatically null the local or global property that is optionally provided for the sound_id upon the sound playing fully and reaching file end.

    That way, a script could query the state of the local/property first before making a stop request.

    if global.property["sound_1"] != null then
           stop_sound(global.property["sound_1"]);
    else
         // the sound already stopped...so do nothing in this case
    end;

    Not sure if something like that is possible.
    If a sound stops on it's own right now, any script that is trying to resolve "skipping sounds" (clicking fast through dialogue with audio for instance) will throw errors if the dialogue plays out normally with the sound just finishing first.
    Would be good to find a way to resolve those normal scenarios.

    • New Features/Changes

      • Added initial implementation of a gizmo tool to the Voxel Editor for moving attach points directly within the 3D viewport, with rotation and scaling to come in a future update
      • Added animation panel to the Voxel Editor that displays any animations to which the current frame belongs (displayed in the bottom left corner)
      • Added "Interact Control Image" setting to the Game Configuration's "User Interface" section for customizing the control image shown when near an interactable object in free movement mode
      • Updated the current view panel in the bottom right corner of the Voxel Editor so that the "Left" and "Right" sides are now relative to the model's front (i.e. swapped)

      Bug Fixes

      • Fixed issue where impassable zones were blocking mouse input in the Map Editor and could potentially prevent entities from being selected when clicked on
      • Fixed issue where the "Rotate Player To Direction" scripting function would not work properly when used with the first-person camera
      • Fixed issue where attachments in the Voxel Editor could potentially prevent the "Select Attach Point" tool from being able to click on an attach point
      • Fixed issue where the "Animations" dropdown on the Model Properties tab was not being clipped properly and long animation names would cause the tab to inadvertently expand
      • Fixed issue where using the "contains" conditional operator to check that an array created from the "range" function has a specific value could fail to work properly

      Documentation

      • Updated "Scripting Reference" built-in docs to include info about arrays being supported with the "inverse" function
    • I agree, this would be a very convenient feature.

      I do it this way in magica voxel:

    • I'm so excited to present Murasaki Dreams, the new default theme for RPG in a Box 2.0! While this is still a WIP and subject to change, I've reached a point where I'm happy with how everything looks overall. I wanted to create a theme that's more fun and vibrant - something that better represents what RPG in a Box is all about! For anyone who'd prefer to use a plainer theme, an updated Obsidian and Godot theme will also be available. Next step: diving in and starting work on the new and improved editor interface for RPG in a Box 2.0!

    • Sigg Awesome, I'm really glad to hear it helped! I'm planning to expand that particular one in some of the upcoming releases to include even more features. 🙂

    • Combat Updates in v1.1

      RPG in a Box v1.1 brings many exciting new features and improvements to the combat system! Combined with all of the updates to the skill and stat systems, this will open up many more possibilities for your games! Continue reading below for a brief overview of some of the major updates included.

      Battle, Round, and Turn Scripts

      Several new options were added to the Combat Editor to allow much more customization around what happens during tactical turn-based and menu-driven turn-based battles! All of the scripts listed below have access to the name of the battle ($battle_name) and an array of characters participating in the battle ($characters).

      • Pre-Battle Script: Ran before the first round of a battle (i.e. before any combat has taken place).
      • Post-Battle Script: Ran at the end of a battle before returning to normal gameplay and any victory/defeat scripts are triggered.
      • Pre-Round Script: Ran at the start of each round of a battle. The $round variable will contain a numeric value corresponding to the current round number, starting with 1.
      • Post-Round Script: Ran at the end of each round of a battle. The $round variable will contain a numeric value corresponding to the current round number, starting with 1.
      • Pre-Turn Script: Ran at the start of each character's turn during a battle, with the self built-in variable referencing the current character. The $round variable will contain a numeric value corresponding to the current round number, starting with 1.
      • Post-Turn Script: Ran at the end of each character's turn during a battle, with the self built-in variable referencing the current character. The $round variable will contain a numeric value corresponding to the current round number, starting with 1.

      Weapons and Projectiles

      • Free Attacking in Grid-Based: When using the grid-based movement system, the player can now freely attack at any time instead of needing to directly interact with an enemy, similar to free movement. This is bound to the Ctrl key by default and can be changed in your project's input bindings.
      • Projectile Items: The Item Editor now includes a "Projectile" toggle option for indicating that the item is a projectile. This functionality is used with the "Fire Projectile" function and turrets, with settings for damage, speed, range, on hit script, and sound effect.
      • Weapon Sound Effects: A new "Sound Effect" setting is available for items configured as weapons in the Item Editor. The assigned sound effect will automatically play when a character attacks with that weapon equipped.
      • Ammo/Energy for Melee Weapons: Melee weapons can now use the "Ammo/Energy Required" setting in the Item Editor to support options beyond unlimited use (i.e. single use, items by ID, and items by tag).
      • Character Stat Consumption: Weapons can now require consumption of a character's stat in order to attack with it. This option is available when using the "Ammo/Energy Required" setting in the Item Editor.

      Scripting

      From a general scripting perspective, this update brings a few new features to Bauxite. This includes a "Fire Projectile" function, retrieving a character's equipment or the count of a particular item in a character's inventory, and a new "team" property in preparation for future functionality.

      • Fire Projectile Function: Fires a projectile from a source entity or coordinate towards a target using an item set up as a projectile in the Item Editor (e.g. fire_projectile("ITEM_0001", entity["source"], player, "projectile_id")). If the source is an entity and no target is specified, the projectile will be fired in the direction in which the entity is currently facing.
      • Character Equipment: A character's equipment can now be retrieved via script using the new <character>.equipment Bauxite property. This will give a codex containing the equipment, where the keys are the equipment slot IDs (e.g. $right_hand_item = player.equipment["right_hand"]).
      • Inventory Item Count: The number of a specific item in a character's inventory can now be retrieved via script using the new <character>.get_item_count(<item_id>) Bauxite function. This will give the total count of a specific item in a character's inventory (e.g. $count = player.get_item_count("ITEM_0001")).
      • Character Team: A character's team can be retrieved or changed via script using the new <character>.team Bauxite property, with supported values of "player", "enemy", and null. This only affects characters with the "Attackable in Real-Time" behavior setting enabled. Further improvements and functionality around this will be coming in future updates.

      Other Updates

      While there are too many changes to mention everything in this post, here are just a few additional improvements related to combat worth mentioning:

      • Projectile Improvements in Grid-Based: When using the grid-based movement system, projectiles now move independently instead of remembering their target (i.e. hitting their target even if it has moved away). This means characters can now dodge projectiles and will only be hit if they make physical contact with them.
      • Stack Count for Default Equipment: When assigning default equipment to a character in the Voxel Editor, you can now specify an initial stack count if the weapon item is stackable (e.g. throwing daggers).
      • On Hit Script Change: Ranged weapons will now also trigger their on hit scripts when hitting tiles, objects, and non-attackable characters (in addition to attackable characters).
      • Custom Currencies in Loot Drops: When setting up loot drops in the Combat Editor, you can now include custom currencies. The "Add Currency" button will display a popup menu of all available currencies.

      Check out the full release notes for v1.1 here:
      https://rpginabox.com/forum/d/254-release-notes-for-v11

    • Hey everyone! I'm so excited to announce that I've officially started the migration to Godot 4! đŸĨŗ Since there have been so many changes and improvements to Godot over the past several years, I decided it would be best to begin with a test project while I get up to speed on everything and learn what's new. This will give me an opportunity to play around and experiment with Godot 4 before diving into the implementation of RPG in a Box itself.

      I'll be using this thread to post updates about my progress, so keep an eye out here if you'd like to follow along as I take this exciting next step of the journey! 🙂

    • Skill and Stat Updates in v1.1

      RPG in a Box v1.1 brings many exciting new features and improvements to the skill and stat systems! Continue reading below for a brief overview of some of the major updates included.

      Skill Targeting

      The available options for a skill's target have been expanded to include "Party Member", "Enemy", and "All Enemies". This should open up a lot more possibilities for the way skills can be used in RPG in a Box! When using a custom script as an effect for a skill, the $target variable will contain the chosen party member or enemy (or an array of all enemies if the target is "All Enemies").

      • Party Member: Prompts the player for a party member to target with the skill.
      • Enemy: Prompts the player for an enemy in the current battle to target with the skill (or an attackable enemy in the current map if the player is not in a battle when the skill is activated).
      • All Enemies: Targets all enemies in the current battle (or all attackable enemies in the current map if the player is not in a battle when the skill is activated).

      Skill Effects

      As part of creating a skill in the Stats Editor, you define one or more effects that will be triggered when the skill is used by a character. As of v1.1, there are several additional options for this:

      • Apply Status Effect: Applies a status effect to the target.
      • Remove Status Effect: Removes a status effect from the target.
      • Clear Status Effects: Clears all status effects from the target.
      • Summon Character: Summons a character to the player's team. This is currently only supported in real-time combat, with further functionality to come in future releases.
      • Play Sound: Plays the specified sound effect.

      Below is a list showing all available skill effects that you can choose from, with more to come!

      Status Effects

      Status effects can be applied to characters from skills or via scripting and are used to affect their target in various ways, e.g. a stat buff or damage over time. Some new features for status effects as of v1.1:

      • "Stun" Status Effect Type: A new status effect type, "Stun", is now available from the "Effect Type" dropdown when setting up a status effect in the Stats Editor. When a character is stunned, they will be unable to move or attack until the status effect is removed.
      • Visual Effects for Characters: A new "Visual Effect" setting is available for status effects for assigning particle effects to them, which will be attached to the target character if they have an attach point named "status". You also have the option to customize the attach point for each status effect.
      • Retrieving a Character's Status Effects: Bauxite scripts can now use the new <character>.statuses property to retrieve the status effects currently applied to a character. You can use this property with the contains operator in a conditional expression to check if a character currently has a specific status effect.

      Scripting

      Some helpful new scripting functions related to stats are now available as well. Previously these stat adjustments needed to be done using an "Assign Value" node, however these each have their own visual node as of v1.1!

      • Set Stat: Changes a character's stat to a specific value (supports custom stats).
      • Increase Stat: Increases a character's stat by a specific amount (supports custom stats).
      • Decrease Stat: Decreases a character's stat by a specific amount (supports custom stats).
      • Give Currency: Gives currency to a character (supports custom currencies).
      • Remove Currency: Removes currency from a character (supports custom currencies).

      Other Updates

      While there are too many changes to mention everything in this post, here are just a few additional improvements related to the skill system worth mentioning:

      • Stat Requirement for Skills: Skills can now require a stat to be consumed in order for the skill to be used (e.g. "mp" for a magic spell).
      • Skill Tooltips: Tooltips with a skill's name and description are now shown when hovering over a skill slot.
      • Magic (MP) Stat: Characters now have a "Magic (MP)" property that can be set in the Voxel Editor. This determines their initial "mp" and "max_mp" stats.
      • Skill Bar Changes: The default skill bar has been updated to now contain five skill slots instead of the previous three. If desired, the default skill bar can now also be overridden with a custom widget. Skills are now automatically added to the first open slot on a character's skill bar when given via the Give Skill function, or removed from their skill bar when the skill is removed via the Remove Skill function.
      • Skill Categories: Added "Combat", "Physical", and "Social" built-in categories for skills (in addition to the existing "Magic" category). This is in preparation for future functionality.

      Check out the full release notes for v1.1 here:
      https://rpginabox.com/forum/d/254-release-notes-for-v11

    • New Features

      • Added experimental "Mesh-Based" option when creating a new object or character in the Voxel Editor from the "New Resource" dialog (Blockbench .bbmodel files can imported via "Import from External Format")
      • Added "Blockbench (.bbmodel)" as a source file option when importing from an external format into the Voxel Editor (available when the model is created as "Mesh-Based", animations not officially supported yet)
      • Added experimental "Sprite-Based" option when creating a new object or character in the Voxel Editor (models are entirely sprite-based, images are assigned from the Model Properties tab)
      • Added the ability to assign sound effects per animation frame in the Voxel Editor that will play when the frame is shown (configurable from the sound icon button on the animation toolbar)
      • Added "Event Schedule" functionality for tying scripts to specific times of the day/night cycle, set up on a per map basis from the Map Properties tab (e.g. to schedule an NPC to move to different locations throughout the day)
      • Added camera boundaries functionality for defining the outer limits for the camera, e.g. to stop scrolling once the edge of a map is reached and prevent the void from being seen (configurable from the Map Properties tab in the Map Editor)
      • Added "Facing Player" as an option to the "Camera Orientation" setting in the Map Editor, which will start the map with the camera facing towards the front of the player (initially only supported in grid-based movement)
      • Added "Visual Override Only" checkbox to supplement the "Player Override" Map Editor setting (toggle off for a unique character with its own stats, properties, etc.)
      • Added initial "zone" functionality to maps (free movement only), with the ability to create passable and impassable zones from the Map Properties tab (passable zones support "Character Enters" and "Character Exits" scripts, impassable zones support "Character Collides" script, "initiator" contains triggering character)
      • Added "Add Zone" scripting function for adding a zone to the current map, with parameters for zone name, passability, position, width, depth, and height (e.g. add_zone("toxic_zone", true, coord[0, 0, 0], 64, 64, 16))
      • Added "Disable Zone" scripting function for disabling a zone (e.g. disable_zone("zone_name") - scripts for disabled zones won't trigger and disabled impassable zones won't block the player)
      • Added "Enable Zone" scripting function for enabling a zone that was previously disabled via the "Disable Zone" function (e.g. enable_zone("zone_name"))
      • Added "Remove Zone" scripting function for removing a zone from the map (e.g. remove_zone("zone_name"))
      • Added "Set Zone Script" scripting function for modifying a zone's script, with trigger options of CHARACTER_ENTER and CHARACTER_EXIT for passable zones and CHARACTER_COLLIDE for impassable zones (e.g. set_zone_script("zone_name", "zone_enter_script", CHARACTER_ENTER))
      • Added "Display Zones" button to the Map Editor toolbar for toggling the display of zones (can also be hidden along with other extras while holding the Backtick (`) key, or Shift + Backtick key to toggle all of them off)
      • Added support for tank controls to the free movement system (selectable from the Game Configuration dialog under Settings -> Gameplay -> Mechanics -> Player Movement)
      • Added "Air Control" functionality to the free movement system (adjustable from the Game Configuration dialog under Settings -> Gameplay -> Physics -> Air Control, or scripted (see "Set Gameplay Property" function))
      • Added initial support for climbing to the free movement system (should be considered experimental for now, more settings for tweaking behavior will be coming in later releases)
      • Added "Climb Up" and "Climb Down" actions to the "Available Actions" dialog shown when changing an input binding from the Game Configuration dialog (can be used in place of "Move Up" and "Move Down" for side-scrolling games to allow the player to climb ladders they're standing in front of)
      • Added several settings to the "Experimental" section of the Game Configuration dialog for tweaking how collision detection is handled when the player is near a climbable tile
      • Added initial support for moving platforms to the free movement system (should be considered experimental for now, more settings for tweaking behavior will be coming in later releases)
      • Added "Jump Count" functionality to the free movement system for defining how many times the player can jump before resetting (adjustable from the Game Configuration dialog under Settings -> Gameplay -> Physics -> Jump Count)
      • Added "Movement System" option for configuring the default movement system for your game (free movement vs. grid movement, accessible from the Game Configuration dialog under Settings -> Gameplay -> Mechanics -> Movement System)
      • Added "Movement System" option to the Map Properties tab in the Map Editor for overriding the movement system on a per map basis ("Global Default" option will use the movement system set in the Game Configuration dialog)
      • Added initial support for the "Change Player" scripting function to the free movement system so that the main player character can be swapped out for party members or NPCS within the map
      • Added support for the "Speed Multiplier" tile setting to the free movement system (adjustable from the Model Properties tab in the Voxel Editor)
      • Added "Physics" setting for objects to the Entity Properties tab in the Map Editor and Model Properties tab in the Voxel Editor (experimental feature that gives an object physics so it can be moved around by the player if free movement is used)
      • Added "Thingies" section to the Entity Properties tab of the Map Editor for the new "Item Pickup", "Door", "Conveyor", and "Turret" mechanics (will be moving other existing mechanics here like "Item Container", "Pushable", "Vehicle", etc.)
      • Added "Item Pickup" mechanic to the Entity Properties tab of the Map Editor for the new "Thingy" system, allowing an object to be easily configured as an item pickup (supported in both grid movement and free movement)
      • Added "Door" mechanic to the Entity Properties tab of the Map Editor for the new "Thingy" system, allowing an object to be easily configured as a door (only supported in free movement at this time)
      • Added "Conveyor" mechanic to the Entity Properties tab of the Map Editor for the new "Thingy" system, allowing tiles to act as conveyors and move any characters or pushable objects on them (supported in both grid movement and free movement)
      • Added "Turret" mechanic to the Entity Properties of the Map Editor for the new "Thingy" system, allowing tiles, objects, and characters to act as turrets (supported in both grid movement and free movement)
      • Added "<character>.equipment" Bauxite syntax for getting a codex containing a character's equipment from a script, where the keys are the equipment slot IDs (e.g. player.equipment["right_hand"))
      • Added "<character>.get_item_count(<item_id>)" Bauxite function to get the total count of a specific item in a character's inventory (e.g. player.get_item_count("ITEM_0001"))
      • Added constants to Bauxite for the four ordinal directions (NORTHWEST, NORTHEAST, SOUTHWEST, and SOUTHEAST, in preparation for future functionality)
      • Added "Ordinal Direction" as an option to the Expression Builder in the Script Editor, providing the ability to quickly insert one of the four ordinal directions (in preparation for future functionality)
      • Added optional second parameter to the "Show Widget" and "Hide Widget" scripting functions for fading the widget in/out over a duration of time in seconds
      • Added visual node for the "Change Player" function to the Script Editor (for changing the active player to a party member or a character within the current map)
      • Added "Set Map Background" scripting function for changing the current map's background (e.g. set_map_background(COLOR, color[0, 0, 0], set_map_background(PROCEDURAL_SKY), set_map_background(PANORAMA_SKY, "sky.png"))
      • Added "Stop Animation" scripting function for stopping any animation that's currently playing for an entity, leaving it on its last played frame (e.g. stop_animation(entity["windmill"]))
      • Added "Fire Projectile" scripting function for firing from a source entity towards a target using an item set up as a projectile in the Item Editor (e.g. fire_projectile("ITEM_0001", entity["source"], player, "projectile_id"))
      • Added "Enable Turret" scripting function for enabling a turret that's currently disabled (e.g. enable_turret(entity["turret_01"]))
      • Added "Disable Turret" scripting function for disabling a turret that's currently enabled (e.g. disable_turret(entity["turret_01"]))
      • Added "Enable Conveyor" scripting function for enabling a group of conveyor tiles that's currently disabled (e.g. enable_conveyor("conveyor_group_01"))
      • Added "Disable Conveyor" scripting function for disabling a group of conveyor tiles that's currently enabled (e.g. disable_conveyor("conveyor_group_01"))
      • Added "Set Conveyor Speed" scripting function for modifying the speed (in voxels per second) of a group of conveyor tiles, with optional third parameter to also change the animation's speed (e.g. set_conveyor_speed("conveyor_group_01", 10, true))
      • Added "Set Conveyor Reversed" scripting function for reversing the direction of a group of conveyor tiles, with optional third parameter to also change the animation's direction (e.g. set_conveyor_reversed("conveyor_group_01", true, true))
      • Added "Perform Action" scripting function for emulating the player performing an input action, like moving or attacking, with an optional second parameter for emulating a hold/release (e.g. perform_action("attack") to attack, or perform_action("move_up", true) to hold down the "Move Up" action)
      • Added "Override Action" scripting function for overriding an input binding action with another action (e.g. override_action("jump", "attack") - player will attack instead of jump when pressing the input bound to "jump")
      • Added "Reset Action" scripting function for reverting an input binding action that was previously overridden via the "Override Action" function (e.g. reset_action("jump"))
      • Added "Set Gameplay Property" scripting function for modifying a gameplay setting (currently only the following property names are supported: "movement_control_type", "gravity", "air_control", "jump_enabled", "jump_vertical_velocity", "jump_count", e.g. set_gameplay_property("jump_count", 2))
      • Added "Enemy" as a target option for skills in the Stats Editor (when using a script as an effect, the $target variable will contain the chosen enemy)
      • Added "All Enemies" 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 all enemies in the battle/map)
      • Added "Party Member" as a target option for skills in the Stats Editor (when using a script as an effect, the $target variable will contain the chosen member)
      • Added "Stat Required" setting for skills in the Stats Editor that requires a stat to be consumed in order for the skill to be used (e.g. "mp" for a magic spell)
      • Added initial implementation of skill tooltips (when hovering over a skill slot in-game, a tooltip with the skill's name and description will now display)
      • Added "Combat", "Physical", and "Social" built-in categories (in addition to the existing "Magic" category) for skills in the Stats Editor (in preparation for future functionality)
      • Added "Apply Status Effect" as an option to the "Skill Effects" dialog when adding an effect to a skill in the Stats Editor (applies a status effect to the target)
      • Added "Remove Status Effect" as an option to the "Skill Effects" dialog when adding an effect to a skill in the Stats Editor (removes a status effect from the target)
      • Added "Clear Status Effects" as an option to the "Skill Effects" dialog when adding an effect to a skill in the Stats Editor (clears all status effects from the target)
      • Added "Summon Character" as an option to the "Skill Effects" dialog when adding an effect to a skill in the Stats Editor (summons a character to the player's team, real-time only for now, with more functionality to come in future releases)
      • Added "Play Sound" as an option to the "Skill Effects" dialog when adding an effect to a skill in the Stats Editor (plays the specified sound effect)
      • Added "Stun" as a new status effect type in the Stats Editor (selectable from the "Effect Type" dropdown, prevents the affected character from moving or attacking)
      • Added "Visual Effect" setting for status effects in the Stats Editor for assigning particle effects to them, which will be attached to the target character if they have an attach point named "status" (with option to customize the attach point ID used per status effect)
      • Added "<character>.statuses" Bauxite syntax for getting the status effects for a character (e.g. player.statuses, value is a codex where each key is a status ID and its value is a codex of that status effect's properties)
      • Added "Set Stat" scripting function for changing a character's stat to a specific value, third parameter is optional and defaults to "player" (e.g. set_stat("max_hp", 100, player))
      • Added "Increase Stat" scripting function for increasing a character's stat by a specific amount, third parameter is optional and defaults to "player" (e.g. increase_stat("attack", 5, player))
      • Added "Decrease Stat" scripting function for decreasing a character's stat by a specific amount, third parameter is optional and defaults to "player" (e.g. decrease_stat("defense", 5, player))
      • Added ability to set a maximum value for the "max_mp" stat (i.e. maximum magic points) in the "Character Stats" section of the Stats Editor (in preparation for future functionality)
      • Added "Magic (MP)" setting to the Model Properties tab of the Voxel Editor for setting the initial MP stat for characters (determines their initial "mp" and "max_mp" stats)
      • Added ability to include custom currencies in loot drops in the Combat Editor (the "Add Currency" button will now display a popup menu of all available currencies)
      • Added "Give Currency" scripting function for giving currency to a character (e.g. give_currency(100, "gems", player) - second and third parameters are optional and default to the base "currency" and "player", respectively)
      • Added "Remove Currency" scripting function for removing currency from a character (e.g. remove_currency(100, "gems", player) - second and third parameters are optional and default to the base "currency" and "player", respectively)
      • Added "Pre-Battle Script" to the general section of the Combat Editor (ran before the first round of combat during battles - $battle_name string variable and $characters array variable are available)
      • Added "Post-Battle Script" to the general section of the Combat Editor (ran at the end of a battle before returning to normal gameplay and any victory/defeat scripts are executed - $battle_name string variable and $characters array variable available)
      • Added "Pre-Round Script" to the general section of the Combat Editor (ran at the start of each round of a battle - $battle_name string variable, $characters array variable, and $round number variable are available)
      • Added "Post-Round Script" to the general section of the Combat Editor (ran at the end of each round of a battle - $battle_name string variable, $characters array variable, and $round number variable are available)
      • Added "Pre-Turn Script" to the general section of the Combat Editor (ran at the start of each character's turn during a battle, with the "self" built-in variable referencing the current character and $battle_name, $characters, and $round variables available)
      • Added "Post-Turn Script" to the general section of the Combat Editor (ran at the end of each character's turn during a battle, with the "self" built-in variable referencing the current character and $battle_name, $characters, and $round variables available)
      • Added support for free attacking to the grid-based movement system so that the player can freely attack at any time instead of needing to directly interact, similar to free movement (Ctrl key by default, can be changed in the project's input bindings)
      • Added "Projectile" toggle option to the Item Editor for indicating that the item is a projectile (for use with the "Fire Projectile" function and turrets - with settings for damage, speed, range, on hit script, and sound effect)
      • Added "Sound Effect" setting for items configured as weapons in the Item Editor (automatically plays when a character attacks with the weapon equipped)
      • Added support to melee weapons for the "Ammo/Energy Required" setting so they will now support options beyond unlimited use (i.e. single use, items by ID, and items by tag)
      • Added "Character Stat" as an option for the "Ammo/Energy Required" setting in the Item Editor, requiring a weapon to consume a stat of the character that's using it
      • Added the ability to set an initial stack count for a character's default equipment in the Voxel Editor (for when a weapon item is stackable, e.g. throwing daggers)
      • Added ability to retrieve an array of items contained within an entity (if the entity is an object configured as an item container) using the "<entity>.inventory" Bauxite syntax
      • Added "erase" array function to Bauxite for erasing a specific value from an array (e.g. $my_array.erase(entity["xyz"]) removes the first occurrence of entity["xyz"])
      • Added "<character>.team" Bauxite syntax for retrieving or changing the team of a character, with supported values of "player", "enemy", and null (only affects characters with "Attackable in Real-Time" enabled, additional functionality around this coming in future updates)
      • Added "<entity>.animation" Bauxite syntax for retrieving the name of the animation currently playing for an entity (value will be null if no animation is playing)
      • Added "Show Options" scripting function for displaying the in-game options menu with control, video, and audio settings (e.g. show_options())
      • Added "party" Bauxite variable for referencing the player's party as a codex with a key for each member ID and the corresponding value a reference to the character (can use as a shorthand for party.member["member_id"], e.g. party["member_id"])
      • Added "<entity>.position" Bauxite syntax for retrieving the absolute position of an entity (as opposed to its tile coordinate, e.g. to use "Add Effect" to add an effect at the feet of a moving character or at a projectile's location)
      • Added "Set Entity Direction" scripting function for changing the direction of an entity to a specific cardinal direction (e.g. set_entity_direction(player, NORTH))
      • Added "Set Entity Offset" scripting function for changing the X/Y/Z offset of an object, with optional fifth parameter for changing it over a duration of time (e.g. set_entity_offset(entity["tree_01"], 4, 4, 0))
      • Added "Set Entity Rotation" scripting function for changing the X/Y/Z rotation of an object or Z rotation of a character, with optional fifth parameter for changing it over a duration of time (e.g. set_entity_rotation(entity["boulder_01"], 10, 10, 45))
      • Added "Interact With Entity" scripting function for triggering a character to remotely interact with an object or character, second parameter is optional and defaults to "player" (e.g. interact_with_entity(entity["storage_chest"], player))
      • Added "<character>.vehicle" Bauxite syntax for retrieving the vehicle object that a character is currently in (value will be null if they aren't in a vehicle)
      • Added $item variable for scripts assigned to usable/consumable items, which contains the full item codex (e.g. to check a particular property of the item being used)
      • Added ability to override the default built-in widgets for the inventory, equipment, quick slot bar, and skill bar (set from the "star" button on the Widget Editor toolbar)
      • Added ability to edit widget element IDs using the pencil button located on the Element Properties tab when an element is selected in the Widget Editor
      • Added "Video" as an available element type in the Widget Editor (with settings for which video to play and an optional still image to show before being triggered to play)
      • Added "Target (Valid)" and "Target (Invalid)" predefined cursor types to "Cursors" section of the Game Configuration dialog (used by the "Request Entity" scripting function and the "Summon Character" skill effect)
      • Added "Enable Screen Effect" scripting functions for enabling the VHS/CRT monitor effect via script, with optional fade length (e.g. enable_screen_effect(2))
      • Added "Disable Screen Effect" scripting functions for disabling the VHS/CRT monitor effect via script, with optional fade length (e.g. disable_screen_effect(2))
      • Added "Set Screen Effect Property" scripting function for modifying a property of the VHS/CRT monitor effect via script (e.g. saturation, chromatic aberration, etc., with optional fade length - see documentation for a list of properties that can be changed)
      • Added support for the "Locked Axes" camera settings (i.e. locking the camera's X-axis, Y-axis, or Z-axis movement) to the grid-based movement system
      • Added "Camera Preset" functionality for storing and switching between multiple camera presets from the Game Configuration dialog (accessed from Game Configuration -> Settings -> Gameplay -> Camera)
      • Added ability to override the camera setup on a per map basis using the "Camera Override" setting on the Map Properties tab in the Map Editor (will now list any custom camera presets defined in the Game Configuration dialog)
      • Added "Shake Screen" scripting function for shaking the screen over a duration of time, with customization and other options to come in the future (e.g. shake_screen(2) - not currently compatible with the VHS/CRT monitor effect)
      • Added "First-Person Magic Shooter" project template to the "Create a New Game" dialog (includes bare bones mechanics to help get started with creating an FPS, will be expanded in future releases)
      • Added "Recent Files" button to the Voxel Editor, Map Editor, Dialogue Editor, Script Editor, and Effect Editor toolbars as a way to access recently opened files
      • Added ability to clear recent files for an editor from the list shown when nothing is opened in the editor (or all recent files for the project if "Show All Types" is checked)
      • Added "Exclude Background from Captures" setting for the Map Editor to determine if the background should be removed (i.e. transparent) when capturing an image of the map
      • Added "zoom" debug console command that will display the camera's current zoom value (useful for determining the minimum and maximum zoom values for a standard/third-person game)
      • Added built-in "Skill Bar" widget to the list of widgets in the Widget Editor (allowing the default skill bar to be viewed or to be duplicated to create a custom widget)

      Changes

      • Updated the default skill bar to now contain five skill slots instead of the previous three (if desired, the default skill bar can now be overridden with a custom widget)
      • Updated skill functionality for tactical-turn based combat so the skill bar will show for a party member during their turn if enabled, otherwise the "Use Skill" control will be displayed in the bottom right corner
      • Updated skill bar functionality so that a skill slot's cooldown is now properly set when a skill is manually triggered from a script via the "Use Skill" scripting function
      • Updated skills so they are now automatically added to first open slot on the character's skill bar when given via "Give Skill", or removed from the skill bar when the skill is removed via "Remove Skill"
      • Updated some behind the scenes functionality for the skill bar and quick slot bar so that unique instances are now maintained per character (should generally be more reliable when switching between characters)
      • Updated projectile functionality in the grid-based movement system so they will no longer lock onto their target and can now be dodged
      • Updated "On Hit Script" functionality for ranged weapons to now also trigger when hitting tiles, objects, and non-attackable characters (in addition to attackable characters)
      • Updated free attacking functionality (default of left mouse button in free movement and Ctrl key in grid movement) so that the character will no longer play their attack animation if their weapon uses ammo and they have none
      • Updated collision logic in free movement to have a slight cooldown when colliding with impassable objects and characters in order to prevent rapid continual triggering of any assigned collision scripts (customization around this to come in a future release)
      • Updated jump vertical velocity setting to allow a higher precision for its value (can now be defined up to the hundredths place, set from Game Configuration -> Settings -> Gameplay -> Physics -> Jumping -> Vertical Velocity)
      • Updated Map Editor's "Background Type" functionality so that each option's settings are maintained when switching between procedural sky and panorama sky
      • Updated "Fog" option in the Map Editor to remember the previously used settings when toggling it off then back on from the Map Properties tab (instead of reverting to the defaults)
      • Updated "Fog" option in the Map Editor to no longer automatically pop up the settings dialog when enabling it from the Map Properties tab
      • Updated "Saturation" setting for the VHS/CRT monitor effect in the Map Editor to allow a maximum value of 10 and a minimum value of -10 (negative values will cause colors to invert)
      • Updated the day/night system so that it's always enabled, allowing the "global.time" variable to be accessible from scripts even without any day/night lighting presets assigned (a full day/night cycle is 600 seconds by default)
      • Updated X/Y/Z offset properties for attach points in the Voxel Editor to allow more precision (values can now be defined up to the hundredths place)
      • Updated scale settings for entities and attach points to allow more precision (values can now be defined up to the hundredths place)
      • Updated attach point functionality so that objects being attached to other models no longer need any attach points defined (if none exist, it will default to position (0, 0, 0))
      • Increased maximum scale limit for models and attach points to 4 from the previous limit of 2
      • Updated collision functionality for empty objects and characters (i.e. no voxels) so that collision boxes will now be created in free movement if custom collision shapes are defined for the model
      • Updated some logic for empty models (i.e. no voxels) so that they no longer need to be removed and replaced on maps for certain model properties to be carried over
      • Updated choice functionality in the dialogue system to support shortcut keys 6 through 9 (in addition to the existing 1 through 5) to select the corresponding option when the player is presented with choices
      • Updated "Execute Script" scripting function to pass any local variables defined in the current script to the script being called even when not pausing (i.e. running in parallel)
      • Updated "Play Animation" scripting function to include an optional third parameter to indicate whether or not it should attempt to resume the animation, e.g. when previously stopped via the "Stop Animation" function (defaults to false)
      • Updated "Play Group Animation" scripting function to include an optional third parameter to indicate whether or not it should attempt to resume the animation, e.g. when previously stopped via the "Stop Animation" function (defaults to false)
      • Updated "Add Effect" scripting function to return the newly added effect so it can be referenced later without needing an entity ID (similar to "Add Character", "Add Tile", etc.)
      • Added ability to set the Z rotation of characters from a script using the "<character>.rotation_z" syntax and to retrieve the X/Y/Z rotation of a character using the "<character>.rotation" syntax
      • Updated "Set Entity Light Attenuation", "Set Entity Light Diameter", and "Set Entity Light Intensity" scripting functions to allow variables for the optional duration parameter instead of requiring a literal numeric value
      • Updated "Move Character" script node so that the optional "pause" parameter can be specified via checkbox when creating a script visually in the Script Editor
      • Increased maximum dimensions for particle size in the Effect Editor to 100x100x100 for the cube shape and 100x100 for the sphere and billboard shapes
      • Replaced the default damage sound effect with a similar, but less jarring, sound effect (played whenever a character takes damage during combat or from a script)
      • Updated inventory storage slot functionality so that items given to a character will now fill the available storage slots in order of element ID
      • Updated icon for the moving platform functionality in the Map Editor to be less ambiguous as to the mechanic it's meant to represent
      • Removed "Free Movement" disclaimer dialog that would display whenever enabling free movement for a map from the Map Properties tab in the Map Editor
      • Removed "Free Movement" icon from the "Attack" action on the "Available Actions" dialog shown when changing input bindings as it's no longer limited to free movement
      • Updated the dialog for renaming files so that it will now have the current name of the file in the "Name" field by default instead of being blank (currently only applicable to files renamed from the Game Explorer or asset tabs on the right)
      • Changed wording of the "Health" label on the Model Properties tab in the Voxel Editor to "Health (HP)" to help indicate which stat it corresponds to and to match the newly added "Magic (MP)" setting
      • Updated "Give Skill", "Remove Skill", and "Use Skill" scripting functions in the Script Editor to use the new spell-themed icons instead of the old "jump" icons
      • Increased the maximum number of recent items for the editor to 100 (i.e. files shown on the "Recent" tab next to "Favorites", as well as in the "Recent" section that's shown when no files are opened in an editor)
      • Changed label text for the "Object Model (Character)" setting in the Item Editor to "Object Model (Standard)" to better represent what the model is used for
      • Added missing English translations for the following function descriptions in the Script Editor: EQUIP_ITEM_DESC, UNEQUIP_ITEM_DESC, and USE_ITEM_DESC
      • Updated in-game error messages that are displayed in the debug console to now include the name of the script in which they occurred (if applicable, i.e. a standalone script file)
      • Updated "Play Sound" scripting function to include the name of the sound in the debug console error message that's displayed when the sound doesn't exist
      • Updated "justin" and "base_justin" character models in the built-in Asset Library to include animations for "jump" and "sprint"

      Bug Fixes

      • Fixed issue where the "Allowed Item Tags" setting for storage slots was not being respected when a character was given items via the "Give Item" scripting function
      • Fixed issue where calling the "Play Sound" scripting function with a non-string value for the sound name was not being properly caught and displayed as an error in the debug console
      • Fixed issue where tactical turn-based battles would not function properly when attempting to start one using a free movement map (the map will now be switched to grid-based movement)
      • Fixed issue where billboard sprites using the "Multi-Directional Sprite" setting were not properly updating in first-person free movement based on the player's position
      • Fixed issue where collision boxes weren't being set up properly for objects added to free movement maps via the "Add Object" scripting function
      • Fixed issue where the player character was incorrectly rotating in free movement instead of remaining upright when the "Two-Dimensional" setting was enabled
      • Fixed issue where objects and effects configured to be automatically attached to a model were not being kept if an attach point was renamed in the Voxel Editor
      • Fixed issue where the camera would remain stuck at the player's position when attempting to move it in first-person free movement using one of the "Move Camera" scripting functions
      • Fixed issue where the camera's position could become out of sync if the game was restarted while a scripted camera movement was in progress
      • Fixed issue where item icon popups resulting from loot drops would move towards the center of the map instead of the player character while in free movement
      • Fixed issue where a character's "name" property was not being kept when swapping to another model via the "Set Entity Model" function (as it's meant to be a visual change only)
      • Fixed issue where the "Set Player Movement Locked" scripting function was not properly locking the player's movement when used in free movement
      • Fixed issue where the player's collision box was not being properly updated in free movement when their scale was changed via script
      • Fixed issue where the player's "jump" animation could become stuck in free movement after landing then continuing to hold a movement key if the animation was a looping type
      • Fixed issue where item descriptions for shop item slots would be blank or would show an incorrect description and cost when using the default currency without a custom name
      • Fixed issue where widget element values were not being automatically updated after a character leveled up from defeating a real-time enemy (e.g. a text label showing the character's level)
      • Fixed issue where widget element values were not being automatically updated after the player character received a loot drop from an enemy or via the "Give Loot" scripting function
      • Fixed issue where the "Death Sound Effect" setting in the Combat Editor would sometimes be empty for newly created projects instead of showing the "Default" option
      • Fixed issue where the maximum value configured for a stat in the Stats Editor was not being respected when the stat was modified in-game
      • Fixed issue where an explicit minimum count for a "contains" expression would get dropped from its visual node when manually entered into a Bauxite script
      • Fixed issue where some weapon-related fields in the Item Editor were incorrectly showing after toggling off the "Equippable" setting for an item
      • Fixed issue where the HP bar was not displaying at the proper height if a character was using the "Billboard Sprite" mesh type along with a non-default scale
      • Fixed issue where changing the "rotation_z" property for an object via script was not updating its direction if the object was using the "Billboard Sprite" mesh type
      • Fixed issue where quick scripts would sometimes fail to run or the wrong quick script would be triggered after saving a game then reloading
      • Fixed issue where enemies defeated during a tactical turn-based battle would inadvertently still be present in the battle map upon returning to it later (if the "Remove Defeated Enemies" setting was disabled)
      • Fixed issue where a custom stat could incorrectly bet set to less than zero when using an assignment to change or decrease its value from a script
      • Fixed issue where any skills that had been assigned to skill slots on a widget were not being properly restored when loading a saved game
      • Fixed issue where the player character was not being properly restored when loading a saved game where they had been swapped with a party member or NPC via "Change Player" (only supported in grid-based movement at this time)
      • Fixed issue where values on the Widget Properties tab (on close script, font, and font size) were not updating when switching to a built-in widget in the Widget Editor
      • Fixed console error that could occur when renaming a loot drop in the Combat Editor and the "Enemies" list did not have any enemies defined
      • Fixed issue where the quick slot bar was not displaying on the management screen (if the quick slot bar was enabled from the Game Configuration's "User Interface" section)
      • Fixed issue where clicking the left mouse button to select an entity for the "Request Entity" scripting function could inadvertently cause the player to attack
      • Fixed issue where the cursor was not being properly updated after completing the selection of an entity requested by the "Request Entity" scripting function
      • Fixed issue where the cursor would sometimes display as valid (i.e. hand icon) when calling "Request Entity" with a validation function even if the entity under the cursor wasn't valid
      • Fixed issue where using the "Set Terrain Types" function would cause a script to become stuck afterwards and would not execute any further logic in the script
      • Fixed issue where the "Use Skill" scripting function would incorrectly trigger the use of a character's skill even if the skill was still on cooldown

      Documentation

      • Updated "Show Widget" and "Hide Widget" built-in docs to include info about the optional parameter for fading the widget in/out
      • Updated "Script Syntax" built-in docs to include info about the dice notation in Bauxite for simulating D&D-style dice rolls
      • Added initial version of built-in docs for "Message Log" with a description of its usage, as well as information about configuring a timeout for messages to be cleared from the log
      • Added initial version of built-in docs for "Terrain Mode", which includes a description of its usage with the "Set Terrain Types" function and the possible values
      • Updated "Terrain Types" built-in docs to include information about how they're used with pushable objects to limit which tiles they're allowed to be pushed across
      • Added initial version of built-in docs for "Stretch Mode" with a description of its usages, as well as a list of possible stretch mode values and explanations for each mode
      • Updated "Effect" built-in docs to include information about their usage, as well as a note about enabling "One-Shot" effects
      • Updated "Voxel Editor" built-in docs to include information about using the "Alt + Left Mouse Button" control in selection mode to add all voxels of the picked color to the current selection
      • Updated "Object" built-in docs to include information for the "offset", "offset_x", "offset_y", "offset_z", "rotation", "rotation_x", "rotation_y", and "rotation_z" properties
      • Updated "Progress Bar" built-in docs to include some script examples for changing a progress bar's current value and maximum value
      • Added "global.gravity" built-in variable to the global variables section of the "Scripting Reference" page with a description of its purpose
      • Added "party" built-in variable to the party variables section of the "Scripting Reference" page with a description of its purpose
      • Added "camera.type" built-in variable to the camera variables section of the "Scripting Reference" page with a description of its purpose
      • Updated "Font" built-in docs to include OpenType (.otf) as a supported font format that can be imported into your game project
      • Updated "Combat Editor" built-in docs to bring the "General" section up to date, as well as to include the new battle scripts (Pre-Battle Script, Post-Battle Script, etc.)
      • Added initial version of built-in docs for the "Add Effect", "Enable Effect" and "Disable Effect" scripting functions
      • Added initial version of built-in docs for the "Stop Animation", "Stop Sound", and "Stop Music" scripting functions
      • Added initial version of built-in docs for the "Apply Status Effect", "Remove Status Effect", and "Clear Status Effects" scripting functions
      • Added initial version of built-in docs for the "Attach Effect", "Detach Effect", "Attach Object", and "Detach Object" scripting functions
      • Added initial version of built-in docs for the "Equip Item", "Unequip Item", and "Use Item" scripting functions
      • Added initial version of built-in docs for the "Use Skill", "Give Skill", and "Remove Skill" scripting functions
      • Added initial version of built-in docs for the "Give Quest", "Complete Quest", and "Fail Quest" scripting functions
      • Added initial version of built-in docs for the "Save Data", "Load Data", "Delete Data", "Load Game", "Save Game", and "Delete Save" scripting functions
      • Added initial version of built-in docs for the "Log Message" and "Clear Log" scripting functions
      • Added initial version of built-in docs for the "Set Ambient Light Intensity" and "Set Directional Light Intensity" scripting functions
      • Added initial version of built-in docs for the "Set Entity Light Attenuation", "Set Entity Light Diameter", and "Set Entity Light Intensity" scripting functions
      • Added initial version of built-in docs for the "Set Entity Scale" and "Set Entity Texture" scripting functions
      • Added initial version of built-in docs for the "Create Platform" and "Set Terrain Types" scripting functions
      • Added initial version of built-in docs for the "Change Camera", "Display Image", and "Play Video" scripting functions
      • Added initial version of built-in docs for the "Give Loot", "Open Container", "Remove Item From Container", and "Add Item To Tile" scripting functions
      • Added initial version of built-in docs for the "Set Entity Direction", "Set Entity Offset", and "Set Entity Rotation" scripting functions
      • Added initial version of built-in docs for the "Set Stat", "Increase Stat", and "Decrease Stat" scripting functions
      • Added initial version of built-in docs for the "Add Zone", "Remove Zone", "Enable Zone", "Disable Zone", and "Set Zone Script" scripting functions
      • Added initial version of built-in docs for the "Perform Action", "Override Action", and "Reset Action" scripting functions
      • Added initial version of built-in docs for the "Enable Conveyor", "Disable Conveyor", "Set Conveyor Speed", and "Set Conveyor Reversed" scripting functions
      • Added initial version of built-in docs for the "Fire Projectile", "Enable Turret", and "Disable Turret" scripting functions
      • Added initial version of built-in docs for the "Enable Screen Effect", "Disable Screen Effect", and "Set Screen Effect Property" scripting functions
      • Added initial version of built-in docs for the "Set Gameplay Property" scripting function
      • Added initial version of built-in docs for the "Get Noise 2D" and "Get Noise 3D" scripting functions
      • Updated "Management Screen" built-in docs to reflect that the feature is no longer experimental and the new setting locations for adding custom widgets or disabling it
      • Updated "Array" built-in docs to include new "erase" function for removing the first occurrence of a specific value, as well as a Bauxite code example
      • Updated "Item Storage Slot" built-in docs to include information about holding down the Control key to pick up only one of an item that's stacked