Search Unity

[Released] uMod 2.0 - Modding support made easy!

Discussion in 'Assets and Asset Store' started by scottyboy805, Jan 6, 2017.

  1. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Ok good to hear that the first issue is sorted.

    When using interface assmblies it is important to make sure that all interface assemblies are also included in the game project as well as the mod project. Is this the case?
     
  2. fup

    fup

    Joined:
    Jan 18, 2016
    Posts:
    76
    Ah! That works. :) Thanks.
     
  3. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    No problem. Let me know if there is anything else.
     
  4. Rotary-Heart

    Rotary-Heart

    Joined:
    Dec 18, 2012
    Posts:
    813
    Are there plans for a better selection method in the ModToolsBuilder? I wish we could have the same tree logic that we have with the asset importer window. This way it's easier to hide/show folders, select all inside a folder and more. Right now is a little to hard to use since it's super easy to miss a file.

    upload_2020-1-12_21-51-2.png
    upload_2020-1-12_21-51-19.png
     
  5. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Hi,
    Yes this is certainly something we could do. I am not sure why we did not take that approach to start with because it is clearly much easier to use and view. We are working on some other features and assets at the moment but we will add this as soon as we have chance.
     
    Rotary-Heart likes this.
  6. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.6.0 has been submitted to the asset store and will be avaliable for download shortly. This update adds a new feature - The moddable content system. This system allows you to make certain Unity components such as Renderers and Mesh Filters be auto moddable meaning that modders can create new materials, textures, Meshes or other asset types to replace the content of a specific component. Essentially you will add a 'ModdableContent' component to a scene or prefab object and assign a target component. This will generate a moddable asset naming scheme for the object in the uMod settings which will contain a relative file path for the corrosponding asset type. You can then create a mod which contains an matching asset at that file path (Relative to the mod export folder) and the content will be automatically loaded, replaced and managed when the mod is loaded.

    moddablecontent.png
     
    Threeyes and BackgroundMover like this.
  7. BackgroundMover

    BackgroundMover

    Joined:
    May 9, 2015
    Posts:
    224
    A few updates ago it was added to let you populate the included content programatically instead of going through the GUI
     
  8. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod version 2.6.1 has been submitted to the asset store. This version now uses a hierarchy structure to display file and folder content in the mod tools builder window as requested by @Rotary-Heart and others.

    ModToolsContentWindowChanges.png
     
    BackgroundMover and Rotary-Heart like this.
  9. fup

    fup

    Joined:
    Jan 18, 2016
    Posts:
    76
    Hi, I grabbed 2.6.1 but the Mod Tools Builder starts throwing errors when 'Content' is clicked. It is possible to keep going, and get to 'Export' but there is no button to export. There are lots of errors in the console.

    Same behavior on two different machines.
     
  10. fup

    fup

    Joined:
    Jan 18, 2016
    Posts:
    76
  11. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
  12. fup

    fup

    Joined:
    Jan 18, 2016
    Posts:
    76
    yes. Attached is the manifest
     

    Attached Files:

  13. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Ok thanks, I pm’ed you a possible solution.
     
  14. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.6.2 has been submitted to the asset store. This fixes a bug in the mod tools builder window reproted by a few users where package assets could cause exceptions resulting in the UI to not being displayed correctly and export not being possible. We have also optimzed the load time of the content page as it could become very slow on larger projects.
     
    Last edited: Feb 9, 2020
  15. CircuitLord

    CircuitLord

    Joined:
    Dec 15, 2016
    Posts:
    7
    Hello!

    UMod is working great for me so far. I do have one small issue that I've still been poking around to see if there's a way to fix this.

    I'm including some assemblies/scripts in my mod tools, and whenever a mod uses those scripts, and say there's like a
    Code (CSharp):
    1. [SerializeField] private bool testingBool = false;
    If I use that script on an object, and in the inspector set the value to true, then when I load the mod in the main game, this value is not saved, and will always be false. Other stuff, like references to scripts/components in the scene, saves fine, but not with things like that, such as bool and string values.

    Is this just not really possible? It's not super needed for what I'm doing, but it'd be a really nice to have thing for making mods.

    Thanks!
     
  16. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Hi, Public and serialize fields are fully supported and the inspector values should be saved when building a mod. Which Unity version are you using? We just tested this in 2018.1 and all inspector values were saved and loaded correctly with the expected values (We tested a number of primitive types like string, bool, int etc). Are you getting any errors or warnings when building or loading the mod related to link issues? You may need to enable full logging in the loading project to see these warnings by going to 'Tools -> uMod 2.0 -> Settings' and setting 'LogLevel' to 'All'.
     
  17. CircuitLord

    CircuitLord

    Joined:
    Dec 15, 2016
    Posts:
    7

    Okay, I think I sort of narrowed down the issue.

    For reference, I'm using Unity 2019.3.
    And, I've seen no errors when building, but I think I found the issue.

    Images: https://imgur.com/a/GpYKJH8

    Long story short, I have a DLL Interface that has a lot of the core classes of my game, so that devs can easily access them and inherit from them if needed. The problem seems to be that any scripts in the mod project that either are or inherit from classes in my DLL Interface will reset their values to the default of the script and ignore any inspector changes.

    However, any just random scripts I have on the object that aren't from my DLL interface or inheriting from it, (like the Test script in that picture) will save any changed inspector values fine. So maybe the problem has something to do with using the DLL interface?

    Let me know if there's anything else I can test to help :)
     
  18. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Thanks for the detailed response.
    Ofcourse we tested with a compiled script so did not reproduce the problem. It does indeed look like a bug relating to pre-compiled assemblies so we will look into that as soon as possible and get it fixed.
     
  19. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    We may need a bit more information to reproduce this because after our initial testing everything seems to be deserialized correctly, even on a type that is defined in an interface assembly.
    1. I assume that your interface assembly is not built into the mod? IE. the interface assembly is located outside of the mod export folder and is also present in your game project?
    2. Are you inheriting from a type in the interface assembly or using the type directly as a script component?
     
  20. CircuitLord

    CircuitLord

    Joined:
    Dec 15, 2016
    Posts:
    7
    1. Yes, the assembly is a separate dll file with some of my classes in it, and it's included in both the main game project and in the mod project. I just used the content export thingy in the Mod Tools Builder from my main game, and included the dll file in the mod tools that way.

    2. I'm doing both, actually. The first script is directly from the assembly, and the second one is inheriting from a class in it.

    I'm gonna try to do a bit more testing with it to see if I can narrow down the issue, I'll let you know if I find anything.
     
    Threeyes likes this.
  21. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    We have submitted a new Add-On asset for uMod 2.0 to the asset store. The uMod 2.0 Runtime Compiler Add-On will allow you to compile C# source code at runtime using the Roslyn compiler. As you may have guessed, this asset takes the features of our Roslyn C# asset and integrates them seamlessly with uMod 2.0. This means that you can now compile and load C# source code into a uMod script domain to allow you even more modding capabilities.
    CoverKeyImage.png
    If you have already purchased our Rolsyn C# asset as well as uMod 2.0 then we did intend to setup a free upgrade path. At the moment this is not possible due to a Unity requirement that our Roslyn C# asset should be live for atleast 1 year before we can setup upgrades, which it has not been. As a result we cannot offer a free automatic update at the moment but will in the future. We can however offer free upgrade vouchers to the first 12 exsiting customers that request a voucher from us.

    To request a voucher simply follow these steps:
    1. Locate your invoice numbers for uMod 2.0 and Roslyn C# assets.
    2. Send us an email to info(at)trivialinteractive.co.uk including these invoice numbers and stating that you would like to receive a free upgrade voucher.
    3. We will get back to you as soon as possible with your free voucher code if they have not already been taken.
    We expect the asset to go live within 2-3 weeks depending upon asset approval time.
     
    BackgroundMover and Rotary-Heart like this.
  22. CircuitLord

    CircuitLord

    Joined:
    Dec 15, 2016
    Posts:
    7
    Okay, I think I've sort of figured out the problem, but it's still really inconsistent so I'm not sure.

    It seems like, if I have a script that inherits from something in my DLL Interface, and then that script has a SerializedField wanting another class that's in the DLL Interface, then none of the inspector values on the script will save. As soon as I remove that serialized field wanting that other class, then all the other properties work fine again and save their inspector values.

    Again, I'm not really sure if this is exactly what's happening, but it seems to be that way at the moment. Hopefully that helps somewhat?

    I've sort of gotten around the issue for now by just removing the SerializedField and doing a GetComponent<> on the object I was trying to get the script reference from.

    Thanks!
     
  23. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Thanks for the extra info. We will keep working to reproduce the problem and let you know when we have made any progress.
     
  24. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Hi again,
    We still seem to be having difficulty reproducing this problem. We have tested behaviour scripts that inherit from and declare types defined in the interface assembly and all fields (Primitive and reference) are deserialized correctly. We have tested in 2018.1.0, 2019.1.0 and 2019.3.0 but still no joy reproducing the problem. The only time we could come close to replicating this behaviour was by declaring a new class in the interface assembly and building a mod that referenced this type. Then in the game project don't update the interface assembly and we end up with a mod linker error with a TypeLoad exception which is to be expected. In this case the desired script is not attached to the mod object when the scene loads because the type was not found so it is not the same problem that you face.

    Would it be possible for you to send us the built mod (.umod file) and the interface assembly you are using to info(at)trivialinteractive.co.uk so we can look into this further. We are out of ideas on how to continue testing at this point.
     
  25. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.6.3 has been submitted to the asset store and fixes a bug introduced in the last update where many 'Find' type methods of the 'ScriptAssembly' type would incorrectly return null or an empty array.
     
    BackgroundMover likes this.
  26. BackgroundMover

    BackgroundMover

    Joined:
    May 9, 2015
    Posts:
    224
    scottyboy805 likes this.
  27. BackgroundMover

    BackgroundMover

    Joined:
    May 9, 2015
    Posts:
    224
    I'd like to share my code and some things I've figured out for getting ECS to work through UMod. Like the manual says, the biggest problem is getting our mods loaded before TypeManager.Initialize() is called. Unfortunately my experimenting with UNITY_DISABLE_AUTOMATIC_SYSTEM_BOOTSTRAP didn't work out, because even if we take control of the world generation process, AttachToEntityClonerInjection will still trigger it. So we are stuck with using RuntimeInitializeOnLoadMethod to call up our mod loading, which might not be ideal. There is also some Editor-specific workarounds necesesary by injecting the types into the TypeManager.

    The example script also shows how to instantiate our mod-defined systems, and hook them up to have their OnUpdate() called. As well as finding out which ComponentUpdateGroup the system wants to belong to, and placing it in there.

    The one thing I can't show in the script though, is a workaround for exporting [GenerateAuthoringComponent] and Entities.ForEach-to-Job code generation stuff. Basically, its possible, if you put your [GenerateAuthoringComponent] types in a separate project, then copy the dll from MyExternalProject/Library/ScriptAssemblies/MyStuff.dll into your ModProject/Assets/MyMod. In this way, the Unity EntitiesILPostProcessor in the exterior project will generate the authoring component type into the dll, and after the DLL gets copied into the mod project, UMod will then pick up the DLL during mod export. The same thing works for IJobs that get created from Entities.ForEach lambda. EDIT: it can be done to have the types in the same project as the mod export, no need for a second project, just that there needs to be an additional script of some kind in the mod folder, alongside the DLL pulled in from /Library/ScriptAssemblies (need to use an assembly definition file to collect your ECS types into one DLL).

    So if anyone else is doing ECS, hopefully this helps!
     

    Attached Files:

    Last edited: Mar 5, 2020
    scottyboy805 likes this.
  28. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Thanks for sharing. Hopefully this will help out many other uMod users.
     
  29. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.0 Runtime Compiler Add-On is now released and is available on the asset store.
     
  30. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.6.4 has been submitted to the asset store. This version includes a number of bug fixes and stability fixes:
    • Major changes to the mod tools builder system to aid stability on larger projects.
    • Mod tools builder content page now requires a root folder where all moddable content should be located. This is related to the stability fixes and allowed us to fix many asset databse issues when building the mod tools package.
    • Fixed a serialization bug where some Unity types like sprites were not serialized correctly when referenced via mod script.
    • Fixed a bug in asset sharing where saving a mod scene with reference to a shared asset would cause guid errors.
    • A few other minor fixes and changes.
     
  31. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.6.5 has been submitted to the asset store. This version includes:
    • Fixed a serialization bug where some fields of base types were not serialized
    • Fixed a serialization bug where custom scripts inheriting from UIBehaviour directly or indirectly could cause the script to not be serialized by uMod
    • Fixed an asset sharing bug where entering or exiting play mode in the mod project could cause game asset references to be lost
    • Fixed an asset sharing bug where some script reloads in the mod project could cause game asset references to be lost
    • Fixed a bug where building a mod could hard crash Unity if one or more shared game assets use custom shaders which are non-existant in the mod project
     
    Rotary-Heart likes this.
  32. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.6.6 has been submitted to the asset store. This version includes more bug fixes for issues introduced by changes to the mod tools builder:
    • Fixed a bug where an exception could be thrown when exiting play mode
    • Fixed a bug where editor scenes could become dirty on startup even though no changes were made
    • Fixed a bug where the scene save dialog could be shown when starting the project
    • Fixed an exception in the mod tools builder wizard caused by selecting modding folder which does not exist and switching to the export page
    • Fixed a bug where the mod tools builder 'export in project' feature would create the content successfully but delete the generated folder during cleanup
    • Fixed a bug in the mod viewer window where the scroll bar was always clamped to the top of the window
    • Changed the default modding folder path to 'Assets/Modding' which is the recommended location
     
    BackgroundMover likes this.
  33. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.6.7 has been submitted to the asset store. This version inclues bug fixes, API changes and a new feature:
    • GameAssetLink which represents a game asset reference in a mod scene is now a publicy accessible type
    • GameAssetPrefab which represents a reference to a game asset prefab instance in a mod scene is now a publicly accessible type.
    • Added an event 'GameAssetLink.OnGameAssetLoaded' which is called when a mod object has loaded its target game asset equivilent or mod tools shared asset as a result of a relink request.
    • Added an event 'GameAssetLink.OnGameAssetRelinked' which is called when a mod object has successfully relinked its target game asset or mod tools shared asset.
    • Fixed a bug where the uMod scene compiler could fail to run in a very obscure edge case causing major issues when loading a mod scene (Behaviour scripts missing, serialized values not saves, shared assets not relinked etc)
    • Fixed a bug where relative paths to mod assets could be truncated due to not supporting URL formatted paths.
    • The mod tools builder will now fail with a proper error message when invalid characters are encountered in the mod tools name. The invalid characters used will also be listed in the error message for clarity.
    • Added a new component to the uMod 'Moddable' system 'ModdableContentNamingSchemeOverride' which when used in conjunction with the 'ModdableContent' component can override the auto-generated naming scheme for an object. This means that you can manually specify the folder location and asset names that mod content should follow in order to be automatically applied to an associated game object.
     
    BackgroundMover likes this.
  34. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.6.8 has been submitted to the asset store. This version includes:
    • Fixed a bug where some disabled scene objects could be skipped by the scene compiler which could cause script components, shared game assets and initial state data to not work correctly.
    • Added static events 'GameAssetLink.OnGameAssetLinkLoaded' and 'GameAssetLink.OnGameAssetLinkRelinked' which are called at edit time when shared game assets are loaded and relinked, and at runtime.
    • Added attribute 'ModRemoveComponentOnBuild' which can be attached to a script component in a mod. This will cause the build engine to remove the component when compiling the mod.
    • Added attribute 'ModRemoveGameObjectOnBuild' which can be attached to a script component in a mod. This will cause the parent game object and children to be removed when compiling the mod.
    • Exposed attribute ModDontCompile' which can be added to a script component to cause the build engine to not serialize the script. This is useful for skipping serialization of a script type that will exist in both the mod and game projects. Note that care should be taken with this attribute as it could potentially cause missing scripts if unsed incorrectly.
    • Fixed a bug in the mod tools buider window where some items on the Asset Sharing page could be culled casuing them to be invisible when they should be visible.
     
    BackgroundMover likes this.
  35. Polemus

    Polemus

    Joined:
    Nov 14, 2016
    Posts:
    28
    When is umod going on special, i cant afford it :(
     
  36. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Hi,
    We cannot say when our asset will be in a sale next. It is up to the asset store team to select sale assets so there is not much we can do about that. There used to be a may madness sale which we used to feature in but that is no longer running it appears.
     
    Last edited: May 12, 2020
  37. Polemus

    Polemus

    Joined:
    Nov 14, 2016
    Posts:
    28
    Thx, i'll be waiting impatiently till that lucky day :)
     
  38. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.6.9 has been submitted to the asset store for review. This version includes:
    • Fixed an error when build a mod about disconnecting prefabs which is no longer supported.
    • Fixed a bug where shared assets would not be released correctly when changing scenes.
    • Fixed a bug where disabled shared assets would not be released correctly when the mod is unloaded.
    • Added new method 'Mod.UnloadUnusedAssets' which causes all uMod data assets and idle resources to be destroyed and unloaded.
    • Fixed a serializaer bug where enums with override underlying types could cause an exception when deserializing.
     
  39. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.7.0 has been submitted to the asset store. This version includes:
    • Asset sharing is no longer experimental and is now considered stable.
    • Added ModGameAssetReference which can be declared in a mod script to reference a shared game asset. This allows you to access and create instances of the game asset from mod code. The referenced game asset can be picked via the game assets dialog window. This is ideal for spawning effects or items from the main game such as explosions or pickups etc from mod code.
    • Added 'GameAssets' property to 'ModScript' and 'ModScriptBehaviour' types. This property will return a lookup for finding and creating game assets from code in much the same way as the 'ModAssets' property.
    • Fixed a bug where loading a corrupted mod could cause an exception during the decompression stage which was not handled correctly.
    • Corrupted mods will now fail during loading with an 'InvalidMod' error.
    • Fixed a performance issue relating to decompression which could consume about 20-30% of the load time in some scenarios depending upon the size of the mod.
    • Fixed a bug where exporting a mod tools package with no code security restrictions assigned could cause mod builds to fail.
    These screenshots will give a better idea of how the ModGameAssetReference works:

    1: Create a mod script that declares a field of 'UMod.ModGameAssetReference':
    Example1.png
    2: The reference will be visible in the inspector window and you can select the desired asset:
    Example2.png
    3: Clicking the thumb button will open the game asset selection window:
    Example3.png
    4: Select the desired game asset that you want to reference or choose '(None)' to clear the reference:
    Example4.png
    5: Load the mod in game and the referenced game asset will be instantiated as expected:
    Example5.png
     
    Rotary-Heart likes this.
  40. k72dragon

    k72dragon

    Joined:
    Oct 2, 2018
    Posts:
    5
    Hi, I was wondering if the uMod exporter can work like the Asset Bundles-Browser (https://github.com/Unity-Technologies/AssetBundles-Browser) where if I put textures & materials in materials and then I make a prefab in mod_island using textures & materials from materials, the mod_island will be automatically dependent on materials.

    umodrequest.png

    umodrequest2.jpg
     
  41. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Hi,
    Dependencies should be atuomatically included when building a mod. We recommend that all relevant assets are still included inside the mod folder though for clarity.
     
    k72dragon likes this.
  42. k72dragon

    k72dragon

    Joined:
    Oct 2, 2018
    Posts:
    5
    hmm.. but it can bloated in size if for example, there's a lot of mod using the same texture/asset.
     
  43. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Yes thats true that many mods could use a similar material or texture and it would have to be included on a per mod basis otherwise their could be issues. Game asset sharing will eliminate this issue by allowing you to use game assets from mods. This means that a guid reference can be stored instead of any mesh, material and texture data and then the referenced game asset is loaded at runtime from the game instead of from the mod package. The downside is that game asset sharing only supports prefabs at the moment.
     
    Last edited: May 29, 2020
    k72dragon likes this.
  44. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.7.1 has been submitted to the asset store. This version includes:
    • Fixed a bug in the moddable content system where closing a scene with moddable content components inside it could cause some assets to be removed from the naming scheme.
    • Fixed a bug where mods that add monobehaviour components deriving from ModScriptBehaviour at runtime would not have their associated mod properties assigned. 'ModAssets', 'ModScenes' etc.
    • Fixed a bug in the mod tools builder where it was possible to add the same shared content multiple times causing duplicates in the game assets window.
    • Fixed a bug in the moddable content system that could prevent a modded object from being reverted when the owning mod is unloaded.
    • Added a new moddable content type 'Model' which now allows complete game objects to be modified with new meshes, renderers and materials etc.
    • Fixed a bug in the moddable content system where mesh overrides would fail to apply if a .fbx asset was provided as the source mod asset.
     
  45. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.0 has an example demo game coming soon (uMod 2.0 - Moddable Tanks Example Game).

    CoverImage.png

    As you may have guessed, this example project adds modding support to the Unity Tanks tutorial game allowing for new levels to be created, props to be modded or replaced and new features to be added. This example game has been submitted to the store and could take a few weeks to be approved but here are some of the features of the project:

    • Demonstrates usage of the ModDirectory to scan for available mods
    • Shows how a mod manager UI could be implemented to allow users to manager mods in game
    • Shows how mod levels could be loadable by the user by implementing a dynamic level list
    • Allows mod levels to be created using assets from the Tanks game via Asset Sharing
    • Demonstrates how utility scripts can be used in the mod tool package to help modders setup scene defaults when creating mod levels
    • Shows how game assets could be used to draw custom spawn point gizmos to give a visual representation to the modder
    • Demonstrates how a scene validator script can be run when building mods to ensure that created levels contain the necessary objects such as spawn points
    • Shows how mod levels can be loaded via a bootstrap scene so that game systems and game managers can manage a mod level
    • Shows how environment props can be modded using the uMod 2.0 moddable content system
    • Shows how basic Game-Mod communication can be achieved using an interface assembly.
    • Includes 6 example mods to add features or modify the game

    There are 6 mods included by default with the ability to create your own. The default mods are:
    • Canyon Level: A mod which adds a new canyon level to the game to do battle in.
    • Hangars To Circus Tents: A fun little mod which replaces all hangar building with circus tent models
    • Tank AI: A mod which makes the player 2 tank AI controlled (Requires more work to complete but it does move around a bit)
    • Tank Direction indicator: Adds a direction indicator to the player 1 tank pointing to the player 2 tank
    • Timer Rounds: Adds a countdown timer to the game making each round time limited. The player with the most health when the timer reaches 0 wins or a draw is declared if both players have the same health
    • Whilte Cliffs: Another environmental mod which modifies the boundary cliffs to have a white material
    All mods are capable of running in the default game scene or in modded scenes meaning that mods such as the tank indicator and hangars to circus tents can also affect mod scenes. As this is an example project, raw mod assets are included for the mods listed above. We also include the source code for game scripts and the interface assembly we created for Mod-Game communication.

    Here are a few screenshots where you can see some of the mods in action:
    Screenshot1.png
    Screenshot3.png Screenshot5.png

    Take a look at the User Guide here.
     

    Attached Files:

    Last edited: Jun 3, 2020
  46. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    The moddable tanks example game is now available on the asset store for free. Download it here to see how many of the modding concepts offered by uMod 2.0 can be implemented into a real game.
     
  47. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    uMod 2.7.2 has been submitted to the asset store. This version fixes an issue in Unity 2020.1 where a cleanup operation would fail when building a mod tools package leaving the project in a bad state.
     
    BackgroundMover likes this.
  48. pocketpair

    pocketpair

    Joined:
    Jul 7, 2015
    Posts:
    72
    @scottyboy805
    Hello, thank you for your great asset. But unfortunately, I'm facing some bug when I show Moddable Content Component in the inspector.
    The mouse cursor is continuing stuck.
    It might be related to using Moddable Content Component in prefab.


    umod version: 2.7.1
    unity version: 2019.4.6f1

    Stuck video
    https://imgur.com/a/qLj48V8
     
  49. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Hi,
    Thanks for the video.
    I assume this issue only occurs when a moddable content script is attached and the game object (prefab) is selected? Do you have a large amount of moddable content scripts in your project or just a few? We will try to reproduce it but do you have any thoughts as to what may be contributing to the problem such as a particular setting?

    Also could you try an editor restart if you haven't already as that can often fix these weird types of issues if the editor has been running for a while.
     
  50. GameMechanics

    GameMechanics

    Joined:
    Jul 15, 2013
    Posts:
    57
    Are there any future plans to support phones?