1. RPG in a Box
  2. News

RPG in a Box News

Release Notes for v1.0.6.5

New Features/Changes:
  • 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)

Release Notes for v1.0.6.4

New Features/Changes:
  • 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

Release Notes for v1.0.6.1

  • 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

Release Notes for v1.0.6

New Features/Changes:
  • Added initial implementation of the Effect Editor for creating particle effects (e.g. flames, fountains, weather, environmental effects, visual status indicators, etc.)
  • Added "Attach Effect" scripting function for attaching a particle effect to an entity's attach point (e.g. attach_effect("flame", entity["xyz"], "attach_id"))
  • Added "Detach Effect" scripting function for detaching a particle effect from an entity (e.g. detach_effect(entity["xyz"], "attach_id"))
  • Added "Add Effect" scripting function for adding a particle effect at a coordinate, with optional entity ID (e.g. add_effect("rain", coord[0, 0, 100], "rain_id"))
  • Added "Disable Effect" scripting function for disabling the emission of particles for an effect (e.g. disable_effect(entity["rain"]))
  • Added "Enable Effect" scripting function for enabling the emission of particles for an effect (e.g. enable_effect(entity["rain"]))
  • Added "Add Item To Tile" visual script node to the Script Editor for placing an item drop onto a tile that the player can pick up
  • Added "Delete Data" visual script node to the Script Editor for deleting a custom data file that was previously saved to disk via the "Save Data" function
  • Added "Delete Save" visual script node to the Script Editor for deleting a saved game ("savegame01" if no filename is specified)
  • Added "Give Loot" visual script node to the Script Editor for generating items for a loot drop then giving them to a specified character
  • Added "Give Skill" visual script node to the Script Editor for giving a skill to a character (defaults to the main player character)
  • Added "Remove Skill" visual script node to the Script Editor for removing a skill from a character (defaults to the main player character)
  • Added "Use Skill" visual script node to the Script Editor for triggering the usage of a skill for a character (defaults to the main player character)
  • Added "Cooldown (Roguelike)" to the Stats Editor for configuring the cooldown of a skill when used in roguelike mode (measured in actions)
  • Added two new status effect types to the Stats Editor, "Healing Over Time" and "Damage Over Time" for applying healing/damage at intervals
  • Added ability to specify both real-time and roguelike interval for status effects in the Stats Editor (measured on seconds and actions, respectively)
  • Added support for global functions that can be called from any script (configured from the "Global Functions" tab in the Game Configuration dialog)
  • Added "Footstep Sound" and "Footstep Rate" settings to the Voxel Editor for characters (sounds are played positionally, rate is in footsteps per second)
  • Added ability to freely rotate objects in the Map Editor from the Entity Properties panel (instead of being locked to 90-degree increments)
  • Added "Display Image" scripting function for displaying an image to the player (usage: display_image(, , , ))
  • 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(, , ) - 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

How to Make a Game (Episode 6: Interactive Objects)

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!

[previewyoutube][/previewyoutube]