New Features/Changes:

  • Added initial (experimental) implementation of enemy spawns (configured in the Combat Editor then assigned to a group from the Map Properties panel in the Map Editor)
  • Added initial (experimental) implementation of pushable functionality (enabled for objects via the "Pushable" toggle button in the Map Editor, with a setting for push speed)
  • Added "Climb (One-Way)" navigation option to the right-click context menu when connecting climbable tiles in the Map Editor (to restrict characters to one direction)
  • Added "Forced/Automatic Climbing" setting for climbable tiles, which will force characters to continue climbing in their current direction when reaching that tile
  • Added animation override setting for climbable tiles to the Entity Properties panel in the Map Editor (will override the character's default "climb" animation)
  • Added ability to adjust the scale of objects and characters in the Map Editor from the Entity Properties panel
  • Added ability to raise and lower the placement grid level in the Map Editor in half tile width increments using Alt + Scroll Wheel
  • Added ability to create/edit 16x16 and 32x32 item images in the Item Editor (via the "plus" and "pencil" buttons next to the "Image" dropdown in the "Item Overview" area)
  • Added "Key Bindings" section to the Game Configuration dialog for defining custom key bindings that will perform in-game actions (either run a script or toggle the display of a widget)
  • Added ability to import from PNG image files into the Voxel Editor via the "Import from External Format" toolbar button (with a setting for X/Y pixel offset)
  • Added Voxel Editor settings for default state of the grid lines, voxel outlines, surface edges, ambient occlusion, and ground when opening models in the editor
  • Added ability to the Voxel Editor to select all voxels in the model's current frame by pressing the key combination Ctrl + A
  • Added ability to the Voxel Editor to cut the voxels currently selected to the clipboard by pressing the key combination Ctrl + X
  • Added "Default Scale" setting to the Model Properties panel in the Voxel Editor which will be automatically applied when an object or character is added to a map
  • Added built-in "spawn" animation type for entities that are added to the scene via "Add Tile", "Add Object", "Add Character", or enemy spawn
  • Added ability to define custom death animations based on which weapon item killed a character(e.g. look for animation named "death_ITEM_0001" if killed with the item having ID "ITEM_0001")
  • Added "Allow Mouse Look" gameplay setting to the Game Configuration dialog to allow disabling of mouse look when using the first-person camera type
  • Added "Limit Mouse Look" gameplay setting to the Game Configuration dialog to restrict the range of mouse looking (with settings for the maximum horizontal and vertical offset)
  • Added "Always Show Tooltip" setting to the Entity Properties panel in the Map Editor to indicate that the entity's tooltip should always display instead of only on mouse hover
  • Added "Quick Play" section to the Editor Settings dialog with an option for toggling availability of visual navigation debug paths (now disabled by default for performance)
  • Added "Save Data" scripting function for saving custom data with optional password parameter for encryption (e.g. save_data($my_var, "my_file", "password"))
  • Added "Load Data" scripting function for loading custom data with optional password parameter when loading encrypted files (e.g. $my_var = load_data("my_file", "password"))
  • Added "Save Game" and "Load Game" scripting functions for calling the built-in save/load functionality (via the syntax "save_game()" and "load_game()")
  • Added "Change Player" scripting function for swapping out the player character for another character (see documentation for usage details)
  • Added "codex" data type to the Bauxite language for storing a set of key/value pairs, where the key is a unique string and its value is any valid data type (e.g. $x = codex["id": "ITEM_0001", "count": 5])
  • Added support to the Bauxite language for referencing an objects attached to entities' attach points (e.g. player.attachment["right_hand"] will be the object on the player's "right_hand" attach point)
  • Added random noise support to the Bauxite language (functions "get_noise_2d(x, y)" and "get_noise_3d(x, y, z)" will return a value between -1 and 1 for given position)
  • Added ability to seeds for random number generation and noise generation by assigning integer values to "global.random_seed" and "global.noise_seed"
  • Added debug console warning when attempting to use a non-numeric value for the index of an array in an assignment statement (e.g. $my_array["x"] = "value")
  • Added informational message to the debug console when using the "exec" command to indicate that the script has been successfully triggered
  • Added "Apply and Save" button when editing Bauxite code in the Script Editor that will apply changes and save the editor in one step
  • Added ability to press the ESC key while editing a script's source code in the Script Editor to cancel out of editing mode
  • Added 16x16 base feminine and masculine characters to the Asset Library (originally created as part of the monthly Patreon assets)
  • Updated "Add Tile", "Add Object", and "Add Character" scripting functions to return the newly added entity (e.g. to store in a variable: $new_tile = add_tile("grass", coord[0, 0, 0]))
  • Updated "Put Player" and "Put Entity" scripting functions to also support a coordinate or tile entity reference for the destination tile
  • Updated ranged weapon functionality in first-person mode to rotate the camera towards the target enemy if attacking from an angle
  • Updated weapon functionality to trigger attack animations for attached weapon objects if they have one that matches that of the animation name triggered for the character
  • Updated scripting to not throw an error when referencing a data file that doesn't exist (instead, null is returned and the script will proceed)
  • Updated filename validation when creating new assets to prevent creation of files with the same name but having different case
  • Updated data file functionality to now require ".json" extension when referencing custom data files from a script (i.e. data["myfile.json"])
  • Updated "Justin" character in the Asset Library to include several new animations ("push", "throw", "shoot", and "slide")
  • Updated "Sarah" character in the Asset Library to include hand attach points and several new animations ("climb", "interact", "attack", and "death")
  • Updated speed of walk animations for space ranger characters in the Asset Library to match the speed of the new 16x16 base characters
  • Updated purple slime and red slime characters in the Asset Library to include spawn animations and made the purple slime's color more vibrant
  • Updated speed of walk animations for the purple slime and red slime characters in the Asset Library to achieve two bounces per tile instead of one
  • Updated Patreon credits in the About dialog to include levels for each patron based on the number of months pledged at each tier
  • Changed "Copy" and "Paste" buttons on the Model Tools panel to be icons only, added new button for "Cut" as well as tooltip text with shortcut key for each function
  • Changed ambient occlusion in the Voxel Editor to be disabled by default when opening models (default state can now be adjusted in the Editor Settings)
  • Changed wording of source code headers in the Script Editor, Map Editor, and Quick Script Builder from "Source Code" to "Bauxite Code"
  • Removed debugging text from the message that displays when the player has triggered a random encounter upon entering a tile

Bug Fixes:

  • Fixed issue with the "Set Entity Script" function not working properly if no trigger type was explicitly specified when assigning a script to a tile
  • Fixed issue where using the "Unlimited Use" consumption type for weapons was preventing ranged weapons from working properly
  • Fixed issue with ranged weapons sometimes not working in first-person mode when the character's attack animation included a "projectile" attach point
  • Fixed issue with custom attack animations not working properly when configured for melee weapons (i.e. anything other than the default of "attack")
  • Fixed issue that occurred when using the "Wait" function in a character's "On Death" script where the rest of the script would fail to execute
  • Fixed issue with starting the player character on a climbable tile when using the "Load Map" function (character would behave as if on a normal tile)
  • Fixed issue where some tile scripts were not triggering properly when climbing, mounting, or dismounting climbable tiles
  • Fixed issue where the climb up/down controls were not showing/hiding in certain cases when using the mouse to move the player character
  • Fixed issue with positioning of characters on climbable tiles not working properly in some cases when using "climb" attach points
  • Fixed issue with "Move Character" function not working for NPCs when required to climb up/down a climbable tile adjacent to their current tile
  • Fixed issue with quick slot bar interfering with mouse input when it's disabled in Game Configuration (e.g. when attempting to rotate the camera with the mouse)
  • Fixed issue that would occur when choosing the "Use Global Script" option for a tool item then saving the Item Editor without selecting a script
  • Fixed issue where the "Use ID string only" checkbox was sometimes not displaying in the Entity Expression Builder when initializing the dialog from an ID string
  • Fixed issue with string values not being enclosed in quotes when contained within an array and the containing array is printed or displayed
  • Fixed issue with not being able to use references to values by index in arithmetic operations (e.g. $x = $my_array[0] + 1)
  • Fixed issue where using an assignment statement to set a value by key within data loaded from a JSON file was not properly changing the value (e.g. $my_data["key"] = "value")
  • Fixed issue where the subsequent frame of a model would incorrectly display when a "Ping Pong" or "Ping Pong Once" animation had the same start frame and end frame
  • Fixed issue where "Load Game" and "Continue" would incorrectly display on the Option/Pause menus if the game had been previously saved and then "Saving" was disabled
  • Fixed issue with "Add Item To Container" function not properly returning the number of items that were successfully added to the container
  • Fixed issue with "Add Item To Container" function not working properly for containers that were initially empty (unless they had been opened once by the player)
  • Fixed issue that would occur when following a scripting function with an assignment expression that stored a value returned from a function into a variable
  • Fixed issue where item icon popups weren't displaying when enabled and calling "Give Item" as part of an assignment statement (e.g. $count = give_item("ITEM_0001", 5))
  • Fixed issue where capturing an image in the Map Editor would result in an image format error in the console and the target image file would be empty
  • Fixed issue where the positions of marker icons were not being updated when changing the initial frame of an entity in the Map Editor
  • Fixed issue with invalid sound effect assigned to the "dungeon_gate" sample model's animations causing a debug console error to display when the animation was triggered

Documentation:

  • Added initial version of built-in docs for the "Apply Lighting Preset" and "Change Player" scripting functions
  • Updated "Global Event Scripts" built-in docs to include info for "Character's Health Changes", "Character Enters a Tile", "Character Stops on a Tile", and "Character Exits a Tile"
  • Updated "Climbing" built-in docs to include info for one-way climbing, forced/automatic climbing, and climb animation override
  • Updated "Put Player" and "Put Entity" built-in docs to reflect that the target tile can now be an entity reference or coordinate
  • Updated "Map Editor" built-in docs to include info about using Alt + Scroll Wheel to raise and lower the placement grid level in half tile width increments
  • Updated "Map Editor" built-in docs to include info about holding ~/` to hide all visual indicators or Shift + ~/` to toggle all of them off
  • Updated "Tile" built-in docs to include info about most recent properties (type, model, frame, animations, terrain type, attach points, and waypoints)
  • Updated "Object" and "Character" built-in docs to include a list of all properties that can be accessed from scripts
  • Updated "Game Controls" built-in docs to include info about pressing F12 to take an in-game screenshot and where they are stored
  • Updated "Pre-Defined Animation Names" built-in docs to include info about latest types ("climb" for characters, "move" and "attack" for vehicles, and "spawn" for all entities)
  • Updated "Scripting Reference" built-in docs to include signatures for latest scripting functions