RPG in a Box v1.2 has arrived!

RPG in a Box

Bring your stories and ideas to life! RPG in a Box lets you create games and other interactive experiences in a fun and simple way!

[img]{STEAM_CLAN_IMAGE}/27606242/7826457d647e71a02623caba20b792c00f88a8f3.png[/img] [b]RPG in a Box v1.2 has arrived![/b] It's one of the largest updates ever, with over 140 improvements that include new features, changes, bug fixes, and documentation additions! πŸ₯³ Check out the v1.2 trailer for a quick glimpse at some of the major new features: [previewyoutube=8tJ-1mZ6H2c;full][/previewyoutube] You can find the full release notes for v1.2 below, or on the official forum here: [url=https://rpginabox.com/forum/d/810]https://rpginabox.com/forum/d/810[/url] [h2]New Features[/h2] [list] [*]Added Sarah's RPG archetype Patreon characters to the built-in Asset Library (22 animated characters with 37 attachment objects, search "patreon, npc" in the library to view them all) [*]Added Sarah's traditional Japanese Patreon assets to the built-in Asset Library (190+ tiles and 140+ objects, search "japanese" in the library to view them all) [*]Added "Beneath the Bamboo Grove" project template to the "New Game" dialog (a first-person exploration game that includes two maps built with Sarah's newly released Japanese assets) [*]Added "Sokoban Starter" project template to the "New Game" dialog (includes one map set up with three crates that must be pushed onto goal tiles to complete the level) [*]Added visual preview grid to the "New Game" dialog for more easily browsing all of the available project templates ("eye" button will swap between alternate screenshots) [*]Added ability to change the current in-game time via script using the "global.time" variable (day/night lighting will also update to reflect the time, if configured) [*]Added "Set Time" scripting function and visual node for changing the current in-game time (e.g. set_time(0), day/night lighting will also update to reflect the time, if configured) [*]Added day functionality for tracking the number of in-game days that have passed (value starts at 1 and can be retrieved or manually changed via the "global.day" Bauxite variable) [*]Added "Set Day" scripting function and visual node for changing the current in-game day (e.g. set_day(global.day + 1) will increment the current day by one) [*]Added "system.date" Bauxite syntax for getting the current system date (returned as a codex with the following keys: "year", "month", "day", "weekday", "dst") [*]Added "Object Enters" and "Object Exits" zone events for triggering scripts when an object (e.g. projectile, pushable, physics object, etc.) enters/exits a zone [*]Added initial support for zones to grid-based movement (zones are added by clicking the plus button next to the "Zones" dropdown on the Map Properties tab) [*]Added initial support for fall damage to free movement (configured via Game Configuration -> Gameplay, see "Set Gameplay Property" documentation for an explanation of each setting) [*]Added initial support for pushable objects to free movement (enabled from the "Thingies" section on the Entity Properties tab when an object is selected) [*]Added settings for pushable objects to allow pushing or pulling only (defaults to both pushable and pullable, only applicable to grid-based movement) [*]Added "Pushable" option to the Thingies section of the Model Properties tab in the Voxel Editor (object will be pushable by default when added to a map) [*]Added initial support for setting stats as regenerative or draining in the Stat Editor (with settings for amount and interval, initially only for player characters in real-time) [*]Added initial support for specifying a skill's range in the Stats Editor (applicable to real-time and tactical turn-based combat, 0 = unlimited range) [*]Added support for tool items to free movement (i.e. interacting with a scripted tile or object with the corresponding tool item active) [*]Added "Character Interacts" trigger event for tiles so that scripts can be triggered when the player interacts with a tile (must be accessible via navigation in grid-based) [*]Added support for viewable attachments to the Map Editor so any auto-attached objects or effects will now display when a map is loaded in the editor or a new entity is placed [*]Added "Unshaded" option to the Effect Editor for specifying that the particle effect should be unshaded/unlit (i.e. unaffected by lighting) [*]Added "Toggle Fullscreen" input action to the Input Bindings tab of the Game Configuration dialog (toggles between fullscreen and windowed mode) [*]Added "Alt + Enter" as default binding for toggling between fullscreen and windowed mode in-game (can be changed in the project's input bindings) [*]Added "Enter" as a bindable key (input bindings are set up for your game from the "Input Bindings" tab of the Game Configuration dialog) [*]Added "In-Game Day" and "System Date" as options to the Script Editor's Expression Builder for the new "global.day" and "system.date" Bauxite variables [*]Added "skill" Bauxite syntax for retrieving information about a specific skill (e.g. skill["SKILL_0001"] gives a codex containing properties for "SKILL_0001") [*]Added "status" Bauxite syntax for retrieving information about a specific status effect (e.g. status["STATUS_0001"] gives a codex containing properties for "STATUS_0001") [*]Added ".attack_cooldown" Bauxite syntax for overriding a character's attack cooldown (default value is null, which uses the global/character model's cooldown) [*]Added ".items" Bauxite syntax for getting the item drops on a tile (e.g. tile[3, 2, 0].items returns an array of items on that tile, or null if there are none) [*]Added "Distance" scripting function for getting the distance between two entities, measured in voxels (e.g. $result = distance(player, entity["xyz"])) [*]Added "Pad Zeros" scripting function for padding a numeric value with leading zeros (e.g. pad_zeros(17, 4) will return a string value of "0017") [*]Added "Show Equipment" scripting function for opening the specified character's equipment widget (e.g. show_equipment(party.member["xyz"]), defaults to the current player character) [*]Added "Item Grab" and "Item Drop" settings to the Item Editor for overriding the grab/drop sound effects per item (with options for default, none, and custom) [*]Added ability to specify a projectile's origin when fired from an entity (either a turret or via the "Fire Projectile" function) by having "projectile" attach points on the entity and projectile models [*]Added "hit" as a predefined animation for characters in the Voxel Editor (triggered whenever the character is damaged, but won't interrupt their attack animation - more customization to come) [*]Added ability to use the "Capture Thumbnail" feature on the Voxel Editor toolbar while in "Mesh Preview" mode (useful with Marching Cubes, etc.) [*]Added "Line Spacing" setting for text labels in the Widget Editor (determines the amount of vertical space between each line of text) [*]Added "Auto-Scroll" setting for text fields in the Widget Editor (if enabled, the text field will automatically scroll to the bottom when its text changes) [*]Added "tool" as a supported tag for the default equipment slot configuration's "right_hand" slot in the Stats Editor (for future functionality) [*]Added error messages to the console window when opening models that contain any auto-attached objects or effects that don't exist [*]Added Godot Robot character to the built-in Asset Library (based on the official plush, model includes walk, idle, jump, climb, and wave animations) [*]Added "crate_large" model (i.e. a large crate) to the built-in Asset Library, great for use as a pushable object for the player to push around [*]Added throwing dagger to the built-in Asset Library (model includes "move" animation, intended for use with "base_justin" or "justin" character as a weapon/projectile) [*]Added clickable banner for Slayer's RPG in a Box tutorials channel to the Game Manager dialog (will open Slayer's YouTube channel in your default browser) [*]Added Slayer to the "Special Thanks" section of the About dialog for his extensive community support, tutorials, and tireless troubleshooting [*]Added new popup dialog that displays upon application startup for displaying info about any major new features included in the current release [*]Added Czech translations (credit to David Chytka) for the editor interface and in-game text (selected from the "General" section of the Editor Settings dialog) [/list] [h2]Changes/Updates[/h2] [list] [*]Moved "Pushable" object setting in the Map Editor to the "Thingies" section (the "Thingies" section can be expanded by double-clicking the header or clicking the plus button) [*]Updated pushing functionality so the player will now automatically push a pushable object when moving against it and continuing to move (instead of requiring it to be grabbed first) [*]Updated pushing/pulling functionality so the player will now auto-release a grabbed object when moving perpendicular to the push/pull direction (or away if not pullable) [*]Updated map loading logic to improve load times when returning to previously visited maps (before, load times would gradually increase in certain scenarios) [*]Updated save game functionality so that the current in-game time (i.e."global.time") is now properly saved and restored, including day/night lighting if applicable [*]Updated collision functionality for the player character so that custom collision will now be used if configured in the Voxel Editor [*]Updated collision functionality for entities in grid-based maps so that custom collision will now be used if configured in the Voxel Editor (allowing on hit scripts to trigger) [*]Updated collision functionality for impassable projectiles fired from turrets or via the "Fire Projectile" function to damage the player in addition to pushing them [*]Updated "Climb Up" input action so it will now attempt interaction with scripted entities the player is standing in front of (e.g. to enter a door in a side-scrolling platformer) [*]Updated climbing in free movement so the player can grab back onto a climbable tile via the "Climb Up" action when facing away after dismounting from the bottom [*]Updated "Door" Thingy settings to split out the open/close sound effect into two different dropdowns so each sound can be configured separately [*]Updated crouching in first-person free movement so that the player's "Crouch Vision Height" setting will determine collision if no "idle_crouch" animation is defined [*]Updated attachment functionality in the Voxel Editor so that nested attachments beyond one level will now display (up to 10 levels deep) [*]Updated "Save Camera Position" dialog in the Voxel Editor and Map Editor to display a warning if a camera position with the specified name already exists [*]Updated "Zones" dropdown on the Map Properties tab of the Map Editor to now sort the list of zones for the map alphabetically [*]Updated visual indicators displayed for zones in the Map Editor (i.e. green and red boxes) so they will no longer receive shadows [*]Updated global illumination functionality in the Map Editor to ignore entities with "Use in Baked Light" disabled when calculating the area to which to apply it [*]Updated "Completion Script" and "Failure Script" for quests to provide the $quest_id variable containing the quest's ID (similar to global quest scripts) [*]Updated "Set Gameplay Property" scripting function to support properties for the new fall damage functionality (see function documentation for details) [*]Updated "Damage Entity" scripting function to add a visual health bar above the target character if one isn't shown yet (unless "Floating Health Bars" is disabled in the Stats Editor) [*]Updated "Apply Status Effect", "Remove Status Effect", and "Clear Status Effect" scripting functions to allow the character's entity ID to be supplied as a string [*]Updated "Show Inventory" function to add an optional parameter for specifying which character the inventory should be opened for (e.g. show_inventory(party.member["xyz"])) [*]Updated "Add Item To Tile" scripting function to add an optional fourth parameter for specifying an entity ID for the item drop so it can be referenced elsewhere [*]Updated "Set Zone Script" scripting function to support OBJECT_ENTER and OBJECT_EXIT as trigger options (for projectiles, pushables, physics objects, etc.) [*]Updated "item" Bauxite syntax so it can now be used directly as a codex lookup without being first stored into a variable (e.g. $name = item["ITEM_0001"]["name"]) [*]Updated "Global Time" option in the Script Editor's Expression Builder to instead use the more specific wording of "In-Game Time" [*]Updated enemy spawning to now drop the enemy's assigned loot drop(s) when defeated (i.e. the loot drops configured in the "Enemy" section of the Combat Editor) [*]Updated spawning logic (enemy spawns and "Add Character" function) to now throw an error to the in-game debug console when spawning a character with a default behavior preset that no longer exists [*]Updated item table for loot drops in the Combat Editor so you can now click on any column in order to select that loot item for the editing of its details [*]Updated right-hand side asset tabs to now show attachments in their generated previews (remove files in project's "cache" folder to make use of this, noting that custom thumbnails will be lost) [*]Updated auto-completion functionality in the debug console (tab key) to include the two optional parameters for the "Play Sound" function (i.e. loop mode and interval length) [*]Updated "Flame" preset (available as an option when creating a new effect in the Effect Editor) to use the new "Unshaded" setting to provide a better visual look [*]Updated Stumpy the Squirrel character in the built-in Asset Library with more animations (now also includes jump, climb, and wave) [*]Updated Stumpy's acorn model in the built-in Asset Library to now have a smaller default scale of 0.85 instead of the previous scale of 1.0 [*]Updated "base_justin" and "base_sarah" characters in the built-in Asset Library to use a separate foot color for easier filling across all frames [*]Updated Asset Library so that all assets are now automatically deselected/unchecked after successfully importing the assets into your project [*]Updated editor splash screen, Game Manager dialog, About dialog, and default in-game loading screen to use the new RPG in a Box logo [*]Updated Game Manager dialog to replace the Discord info section with official forum info and changed the previous forum button to link to Slayer's community Discord server [*]Updated About dialog to reflect the current Patreon donors in the credits section and removed the Trello button as it's no longer being updated [/list] [h2]Bug Fixes[/h2] [list] [*]Fixed issue where the "mp" and "max_mp" character stats were not being saved and restored when saving a game and then later loading it [*]Fixed issue where scripts added to tiles and objects as part of a game update were being inadvertently ignored if the player loaded a save from before the update [*]Fixed issue where the "Move Player" scripting function (and "Move Character" when used with the player) would cause the character's position to become out of sync in free movement [*]Fixed issue where changing the player's direction via script in first-person mode when the camera was locked would inadvertently affect the camera's rotation [*]Fixed issue where the "Character Collides" event for objects wasn't properly triggering its script if the object had the "Physics" option enabled [*]Fixed issue where projectiles fired from turrets or via the "Fire Projectile" function weren't colliding unless custom collision was configured for the object [*]Fixed issue where the visual effect for a status effect was not being properly removed when using a custom attach point and the status effect was cleared [*]Fixed issue where clearing out the visual effect attach point field for a status effect in the Stats Editor (i.e. reverting to default) would cause the effect to not attach properly [*]Fixed issue where a character's default behavior would show as "Standard" in the Voxel Editor if an assigned preset no longer existed (now falls back to "No Behavior" and displays a console error) [*]Fixed issue where real-time enemies would sometimes move away to another tile after attacking even when an adjacent opponent was still present [*]Fixed issue where the "Loot Drop" dropdown in the Map Editor would be blank when first configuring the character as attackable (until the character was reselected) [*]Fixed issue where adding items to a container or removing them could inadvertently affect the contents of other item containers that shared the same visual widget [*]Fixed issue where the initial items assigned to item containers in the Map Editor were not respecting the "Allowed Item Tags" setting for slots of custom container widgets [*]Fixed issue where using Shift + LMB to transfer an item into a custom container widget was not respecting the "Allowed Item Tags" setting for slots in the widget [*]Fixed issue where using the quick slot hotkeys (1, 2, 3, etc.) would incorrectly clear out a slot when the player had no more of the item instead of remaining with a zero count [*]Fixed issue where items were unable to be equipped to party members via script unless the character had been switched to via the "Change Player" function at some point beforehand [*]Fixed issue where default equipment with visual models assigned to them wouldn't display on the first-person view model or the 3D model widget element unless re-equipped [*]Fixed issue where cursor detection would sometimes fail to recognize the player character (e.g. via "cursor.target", "Request Entity" function, etc.) after their model was overridden [*]Fixed issue where the character's rotation was not being set properly when using the "Rotate Entity Towards" scripting function for the player character in free movement [*]Fixed issue where the player's model was not being kept when changing it via the "Set Entity Model" scripting function then transitioning to another map [*]Fixed issue where the game would crash if the player was changed visually via the "Player Override" map setting or the "Set Entity Model" function and then the game was saved afterwards [*]Fixed issue where dialogue would become stuck and the player could no longer move when changing their model during dialogue via the "Set Entity Model" function [*]Fixed issue where the inventory widget would stay open when using the "Show Inventory" function then closing out of the management screen [*]Fixed issue where the scrollbar position for text field widget elements could become visually out of sync when changing their text via script [*]Fixed issue where the game would crash if a container object was removed from the map via the "Remove Entity" function and then the game was saved afterwards [*]Fixed issue where the player character was not being rotated to the specified direction when using the "Put Player" function in third-person free movement mode [*]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 turned to face it [*]Fixed issue where the "Override Animation" function would sometimes trigger the animation to be played in certain scenarios where it shouldn't [*]Fixed issue where sound effects played via the "Play Sound" function were not being stopped after restarting the game or quitting to the title screen [*]Fixed issue where the "Start Dialogue" visual scripting node would incorrectly set the dialogue to empty when selecting the first dropdown item ("None" is now an option) [*]Fixed issue where the white placeholder cubes that are displayed in place of empty models in the Map Editor were incorrectly casting shadows [*]Fixed issue where global illumination in the Map Editor was not considering objects or characters when calculating the area to which to apply it [*]Fixed issue where using the eyedropper tool to select an object with a non-zero offset in the Map Editor could cause issues with the positioning of subsequently placed objects [*]Fixed issue where assigning a view model in-game via the "camera.view_model" variable would not hide any attachments on the player model (and vice versa) [*]Fixed issue where attachments on the player character in first-person mode could obscure the camera and prevent interaction with objects or characters [*]Fixed issue where effects for attached objects in the Voxel Editor were not in the correct position (e.g. particles emanating from a staff attached to a character's hand) [*]Fixed issue where the dropdowns in the "Configure Attached Objects/Effects" dialog were not being truncated properly and long names would cause them to expand outside the window [*]Fixed issue where attaching an object to itself (or at some point down the chain) would cause the game to crash when ran (attachment nesting is now limited to 10 levels deep) [*]Fixed issue where an error would display in the external console window when loading a map in grid-based movement then attempting to free attack from the starting tile [*]Fixed issue where an error related to the "is_conveyor" property would continuously display in the external console window after saving then returning to a previous map [*]Fixed issue where an error would display in the external console window when removing a projectile via an on hit script if the projectile had hit two entities simultaneously [*]Fixed issue where errors related to "body_enter_tree" and "body_exit_tree" would sometimes flood the external console window and cause slowdowns [*]Fixed issue where an error related to the "skill_cooldown_changed" signal would sometimes display in the external console window [*]Fixed issue where the "Quit Game" option on the pause menu was missing its localization for the Russian language [/list] [h2]Documentation[/h2] [list] [*]Updated "Predefined Animation Names" built-in documentation to include info about the "hit" animation for characters and "move" animation for projectile objects [*]Updated "Scripting Reference" built-in documentation to include "global.day" and "system.date" variables and "Set Time", "Set Day", "Distance", and "Pad Zeros" scripting functions [*]Updated "Scripting Reference" built-in documentation to include a section for codex lookups (for retrieving details about an item, skill, status effect, or quest) [*]Updated "Codex" built-in documentation to include an example of reading a value from a codex (e.g. $my_codex["count"] retrieves the value assigned to the "count" key) [*]Updated "Show Inventory" built-in documentation to include info about the optional parameter for specifying the character whose inventory will be opened [*]Updated "Set Gameplay Property" built-in documentation to include details about the new fall damage properties, missing descriptions for several properties, and a usage idea [*]Updated "Input Actions" built-in documentation to include the new "toggle_fullscreen" action ID that toggles between fullscreen and windowed mode [*]Updated "Tile" built-in documentation to include info about the new "items" property for getting the item drops that are on a tile [*]Updated "Character" built-in documentation to include info about the new "attack_cooldown" property for overriding a character's attack cooldown [*]Updated "Character" built-in documentation to include a function section with the "get_item_count" function (gives the count of a specific item in a character's inventory) [/list]