Added base implementation (v0.1) of the new free movement system, enabled per map from Map Properties (most gameplay will not work yet, use at your own risk!)
Added "Character Collides" trigger event for object scripts to the Entity Properties tab in the Map Editor (for both grid-based and free movement)
Added "Pitch Control" camera setting to the Game Configuration dialog for allowing the player to control the pitch, with min/max settings
Added "Focal Offset" camera setting to the Game Configuration dialog for vertically offsetting the camera's focal point in third-person views
Added "Locked Axes" camera settings to the Game Configuration dialog for locking the X, Y, and/or Z-axis (e.g. lock the Y-axis for a sidescroller effect)
Added "Top-Down Camera" as an option for the Map Editor's default camera (available from the Editor Settings dialog)
Added "jump" as an option to the list of predefined animation names when defining a character animation in the Voxel Editor
Added debug console command for adjusting the player's jump height in free movement maps (e.g. "jump X", where X is from 0 to 10)
Added "Spotlight" as a light source option to the Voxel Editor, with initial settings for range (in voxels) and angle of the spotlight
Added "Hostility" behavior setting for NPCs to determine how they behave when attackable (always hostile, hostile if attacked, or never hostile)
Added ability to apply noise to existing voxels in the Voxel Editor (all or selection), with option to save presets and set the seed value
Added ability to select all voxels of a specific color in the Voxel Editor via Alt + Left Click while the selection tool is active
Added ability to use the "Capture Image to File" feature while in "Mesh Preview" mode in the Voxel Editor (useful with Marching Cubes, etc.)
Added ability to set a custom position for a character's HP bar by defining an attach point named "hp_bar" in the first frame (or others to override)
Added ability to retrieve the tool items currently held in a character's inventory (e.g. "player.tools", returned as an array of codices)
Added ability to get and set a character's active tool (e.g. player.active_tool = "ITEM_0001", when retrieving the active tool the item codex will be returned)
Added ability to retrieve and modify the current view model for the camera using "camera.view_model" (e.g. camera.view_model = "cam_mech")
Added ability to retrieve the current camera type via script using "camera.type" (value will be either STANDARD, ISOMETRIC, or FIRST_PERSON)
Added ability to retrieve the configured gameplay settings as a codex via the "global.gameplay" syntax (values are read-only for now)
Added gameplay setting to the Game Configuration dialog to allow loading/continuing from the game menus when saving is disabled (e.g. for checkpoint systems)
Added "Typing Effect" setting to the Game Configuration dialog for disabling the dialogue typing effect (i.e. any spoken text will instantly display)
Added "Codex" as an option to the expression builder in the Script Editor, with a wizard for adding key/value pairs to the codex
Added icons for each option in the expression builder in the Script Editor to provide more visual distinction between each expression type
Added description box to the bottom area of the expression builder in the Script Editor for displaying helpful information about the selected type
Added support for directional animations when the attack animation override setting is used for a weapon item (e.g. "sword_swing_east")
Added "Stop Sound" scripting function for stopping a sound using its ID returned from the "Play Sound" function, with optional fade out (e.g. stop_sound(0, 2))
Added "Stop Music" scripting function for stopping any music that's currently playing, with optional fade out (e.g. stop_music(2))
Added "Clear Log" scripting function for clearing all text from the message log (i.e. any text displayed via the "Log Message" function)
Added ability to retrieve and modify an object's XYZ offset via script (e.g. self.offset = array[1, 2, 5], self.offset_x = 3, etc.)
Added ability to retrieve and modify an object's XYZ rotation via script (e.g. self.rotation = array[10, 0, 45], self.rotation_z = 25, etc.)
Added ability to manually set the current value and maximum value of a progress bar via script using "value" and "max_value" syntax (e.g. $my_element.value = 10)
Added ability to retrieve or change an object's display name via script using the built-in "name" property (e.g. entity["book01"].name = "New Name")
Added four new effect presets to the Effect Editor: fountain, portal, rain, and snow (available when creating a new effect)
Added "Preprocessing Time" setting to the Effect Editor, which processes the particles in advance by the specified number of seconds
Added "Explosiveness" setting to the Effect Editor, which determines how many of the particles emit at once (at max, all emit simultaneously)
Added "Fixed FPS" setting to the Effect Editor, which can be used to limit the framerate of the effect's particles
Added "Randomness" setting to the Effect Editor for applying randomness to the scale of the generated particles
Added "Local Space" setting to the Effect Editor, which when enabled will lock particle movement to the parent object's local space
Added ability to press the ESC key to cancel out of the capture when capturing an image or character portrait in the Voxel Editor
Added options to the "Import Resources" dialog for selecting all, selecting none, and changing the model type for all selected models
Added several assets from Stumpy the Squirrel's "How to Make a Game" tutorial series to the built-in Asset Library
Updated in-game widget system to significantly improve performance when using placeholder expressions in text labels and text fields
Updated "Play Sound" scripting function to include support for looping the sound and setting a play interval (e.g. play_sound("sound.wav", true, 1))
Updated "Play Sound" scripting function to return a unique sound ID for later referencing the sound (e.g. to stop via "Stop Sound")
Updated "Play Music" scripting function to include two new optional parameters, fade in (in seconds) and loop mode (true = loop, false = play once)
Updated "Missing Dependencies" dialog in the Map Editor to auto-select resources whenever there's a single match on the name (e.g. in a subfolder)
Updated Voxel Editor to only generate meshes for frames that have applicable changes instead of every frame when saving a model
Updated attach points dropdown in the Voxel Editor so it will attempt to keep the same one selected when switching between animation frames
Updated Effect Editor to properly support transparent colors for effects using cubes, spheres, or billboards without an image assigned
Updated limit for the camera zoom's minimum value in the Game Configuration dialog to 10 instead of the previous limit of 30
Updated "Offset" camera setting in the Game Configuration dialog so it's available for the perspective camera type even when rotation is disabled
Updated Map Editor to support copying and pasting of entity properties between two different maps instead of only within the same map
Updated light attenuation setting in the Voxel Editor to have a minimum value of 0.01 to prevent potential lighting issues in maps
Updated game cursor to automatically refresh whenever the "Set Entity Script" function is called (in case the cursor is hovering over that entity)
Updated Game Explorer to allow the creation of a new effect from the context menu when right-clicking the "Effects" folder
Updated Script Editor to display a confirmation dialog when attempting to close the script when there are pending changes to the Bauxite source code
Updated About dialog to include credit for the default game UI font (PixelMplus) on the "Resources" tab with a link to the creator's website
Updated expression builder in the Script Editor to automatically select the corresponding expression type and values when an expression is manually entered
Changed name of the variable expression builder in the Script Editor to "Expression Builder" to better represent what the dialog is used for
Changed name of the "Variable" option in the variable expression builder to "Local Variable" to help clarify its scope and usage
Removed "None" from the "Navigation Type" dropdown of the "Replace Navigation" visual scripting node since it's not applicable for that parameter
Bug Fixes:
Fixed issue where "party.member["player"]" syntax would return null instead of the main player character after saving and loading a game
Fixed issue where the player's quests would be missing after saving and loading a game (i.e. "player.quests" would return an empty array)
Fixed issue where the player was no longer able to right-click consumable items to use them after saving and loading a game
Fixed issue where objects and characters added and then removed prior to saving a game would still be present after loading (at center of map)
Fixed issue where "nonexistent signal: storage_slot_item_changed" error message would sometimes display when loading a saved game
Fixed issue with positioning of objects in the Map Editor when rotating one with an offset assigned or using Alt + Click to pick it in place mode
Fixed issue where null was being returned instead of the skill ID when attempting to access a skill slot via script
Fixed issue where mouse interaction on an entity would stop working after using the "frame" property to change its current frame
Fixed issue where using the group scripting syntax on the left side of a contains expression would not evaluate as true even if the entity was in the group
Fixed issue where the "substr" scripting function would not work properly if the third length parameter was omitted
Fixed issue where custom functions were not yielding when called unless storing a return value into a variable via assignment
Fixed issue where appending a value to an array using a binary "+" operation would incorrectly result in the original array's data being modified
Fixed issue where global properties were being reset to null after a game was restarted (e.g. via player defeat or the "Restart Game" function)
Fixed issue where calling the "Give Item" function from a widget button's script would fail if item icon popups were enabled
Fixed issue where a character's level, MP, Max MP, and custom stats were not being carried over when using "Set Entity Model" to change their appearance
Fixed issue where the "Character is Damaged" global event script wasn't being triggered when the player dealt melee damage to an enemy in real-time
Fixed issue where "initiator" always referred to the player character instead of the attacking character when an enemy used a ranged weapon in real-time
Fixed issue where calling "Give Item" or "Remove Item" function with the character specified and storing the return value was not being accepted as valid
Fixed issue where attempting to call "Reset Entity Rotation" without having first called "Rotate Entity Towards" wasn't being properly caught and logged
Fixed issue where the "Put Player" scripting function was not triggering a visibility update for any groups auto-hidden via the "-hide" suffix
Fixed issue where the "Configure Attached Objects/Effects" dialog was not remembering any attached objects residing in subfolders when returning to the dialog
Fixed issue where any effects that resided in subfolders were not being listed properly in dropdown boxes (e.g. "Attach Effect" visual script node, etc.)
Fixed issue where the "Permanent" setting for Fog of War would not display until the Game Configuration dialog was closed and opened again
Fixed issue where changing the Y and Z scale values for attach points in the Voxel Editor would sometimes fail to update the attached object's scale
Fixed issue where the Y and Z scale values for attach points would be switched when using the "Copy Settings" and "Paste Settings" buttons
Fixed issue where an undo action would trigger in the Voxel Editor when attempting to press the "Accept" button during an image/portrait capture
Fixed issue where the "F4" and "4" Voxel Editor shortcut keys were not switching to the fill tool while in texturing mode
Fixed issue on the Model Properties panel where enabling the "Light Source" setting would not properly scroll the light settings panel fully into view
Fixed issue where the Effect Editor was sometimes being incorrectly marked as having changes when first opening an effect
Fixed issue where a text label's alignment in the Widget Editor would reset to "Left" after changing the font size of the text
Fixed issue where widget buttons could be inadvertently activated via space bar after being pressed once (as a result of capturing keyboard focus)
Fixed issue where widgets would potentially not have updated values immediately after loading a map (e.g. a character's coordinate)
Fixed issue where enemy spawn timers would be started again every time the player returned to a map with spawns (resulting in the enemy limit being exceeded)
Fixed issue where a map could fail to load if an enemy spawn assigned to a group in that map had been removed from the Combat Editor
Fixed issue with the shake effect applied to characters not bumping the damaged character in the correct direction when hit
Fixed issue where setting an attack animation override for a weapon in the Item Editor would cause tactical turn-based battles to become stuck
Fixed issue where the built-in player HP bar would stop working properly when using the "Player Override" map setting to change the character model
Fixed issue where the player character model was not reverting back to the default player character when travelling to a map with no override assigned
Fixed issue where dragging a nested player node onto its parent player choice node could result in a dialogue with broken connections
Fixed several issues in the Dialogue Editor related to modifying and saving values for the "Go To" node while in compact mode
Fixed issue where dialogues added as favorites were not being displayed on the "Favorites" tab (only highlighted in the Game Explorer)
Fixed issue where the "Projectile Object Model" field in the Item Editor wouldn't initially display after switching a weapon's type to "Ranged"
Fixed issue with the attack animation of the "goblin" character from the built-in Asset Library not being configured properly
Fixed issue with the "sk_bush_02" object model failing to open in the Voxel Editor after being imported from the Asset Library
Fixed issue where the incorrect editor would sometimes be displayed when clicking on the main editor tabs along the top of the application
Fixed incorrect date for the v1.0.6.5 release in the "What's New in RPG in a Box!" dialog (year shown was 2022 instead of 2023)
Documentation:
Added initial version of "2D Games" tutorial that walks through setting up a 2D project similar to the Kenney Tiny Dungeon template
Added initial version of built-in docs for "Free Movement" with details about current functionality, issues, and planned features
Updated "Vehicles" built-in docs to remove the known issue listed at the bottom now that the issue has been fixed
Updated "Tile" built-in docs to include properties that return connected tiles (e.g. $my_tile.north_tile is tile to the north)
Updated "Character" built-in docs to include info about the "skills" and "quests" properties for getting a character's skills and quests
Updated "Map Properties" built-in docs to include info about the "Player Override" setting only changing the visual appearance
Updated "Entity Properties" built-in docs to include info about $object variable that's available to the pushing-related tile scripts
Updated "Data Files" built-in docs to include .json file extensions in Bauxite examples since an extension is now required
Updated "Scripting Reference" built-in docs to include info about referencing main player character via "party.member["player"]"
Updated "Scripting Reference" built-in docs to include "Stop Music" function and updated signatures for "Play Music" and "Play Sound"
Updated "Scripting Reference" built-in docs to include info about retrieving gameplay settings as a codex via "global.gameplay"
Updated "Script Syntax" built-in docs to include info about the "Duplicate" function along with some Bauxite code examples
Updated "Stop Player" built-in docs to include a more clear description of how the function affects the player's movement
Updated "Groups" built-in docs to include a note that auto-hiding does not trigger if the Fog of War setting is enabled
Updated "Import Resources" and "Sound" built-in docs to include info about video file support (WEBM and OGV) and OGG support for sound effects
Updated "Widget Editor" built-in docs to indicate that custom widgets are now added to the management screen from the UI Editor's "Screens" tab
Hey everyone, I have some exciting news to share! After extensive consideration, I've decided to rename RPG in a Box to FPS in a Box! As part of this transition, I'll be gradually phasing out any RPG-related mechanics and will begin centering the engine around shooters (with a focus on first-person). Keep an eye out for more information coming soon! 😄
Hello! I'm Stumpy the Squirrel. Let's make a game with RPG in a Box! In this tutorial, we'll create and layer some wall tiles in our map. It's a fun way to learn about the tile coordinate system and how to put things on top of other things!
Added ability to offset objects within their tile by adjusting XYZ values from the Entity Properties panel in the Map Editor
Added ability to add multiple objects per tile in the Map Editor (Z offset will be automatically set when hovering over an existing object, e.g. a table)
Added ability to rotate objects around the X and Y axes (in addition to the Z axis) from the Entity Properties panel in the Map Editor
Added "View Model" camera setting to gameplay configuration for assigning a model to attach to the camera while in first-person (model needs attach point with ID of "camera")
Added special global property "view_model" as a temporary way of referencing the view model attached to the camera (e.g. play_animation(global.property["view_model"], "anim_name"))
Added "Background Image" option to NPC, Player, and Message nodes for displaying a background image during dialogue (located on node toolbar next to style override)
Added "speak" pre-defined animation for characters that will automatically play whenever they're the active speaker during dialogue
Added "Behaviors" section to the Game Configuration dialog for managing NPC behavior presets without needing to use the Map Editor
Added "Display Name" setting to the Voxel Editor and Map Editor for assigning an object's display name (used when interacting with multiple scripted objects via keyboard)
Added "Custom Properties" section to the Item Editor for defining custom item properties (string, number, or boolean types)
Added "Loading Image Override" setting to the Map Properties panel for overriding the default loading screen image per map
Added popup dialog when enabling free movement from the Game Configuration dialog with information about the feature being in an alpha state
Updated attach point tool in the Voxel Editor to allow attach points to be created by clicking directly on the grid without the need for an existing voxel
Updated "Duplicate Frame" functionality in the Voxel Editor to copy any existing textures to the newly created frame
Updated alpha slider in the Voxel Editor to allow values between 0 and 0.9 and changed the increment value from 0.05 to 0.01 for allow for finer tuning of transparency
Updated alpha slider in the Voxel Editor to include icons on each end of the slider to make it more apparent which end is which (min vs. max alpha)
Updated movement speed setting for tile platforms to allow speeds in increments of 0.1 instead of requiring an integer value
Updated "On Equip" and "On Unequip" item script functionality to store the equipment slot ID in a local variable named $slot for use in the script
Updated "Add Effect" scripting function to properly validate the effect name parameter to ensure the value is a string
Updated "Detach Object" failure message from an error to a warning when attempting to detach an object from an attach point with nothing attached
Updated dialogue functionality to not use typing effect when called from the "Display Choices" function without a speaker entity specified
Updated stretch mode for background image in the Main Menu Editor to default to "Keep Aspect Covered" for best compatibility
Bug Fixes:
Fixed issue that would sometimes cause a crash if the player saved the game after having dealt damage to an enemy or having received damage
Fixed issue where directional attack animations for characters ("attack_north", etc.) were not being properly triggered in certain scenarios
Fixed issue where disabling mouse movement controls in the gameplay configuration would prevent tool item scripts from working on tiles
Fixed issue where the player's mouse sensitivity setting was losing the correct sensitivity value after restarting the game
Fixed issue with "When Player Interacts" and "When Next to Player" resource dropdowns not being hidden when an NPC was set to be attackable from their behavior settings
Fixed issue with the obstacle reaction script dropdown on the NPC behavior settings panel not being populated with values until clicked on
Fixed issue with the obstacle reaction script dropdown not being hidden on the NPC behavior settings panel when switching to a move direction of "None" or "Random"
Fixed issue where undo/redo actions were not being created when an entity's scale was changed from the Entity Properties panel
Fixed issue that could occur in-game or in the Map Editor when editing or referencing a tile that previously had a character on it but the character had been removed
Fixed issue in the Map Editor where a tile sometimes couldn't be deleted from the map ("remove_entity_id_lookup" error was displayed in console)
Fixed issue where the Y and Z values of an entity's scale were switched on the Entity Properties panel when selecting an object or character in the Map Editor
Fixed issue where models with transparency could be seen through the marker icons that are shown above entities in the Map Editor
Fixed issue with "Add Object" scripting function where attempting to use an invalid tile coordinate was not being properly handled and displayed in the console
Fixed issue with "Hide Group" and "Show Group" scripting functions not working properly when used to hide/show effects
Fixed issue with "Display Image" scripting function not working properly unless both the duration and background color were explicitly specified
Fixed issue where the "Character enters tile" event wasn't being triggered after the player character was moved with "Put Player" then walked to another tile
Fixed issue where the "Character stops on tile" event wasn't being triggered after the player character was moved with "Put Player"
Fixed issue in Combat Editor where the battle map dropdown was not being updated when switching to a menu-driven turn-based battle
Fixed issue that could occur when attempting to attack with an unlimited use ranged weapon that didn't have an object model defined
Fixed issue where characters configured as "Two-Dimensional" were being rotated when firing a ranged weapon instead of only triggering their directional attack animation
Fixed issue in Dialogue Editor where a player node could be dragged back on itself, which would then result in a broken dialogue
Fixed issue in Dialogue Editor where player nodes would be dragged when attempting to drag and select the dialogue text while in compact mode
Fixed issue in Main Menu Editor where the background image's appearance was not being updated properly when switching images until the editor was resized
Fixed issue with the stretch mode for main menu background images and loading screen images not working properly when the image was larger than the screen size
Fixed issue where changing properties in the Effect Editor would affect another effect after using "Save As" to copy an effect then opening the original effect
Fixed issue with Y and Z scale values on the Model Properties panel being reversed for attach points in the Voxel Editor
Fixed issue with UI theme not being properly applied to equipment slots, shop item slots, and crafting input slots
Fixed issue where the editor was not properly checking for changes to the Quest Editor or clearing out the quest list when closing the project
Documentation:
Added initial version of built-in docs for "Pushing", which includes a basic walkthrough of how to set up a pushable object
Added initial version of built-in docs for "Skill Slot", which includes basic info about the skill slot element and a scripting example
Updated "Scripting Reference" built-in docs to include list of global, map, camera, party, and system variables
Updated "Entity Properties" built-in docs to include descriptions for each tile trigger event (including new events for pushable objects)
Updated "Tile", "Object", and "Character" built-in docs to include info about the "textures" property, which returns an array of textures for the entity
Updated "Tile", "Object", and "Character" built-in docs to include info about "attachment["x"]" and "effect["x"]" properties for referencing attachments and effects
Updated "Character" built-in docs to include info about the "behavior" property for retrieving and modifying a character's behavior
Updated "Map Editor" built-in docs to include info about using Shift and Shift + Alt to add/remove entities from the current selection
Updated "Global Event Scripts" built-in docs to include info about several global event scripts that were missing
Updated "Conditional Expression" built-in docs to include info about the "!contains" syntax (i.e. "doesn't contain")
Updated "Debug Console" built-in docs to include info about using "self" keyword to reference the entity at the mouse cursor's location
Updated "Codex" built-in docs to include a code example of inserting a new key/value pair into a codex
Updated "Array" built-in docs to include info about the "remove" function and a code example of using it with an array
Updated "Give Item", "Remove Item", and "Add Item To Container" built-in docs to include info about return values (i.e. number of items added/removed)
Updated "Add Tile", "Add Object", and "Add Character" built-in docs to include info about return values (i.e. reference to new entity)
Updated "Assign Entity ID" built-in docs to include info about return value (i.e. true if the ID was successfully assigned, false otherwise)
Added initial background map implementation for menu-driven turn-based battles (assigned in Combat Editor, party members spawn starting at center of map going eastward)
Added "Object enters tile", "Object stops on tile", and "Object exits tile" trigger events for tiles for use with pushable objects ($object variable contains object)
Added "On Equip Script" and "On Unequip Script" settings to the Item Editor for equippable items, which get triggered when the item is equipped/unequipped (self is character, $item is item)
Added "Random Speaking Pitch" character setting to the Voxel Editor which will randomize the pitch of a character's voice as they speak
Added "Scroll Wheel Grid Controls" editor setting for the Map Editor to turn off Shift/Ctrl + Scroll Wheel grid level controls
Added confirmation dialog to the Script Editor when pressing ESC or clicking the cancel button and the Bauxite source code field has been edited
Updated "Duplicate Frame" functionality in the Voxel Editor to copy any voxel groups to the newly created frame
Updated menu-driven turn-based battles to play death animations for enemies when applicable instead of immediately removing them from the map
Updated "Replace Navigation" scripting function to force the player to release a pushable object if navigation was removed between them and the object
Updated "Set Entity Model" scripting function to only replace the model when different than the current model in use
Updated Bauxite syntax highlighting to include "map" as a built-name variable name (e.g. when used with "map.name" or "map.groups")
Bug Fixes:
Fixed roguelike issue where mouse movement was inadvertently being allowed even when disabled by interacting with something from a distance
Fixed issue in the Voxel Editor with the option to automatically attach an object in-game not working properly
Fixed issue where voxel groups were not being updated when using the arrow buttons or the move tool to move grouped voxels
Fixed issue in the Map Editor where the scale of the pending character/object couldn't be adjusted with Shift + Scroll Wheel if the grid level was locked
Fixed issue where the new tile's collision override was not being applied when replacing a tile's model with "Set Entity Model"
Fixed issue with navigation paths not being properly updated in some scenarios when the player would push an object to a new tile
Fixed issue with "Duplicate" functionality not working properly when attempting to duplicate an effect from the Game Explorer
Fixed issue with "Reset Entity Rotation" function not properly resetting the character's direction after being rotated with "Rotate Entity Towards"
Fixed issue with "mp" and "max_mp" stats not working properly in-game when attempting to access or modify their values
Fixed issue with "quests" and "skills" character properties not being accepted as valid syntax when used in a "for" expression (e.g. for $quest_id in player.quests)
Fixed issue with the Asset Library where the OK and Cancel buttons were outside of the dialog box when using the Russian localization
Fixed "nonexistent signal" error that would display in the console window when opening an item container
Documentation:
Updated "Map Editor" built-in docs to include info about pressing Delete in Connect/Navigation mode to remove all navigation paths to a tile
Updated "Map Editor" built-in docs to include info about Ctrl and Alt modifiers for picking a resource and/or grid level while in place mode
Updated "Character" built-in docs to include info about "name" property and "portrait" property
Added "Positional Sound" setting to the Voxel Editor for specifying that an animation's sound effect should be played positionally in 3D space
Added "Apply Status Effect" scripting function for applying a status effect to a character for a duration of time (e.g. apply_status_effect("STATUS_0001", player, 5))
Added "Remove Status Effect" scripting function for removing a status effect from a character (e.g. remove_status_effect("STATUS_0001", player))
Added "Clear Status Effects" scripting function for clearing all status effects from a character (e.g. clear_status_effects(player))
Fixed issue with particle effects configured to be automatically attached to models not displaying for entities that were already placed into a map (model resave needed)
Fixed issue with the Bauxite code missing commas between parameters for the "Display Image" function when placed into a visual script
Fixed issue with the color picker button not properly setting the alpha value when manually coding the "Display Image" function into a script
Fixed issue with not being able to assign a widget to the "Toggle Widget" action when setting up a key binding in the Game Configuration dialog
Fixed issue where the lock icon was showing for all widgets instead of only the built-in widgets when choosing one to assign to a key binding
Added initial implementation of the Effect Editor for creating particle effects (e.g. flames, fountains, weather, environmental effects, visual status indicators, etc.)
Added "Attach Effect" scripting function for attaching a particle effect to an entity's attach point (e.g. attach_effect("flame", entity["xyz"], "attach_id"))
Added "Detach Effect" scripting function for detaching a particle effect from an entity (e.g. detach_effect(entity["xyz"], "attach_id"))
Added "Add Effect" scripting function for adding a particle effect at a coordinate, with optional entity ID (e.g. add_effect("rain", coord[0, 0, 100], "rain_id"))
Added "Disable Effect" scripting function for disabling the emission of particles for an effect (e.g. disable_effect(entity["rain"]))
Added "Enable Effect" scripting function for enabling the emission of particles for an effect (e.g. enable_effect(entity["rain"]))
Added "Add Item To Tile" visual script node to the Script Editor for placing an item drop onto a tile that the player can pick up
Added "Delete Data" visual script node to the Script Editor for deleting a custom data file that was previously saved to disk via the "Save Data" function
Added "Delete Save" visual script node to the Script Editor for deleting a saved game ("savegame01" if no filename is specified)
Added "Give Loot" visual script node to the Script Editor for generating items for a loot drop then giving them to a specified character
Added "Give Skill" visual script node to the Script Editor for giving a skill to a character (defaults to the main player character)
Added "Remove Skill" visual script node to the Script Editor for removing a skill from a character (defaults to the main player character)
Added "Use Skill" visual script node to the Script Editor for triggering the usage of a skill for a character (defaults to the main player character)
Added "Cooldown (Roguelike)" to the Stats Editor for configuring the cooldown of a skill when used in roguelike mode (measured in actions)
Added two new status effect types to the Stats Editor, "Healing Over Time" and "Damage Over Time" for applying healing/damage at intervals
Added ability to specify both real-time and roguelike interval for status effects in the Stats Editor (measured on seconds and actions, respectively)
Added support for global functions that can be called from any script (configured from the "Global Functions" tab in the Game Configuration dialog)
Added "Footstep Sound" and "Footstep Rate" settings to the Voxel Editor for characters (sounds are played positionally, rate is in footsteps per second)
Added ability to freely rotate objects in the Map Editor from the Entity Properties panel (instead of being locked to 90-degree increments)
Added "Display Image" scripting function for displaying an image to the player (usage: display_image(<image_name>, <duration>, <background_color>, <stretch_mode>))
Added image stretch mode constants for scripting (STRETCH_X, where X is either SCALE, TILE, KEEP, KEEP_CENTERED, KEEP_ASPECT, KEEP_ASPECT_CENTERED, or KEEP_ASPECT_COVERED)
Added "Play Video" scripting function for playing video files (supported formats are WEBM and OGV, can be imported by dragging and dropping onto application)
Added "Open Container" scripting function for manually triggering the opening of an item container within the current map
Added "quests" syntax to the Bauxite language for getting an array of quest IDs for a character (e.g. player.quests)
Added "global.theme" scripting variable for changing the current UI theme (e.g. global.theme = "My Theme")
Added "system.time" scripting variable for getting current time from the OS (returns a codex with "hour", "minute", and "second" values)
Added Bauxite scripting syntax for getting an effect attached to an attach point (e.g. entity["xyz"].effect["attach_id"])
Added "EFFECT" scripting constant for checking if an entity is an effect (similar to TILE, OBJECT, and CHARACTER, e.g. if entity["xyz"] == EFFECT)
Added "substr" scripting function for getting part of a string (usage: substr(<string>, <start_position>, <length>) - length parameter is optional)
Added "len" scripting function for getting the length of a string, size of an array, or number of keys in a codex (e.g. len($my_array))
Added "quest[$quest_id]" syntax for getting quest properties based on ID (specifically name, description, or tags, e.g. quest["QUEST_0001"].name)
Added "portrait" property for characters to Bauxite scripting syntax (e.g. player.portrait to get or change the portrait, null will clear the portrait)
Added "Two-Dimensional" setting for objects in the Voxel Editor in order to prevent the rotation of vehicle objects when needed
Added entity script setting to disable the automatic playing of the initiating character's "interact" animation
Added "default" and "move" directional animation names for use by vehicles with the "Two-Dimensional" setting enabled (e.g. "default_west" or "move_north")
Added Effect Editor as a "Default Tab" option on the Editor Settings dialog to have it active by default on application startup
Added two new project templates to the Game Manager, "Mini Caves of ZZT" and "Kenney Tiny Dungeon (2D)", and added their associated assets to the Asset Library
Added assets previously exclusive to the Patreon to the built-in Asset Library (147 tiles, 55 objects, and 8 characters)
Added several music tracks by Aleix Ramon to the Asset Library, including "The Adventure Begins" (official RPG in a Box theme song)
Added "shore_corners" (water with shore at two opposite corners) to the Asset Library for use in the default example game
Added Italian translations for the editor interface and in-game text (selected from the "General" section of the Editor Settings dialog)
Updated roguelike mode to also consider interacting with objects and characters as an action (e.g. opening a door, pulling a lever, etc.)
Updated "Controls" section in the Game Configuration dialog to split out the movement and interaction options
Updated description field in the Quest Editor to be a multi-line text field instead of being limited to one line
Updated color data type to support optional alpha value (e.g. color[0, 255, 0, 128] is green with 50% transparency level)
Updated error message for the "Equip Item" scripting function to be more descriptive (e.g. character needs item in inventory, slot doesn't exist, etc.)
Update "Enable Container" and "Disable Container" functions to allow direct entity references instead of only an entity ID
Updated coordinate values in visual scripts nodes (e.g. the "Move Camera" function) to allow decimals for more precise positioning
Updated "str" scripting function to return "null" when the value is null instead of throwing an error to the debug console
Updated "Request Coordinate" and "Request Entity" functionality to disable mouse input for widgets while requesting a value
Updated Bauxite scripting syntax to support Korean characters when used inside of text strings
Updated "Default Example Game" project template to include an auto-tile configuration for the grass and water tiles
Updated filtering functionality in the Asset Library to no longer be case-sensitive when searching for tags
Updated Patreon credits in the About dialog to only reflect the patrons who are currently active for each tier
Bug Fixes:
Fixed issue with transparent surfaces of models showing through billboard sprite characters and objects
Fixed issue with death animations not properly triggering for billboard sprite characters when defeated
Fixed issue with camera positioning that could occur when loading a map and the camera had been previously locked
Fixed issue with setting a image element's image on a widget to null not properly clearing the image
Fixed issue that could occur when adding quest-related visual script nodes to a script without having any quests defined
Fixed issue with $item_id in item's script being null when using a consumable item from a quick slot via number hotkey
Fixed issue with the "Pass Mouse Input" widget setting not properly passing mouse input through the widget in some cases
Fixed issue with the positioning of objects when attached to other objects that were themselves also attached to an entity
Fixed issue where "interact" animations would keep playing even if a character started walking after interaction
Fixed issue with character's level not being saved when saving a game (only XP value was saved, not level itself)
Fixed issue with the player's party members not being properly restored when saving then loading a game
Fixed issue with scale not being applied to an object in the Map Editor if selecting another entity without focusing on another field first
Fixed issue where cursor was not being automatically updated if over an item container while a script enabled or disabled it
Fixed issue with duplicate play buttons showing next to music items in the Game Explorer after importing songs from the Asset Library
Fixed issue where attach point cubes were displaying after capturing a thumbnail for a model even if they weren't previously enabled
Fixed issue where the skill bar widget was incorrectly showing in the viewport of the Screen Editor
Fixed issue with Themes tab in the UI Editor incorrectly showing as "Theme" instead of "Themes" in some scenarios
Fixed issue with Item Editor and Quest Editor incorrectly showing the item/quest details area before a project was opened when set as the default tab
Fixed issue with "Recent Files" box not displaying dialogues when "All Types" was checked
Fixed issue where semi-transparent colors in PNGs were being ignored when importing them into the Voxel Editor
Fixed error that could occur when using "Capture Portrait" tool in the Voxel Editor multiple times in a row
Fixed issue with control variable in the "For Loop" visual script node not being validated correctly
Fixed console errors when giving a quest to the player then subsequently moving the player character
Fixed crash that can occur when using "return" without a return value in the Script Editor and Quick Script Builder
Fixed issue with some of the default example tiles in the Asset Library causing clipping when walked over by a billboard sprite character
Fixed some errors that that would display in the external console window when opening the Asset Library dialog
Fixed issue with "Enter name to filter by" placeholder text on the asset tabs not being properly translated to the current language
Fixed issue with missing localization for "LOOT_DROP_ALREADY_EXISTS" text when attempting to create a loot drop with a name that already existed
Documentation:
Updated "Tutorials" built-in-docs to include YouTube links for Stumpy's "How to Make a Game" series and Sarah's tutorial series
Updated "Character" built-in docs to include convenience variables which get tiles relative to a character ("front_tile", "north_tile", etc.)
Updated "Codex" built-in docs to include an example of how to modify an existing value within a codex
Updated "Climbing" built-in docs to fix an issue with the "Known Issue" text being cut off
Hello! I'm Stumpy the Squirrel. Let's make a game with RPG in a Box! In this tutorial, we'll create a sign that the player can interact with. As part of this, you'll get some more practice with voxel modelling and scripting!