Major Changes



Minor Changes / Bug Fixes
- Gameplay now pauses while menu is open (single player only)[/*]
- Non-piercing projectiles (e.g.) rockets now stop at the edge of the entity they hit, correcting knockback direction from explosions[/*]
- Adjusted player and other physics to behave better in zero gravity[/*]
- Remove gravity from asteroid fields[/*]
- Asteroid fields now ring their stars and can be entered at any position[/*]
- Add rail tram vehicles and tram stop objects[/*]
- When opening inventory, first tab will be selected by default[/*]
- Auto-sorting inventory will also stack items[/*]
- Add visual novel engine[/*]
- Fix threat level of player ships to always be 1 for colonist purposes[/*]
- Cheese is now considered produce and players will be paid to launch it into space[/*]
- Made several block types permeable to liquids[/*]
- Perfect armor set now slightly weaker than tier 6 crafted armors[/*]
- Fix several issues with NPC pathfinding[/*]
- Various performance improvements[/*]
- Engineer and Mechanic crew members now give flat bonuses to ship speed and fuel efficiency[/*]
- Ancient Vaults will no longer regenerate if the game is restarted while the vault is open[/*]
- Added unbanip and unbanuuid commands for servers[/*]
- Rail platforms and trams can now be broken using the matter manipulator[/*]
Modding API Changes
- Support script panes opening and closing with inventory (like containers)[/*]
- Item slots / grids in script panes now display tooltips for contained items[/*]
- Special keys are now passed separately to techs as special1, special2, and special3. If a player is lounging, they will be suppressed and instead passed to the active vehicle (if applicable)[/*]
- Support rectangular force regions with a linear force gradient[/*]
- Support setting gravity for specific dungeon IDs in dungeon files[/*]
- Rework canvas widget bindings. Canvas widgets can now be bound to a Lua object and controlled directly[/*]
- Support damage sources for vehicles[/*]
- ActiveItems will now include the player lua bindings when held by a player[/*]
- Techs now have access to the message table for entity message handling[/*]
- Add celestial lua bindings for script panes[/*]
- Behavior nodes must now be explicitly defined in .nodes files. This includes specifying node parameters and outputs, with associated types. (Supported types: json, entity, position, vec2, number, bool, list, table, string)[/*]
- Behavior trees (.behavior) now explicitly specify whether a parameter is a blackboard key or a raw value. This includes parameters passed into module (sub-tree) nodes.[/*]
- Behavior node Lua implementations no longer directly perform blackboard lookups (BData methods). Lookups are performed before running the function, and the raw values are directly available in the “args” argument.[/*]
- Behavior node Lua implementations no longer directly set blackboard values. Node output is set by returning or yielding a second value. This second value is a table of output key to output values.[/*]
- world.environmentStatusEffects[/*]
- world.materialHueShift[/*]
- world.modHueShift[/*]
- world.materialColor[/*]
- world.setMaterialColor[/*]
- world.entityTypeName[/*]
- world.setDungeonGravity[/*]
- world.setDungeonBreathable[/*]
- world.itemDropItem[/*]
- mcontroller.zeroG[/*]
- mcontroller.atWorldLimit[/*]
- physics.setCollisionEnabled[/*]
- player.blueprintKnown[/*]
- player.unequipTech[/*]
- player.swapSlotItem[/*]
- player.setSwapSlotItem[/*]
- player.loungingIn[/*]
- player.worldHasOrbitBookmark[/*]
- player.orbitBookmarks[/*]
- player.systemBookmarks[/*]
- player.addOrbitBookmark[/*]
- player.removeOrbitBookmark[/*]
- player.addTeleportBookmark[/*]
- player.isMapped[/*]
- player.mappedObjects[/*]
- root.materialConfig[/*]
- root.modConfig[/*]
- root.liquidConfig[/*]
- root.elementalResistance[/*]
- root.dungeonMetadata[/*]
- vehicle.setForceRegionEnabled[/*]
- vehicle.setDamageSourceEnabled[/*]
- pane.setTitle[/*]
- widget.active[/*]
- widget.hasFocus[/*]
- widget.registerMemberCallback[/*]
- widget.itemSlotItem[/*]
- widget.setItemSlotProgress[/*]
- widget.bindCanvas[/*]
- entity.persistent[/*]
- activeItem.giveOwnerItem (now available via player)[/*]
- activeItem.ownerHasItem (now available via player)[/*]
- activeItem.takeOwnerItem (now available via player)[/*]
- player.addBookmark (use addTeleportBookmark / addOrbitBookmark instead)[/*]
- root.materialPath (use materialConfig instead)[/*]
- root.getConfiguration (removed for security)[/*]
- root.setConfiguration (removed for security)[/*]
- root.getConfigurationPath (removed for security)[/*]
- root.setConfigurationPath (removed for security)[/*]