Volo Modding

Wooh! Exciting techno-mumbo-jumbo coming up! πŸ™‚

Unity’s game object system has a base-class called MonoBehaviour, and every script you want to use in your game scene has to derive from it. Thus, you use it for everything, it is your hook into everything that is Unity.

Mod makers for a Unity game would need to write their own MonoBehaviours and plug them into an existing game, but earlier versions of Unity did not allow the use of MonoBehaviours loaded from external libraries (those .dll things). This meant that for modding you either had to provide a system to link MonoBehaviour stubs to externally loaded behaviours, or just let go of your big ideas altogether. With Unity 3 though, it now appears that you can spawn MonoBehaviours loaded from external libraries directly into a scene! Score!

Admittedly, I only did an absolute minimum of testing. I created a subclass of MonoBehaviour like so:

Then I built this into a library, imported it in Unity, and lo’ and behold: The editor even allows you to drag and drop classes from the library straight into the Inspector! Dragging it onto a game object and running the scene results in a printed message, as expected.
I believe this means several things:
  • I can let the Volo application load user-made scripts at run-time.
  • I can let users create their mods using the Unity editor.

I can even do this without having to give modders all of the source code. Instead, I just compile all Volo code into a library of its own, so people can link to it from their Visual Studio or MonoDevelop projects.

I’m really curious to see where this goes, and whether other Unity developers will do something Β like this. As far as I know nobody is doing it yet. πŸ™‚

  • Mihawkler

    This totally made me want to learn scripting in Unity πŸ™‚
    And i will!

  • Excellent! I really like the idea of having a little modding community. πŸ™‚

  • Mihawkler

    I’m learning all the Unity stuff right now.
    Made my first game (just a little space shooter thingy) from a tutorial.

    After finishing the project i remembered about this post here and tried it out myself.
    Just making a “cheat” button with visual studio, replacing the .dll in my game folder and increasing playerScore by 1000 πŸ™‚

    And realized, this is amazing!!!
    Keep this one up Tinus! Great stuff πŸ˜€

  • charles

    where do you play this game because i love it

    • Heya Charles: I want to release the first version of the game within about a month, so stay tuned to this blog to find out when and how you can play. πŸ™‚

  • micky

    Hi Tinus
    if you need someone to add french language to your game i’m your men!
    i’m a french developper & skydiver πŸ˜‰

  • charles

    is this game out yet

  • charles

    Is this game playable yet because you said it would be ready in a month and its bin 4 month

  • wes

    you shoul definitely contact sony ps2 or coming 3 with this game, i know me and tons of my friends would play this. we all secretly wish skate 2 or 3 had tons of air. imagine a game where you wingsuit down a moutain side then skateboard into a ramp and take the biggest air imaginable. this is what games need. absolute epicness.

  • MuffZu

    Hi! Your last post was October 27, 2010. Does this mean that the project is stopped? I’m really looking forward to this game.

  • Any chance to see this in a coming release tinus ?
    Would be awesome πŸ˜€