1. Seems that for whatever reason I can't get C# plugins to properly load.

    Lua, Python, etc plugins are loading fine (tested this with only those plugins enabled).

    Once the startup gets to what I assume is compiling/loading the C# plugins, it just hangs.

    Full logs are below, although nothing really useful there.

    Oxide Log:
    Code:
    12:50 PM [Info] Loading Oxide core v2.0.910...
    12:50 PM [Info] Loading extensions...
    12:50 PM [Info] Loaded extension CSharp v1.0.910 by Oxide Team
    12:50 PM [Info] Loaded extension JavaScript v1.0.910 by Oxide Team
    12:50 PM [Info] Loaded extension Lua v1.0.910 by Oxide Team
    12:50 PM [Info] Loaded extension MySql v1.0.910 by Oxide Team
    12:50 PM [Info] Loaded extension Python v1.0.910 by Oxide Team
    12:50 PM [Info] Loaded extension Rust v1.0.910 by Oxide Team
    12:50 PM [Info] Loaded extension Rust:IO for Oxide v2.3.0 by playrust.io / dcode
    12:50 PM [Info] Loaded extension SQLite v1.0.910 by Oxide Team
    12:50 PM [Info] Loaded extension Unity v1.0.910 by Oxide Team
    12:50 PM [Info] Loading plugins...
    12:50 PM [Info] Loaded plugin Rust Core v1.0.0 by Oxide Team
    12:50 PM [Info] Loaded plugin Unity Core v1.0.0 by Oxide Team
    12:50 PM [Info] Loaded plugin Auth Level v0.1.8 by Wulfspider
    12:50 PM [Info] Loaded plugin AutoDoorCloser v1.3.2 by Bombardir
    12:50 PM [Info] Loaded plugin Helptext v1.4.0 by #Domestos
    12:50 PM [Info] Loaded plugin Increased Gathering Rate v1.1.2 by Mughisi
    12:50 PM [Info] Resources from gathering is set to: x1.
    12:50 PM [Info] Loaded plugin Teleportation System v1.4.15 by Mughisi
    12:50 PM [Info] Loaded plugin Players list v1.4.0 by #Domestos
    12:50 PM [Info] Loaded plugin Player location v1.2.0 by #Domestos
    12:50 PM [Info] Loaded plugin Death Notes v2.4.11 by SkinN
    12:50 PM [Info] Loaded plugin Notifier v2.7.5 by SkinN
    12:50 PM [Info] [Notifier v2.7.5] :: Loading Plugin
    12:50 PM [Info] [Notifier v2.7.5] :: --------------------------------------------------
    12:50 PM [Info] [Notifier v2.7.5] :: * Updating countries database
    12:50 PM [Info] [Notifier v2.7.5] :: * Caching active players
    12:50 PM [Info] [Notifier v2.7.5] :: * Starting Adverts loop, set to 5 minute/s
    12:50 PM [Info] [Notifier v2.7.5] :: * Enabling commands:
    12:50 PM [Info] [Notifier v2.7.5] ::   - /rules, /regras, /regles (Server Rules)
    12:50 PM [Info] [Notifier v2.7.5] ::   - /map (Server Map)
    12:50 PM [Info] [Notifier v2.7.5] ::   - /players (Players List)
    12:50 PM [Info] [Notifier v2.7.5] :: --------------------------------------------------
    12:50 PM [Info] Loaded plugin Rust:IO for Oxide v2.3.0 by playrust.io / dcode
    12:50 PM [Info] Initializing plugin
    
    "compiler_log"
    Code:
    [SERVER] Started as service
    [SERVER] Running as service
    [SERVER] Shutdown
    
    There's nothing really all that useful there. Both processes are started (RustDedicated and CSharpCompiler), neither of which are doing anything.

    Oxide is up to date (as well as the server). All plugins are up to date as well (I assume at least, pulled them after pulling the Oxide build)

    I even built my own version of Oxide to test with, to no avail. (I'm a full-time C# dev)

    Any ideas what's going on here? The lack of logging isn't helping much, and I can't find anything as far as "verbose" logging goes (but I'm probably just missing it somewhere)

    Edit: The plugin I'm testing with is the "Clans" plugin http://oxidemod.org/plugins/rust-io-clans.842/
     
  2. Wulf

    Wulf Community Admin

    The existing logs would tell you if the C# plugins failed to compile or load. Where did you put the .cs plugins?

    Also, what OS are you using?
     
  3. Have you tried with the Rust io extension removed?
     
  4. Plugins are in serverident/oxide/plugins along with the Lua/Python plugins.

    This box is on Win10 (my main dev box). I'll throw everything on a few other OS's and see if the problem persists. (Didn't even think about that tbh)
    [DOUBLEPOST=1432054730][/DOUBLEPOST]
    Yes. No dice. :(
     
  5. Wulf

    Wulf Community Admin

    I use Windows 10 with it, so it shouldn't be an issue. Generally any version of Windows should work with it.
     
  6. I didn't think Win10 would cause any issues. The same thing is happening on Win 8, 8.1, 7, and Server 2k8/2012 as well.

    Even tested with just running a tiny sample plugin that does nothing.
     
  7. Wulf

    Wulf Community Admin

    Could you show me screenshots of your root directory as well as RustDedicated_Data/Managed?
     
  8. Code:
    Directory of G:\rustserv\steamapps\common\rust_dedicated05/19/2015  01:26 PM    <DIR>          .
    05/19/2015  01:26 PM    <DIR>          ..
    05/19/2015  01:14 PM    <DIR>          appcache
    05/18/2015  09:26 PM    <DIR>          Bundles
    05/19/2015  01:22 PM            12,458 CatalystRust.log
    05/19/2015  01:23 PM                77 compiler_log_128464.txt
    05/19/2015  01:14 PM    <DIR>          config
    05/14/2015  06:51 PM         3,646,539 CSharpCompiler.exe
    05/19/2015  01:26 PM                 0 dirlog.txt
    05/19/2015  01:14 PM    <DIR>          logs
    05/14/2015  06:51 PM           968,704 monosgen-2.0.dll
    05/14/2015  06:51 PM           970,912 msvcr120.dll
    05/14/2015  06:51 PM               344 oxide.root.json
    05/19/2015  01:14 PM               190 RunServ.bat
    05/18/2015  09:27 PM        18,829,600 RustDedicated.exe
    05/19/2015  12:50 PM    <DIR>          RustDedicated_Data
    05/19/2015  01:14 PM    <DIR>          server
    05/18/2015  09:27 PM        12,228,944 steamclient64.dll
    05/18/2015  09:26 PM           211,368 steam_api64.dll
    05/18/2015  09:26 PM                 6 steam_appid.txt
    05/18/2015  09:27 PM           332,200 tier0_s64.dll
    05/18/2015  09:26 PM           317,352 vstdlib_s64.dll
    
    Code:
    Directory of G:\rustserv\steamapps\common\rust_dedicated\RustDedicated_Data\Managed05/19/2015  01:27 PM    <DIR>          .
    05/19/2015  01:27 PM    <DIR>          ..
    05/18/2015  09:27 PM            10,752 Accessibility.dll
    05/18/2015  09:26 PM            77,824 Assembly-CSharp-firstpass.dll
    05/14/2015  06:51 PM         1,431,552 Assembly-CSharp.dll
    05/18/2015  09:26 PM            35,840 Behave.Unity.Assets.dll
    05/18/2015  09:26 PM           186,368 Behave.Unity.Runtime.dll
    05/18/2015  09:27 PM            29,184 ConvexHull.dll
    05/18/2015  09:26 PM           199,168 DestMath.dll
    05/19/2015  01:27 PM                 0 dirlog.txt
    05/18/2015  09:26 PM            33,312 EasyAntiCheat.Client.dll
    05/18/2015  09:26 PM            31,264 EasyAntiCheat.Server.dll
    05/18/2015  09:26 PM           680,448 I18N.CJK.dll
    05/14/2015  06:51 PM            35,840 I18N.dll
    05/18/2015  09:27 PM            29,184 I18N.MidEast.dll
    05/18/2015  09:27 PM            32,256 I18N.Other.dll
    05/18/2015  09:26 PM           171,008 I18N.Rare.dll
    05/14/2015  06:51 PM            69,120 I18N.West.dll
    05/18/2015  09:26 PM           253,440 Ionic.Zip.Reduced.dll
    05/14/2015  06:51 PM         1,806,336 IronPython.dll
    05/14/2015  06:51 PM           727,552 IronPython.Modules.dll
    05/14/2015  06:51 PM           239,616 Jint.dll
    05/14/2015  06:51 PM            17,920 KeraLua.dll
    05/18/2015  09:26 PM            25,088 LZ4n.dll
    05/14/2015  06:51 PM         1,030,656 Microsoft.Dynamic.dll
    05/14/2015  06:51 PM           383,488 Microsoft.Scripting.Core.dll
    05/14/2015  06:51 PM           142,848 Microsoft.Scripting.dll
    05/14/2015  06:51 PM           269,824 Mono.Cecil.dll
    05/18/2015  09:26 PM            96,256 Mono.Data.Tds.dll
    05/18/2015  09:26 PM           184,320 Mono.Posix.dll
    05/18/2015  09:27 PM           294,400 Mono.Security.dll
    05/18/2015  09:26 PM           172,032 Mono.WebBrowser.dll
    05/18/2015  09:27 PM         2,590,208 mscorlib.dll
    05/14/2015  06:51 PM           443,392 MySql.Data.dll
    05/14/2015  06:51 PM           439,296 Newtonsoft.Json.dll
    05/14/2015  06:51 PM            92,672 NLua.dll
    05/14/2015  06:51 PM            80,384 Oxide.Core.dll
    05/19/2015  01:22 PM            60,928 Oxide.Ext.CSharp.dll
    05/19/2015  01:22 PM           134,656 Oxide.Ext.CSharp.pdb
    05/14/2015  06:51 PM            20,480 Oxide.Ext.JavaScript.dll
    05/14/2015  06:51 PM            25,600 Oxide.Ext.Lua.dll
    05/14/2015  06:51 PM            13,312 Oxide.Ext.MySql.dll
    05/14/2015  06:51 PM            23,040 Oxide.Ext.Python.dll
    05/14/2015  06:51 PM            33,792 Oxide.Ext.Rust.dll
    05/14/2015  06:51 PM            12,288 Oxide.Ext.SQLite.dll
    05/14/2015  06:51 PM             8,704 Oxide.Ext.Unity.dll
    05/18/2015  09:26 PM            75,264 protobuf-net.dll
    05/18/2015  09:26 PM            43,520 RustBuild.dll
    05/18/2015  09:26 PM           124,928 System.Configuration.dll
    05/18/2015  09:27 PM            22,528 System.Configuration.Install.dll
    05/18/2015  09:27 PM           299,008 System.Core.dll
    05/14/2015  06:51 PM           856,064 System.Data.dll
    05/14/2015  06:51 PM           286,720 System.Data.SQLite.dll
    05/18/2015  09:27 PM         1,678,848 System.dll
    05/18/2015  09:26 PM           448,512 System.Drawing.dll
    05/18/2015  09:27 PM            46,592 System.EnterpriseServices.dll
    05/14/2015  06:51 PM           155,648 System.Runtime.Serialization.dll
    05/18/2015  09:27 PM           135,168 System.Security.dll
    05/18/2015  09:26 PM            44,032 System.ServiceProcess.dll
    05/14/2015  06:51 PM            27,648 System.Transactions.dll
    05/18/2015  09:27 PM         3,053,568 System.Windows.Forms.dll
    05/18/2015  09:26 PM         1,270,272 System.Xml.dll
    05/14/2015  06:51 PM           106,496 System.Xml.Linq.dll
    05/18/2015  09:27 PM            79,872 UnityEngine.Cloud.Analytics.dll
    05/18/2015  09:26 PM             4,096 UnityEngine.Cloud.Analytics.Util.dll
    05/18/2015  09:27 PM           685,568 UnityEngine.dll
    05/18/2015  09:26 PM           174,592 UnityEngine.UI.dll
    05/18/2015  09:28 PM    <DIR>          x64
    Oxide C# extension is now a "custom" build since I'm littering things with logging to see what's going on.
    [DOUBLEPOST=1432057236][/DOUBLEPOST]I've tracked it down to the communication to the CSharpCompiler.exe

    Basically, after spawning the process, it never issues the "ready" message to let Oxide know that the compiler can be used. So it enqueues the compilation of the plugin, but never actually does anything with it because the compiler itself hasn't said that it is ready yet.

    I'll keep digging to see what's up with it.
     
  9. Found the issue...

    Seems like an obvious oversight, but not all messages sent through the standard in/out stream are going to be your "message" packets.

    For instance:

    Code:
    2:10 PM [Info] Reading 1299148399 bytes of data for ObjectStream.Data.CompilerMessage object
    That's obviously not valid.

    Here's the output from the actual stream output:

    Code:
    Mono: Config attempting to parse: 'G:\rustserv\steamapps\common\lib\..\etc\mono\config'.
    Mono: Assembly Loader loaded assembly from bundle: 'basic.exe'.
    Mono: Assembly Loader probing location: 'G:\rustserv\steamapps\common\lib\mono\4.5\mscorlib.dll'.
    Mono: Assembly Loader loaded assembly from bundle: 'mscorlib.dll'.
    Mono: Image addref mscorlib[002ED778] -> mscorlib.dll[002E2B60]: 2
    Mono: AOT module 'mscorlib.dll.dll' not found: The system cannot find the file specified.
    Mono: AOT module 'G:\rustserv\steamapps\common\lib/mono/aot-cache/x86/mscorlib.dll.dll' not found: The system cannot find the path specified.
    Mono: Config attempting to parse: 'mscorlib.dll.config'.
    Mono: Config attempting to parse: 'G:\rustserv\steamapps\common\lib\..\etc\mono\assemblies\mscorlib\mscorlib.config'.
    Mono: Config attempting to parse: 'C:\Users\ApocDev\.mono\assemblies\mscorlib\mscorlib.config'.
    Mono: Assembly mscorlib[002ED778] added to domain basic.exe, ref_count=1
    Mono: Assembly Loader probing location: 'basic.exe'.
    Mono: Unloading image basic.exe [0036D7D0].
    Mono: Assembly Loader loaded assembly from bundle: 'basic.exe'.
    Mono: Image addref basic[002E9708] -> basic.exe[00319730]: 4
    Mono: Assembly basic[002E9708] added to domain basic.exe, ref_count=1
    Mono: AOT module 'basic.exe.dll' not found: The system cannot find the file specified.
    Mono: AOT module 'G:\rustserv\steamapps\common\lib/mono/aot-cache/x86/basic.exe.dll' not found: The system cannot find the path specified.
    Mono: Config attempting to parse: 'basic.exe.config'.
    Mono: Config attempting to parse: 'G:\rustserv\steamapps\common\lib\..\etc\mono\assemblies\basic\basic.config'.
    Mono: Config attempting to parse: 'C:\Users\ApocDev\.mono\assemblies\basic\basic.config'.
    Mono: Assembly Loader probing location: 'basic.exe'.
    Mono: Unloading image basic.exe [0036D7D0].
    Mono: Assembly Loader loaded assembly from bundle: 'basic.exe'.
    Mono: AOT module 'basic.exe.dll' not found: The system cannot find the file specified.
    Mono: AOT module 'G:\rustserv\steamapps\common\lib/mono/aot-cache/x86/basic.exe.dll' not found: The system cannot find the path specified.
    Mono: Assembly Ref addref basic[002E9708] -> mscorlib[002ED778]: 2
    Mono: Config attempting to parse: 'basic.exe.config'.
    Mono: Assembly Loader probing location: 'G:\rustserv\steamapps\common\lib\mono\gac\System\4.0.0.0__b77a5c561934e089\System.dll'.
    Mono: Assembly Loader loaded assembly from bundle: 'System.dll'.
    Mono: Image addref System[0036DDC8] -> System.dll[002F2F68]: 2
    Mono: Assembly System[0036DDC8] added to domain basic.exe, ref_count=1
    Mono: AOT module 'System.dll.dll' not found: The system cannot find the file specified.
    Mono: AOT module 'G:\rustserv\steamapps\common\lib/mono/aot-cache/x86/System.dll.dll' not found: The system cannot find the path specified.
    Mono: Config attempting to parse: 'System.dll.config'.
    Mono: Config attempting to parse: 'G:\rustserv\steamapps\common\lib\..\etc\mono\assemblies\System\System.config'.
    Mono: Config attempting to parse: 'C:\Users\ApocDev\.mono\assemblies\System\System.config'.
    Mono: Assembly Ref addref basic[002E9708] -> System[0036DDC8]: 2
    Mono: Assembly Ref addref System[0036DDC8] -> mscorlib[002ED778]: 3
    Mono: Assembly Loader probing location: 'G:\rustserv\steamapps\common\lib\mono\gac\System.Core\4.0.0.0__b77a5c561934e089\System.Core.dll'.
    Mono: Assembly Loader loaded assembly from bundle: 'System.Core.dll'.
    Mono: Image addref System.Core[003B2B88] -> System.Core.dll[003DD7C0]: 2
    Mono: Assembly System.Core[003B2B88] added to domain basic.exe, ref_count=1
    Mono: AOT module 'System.Core.dll.dll' not found: The system cannot find the file specified.
    Mono: AOT module 'G:\rustserv\steamapps\common\lib/mono/aot-cache/x86/System.Core.dll.dll' not found: The system cannot find the path specified.
    Mono: Config attempting to parse: 'System.Core.dll.config'.
    Mono: Config attempting to parse: 'G:\rustserv\steamapps\common\lib\..\etc\mono\assemblies\System.Core\System.Core.config'.
    Mono: Config attempting to parse: 'C:\Users\ApocDev\.mono\assemblies\System.Core\System.Core.     ÿÿÿÿ         basic   !ObjectStream.Data.CompilerMessage   <Data>k__BackingField<ExtraData>k__BackingField<Id>k__BackingField<Type>k__BackingField %ObjectStream.Data.CompilerMessageType          %ObjectStream.Data.CompilerMessageType   value__         ÿÿÿÿ         basic   !ObjectStream.Data.CompilerMessage   <Data>k__BackingField<ExtraData>k__BackingField<Id>k__BackingField<Type>k__BackingField %ObjectStream.Data.CompilerMessageType          %ObjectStream.Data.CompilerMessageType   value__         ÿÿÿÿ         basic   !ObjectStream.Data.CompilerMessage   <Data>k__BackingField<ExtraData>k__BackingField<Id>k__BackingField<Type>k__BackingField %ObjectStream.Data.CompilerMessageType          %ObjectStream.Data.CompilerMessageType   value__         ÿÿÿÿ         basic   !ObjectStream.Data.CompilerMessage   <Data>k__BackingField<ExtraData>k__BackingField<Id>k__BackingField<Type>k__BackingField %ObjectStream.Data.CompilerMessageType          %ObjectStream.Data.CompilerMessageType   value__         ÿÿÿÿ         basic   !ObjectStream.Data.CompilerMessage   <Data>k__BackingField<ExtraData>k__BackingField<Id>k__BackingField<Type>k__BackingField %ObjectStream.Data.CompilerMessageType    
    It's fairly obvious where the issue is from here.
     
  10. Wulf

    Wulf Community Admin

    Are you sure you are on the latest commit? There should be no compiler logs in the root directory.
     
  11. Yes, but I will re-pull it for brevity.

    Dropped the latest "snapshot" in, and the logs are now properly in the serverident/oxide/logs dir, but the same issue with the stream reading code exists.
     
  12. Wulf

    Wulf Community Admin

    If you had the latest, the compiler log in the root should be purged from the root, but it may be that this is preventing that.
     
  13. The logs were removed with the snapshot version. However, the issue still stands where the "ObjectStream" related code is assuming all output on stdout is your "CompilerMessage" packet. The output is displaying that it can't find the mono configs (because it's searching in the wrong path all together).
    [DOUBLEPOST=1432061466][/DOUBLEPOST]I've fixed the issue at hand.

    In Oxide.Ext.CSharp.PluginCompiler.CheckCompiler(), just after the "process.Start()" call, we need to read over any Mono-emitted messages.

    Code:
                // The CSharpCompiler may spit out some extra lines of standard text if mono search paths
                // aren't being found correctly. This simply checks for that, and lets things read over the stream until
                // we start sending compiler ready messages.
                do
                {
                    string line = process.StandardOutput.ReadLine();
                    if (!string.IsNullOrEmpty(line) && !line.StartsWith("Mono:"))
                        break;
                } while (true);
    That will allow the plugin to actually wait for the messages it expects to be reading.

    I've put this up as an issue on the Oxide github: https://github.com/OxideMod/Oxide/issues/362

    I'll let you guys handle a "proper" fix for the issue. But with the changes I noted, everything works fine again.
     
    Last edited by a moderator: May 19, 2015
  14. Wulf

    Wulf Community Admin

    This should be fixed in the latest snapshots and release. Thanks for the report!