How to install uMod on a hosted server?
I got the vanilla game running on my hosted server and i'm using the RustAdmin rcon client so far. Now i wanted to install uMod to use plugins. There is a folder named "RustDedicated_Data" on my hosted server and i copied the content of the uMod zip-File into that folder, restarted the server and tried to check if uMod is working by typing "oxide.version" into the console, but it did not work. I tried several ways to get it running, was watching tutorials on YouTube and stuff, but these all where for own servers located at home. So my question is, how can i correctly install uMod on a hosted server? Down below you'll find a pic of the folders that are on my server and the full content of my current "server.cfg".

Server content

server.hostname "My Server Name"
rcon.web True
rcon.port 28034
rcon.ip 0.0.0.0
rcon.password MyPassword
server.level "Procedural Map"
server.seed 38217402
server.worldsize 3500
server.saveinterval 500
server.headerimage ""
server.url ""
server.maxplayers 55
chat.enabled True
server.globalchat True
craft.instant False
decay.tick 600
decay.scale 1
decay.debug False
fps.limit 143.9
gc.interval -1
heli.lifetimeminutes 15
heli.guns 1
heli.bulletdamagescale 1
heli.bulletaccuracy 2
bradley.enabled 1
server.radiation True
server.itemdespawn 180
server.pve False
server.meleedamage 1
server.arrowdamage 1
server.bulletdamage 1
server.bleedingdamage 1
server.meleearmor 1
server.arrowarmor 1
server.bulletarmor 1
server.bleedingarmor 1
server.idlekick 10
server.idlekickmode 1
server.idlekickadmins 0
ownerid mysteamid64 (yes, i have the actual id in the server.cfg)
server.description "My description"
Make sure you moved everything to Managed folder (all the dlls), andawith REPLACE (!!!)
I did.



Do i have to disable Steam-Updates somehow? Because i read somewhere, that the Update overwrites Oxides files.
And do i have to set up a MySQL-Database for uMod to work? (not familiar with this and what it's good for)

I copied over again and noted that some of the file sizes are different, so that means, that they got changed since the last time i copied over. But not by me. (e.g. system.drawing.dll, system.runtime.serialization.dll, system.transactions.dll and some others)

EDIT: I tested it. I stopped the server to copy the files over and as long as the server was offline, they kept unchanged. But when i restart the server, the files get changed everytime. Maybe thats the problem.
Yes Steam update overwrites uMod files, for example if you auto update on start. Disable everything like that. uMod doesn't need a database
There seems to be no file inside that structure where i can disable any updates. I read something about an "start.sh" in which one can disable updates (put an # before the update line). But i don't have such an "start.sh" file. And if i create one manually, it gets deleted from the server as soon as i copy it over into the file structure.
Maybe you are using Linux Game Server Manager? T could be the reason. Or something else like thus
I managed to get uMod running now by enabling write protection for the "RustDedicated_Data/Managed"-folder. The "oxide.version" command is working and an "oxide" folder with subfolders like "config", "plugins" etc has automatically been created.

However, plugins are not loading. I put several plugins into the "plugins" folder. But they do not create any config/json file within the "config" folder and do not work in game. Any suggestions? Do i have to disable write protection for the uMod dll files inside "Managed" for uMod to work correctly?
I'd suggest checking your oxide/logs for errors.
In response to Wulf ():
I'd suggest checking your oxide/logs for errors.
I did. It's posted below. It seems that uMod is only working if i set write protection for the "Managed" folder (the dll files inside do NOT have to be write protected, just the folder - as i figured out). The problem is now, that uMod needs to write (temporary?) .config files inside that folder. At least this is what i'm suggesting if i'm looking at that log file below. But since the folder is write protected it's obviously not possible.

I also tried to write-protect the dll files inside the "Managed" folder only, so that the folder itself is not write protected and files can be generated inside. But that did not work. uMod wasn't working that way. The folder has to be set to write-protected. Is there a way to let uMod generate these .config files somewhere else, inside a folder that is not write-protected?

16:39 [Info] Loading Oxide Core v2.0.3867...
16:39 [Info] Loading extensions...
16:39 [Error] ExType: TargetInvocationException
16:39 [Error] Failed to load extension Oxide.CSharp (UnauthorizedAccessException: Access to the path "/home/censored/gameserver/RUSTE_censored/gameserver/RustDedicated_Data/Managed/Oxide.References.dll.config" is denied.)
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x0019e] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options, System.String msgPath, System.Boolean bFromProxy, System.Boolean useLongPath, System.Boolean checkHost) [0x00000] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions,string,bool,bool,bool)
  at System.IO.StreamWriter.CreateFile (System.String path, System.Boolean append, System.Boolean checkHost) [0x0001c] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize, System.Boolean checkHost) [0x00055] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize) [0x00000] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding) [0x00000] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at (wrapper remoting-invoke-with-check) System.IO.StreamWriter..ctor(string,bool,System.Text.Encoding)
  at System.IO.File.WriteAllText (System.String path, System.String contents, System.Text.Encoding encoding) [0x00000] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at System.IO.File.WriteAllText (System.String path, System.String contents) [0x00007] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at Oxide.Plugins.CSharpExtension..ctor (Oxide.Core.Extensions.ExtensionManager manager) [0x0013e] in <9affce1cd15c4ec183941adef8db1722>:0 
  at (wrapper managed-to-native) System.Reflection.MonoCMethod.InternalInvoke(System.Reflection.MonoCMethod,object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00002] in <ac823e2bb42b41bda67924a45a0173c3>:0 
16:39 [Info] Loaded extension MySql v2.0.3755 by Oxide and Contributors
16:39 [Info] Loaded extension Rust v2.0.4195 by Oxide and Contributors
16:39 [Error] ExType: TargetInvocationException
16:39 [Error] Failed to load extension Oxide.SQLite (UnauthorizedAccessException: Access to the path "/home/censored/gameserver/RUSTE_censored/gameserver/RustDedicated_Data/Managed/System.Data.SQLite.dll.config" is denied.)
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x0019e] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options, System.String msgPath, System.Boolean bFromProxy, System.Boolean useLongPath, System.Boolean checkHost) [0x00000] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions,string,bool,bool,bool)
  at System.IO.StreamWriter.CreateFile (System.String path, System.Boolean append, System.Boolean checkHost) [0x0001c] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize, System.Boolean checkHost) [0x00055] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize) [0x00000] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding) [0x00000] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at (wrapper remoting-invoke-with-check) System.IO.StreamWriter..ctor(string,bool,System.Text.Encoding)
  at System.IO.File.WriteAllText (System.String path, System.String contents, System.Text.Encoding encoding) [0x00000] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at System.IO.File.WriteAllText (System.String path, System.String contents) [0x00007] in <ac823e2bb42b41bda67924a45a0173c3>:0 
  at Oxide.Core.SQLite.SQLiteExtension..ctor (Oxide.Core.Extensions.ExtensionManager manager) [0x0007e] in <227205a880494a0c9119ab3c75690853>:0 
  at (wrapper managed-to-native) System.Reflection.MonoCMethod.InternalInvoke(System.Reflection.MonoCMethod,object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00002] in <ac823e2bb42b41bda67924a45a0173c3>:0 
16:39 [Info] Loaded extension Unity v2.0.3756 by Oxide and Contributors
16:39 [Info] Using Covalence provider for game 'Rust'
16:39 [Info] Loading plugins...
16:39 [Info] Loaded plugin Rust v2.0.4195 by Oxide and Contributors
16:39 [Info] Loaded plugin Unity v2.0.3756 by Oxide and Contributors
16:42 [Info] IP address from command-line: censored
​
I think native uMod builds does not support changing this location. However, its really strange. Have you tried removing all the restrictions for while "gameserver" folder? Set rwx rights for this one and try again.
In response to gentleZen ():
I did. It's posted below. It seems that uMod is only working if i set write protection for the "Mana...
You’d need to either make that directory writable and figure out what is updating your server each start (recommended), else create a local install and copy any missing files that are generated to the server.
For my community servers i simply backup the server oxide files prior to updates and drag them back onto ftp after update is finished.
If mods or oxide needs update i do that manually and load them, its worked like that for awhile for me, i know its not automatic, but im not getting any errors at all and its smooth for me, maybe im hooked on ftp though idk.

Only oxide file i ever had to change is the oxide.config change to:
"Modded": false,

Maybe im missing something he is asking though, because it was all very simple to do for me.
In response to SlyStone ():
For my community servers i simply backup the server oxide files prior to updates and drag them back...
Oxide not being installed is different than Oxide being under the Community list.
my host also refuses to install oxide thru their console for community rust so i drag dropped it from ftp and it takes.
maybe primitive but works i guess.