[RELEASED] UMod - Modding Support

[Released] UMod - Modding support for Unity

User modding can extend a games lifetime dramatically as it allows for new and exciting scenarios to be explored as extra content is added to the game. The imagination of the community supporting these games knows no bounds and it would be such a shame to waste that talent. UMod is one solution to allow modders to create and integrate new and exciting content into your games with little effort from the developer or the modder.

UMod is a complete solution to supporting user created content within Unity games and as such handles all the complicated asset importing and script execution automatically resulting in a trouble free modding experience for both the developer and the community. The framework allows all types of content to be loaded at run-time allowing users to extend your game by including user created animated characters or even entire playable game levels.

Features

  • Easily allow the community to extend your game by adding mod support using UMod.
  • Save valuable development time by using UMod instead of rolling your own system.
  • Basic mod support out of the box with the ability to add advanced support.
  • Allow additional scripts, prefabs and scenes to be loaded at run-time.
  • Allow you modders to create their content within the Unity Editor.
  • Support for all content that Unity can load from animated meshes to audio clips.
  • Allow modders to access game scripts using attributes to control which classes or methods are available.
  • Allow modders to attach scripts from your game to their custom content.
  • Support for loading mods from file or URL.
  • Modders don’t need to buy expensive tools as the exporter plugin is free for anyone to download.
  • Catch run-time errors and display them to the modder.
  • All error messages have a unique reference number for quick lookup.
  • Support for command line launching (Allows build and run functionality from the exporter).
  • Find all mods in a directory and access their name, description, and version before loading them.
  • Many other useful features to make mod support simple.

Mod Examples

Below are a couple of examples showing how easily mods can be created using the UMod Exporter.

https://www.youtube.com/watch?v=bLJEMvAtLmI

https://www.youtube.com/watch?v=T7tg4OoHqZY

Asset Store

UMod is is made up of two assets which work together to make the modding process as simple as possibly. The UMod asset is used by developers to allow their games to load modded content created with the UMod Exporter. The UMod Exporter is a supporting tool for UMod that will package all the modded content into a format that can be loaded at run-time. For ease of use, the exporter plugin is implemented as an editor extension and is free to download and use.

UMod: Asset Store | Documentation | Support
UMod Exporter: Asset Store (Free) | Documentation | Support

Requires Unity (5.0.0) or newer

Feedback

UMod has many features to make the modding process as quick and simple as possible and is under constant development to improve the asset. There are many new features planned for future versions and we are always looking for feedback on our assets as to how we can improve them. If you have any questions or requests you can either reply to this thread or use one of the methods below.

Scripting Guide

UMod has a dedicated online scripting guide here: Scripting Guide

Support | Request Feature | Report Bug
info@trivialinteractive.co.uk

Thanks for looking.

Version 1.2.0 of UMod has been submitted for approval and should be available in a week or two.

New features to look forward to:

UMod

  • Load time optimizations (Load mods quicker)
  • Improved exception handling and logging
  • Mod browser window - Editor tool
  • About window (Information on supported mod versions)
  • Mods are automatically unloaded in the editor after you exit play mode
  • New methods for accessing values such as loading progress
  • New scripting guide fully documenting the interface
  • Various bug fixes

UMod Exporter

  • New script compiler for support on windows and mac platforms (Previously windows only)
  • Re skinned UI for editor windows
  • Mod interface creator window
  • About window
  • Build time optimizations (Skip unnecessary build steps based on mod type)
  • Various bug fixes
1 Like

Looks really great, already put it on my wishlist.

Thanks, glad you like it

Version 1.2.0 is now available in the asset store

I want to buy this but before I buy I have a question.

I want my players to be able to make new maps for my fps game with models from my game, is there an easy way to do this? i don’t mind if i have to give the files because most mod support has model files you can use but i want to see if there is a better way.

i hope you understand.

Hi,
Thanks for your interest,

The easiest way to achieve this is to export a package from Unity containing all the assets that your players can use and make it available for download. You could even modify the contents of the UMod Exporter package to include your custom assets and host that package online as an all-in-one mod tools package specially tailored to your game. That way when the modders download the export tools, they will already have the game specific assets ready to be used. Another alternative would be to use prefab markers to specify the placement of game objects but this would be tricky to visualize. More info here on prefab markers : Prefab Markers

I hope this helps,
Don’t hesitate to ask if you have any further questions.

Thanks for the quick reply,
i like the idea of including in a single package, i will give it a try

1 Like

UMod now has a dedicated online scripting guide which can be found here : Scripting Reference

Hello there, currently evaluating your plugin for use in a game I’m working on and we’re having an issue with your dll throwing Failed AOT cross compiler exceptions when making PS4 builds.

Could you please either provide sources or AOT compatible DLLs ?

Hi, I am sorry to hear that you are having trouble with our plugin. Unfortunately UMod only supports PC platforms at the moment and support for other platforms may be a while off due to security restrictions and other issues we have unearthed during development. After reviewing the asset store page I understand that this may not have been made clear and I apologize for that and any inconvenience it may have caused. I will be updating the page with supported platforms asap.

If you are unable to use the plugin to your satisfaction please feel free to contact me regarding a refund. Once again I apologize for failing to clearly display the supported platforms.

Regards, Scott.

:confused:

We wanted to use UMod for the PC Steam version of the game, only issue keeping us from using it are the DLL compile options…

Any chance you would reconsider providing otherwise compiled DLL or sources ? Was really looking forward to using this :frowning:

ps: if issue is that you’re using Linq then it’s not an issue, check out UniLinq on GitHub, it’s an open source implemention that works with AOT compilation. We’re using it in production and it works great, only requires to change Using System.Linq, by Using UniLinq; once it’s added to your project…

Hi, If I understand correctly, having UMod in your project folder is preventing you from successfully building your game for PS4 since the DLL is not AOT compatible. I assume this is because use are using the same code base for all platforms so calling into the UMod API fails on PS4 since the DLL does not exist (Cannot be compiled). If this is the case then the only solution I can think of is to supply a dummy stub DLL for AOT platforms that contains the same methods and classes but without the functionality. This would allow you to compile for other platforms but would not provide any functionality of UMod. I should add that at this point I am unable to add AOT platform support due to an array of issues. Apart from that, the only other way would be to use pre-processor directives in the calling code which I can understand would be undesirable.

Yeah you got it perfectly and yes stub dll would work in our case I believe, if you don’t mind providing it that would be great !

Yes no problem, I will add support asap

well appreciated, thanks a lot !

UMod version 1.3.0 has been submitted for approval and should be available in a week or two.

New features to look forward to:

UMod

  • Global host settings - Moved settings to a dedicated menu
  • Script execution security - Restrict access to assemblies and namespaces
  • AOT cross compilation support (With thanks to _met44) - Compile for AOT platforms without error.
  • UMod now includes the UMod Lite package as standard - More Info
  • Various bug fixes

For more details take a look at the user guide**:** User Guide

1 Like

Hi,
How would this work with multiplayer games? We are looking into mod support frameworks and this seems the most robust modding solution. We were wondering if you had any ideas about modding support on authoritive server setups. Any suggestions or guidelines?

Stormy102

1 Like

Hi Stormy102,

I will start off by saying I only have limited experience with multiplayer online games so sorry I cant be much help.
It would depend really on what sort of modding you want to add to your game.UMod has three main mod categories for modding which are level modding, asset modding and scripting modding and each work in slightly different ways.

Level modding would be easy enough to add to a multiplayer game since you would just make sure each client has the mod installed and loaded before joining the game. The level loading works exactly the same as normal using ‘Application.LoadLevel’.

I don’t think you would be able to make modded scripts work with a multiplayer game because there would be no way to synchronize the scripts across clients. It would depend really on what the scripts did and how they are used but since this is up to the modder then there is very little control.

Asset modding is essentially adding new prefabs into the game. The modder will create a new asset in the Unity editor and save it as a prefab. when it is loaded back in by UMod the prefab is exactly the same as the one created (Same components, scripts etc). I think it should work in a multiplayer game without problems unless there are scripts attached to the object and then you go back to the synchronization issue. You would just need to make sure that when you instantiate a modded prefab that all other clients get notified to allow them to spawn the same object.

I hope this helps a bit. Let me know if you are unsure about something or have other questions.

1 Like

Hey,
I was thinking at first of UI mods and graphical mods instead of actual scripting, but as you can use MonoBehaviour scripts, this allows a large amount of customizability - something that would be good for modders. I was wondering if there might be a way of comparing mod info in a small string or byte array. I could then use this to make sure that the client has this mod installed and potentially download it if mod download information is provided.
I’m definitely not ruling this out, but I need to think about how modding would work with multiplayer a bit more.
Thanks for your support

Stormy102