Using Unity Free for modding

Has anyone ever used Unity Free as a way to let players mod their Unity game? I was thinking that if you want your game to be moddable, instead of making a custom construction kit, you could just let your players download Unity Free and distribute a unitypackage that they could use to make mods. Has this been done? I’m not sure about some of the technical and legal hurdles that would make it difficult.

For instance, you couldn’t necessarily redistribute assets bought through the asset store as part of your mod package, because I think legally they wouldn’t count as being part of a game, and most asset creators wouldn’t want their assets to be so easily extracted by a bunch of random players. Perhaps you could get around it by making mock assets for most things or cleverly connecting your game executable so that changes in the Unity editor can be seen relatively quickly in the actual game. Has anyone else thought about this?

There are some topics about this and the result was, noone could do it because they’d need asset bundles to do so.
A workaround would be building your own modding tools inside the game, like LittleBig Planet, etc.
You can also include runtime loading of OBJ/FBX files from Resources folder on Standalone builds, but than again, an internal modding tool would be required inside the game exe.

We did it for KSP.

We wrote a set of editor scripts and tools that export gameobjects and components into a binary format, which we then load at runtime. We built it as a dev tool for ourselves primarily, but we made it available to the modders as well.

It worked out very nicely, if I dare say so myself. :slight_smile:

Cheers

So to clarify, you didn’t use asset bundles or let the player near the source. You gave them some Unity scripts that let them set everything up in the editor, and then exported into a format of your choosen.

Then KSP loads the exported data at runtime using your own scripts, and not the built-in asset bundle loader.

Right?

Seems like a bit of a way to go to get around it, but I don’t really see much of an alternative, either.

The only alternative would be something like a fat XML file that just gets the level layout , like save data of where objects are placed , and then load this data back into the project on the developer side .

You’d have to make a level editor to let users change the level at run time though .

Yeah, but I hate XML. There’s no good way to parse it inside Unity.

I think this goes against unity’s EULA.
You’re not allowed to mix content made with Unity Free and Unity Pro.

There are lots of fairly easy ways to parse xml. I’ve seen a few examples around these forums.