honestly I would just use C#, if you can figure out a way to blacklist and whitelist parts of the C# library, and mostly prevent just prevent reflection you should be fine, and you might be able to implement moonsharp if you want a LUA inerpreter
Ultimately by allowing for modding of any sort you run that risk, he should disable the ability to enter official/unmodded/different mod configuration servers while modded, give a fair warning to the user explaining the potential problems with mods, and disable modding support by default
Yes i'm very aware of those. I'm currently doing this to make a new open source game engine that i would personally use but also let others use if they want
you shouldn't care about your game being turned back to source. anyone passionate enough will be able to read the assembly itself and lift it up to usable code no matter what the language or obfuscation.