Hack The Galaxy! Space Engineers’ Programmable Blocks

Space me good.

Even as a casual observer of the genre, I get excited when sandbox block ’em ups add programmable bits. Some of Minecraft‘s redstone devices are staggering in their scale and mechanical complexity, and I suspect we’ll see some awfully clever things in Space Engineers. An update last week added programmable blocks which are properly programmable, running C# code, which I imagine will power all sorts of delightful devices and cruel creations for me to enjoy seeing in videos. Folks have already made virtual viruses that e.g. disable ships and arm their warheads.

Programmable blocks can control and interact with other spacethings, from gravity generators to grinders. I chose those two examples because they’re next to each other on the list, but I can already think of horrible programs involving the two. If you fancy programming your own spacebits, have a gander at this guide.

Scrips are supported by Space Engineer’s Steam Workshop too, so you can share your creations and download others’. I already see self-aligning solar panels, automated defenses, and even in-game computer viruses to screw up ships. So, obviously, be prepared for unexpected things if you play on a server with scripts enabled – and keep an eye open for hackers.

I really do like the idea of sneaking about ships to plant malicious hardware.

Here, look at some programmed blinking lights and a murderous quiz machine:


  1. Tom De Roeck says:

    And we have an RPS server that was hibernating till some of the bugs got squashed. if you want to know the current status, check here:
    link to rockpapershotgun.com

  2. DanMan says:

    Is C# more common than… say… Javascript? Or why C# ?

    • ikazrima says:

      To me C# is easier to read and do. I don’t like Javascript, just don’t feel that structured like C#. I found it easier for me to self taught myself C#, but maybe that’s just me.

    • Sam says:

      Javascript is probably more common (depending how you measure how common a language is), but it’s also widely loathed. There are several projects that exist entirely so people can write Javascript without having to directly use the language.
      Thanks to Microsoft’s XNA and now Unity, C# is widely used among the population that are likely to play Space Engineers. Lua and Python are probably the runners up.

    • Jools says:

      C# and Javascript fill vastly different niches, even though there’s a bit of overlap. It makes a lot more sense to use a language like C# for something like this, though, just because it’s more common when working with desktop (as opposed to web) applications. C# is also starting to become a pretty common game design tool thanks to Unity, whereas (almost) nobody who can avoid it is going to use Javascript in that domain.

    • Haxton Fale says:

      I think that the answer is much simpler than the ones above: the game itself is in C#, and the devs took the simple, if a little risky, route of integrating a compiler for the same language. As a result, the “scripted” (or actually programmed) components become elements on pretty much the same level as native blocks – perhaps resulting in vastly improved performance, and to some extent the stability guaranteed by the compilation process.

      I’m no expert on interpreted vs. compiled, though – if anyone knows more and is willing to share, I for one will gladly listen.

    • DanMan says:

      This is for the players though (pun intended). Just seems odd to not use a scripting language. Ah well, Haxton is probably right.

      • Cvnk says:

        “Scripting language” only means the written code is interpreted by a runtime and limited to running within and interacting with a specific context (like a web browser or text editor or game engine) rather than being compiled into a standalone executable. Any language could be used either way as long as the tools exist to support it. There’s nothing stopping JS from being used as a standalone, compiled language (as far as I know) other than the fact that few people want that. And likewise C# can and does serve as a fine scripting language (e.g. as pointed out by others: see Unity). There wouldn’t really be any advantage to them choosing JS just because it’s the traditional scripting language over a flexible and growing language like C# unless they knew target audience heavily skewed towards JS proficiency. And in any case once you know how to program in one language it’s a short task to become productive in another, especially for trivial stuff like Space Engineers scripts.

        • mandrill says:

          Sorry, I’m confused. Are we talking about Javascript (JS) or Java? Two completely different things, really.
          Javascript is a scripting language only, designed to work natively in the specific environment of a supporting browser (eg practically all of them).
          Java is a programming language which _can_ run in a browser but requires the RTE and a plugin, It can also run on any machine with the RTE and it was what Minecraft is programmed in.

          • joa says:

            I think Cvnk was pointing out that the line between scripting and programming language isn’t necessarily that clear. You could build an ahead-of-time compiler for Javascript if you wanted to, or an interpreter for C# running in some highly specialised environment (and people probably have done both).

  3. Wisq says:

    Oh good, an opportunity to learn C#.

    Not even kidding. I learned Lua from ComputerCraft. I could pick any of these up on my own if I wanted — I’ve got dozens of languages already so it’s pretty easy to grab new ones (not bragging, that’s just reality of learning programming languages) — but it’s a lot more interesting to do it when there’s gaming involved.

  4. kalzekdor says:

    Frak. Now I have to buy Space Engineers. Thanks a lot RPS.

  5. 0xicl33n says:

    I find it strange you featured a virus that isnt mine. Mine came first and has tons more work on it. Where did you get your links? Jesus..

    • Alice O'Connor says:

      From poking around in the Steam Workshop. None of those are endorsements, and I’m not declaring anything the best, that was simply me seeing what sort of stuff’s being made. The goofy name UB3R V1RUS caught my eye.

  6. Crafter says:

    Oh shit, that’s awesome !
    I don’t know if I would have chosen C# but that’s a powerful and easy language, it will do just fine.
    I have gone from very mildly interested to enthusiastic with one simple feature.