Basically the title. I'm building a game with several NPCs and complex systems, and I want it to be nice and modular for modders right from the beginning. So far, I have looked into:
Asset Bundles, I don't completely understand these, probably will have to write some custom loading code? I don't know how/if this will let the modders write code.
Lua-Based Modding, I don't particularly like Lua, but I will fall back to it if I absolutely have to (The Unity-Lua Plugin makes this a seemingly very fast way.)
Exposed C# (original idea from this Question). But again, as stated in the question raw c# has a lot of disadvantages, not to mention the security risks and compatibility issues.
Minecraft-Style? Completely custom? Basically a lot of events and registries? I'm not sure about this option.
To give you an example, there are several Tribes in the game. Ideally, if a modder wanted to make a new tribe they would need to extend from some
Tribe
base class and then register/add their custom tribe to myAvailableTribes
list. Not to mention the models, animations, and sounds for the Tribe NPCs and such.
Any help is appreciated!