This is a vast topic that we have been regularly covering for the past three years.
Dual Universe offers a mindblowing level of freedom to its players. One of its numerous developmental challenges is providing incredibly powerful gameplay and socialization tools, while maintaining their accessibility to players with differing play styles.
Through the use of Lua scripting, we are able to bring both true creative freedom and empowerment to Dual Universe. You’ll be pleased to know that Alpha 2 brings even more opportunity to flex your creative muscles! Players will be able to explore new creative possibilities via a brand new, easy to use control panel and additional options for Control Units and Widgets.
Shoot the Moon
What is Lua? In a way, it's the possibility of in-game built-in modding! Lua (which means "moon" in Portuguese) is a simple, yet powerful scripting language that lets players easily change the behavior of Elements and Constructs in Dual Universe. Simply put, it allows the possibility for unique in-game modifications!
The cool part is that most of the in-game interactive elements are already using Lua to function. With some scripting knowledge, you can tweak and experiment with these tools to fully customize your creations!
‘Wait a minute! Does that mean I have to know how to program and learn scripting to fully enjoy Dual Universe?’ — No, absolutely not!
As JC said in our second podcast episode: "That's a huge step forward, making Lua available for everyone. [...] We don't expect everyone to do Lua, actually we expect a very small part of the players to do Lua, but it's going to benefit to everybody. [...] Think of it like modding[...]. Modders are a small part of a game's community but they produce incredible value in terms of content for all the others. So the way Lua is working is that it's basically modding as part of the game, inside the game, directly [...]."
We definitely encourage players to experiment with Lua scripting and see if it’s something you’re interested in — or would make your enjoyment of DU that much more amazing. However, if you find that Lua isn’t for you, rest assured that it won’t affect your ability to play the game. Dual Universe is all about the intricacies of game systems and sub-systems working together, allowing both expected and surprising behaviors to emerge.
We like to envision a future where some players may make Lua creations that they'll give to others via the Barter System. Perhaps some will even make an in-game business of selling custom Lua scripts for Quantas via the Markets to their customers! It will be available in the future as we continue to update the game (no ETA yet). The players that aren’t interested in Lua will be able to enjoy the benefits of those that do. And those that do enjoy scripting will have a blast inventing new ways of sharing them with the community! Everybody's happy.
Some Help to Kickstart Things
To ease the transition for newcomers and those who aren’t keen on Lua, let us introduce you to the Lua Variables Customization Panel (LVCP)!
The LVCP is accessible by simply right-clicking on a Control Unit (Cockpit, Remote Controller, etc.). This new Alpha 2 feature will allow you to easily modify your ship's behavior. Want more reactivity to roll, yaw, or pitch than their default settings? Well, provided that you have the appropriate rights on the Construct, in a few clicks, you can change them to better fit your personal taste.
Open this menu, change a few variables and you’re good to go!
The LVCP (name subject to change) will modify the Lua running in the background for you without needing to do so yourself! Should you choose to use the Lua editor instead, these actions and many more will still be available to you.
Want to dig deeper? Open the Lua editor and experiment further! (Totally optional.)
For more information on this topic, you can listen to the dedicated part of our podcast here.
Should you be more of an intermediate handy-man, you can delve deeper into these details. All Control Units in Dual Universe (Cockpit Units, Piloting Seats, and Programming Boards) can display information when activated by the player.
Cockpit Units and Piloting Seats have a predefined behavior that should suit standard players. However, interested players with a little scripting knowledge can edit the Control Unit Lua default script to adapt the display to uniquely fit their personal needs.
There are different possible levels of customization:
Intermediate Difficulty: Show/hide the default widget of an element linked to the Control Unit.
Advanced Difficulty: Mixing those widgets in custom panels. (New in Alpha 2)
Expert Difficulty: Create custom widgets from your own data or existing elements data. (New in Alpha 2)
Expert Difficulty: Create your own HTML code to display custom content on your screen. (Modified in Alpha 2)
For example, if you want to customize your user interface by displaying more or less information, or even the way it looks, this is possible!
This is the default view.
We can instead only show the Core Unit widget and hide the Control Unit widget (shown by default) by typing core.show() and unit.hide() in the Lua editor. Simple.
You can also rearrange widgets with a bit of work or gather information on several parts in one. For example, instead of having all Fuel Container widgets in different panels, you can create your own panel adding all fuel widget information to it. Pretty handy!
An example of Fuel Containers information grouped in a single panel.
The possibilities of Lua in DU were nearly endless in the past, but starting with Alpha 2, we’ve made modifications to increase these possibilities even further while at the same time, improving security and ease of use. Here are the main changes:
The system.setScreen command no longer creates a widget, but allows instead to edit a fullscreen layer!
A new Lua API allows you to customize widgets.
In the future, we are considering the idea of directly interacting with Control Unit screens too, but we can’t confirm our decisions on this at this time.
Intrigued? Now, let's get our hands dirty! Let's say you want to customize the widgets on your ship's dashboard. It would be cool, huh? Well, you can! If you want to dig deeper into the system, you can modify the way things are displayed UI-side.
Without modifying the game’s UI in itself, you’ll also be able to use the extra layer provided to display new information! We invite you to discover more about this on the dedicated section of our forum (you must be logged in and have access to the Alpha to see this advanced users content). There's so much more you can do! We hope you’re as thrilled as we are!
That’s it for today. More DevBlogs are coming your way soon! So make sure to like us on Facebook and follow us on Twitter. You'll be sure to not miss anything related to Dual Universe! And if you didn't already, join our forum and Discord server, too!