Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[RELEASED] UMod - Modding Support

Discussion in 'Assets and Asset Store' started by scottyboy805, Oct 26, 2015.

  1. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    [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.



    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


     
    Last edited: Dec 20, 2015
  2. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    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
     
    jamsey_123 likes this.
  3. sicga123

    sicga123

    Joined:
    Jan 26, 2011
    Posts:
    782
    Looks really great, already put it on my wishlist.
     
  4. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Thanks, glad you like it
     
  5. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Version 1.2.0 is now available in the asset store
     
  6. jamsey_123

    jamsey_123

    Joined:
    Nov 11, 2015
    Posts:
    2
    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.
     
  7. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    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.
     
  8. jamsey_123

    jamsey_123

    Joined:
    Nov 11, 2015
    Posts:
    2
    Thanks for the quick reply,
    i like the idea of including in a single package, i will give it a try
     
    scottyboy805 likes this.
  9. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    UMod now has a dedicated online scripting guide which can be found here : Scripting Reference
     
  10. _met44

    _met44

    Joined:
    Jun 1, 2013
    Posts:
    633
    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 ?
     
  11. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    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.
     
  12. _met44

    _met44

    Joined:
    Jun 1, 2013
    Posts:
    633
    :/

    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 :(


    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...
     
  13. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    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.
     
  14. _met44

    _met44

    Joined:
    Jun 1, 2013
    Posts:
    633
    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 !
     
  15. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Yes no problem, I will add support asap
     
  16. _met44

    _met44

    Joined:
    Jun 1, 2013
    Posts:
    633
    well appreciated, thanks a lot !
     
  17. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    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
     
    _met44 likes this.
  18. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    495
    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
     
    scottyboy805 likes this.
  19. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    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.
     
    Stormy102 likes this.
  20. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    495
    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
     
  21. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    UI mods are definitely feasible. At the minute the only way to check if a mod is installed is to match the name and version strings, (Both core version of UMod and Mod version assigned by the modder). The UMod exporter makes sure that these values are always present when compiling a mod.

    Let me know if i can do anything to help.
     
    Stormy102 likes this.
  22. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    495
    I'll let you know. Thanks for the excellent and fast responses.
     
  23. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Version 1.3.0 is now available in the asset store!
     
    Stormy102 likes this.
  24. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    uMod 2.0 is currently under development: uMod 2.0
     
    Stormy102 likes this.
  25. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Hi!
    Just bought this package. Looks great. But if this possible to run many modes simultaneously. I want to design modular game - all subsystems will be a packages (e.g. package with UFPS, package with post-effects, package with sky solution, package with models, each level in packages). How can I do that?
     
    Last edited: May 8, 2016
  26. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    At the moment UMod is only able to have 1 mod loaded at any time to avoid scripting and asset conflicts. Technically, having multiple mods loaded is already possible with the current system but we don't allow yet it due to the undefined results any conflicts may cause. We are however planning to add support for multiple mods to uMod 2.0 (Linked above) once we have found a suitable solution to handle any conflicts.

    With the scenario you outlined above you would still be able to load different levels as packages so long as they are not reliant upon each other (Streamed levels or chunks).

    Hope this helps.
     
  27. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    Hi, so today it`s not possible but will be possible in future.
    Ok, thank you for your answer. But this raise more questions :)

    1. Will 2.0 be just update of current solution or I`ll need to buy exctra license for it?
    2. What is a time estimations? (Last update about status of development was April 25th)
     
    Last edited: May 8, 2016
  28. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Hi,

    Yes it will be possible in the future. uMod 2.0 will be submitted as a separate asset but you will be able to upgrade for free. This is mainly due to fairly substantial changes between the versions and to avoid any confusion. It is difficult to estimate a release date for uMod 2.0 as we are still working to resolve some compatibility issues with later Unity version. I will update the uMod 2.0 thread with an estimated date in the near future.

    Let me know if you have any other questions.
     
  29. mm_ASH

    mm_ASH

    Joined:
    Nov 15, 2013
    Posts:
    358
    great, looking forward for a new release ;)