v8 Build 159

Mindustry · published · build 24081500

This release brings a new system for adding arbitrary content (sounds, music, images, blocks, items, etc.) to maps or servers. In terms of functionality, this is very close to what JSON mods can provide, except without any manual downloads necessary.

Any maps/saves with assets in them must be exported through the in-game UI to work properly; for performance reasons, assets are not embedded in map/save files unless exported in this way.

This system will likely have serious bugs, so expect hotfix releases after this one.

  • Added 'LOD-like' system for hiding various details like power lasers when zoomed out
  • Removed rounding of camera zoom levels
  • Optimized rendering of various static blocks (e.g. walls)
  • Made sounds load when played instead of at game startup (saves around ~150mb of RAM)
  • Added a key for teleporting to the cursor in sandbox mode
  • Added Developer Options settings tab
  • Added option/hotkey to see performance stats
  • Moved dedicated server rules config to a separate file
  • Shuffled dedicated server fetch order on game start to prevent unfair ping resolution
  • Improved performance of server snapshot packet serialization
  • Improved performance of `Call.label` (for plugins)
  • Improved transfer rate of world connection streams
  • Added multi-file select support to system file picker
  • Added new icons to font
  • Added logic sensor for checking whether a unit is flying, and checking heat of Erekir blocks
  • Added data asset system (see info above)
  • Added logic instruction & server remote methods for playing music (can be sourced from server assets/map assets)
  • Added map rules for random music that will be played (`Rules#ambientMusic`, `Rules#darkMusic`); currently, these values can't be edited in the map editor UI
  • Added NoiseEffect for JSON mods/data patches
  • Added support for :emoji: formatting in content descriptions
  • Increased copper conveyor speed (4.2 -> 6.5 i/s)
  • Decreased junction build time (0.15 -> 0.075 s)
  • Added reading of processor links via read instruction
  • Made mass driver bullets move faster based on timescale
  • Moved Steam public hosting checkbox to paused menu instead of game settings
  • Made settings checkboxes look slightly less terrible
  • Disabled 'global' Steam griefer ban list in private (friends-only) lobbies
  • Minor modifications to unnecessary requirements in Serpulo tech tree
  • Renamed 'show enemy spawns' -> 'hide enemy spawns'
  • Updated many Serpulo sector submissions
  • Updated difficulty of sector submissions to reflect their actual difficulty value
  • Made research prioritize sectors the player is not playing on
  • Fixed derelict blocks sometimes still supplying power
  • Fixed default methods not being overrideable in JS
  • Fixed links being renamed under specific conditions when copying logic blocks
  • Fixed Ground Zero tutorial getting stuck when on Casual difficulty
  • Fixed a number of server crashes/exploits
  • Fixed clearing planet research not properly resetting costs
  • Fixed unit ability data (e.g. shields) not saving
  • Fixed power node unlink causing power graph blinking

Hotfix 159.1 & 159.2

  • Fixed Call.label crashing/not working under specific circumstances (labels still may be invisible sometimes, cause unknown)
  • Fixed directional unloader sprite not updating
  • Fixed logic processor read crash
  • Fixed naval units not pathfinding correctly when commanded
  • Fixed turrets sometimes shooting twice
  • Fixed data patch content displaying as modded
  • Fixed weather not applying to sectors
  • Fixed Erekir conduit bridges not being placeable on liquids
  • Fixed sectors not displaying correct resources
  • Fixed file chooser not showing on Linux under non-english languages
  • Note: Unicode file paths will still not work in the file chooser on Linux due to a Steam bug, the only workaround is to set the following launch options: LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 %command%

159.3

  • Fixed generated icons for data patch content not loading
  • Fixed crash related to plastanium conveyor spam
  • Fixed shooting getting stuck when game is paused
  • Fixed saves on some sectors becoming invalid after 159
  • Map submission updates & fixes
  • Added map rules to disable vanilla music playback
  • Added rules for music control to map rules UI
  • Added automatic mod update checker and update buttons
  • Added caching of mod icons in mod browser
  • Improved reliability of mod browser icon fetching
  • Switched Steam multiplayer backend to Steam Networking Sockets - this fixes the issue of large worlds not loading on Steam, and should improve reliability, but may have new bugs

159.4

  • Fixed Steam achievements not working

159.5

  • Added logic variable for currently playing music
  • Added logic rule for music volume
  • Made Corvus/Vela attempt to shoot at targets even when commanded to move - this was previously disabled as the 'hold fire' stance did not exist
  • Added imports for `java.lang.*` to JS
  • Map submission updates
  • Allowed console in editor
  • Fixed armored conveyor displayed speed being incorrect
  • Fixed derelict payload conveyors not updating item position
  • Fixed fog-uncovered cached blocks not rendering properly
  • Fixed conveyor items visually rendering at the wrong layer

159.6

  • Fixed custom music rules not updating when editing rules before playing a map
  • Fixed Littoral Shipyard not having waves
  • Fixed icons not generating properly in data patch content
  • Added support for loading mod assets in map music rules

159.7

  • Fixed conveyors not appearing in schematic previews under certain conditions
  • Fixed data audio view file name going out of bounds
  • Fixed "unit can't build" text staying in the build menu in certain situations
  • Made modded sector presets generate outlines by default
  • Added internal rule for block placement limits per-type (no UI yet, only usable by servers/console edits; this can be used for things like limiting number of processors in a map to reduce lag)

Note for Java mod authors on Github: In order for the mod update system to work properly, make sure the version in the repository's mod.json actually matches the latest available released version of the mod. Use a separate development branch if necessary.

If you see a mod with a 'fake update' that doesn't actually apply after the button is pressed, this is the reason. Report this issue to the relevant mod developers if you see it.