Save the Programmable Block! Lua support, cycle limiter, editor improvements.
This... is a huge ask, and by no means do I expect any of it to happen. The Programmable Block feels like a failed experiment, and the lack of interest in it beyond loading in pre-made scripts from the workshop has probably pushed it very far down the priority list.
But please at least hear me out.
- First and foremost, Lua support. Why? Wouldn't this break all the scripts on the workshop?
I'll start with why. Lua is much easier to approach than C#, and is already used in many games: Gmod, Roblox, and apparently even Kerbal Space Program 2 for its modding scene. Additionally, it's an interpreted language, rather than assembled - it already requires a VM, and is sandboxed. Less risk to servers. It pays in performance, however I don't know if the current C# implementation is impacted by a similar system. Lua also has the benefit of automated memory management (please don't burn me at the stake).
As for breaking scripts, yes. Obviously it would. To mitigate this, a drop-down option for programmable blocks would be in order: Disabled, C# (or Legacy) and Lua (not sure what to call this). This way, old scripts on the workshop can still be used.
- Second, a cycle limiter.
Another frequently cited reason why programmable blocks are never enabled on servers is that anyone could go and write a script that intentionally hogs server resources. Limiting the number of cycles a given script can use before it yields or throws an exception would mitigate this and weed out the worst offenders. As I understand it, there are already server plugins that do just this.
- Finally, last but not least and in third place, editor improvements.
LINE NUMBERS. PLEASE, KEEN, DEAR GOD GIVE US LINE NUMBERS IN THE EDITOR. Other than that, a monospace font and syntax highlighting would go a very long way. There is one rather large elephant in the room, a stretch that by no means do I expect to ever be added but it bears mentioning anyway: IntelliSense.
That's all of it, I think.
Ding, you may now burn me at the stake.