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 freeze
- 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)