Luanti 5.17.0 released!

Written by rubenwardy
Edited by GreenXenith

Release

Introduction

110 Pull Requests merged 62 Issues resolved 228 Commits

Luanti 5.17 is here! This time, we have added the start of gamepad support, the ability to export user data on Android, and improved modding capabilities.

You can download Luanti from our website, check out the code on GitHub, or read the full changelog.

Table of Contents

Multiple Security Vulnerabilities Fixed, Including One Critical

A security vulnerability that could allow mods to escape the security sandbox and gain access to the host system has been fixed. This vulnerability only happens for mods running in single player or a multiplayer game hosted from the main menu, and does not affect playing on servers or dedicated hosting. We recommend that all users update as soon as possible. See the advisory for more info.

Various other security vulnerabilities were fixed, including an issue when using untrusted ContentDB instances and memory safety issues.

Initial Gamepad Support

Luanti now supports using a wide range of gamepads to move around and interact with the world. Gamepads cannot be used to interact with menus yet, so you’ll still need a mouse or touchscreen for those. You can rebind actions on the gamepad in the settings menu. We plan on improving gamepad support in future releases.

While Luanti previously had experimental support for gamepads, it was quite broken and didn’t work with most hardware. The gamepad code was rewritten to use modern APIs (SDL) and better fit into our codebase.

Support for Multi-track Animations in 3D Models (glTF)

Luanti now supports multi-track animations in 3D models. Models may now have several, independently controllable animations. This has two benefits:

First, it allows developers to play multiple animations on a model simultaneously. For example, one animation may animate walking and another swinging a sword. Previously, developers would need to create all possible animation combinations manually - walking, digging, and walking+digging, for example.

Second, it allows developers to reference animations by name in the glTF file, rather than start and end frames. This makes it easier to take such files off-the-shelf without needing to bake everything into a single track and mess around with frame numbers.

Android: Read-Only Access to User Data

Since Android 12, Android security policies have restricted access to Luanti’s user data. To export worlds and mods, users would need to connect their phone to a computer.

Luanti now exposes user data, including worlds, to other apps. This means that you can use your files app to get your world and share it with others.

Currently, this only allows users to export their worlds. In the future, we plan to add write access, which would allow importing worlds and mods, as well as developing mods and games on Android.

Rich Formatting in Tooltips

Tooltips can now contain rich text, images, and item previews using the Luanti hypertext markup language.

Hypertext tooltip
Hypertext tooltip

Formspec Label Alignment

Labels can now be given horizontal and vertical alignments. Previously, developers would need to use a rich text element (“hypertext”) to control text alignment. This provides a less resource-intensive alternative.

Preventing HUD Elements from Being Hidden

Developers can now create “unhideable” HUD elements that won’t be hidden when the Toggle HUD (F1) feature is used. This is useful for persistent effects like vignette and blood splatter that shouldn’t be hidden by the player.

Bug Fixes

As always, this update comes with a large number of bug fixes.

Solid nodes placed above waving liquids no longer cause the water beneath them to render incorrectly.

Waving liquid rendering properly with a node above
Waving liquid rendering properly with a node above

Collision handling accuracy has been improved, reducing jittery movement caused by floating-point errors.

What’s Next?

Take a look at the pull request list and milestones to see what the community and developers are working on.

Everyone is welcome to contribute to Luanti! Questions? Ideas? Feel free to get involved!

Cover image by rubenwardy - Repixture by Wuzzy.