Rust:Тонкости администрирования сервера uMod или Oxide: различия между версиями
Cucagmin (обсуждение | вклад) |
Cucagmin (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
<div> | <div> | ||
<ul> | <ul> | ||
<a href="#installation">Installation</a> | |||
<li><a data-uid="d92fu94ieppIJrro" data-level="2" href="#server-requirements">Server requirements</a></li> | <li><a data-uid="d92fu94ieppIJrro" data-level="2" href="#server-requirements">Server requirements</a></li> | ||
<li><a data-uid="sIxFT9WSydfdDABE" data-level="2" href="#installing-umod">Installing uMod</a></li> | <li><a data-uid="sIxFT9WSydfdDABE" data-level="2" href="#installing-umod">Installing uMod</a></li> |
Версия 14:12, 28 января 2019
-
<a href="#installation">Installation</a>
- <a data-uid="d92fu94ieppIJrro" data-level="2" href="#server-requirements">Server requirements</a>
- <a data-uid="sIxFT9WSydfdDABE" data-level="2" href="#installing-umod">Installing uMod</a>
- <a data-uid="tLvvqBHFoHcCYUuy" data-level="2" href="#plugins">Plugins</a>
- <a data-uid="w17y0UNAbx66fytq" data-level="2" href="#extensions">Extensions</a>
Start
<a id="installation" href="#installation"></a>Installation
<a id="server-requirements" class="fas fa-hashtag fa-fw documentation-anchor" href="#server-requirements"></a>Server requirements
The uMod platform requirements vary depending on the game server.
More information about uMod support for specific games may be found on the <a href="https://umod.org/documentation/umod/game-support">Game Support</a> page.
<a id="installing-umod" class="fas fa-hashtag fa-fw documentation-anchor" href="#installing-umod"></a>Installing uMod
Via Direct Download
- Download the uMod version <a href="https://umod.org/games">specific to your game</a>.
- Copy the files over your existing server installation
<a id="plugins" class="fas fa-hashtag fa-fw documentation-anchor" href="#plugins"></a>Plugins
Plugins are self-contained bits of code which modify game server behavior.
For more information about plugins, view the <a href="https://umod.org/documentation/umod/plugins/getting-started">Plugins - Getting Started</a> page.
<a href="https://umod.org/plugins">View all available plugins</a>
<a id="extensions" class="fas fa-hashtag fa-fw documentation-anchor" href="#extensions"></a>Extensions
Extensions are generally large projects which add functionality to uMod or make substantial changes to a server.
<a href="https://umod.org/extensions">View all available extensions</a>
- <a data-uid="K1CT16QbMYcAydmc" data-level="2" href="#config-directory">Config directory</a>
- <a data-uid="ITpKLKOKpBmFa92f" data-level="2" href="#file-name">File name</a>
- <a data-uid="S8f5ZNbKZjrh7uS9" data-level="2" href="#valid-json">Valid JSON</a>
- <a data-uid="6eA6kNsheoOyURkK" data-level="2" href="#applying-changes">Applying changes</a>
Plugin configuration
Most plugins will generate a JSON configuration file once loaded. With this file, a server owner may change how a plugin works.
<a id="config-directory" class="fas fa-hashtag fa-fw documentation-anchor" href="#config-directory"></a>Config directory
Configuration files are found in the config
folder which is located by default in oxide/config
(unless the server host has moved it).
<a id="file-name" class="fas fa-hashtag fa-fw documentation-anchor" href="#file-name"></a>File name
A plugin configuration file will have the same name as the plugin itself.
For example, a plugin that is installed as MyPlugin.cs
(if it is configurable) will be accompanied by a JSON file named MyPlugin.json
Do not rename the configuration file or change the file extension.
If a plugin is installed but not configurable, no configuration file will be present.
If a plugin is configurable but no configuration file is available, the plugin may be broken; in this case, check the log files under the oxide/logs
directory for errors.
<a id="valid-json" class="fas fa-hashtag fa-fw documentation-anchor" href="#valid-json"></a>Valid JSON
All plugin configuration files are saved as JSON (JavaScript Object Notation). Configuration files must be valid JSON. Use a validator such as <a href="https://jsonlint.com">jsonlint.com</a> to ensure the configuration is valid JSON.
<a id="applying-changes" class="fas fa-hashtag fa-fw documentation-anchor" href="#applying-changes"></a>Applying changes
After making changes to a plugin configuration file, reload the plugin in the server console by using the oxide.reload
command. For example:
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.reload MyPlugin </code>
Continue to <a href="https://umod.org/documentation/umod/plugins/permissions">setting permissions</a>..
Plugin installation
Installing uMod plugins usually only takes a few mouse clicks.
<a id="server-requirements" class="fas fa-hashtag fa-fw documentation-anchor" href="#server-requirements"></a>Server requirements
To install the plugin on the server, the server provider must support Oxide 2.0 or higher, else the plugins will not load or do anything.
If the server is not online, start it. Then, check that Oxide is fully installed by testing the oxide.version
chat or console command.
<a id="download-the-source-code" class="fas fa-hashtag fa-fw documentation-anchor" href="#download-the-source-code"></a>Download the source code
Download a plugin from the <a href="https://umod.org/plugins">plugins page</a>;
Do not rename the plugin or change the file extension.
<a id="remote-server" class="fas fa-hashtag fa-fw documentation-anchor" href="#remote-server"></a>Remote server
If the server is not hosted locally, connect to the server via an FTP client. If unsure of the FTP details, please contact the server host.
<a id="plugins-directory" class="fas fa-hashtag fa-fw documentation-anchor" href="#plugins-directory"></a>Plugins directory
Find the plugins
folder which is located by default at oxide/plugins
if it has not been changed by the server host
<a id="upload-the-source-code" class="fas fa-hashtag fa-fw documentation-anchor" href="#upload-the-source-code"></a>Upload the source code
Upload the plugin file into the "plugins" folder and it will be loaded automatically if Oxide is currently installed
Continue to <a href="https://umod.org/documentation/umod/plugins/configuration">configuring the plugin</a>..
<a id="updating" class="fas fa-hashtag fa-fw documentation-anchor" href="#updating"></a>Updating
If a plugin is already installed and an update is available simply overwrite the original (.cs) file and the new version will be loaded automatically.
Plugin configuration
Most plugins will generate a JSON configuration file once loaded. With this file, a server owner may change how a plugin works.
<a id="config-directory" class="fas fa-hashtag fa-fw documentation-anchor" href="#config-directory"></a>Config directory
Configuration files are found in the config
folder which is located by default in oxide/config
(unless the server host has moved it).
<a id="file-name" class="fas fa-hashtag fa-fw documentation-anchor" href="#file-name"></a>File name
A plugin configuration file will have the same name as the plugin itself.
For example, a plugin that is installed as MyPlugin.cs
(if it is configurable) will be accompanied by a JSON file named MyPlugin.json
Do not rename the configuration file or change the file extension.
If a plugin is installed but not configurable, no configuration file will be present.
If a plugin is configurable but no configuration file is available, the plugin may be broken; in this case, check the log files under the oxide/logs
directory for errors.
<a id="valid-json" class="fas fa-hashtag fa-fw documentation-anchor" href="#valid-json"></a>Valid JSON
All plugin configuration files are saved as JSON (JavaScript Object Notation). Configuration files must be valid JSON. Use a validator such as <a href="https://jsonlint.com">jsonlint.com</a> to ensure the configuration is valid JSON.
<a id="applying-changes" class="fas fa-hashtag fa-fw documentation-anchor" href="#applying-changes"></a>Applying changes
After making changes to a plugin configuration file, reload the plugin in the server console by using the oxide.reload
command. For example:
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.reload MyPlugin </code>
Continue to <a href="https://umod.org/documentation/umod/plugins/permissions">setting permissions</a>..
- <a data-uid="Bnz9tlJSYX2IBQJv" data-level="2" href="#players">Players</a>
<a class="fa fa-caret-down pl-2 pr-2 cursor-pointer" data-children="5" type="button" data-toggle="collapse" data-target="#Bnz9tlJSYX2IBQJv" aria-expanded="false" aria-controls="Bnz9tlJSYX2IBQJv"></a>
- <a data-uid="nCrUNtoZaKXyEqzC" data-level="3" href="#grant-a-permission-to-an-individual-player">Grant a permission to an individual player</a>
- <a data-uid="CJTunfCjXLe6Bi7o" data-level="3" href="#revoke-a-permission-from-an-individual-player">Revoke a permission from an individual player</a>
- <a data-uid="RWZGnlDqgMqGHKCy" data-level="3" href="#show-a-players-permissions">Show a player's permissions</a>
- <a data-uid="fd7izLt2u0C9pYBY" data-level="3" href="#showing-which-player-or-group-has-a-permission">Showing which player or group has a permission</a>
- <a data-uid="rMgloOHcQdvU597f" data-level="2" href="#groups">Groups</a>
<a class="fa fa-caret-down pl-2 pr-2 cursor-pointer" data-children="10" type="button" data-toggle="collapse" data-target="#rMgloOHcQdvU597f" aria-expanded="false" aria-controls="rMgloOHcQdvU597f"></a>
- <a data-uid="jxTTK9lXN8JzzYfz" data-level="3" href="#grant-a-permission-to-an-entire-group">Grant a permission to an entire group</a>
- <a data-uid="xSvR47ZrHK6f0h4r" data-level="3" href="#revoke-a-permission-from-a-group">Revoke a permission from a group</a>
- <a data-uid="XRLiwWEhwTHnyFrI" data-level="3" href="#adding-a-player-to-an-existing-group">Adding a player to an existing group</a>
- <a data-uid="H6sKCGAmJFBNsumx" data-level="3" href="#removing-a-player-from-an-existing-group">Removing a player from an existing group</a>
- <a data-uid="LTLwQGpLbuoBgWWQ" data-level="3" href="#adding-an-entirely-new-group">Adding an entirely new group</a>
- <a data-uid="cdeNvroEHbtIBdp3" data-level="3" href="#removing-an-existing-group">Removing an existing group</a>
- <a data-uid="LSO6Nk1TW0WQ0HN1" data-level="3" href="#setting-the-title-or-rank-of-a-group">Setting the title or rank of a group</a>
- <a data-uid="t7DIePJYM6jE4ubM" data-level="3" href="#setting-the-parent-group-of-another-group">Setting the parent group of another group</a>
- <a data-uid="QiHzNUN919wDCz8B" data-level="3" href="#showing-a-groups-members-and-permissions">Showing a group's members and permissions</a>
- <a data-uid="XBLoFKBpsXs8L6z3" data-level="2" href="#showing-all-groups-or-permissions">Showing all groups or permissions</a>
- <a data-uid="PDO58X5rNEnQPUgt" data-level="2" href="#using-wildcards">Using wildcards</a>
- <a data-uid="8ZhknRVnJwkYnNu2" data-level="2" href="#conclusion">Conclusion</a>
Permissions
Permissions allows server owners to give players unique abilities and benefits on their servers.
Administering permissions is easy; simply enter the desired command and you're done! If your server does not have a console, you can use any compatible RCON tool or remote console to send the commands to the server. Most Oxide/uMod-supported games also support the permission commands in the chat, or will soon.
For this guide, the permission epicstuff.use
will be used as an example. Keep in mind that permissions only exist if provided by a plugin or Oxide/uMod itself.
By default, the groups that are created by Oxide/uMod are: admin and default. These can be changed by editing those under the umod.config.json file. The admin group will automatically be assigned to players that are recognized as admin by the server. The "default" group will automatically be assigned to ALL players that connect to the server.
<a id="players" class="fas fa-hashtag fa-fw documentation-anchor" href="#players"></a>Players
<a id="grant-a-permission-to-an-individual-player" href="#grant-a-permission-to-an-individual-player"></a>Grant a permission to an individual player
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.grant player Wulf epicstuff.use </code>
<a id="revoke-a-permission-from-an-individual-player" href="#revoke-a-permission-from-an-individual-player"></a>Revoke a permission from an individual player
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.revoke player Wulf epicstuff.use </code>
<a id="show-a-players-permissions" href="#show-a-players-permissions"></a>Show a player's permissions
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.show player Wulf </code>
<a id="showing-which-player-or-group-has-a-permission" href="#showing-which-player-or-group-has-a-permission"></a>Showing which player or group has a permission
Sometimes this command is helpful when tracking down who has a permission.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.show perm epicstuff.use </code>
<a id="groups" class="fas fa-hashtag fa-fw documentation-anchor" href="#groups"></a>Groups
<a id="grant-a-permission-to-an-entire-group" href="#grant-a-permission-to-an-entire-group"></a>Grant a permission to an entire group
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.grant group admin epicstuff.use </code>
<a id="revoke-a-permission-from-a-group" href="#revoke-a-permission-from-a-group"></a>Revoke a permission from a group
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.revoke group admin epicstuff.use </code>
<a id="adding-a-player-to-an-existing-group" href="#adding-a-player-to-an-existing-group"></a>Adding a player to an existing group
Adding a player to a group will give them all of the permissions assigned to that group.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.usergroup add Wulf admin </code>
<a id="removing-a-player-from-an-existing-group" href="#removing-a-player-from-an-existing-group"></a>Removing a player from an existing group
Removing a player from a group will remove from them all of the permissions assigned to that group.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.usergroup remove Wulf admin </code>
<a id="adding-an-entirely-new-group" href="#adding-an-entirely-new-group"></a>Adding an entirely new group
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group add vip </code>
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group add vip VIP 0 </code>
<a id="removing-an-existing-group" href="#removing-an-existing-group"></a>Removing an existing group
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group remove vip </code>
<a id="setting-the-title-or-rank-of-a-group" href="#setting-the-title-or-rank-of-a-group"></a>Setting the title or rank of a group
The group title is usually a short description of a group, sometimes used for chat titles. The rank is a number which sorts a group based on its importance.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group set vip "[VIP Member]" </code>
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group set vip "[VIP Member]" 1 </code>
<a id="setting-the-parent-group-of-another-group" href="#setting-the-parent-group-of-another-group"></a>Setting the parent group of another group
A group will inherit all permissions from its parent group.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group parent admin default </code>
<a id="showing-a-groups-members-and-permissions" href="#showing-a-groups-members-and-permissions"></a>Showing a group's members and permissions
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.show group admin </code>
<a id="showing-all-groups-or-permissions" class="fas fa-hashtag fa-fw documentation-anchor" href="#showing-all-groups-or-permissions"></a>Showing all groups or permissions
To show all of the permission groups, simple use the command below.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.show groups </code>
The show all of the registered permissions from plugins and Oxide/uMod, use the command below.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.show perms </code>
<a id="using-wildcards" class="fas fa-hashtag fa-fw documentation-anchor" href="#using-wildcards"></a>Using wildcards
A wildcard is something that covers multiple things at once time. For permissions, this is the * symbol. You can use the wildcard (*) to grant multiple permissions at one time. This can be done with all permissions or per plugin based on prefix.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.grant group admin * </code>
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.grant player Wulf umod.* </code>
<a id="conclusion" class="fas fa-hashtag fa-fw documentation-anchor" href="#conclusion"></a>Conclusion
The same commands are also available with the "o." prefix (ex. "o.grant").
That's the basics to permissions for Oxide/uMod. Permissions give you a fantastic way to manage staff without worrying about them abusing powers from the game's admin functionality (such as flight, noclip, super speed, etc.) so they can still enjoy the game but also help monitor your server at the same time.
- <a data-uid="F78LNgl7iHIQQobq" data-level="2" href="#data-directory">Data directory</a>
- <a data-uid="oUlPrABSjWWT4BoY" data-level="2" href="#file-names">File names</a>
- <a data-uid="3T26DKsBKk9LCzd2" data-level="2" href="#valid-json">Valid JSON</a>
Data Files
Data files are JSON
files that plugins may use to store arbitrary data.
<a id="data-directory" class="fas fa-hashtag fa-fw documentation-anchor" href="#data-directory"></a>Data directory
Data files may be found in the data
folder which located by default in oxide/data
(unless the server host has moved it).
<a id="file-names" class="fas fa-hashtag fa-fw documentation-anchor" href="#file-names"></a>File names
Data files do not follow any naming convention, a plugin author may specify any name when creating a data file.
It is recommended to plugin authors, when creating a large number of data files, to create them in a subdirectory specific to their plugin.
<a id="valid-json" class="fas fa-hashtag fa-fw documentation-anchor" href="#valid-json"></a>Valid JSON
All plugin data files are saved as JSON (JavaScript Object Notation). Data files must be valid JSON. If editing a data file manually, use a validator such as <a href="https://jsonlint.com">jsonlint.com</a> to ensure the data file is valid JSON.
<a id="server-requirements" class="fas fa-hashtag fa-fw documentation-anchor" href="#server-requirements"></a>Server requirements
The uMod platform requirements vary depending on the game server.
More information about uMod support for specific games may be found on the <a href="https://umod.org/documentation/umod/game-support">Game Support</a> page.
<a id="installing-umod" class="fas fa-hashtag fa-fw documentation-anchor" href="#installing-umod"></a>Installing uMod
Via Direct Download
- Download the uMod version <a href="https://umod.org/games">specific to your game</a>.
- Copy the files over your existing server installation
<a id="plugins" class="fas fa-hashtag fa-fw documentation-anchor" href="#plugins"></a>Plugins
Plugins are self-contained bits of code which modify game server behavior.
For more information about plugins, view the <a href="https://umod.org/documentation/umod/plugins/getting-started">Plugins - Getting Started</a> page.
<a href="https://umod.org/plugins">View all available plugins</a>
<a id="extensions" class="fas fa-hashtag fa-fw documentation-anchor" href="#extensions"></a>Extensions
Extensions are generally large projects which add functionality to uMod or make substantial changes to a server.
<a href="https://umod.org/extensions">View all available extensions</a>
- <a data-uid="K1CT16QbMYcAydmc" data-level="2" href="#config-directory">Config directory</a>
- <a data-uid="ITpKLKOKpBmFa92f" data-level="2" href="#file-name">File name</a>
- <a data-uid="S8f5ZNbKZjrh7uS9" data-level="2" href="#valid-json">Valid JSON</a>
- <a data-uid="6eA6kNsheoOyURkK" data-level="2" href="#applying-changes">Applying changes</a>
Plugin configuration
Most plugins will generate a JSON configuration file once loaded. With this file, a server owner may change how a plugin works.
<a id="config-directory" class="fas fa-hashtag fa-fw documentation-anchor" href="#config-directory"></a>Config directory
Configuration files are found in the config
folder which is located by default in oxide/config
(unless the server host has moved it).
<a id="file-name" class="fas fa-hashtag fa-fw documentation-anchor" href="#file-name"></a>File name
A plugin configuration file will have the same name as the plugin itself.
For example, a plugin that is installed as MyPlugin.cs
(if it is configurable) will be accompanied by a JSON file named MyPlugin.json
Do not rename the configuration file or change the file extension.
If a plugin is installed but not configurable, no configuration file will be present.
If a plugin is configurable but no configuration file is available, the plugin may be broken; in this case, check the log files under the oxide/logs
directory for errors.
<a id="valid-json" class="fas fa-hashtag fa-fw documentation-anchor" href="#valid-json"></a>Valid JSON
All plugin configuration files are saved as JSON (JavaScript Object Notation). Configuration files must be valid JSON. Use a validator such as <a href="https://jsonlint.com">jsonlint.com</a> to ensure the configuration is valid JSON.
<a id="applying-changes" class="fas fa-hashtag fa-fw documentation-anchor" href="#applying-changes"></a>Applying changes
After making changes to a plugin configuration file, reload the plugin in the server console by using the oxide.reload
command. For example:
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.reload MyPlugin </code>
Continue to <a href="https://umod.org/documentation/umod/plugins/permissions">setting permissions</a>..
Plugin installation
Installing uMod plugins usually only takes a few mouse clicks.
<a id="server-requirements" class="fas fa-hashtag fa-fw documentation-anchor" href="#server-requirements"></a>Server requirements
To install the plugin on the server, the server provider must support Oxide 2.0 or higher, else the plugins will not load or do anything.
If the server is not online, start it. Then, check that Oxide is fully installed by testing the oxide.version
chat or console command.
<a id="download-the-source-code" class="fas fa-hashtag fa-fw documentation-anchor" href="#download-the-source-code"></a>Download the source code
Download a plugin from the <a href="https://umod.org/plugins">plugins page</a>;
Do not rename the plugin or change the file extension.
<a id="remote-server" class="fas fa-hashtag fa-fw documentation-anchor" href="#remote-server"></a>Remote server
If the server is not hosted locally, connect to the server via an FTP client. If unsure of the FTP details, please contact the server host.
<a id="plugins-directory" class="fas fa-hashtag fa-fw documentation-anchor" href="#plugins-directory"></a>Plugins directory
Find the plugins
folder which is located by default at oxide/plugins
if it has not been changed by the server host
<a id="upload-the-source-code" class="fas fa-hashtag fa-fw documentation-anchor" href="#upload-the-source-code"></a>Upload the source code
Upload the plugin file into the "plugins" folder and it will be loaded automatically if Oxide is currently installed
Continue to <a href="https://umod.org/documentation/umod/plugins/configuration">configuring the plugin</a>..
<a id="updating" class="fas fa-hashtag fa-fw documentation-anchor" href="#updating"></a>Updating
If a plugin is already installed and an update is available simply overwrite the original (.cs) file and the new version will be loaded automatically.
Plugin configuration
Most plugins will generate a JSON configuration file once loaded. With this file, a server owner may change how a plugin works.
<a id="config-directory" class="fas fa-hashtag fa-fw documentation-anchor" href="#config-directory"></a>Config directory
Configuration files are found in the config
folder which is located by default in oxide/config
(unless the server host has moved it).
<a id="file-name" class="fas fa-hashtag fa-fw documentation-anchor" href="#file-name"></a>File name
A plugin configuration file will have the same name as the plugin itself.
For example, a plugin that is installed as MyPlugin.cs
(if it is configurable) will be accompanied by a JSON file named MyPlugin.json
Do not rename the configuration file or change the file extension.
If a plugin is installed but not configurable, no configuration file will be present.
If a plugin is configurable but no configuration file is available, the plugin may be broken; in this case, check the log files under the oxide/logs
directory for errors.
<a id="valid-json" class="fas fa-hashtag fa-fw documentation-anchor" href="#valid-json"></a>Valid JSON
All plugin configuration files are saved as JSON (JavaScript Object Notation). Configuration files must be valid JSON. Use a validator such as <a href="https://jsonlint.com">jsonlint.com</a> to ensure the configuration is valid JSON.
<a id="applying-changes" class="fas fa-hashtag fa-fw documentation-anchor" href="#applying-changes"></a>Applying changes
After making changes to a plugin configuration file, reload the plugin in the server console by using the oxide.reload
command. For example:
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.reload MyPlugin </code>
Continue to <a href="https://umod.org/documentation/umod/plugins/permissions">setting permissions</a>..
- <a data-uid="Bnz9tlJSYX2IBQJv" data-level="2" href="#players">Players</a>
<a class="fa fa-caret-down pl-2 pr-2 cursor-pointer" data-children="5" type="button" data-toggle="collapse" data-target="#Bnz9tlJSYX2IBQJv" aria-expanded="false" aria-controls="Bnz9tlJSYX2IBQJv"></a>
- <a data-uid="nCrUNtoZaKXyEqzC" data-level="3" href="#grant-a-permission-to-an-individual-player">Grant a permission to an individual player</a>
- <a data-uid="CJTunfCjXLe6Bi7o" data-level="3" href="#revoke-a-permission-from-an-individual-player">Revoke a permission from an individual player</a>
- <a data-uid="RWZGnlDqgMqGHKCy" data-level="3" href="#show-a-players-permissions">Show a player's permissions</a>
- <a data-uid="fd7izLt2u0C9pYBY" data-level="3" href="#showing-which-player-or-group-has-a-permission">Showing which player or group has a permission</a>
- <a data-uid="rMgloOHcQdvU597f" data-level="2" href="#groups">Groups</a>
<a class="fa fa-caret-down pl-2 pr-2 cursor-pointer" data-children="10" type="button" data-toggle="collapse" data-target="#rMgloOHcQdvU597f" aria-expanded="false" aria-controls="rMgloOHcQdvU597f"></a>
- <a data-uid="jxTTK9lXN8JzzYfz" data-level="3" href="#grant-a-permission-to-an-entire-group">Grant a permission to an entire group</a>
- <a data-uid="xSvR47ZrHK6f0h4r" data-level="3" href="#revoke-a-permission-from-a-group">Revoke a permission from a group</a>
- <a data-uid="XRLiwWEhwTHnyFrI" data-level="3" href="#adding-a-player-to-an-existing-group">Adding a player to an existing group</a>
- <a data-uid="H6sKCGAmJFBNsumx" data-level="3" href="#removing-a-player-from-an-existing-group">Removing a player from an existing group</a>
- <a data-uid="LTLwQGpLbuoBgWWQ" data-level="3" href="#adding-an-entirely-new-group">Adding an entirely new group</a>
- <a data-uid="cdeNvroEHbtIBdp3" data-level="3" href="#removing-an-existing-group">Removing an existing group</a>
- <a data-uid="LSO6Nk1TW0WQ0HN1" data-level="3" href="#setting-the-title-or-rank-of-a-group">Setting the title or rank of a group</a>
- <a data-uid="t7DIePJYM6jE4ubM" data-level="3" href="#setting-the-parent-group-of-another-group">Setting the parent group of another group</a>
- <a data-uid="QiHzNUN919wDCz8B" data-level="3" href="#showing-a-groups-members-and-permissions">Showing a group's members and permissions</a>
- <a data-uid="XBLoFKBpsXs8L6z3" data-level="2" href="#showing-all-groups-or-permissions">Showing all groups or permissions</a>
- <a data-uid="PDO58X5rNEnQPUgt" data-level="2" href="#using-wildcards">Using wildcards</a>
- <a data-uid="8ZhknRVnJwkYnNu2" data-level="2" href="#conclusion">Conclusion</a>
Permissions
Permissions allows server owners to give players unique abilities and benefits on their servers.
Administering permissions is easy; simply enter the desired command and you're done! If your server does not have a console, you can use any compatible RCON tool or remote console to send the commands to the server. Most Oxide/uMod-supported games also support the permission commands in the chat, or will soon.
For this guide, the permission epicstuff.use
will be used as an example. Keep in mind that permissions only exist if provided by a plugin or Oxide/uMod itself.
By default, the groups that are created by Oxide/uMod are: admin and default. These can be changed by editing those under the umod.config.json file. The admin group will automatically be assigned to players that are recognized as admin by the server. The "default" group will automatically be assigned to ALL players that connect to the server.
<a id="players" class="fas fa-hashtag fa-fw documentation-anchor" href="#players"></a>Players
<a id="grant-a-permission-to-an-individual-player" href="#grant-a-permission-to-an-individual-player"></a>Grant a permission to an individual player
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.grant player Wulf epicstuff.use </code>
<a id="revoke-a-permission-from-an-individual-player" href="#revoke-a-permission-from-an-individual-player"></a>Revoke a permission from an individual player
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.revoke player Wulf epicstuff.use </code>
<a id="show-a-players-permissions" href="#show-a-players-permissions"></a>Show a player's permissions
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.show player Wulf </code>
<a id="showing-which-player-or-group-has-a-permission" href="#showing-which-player-or-group-has-a-permission"></a>Showing which player or group has a permission
Sometimes this command is helpful when tracking down who has a permission.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.show perm epicstuff.use </code>
<a id="groups" class="fas fa-hashtag fa-fw documentation-anchor" href="#groups"></a>Groups
<a id="grant-a-permission-to-an-entire-group" href="#grant-a-permission-to-an-entire-group"></a>Grant a permission to an entire group
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.grant group admin epicstuff.use </code>
<a id="revoke-a-permission-from-a-group" href="#revoke-a-permission-from-a-group"></a>Revoke a permission from a group
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.revoke group admin epicstuff.use </code>
<a id="adding-a-player-to-an-existing-group" href="#adding-a-player-to-an-existing-group"></a>Adding a player to an existing group
Adding a player to a group will give them all of the permissions assigned to that group.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.usergroup add Wulf admin </code>
<a id="removing-a-player-from-an-existing-group" href="#removing-a-player-from-an-existing-group"></a>Removing a player from an existing group
Removing a player from a group will remove from them all of the permissions assigned to that group.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.usergroup remove Wulf admin </code>
<a id="adding-an-entirely-new-group" href="#adding-an-entirely-new-group"></a>Adding an entirely new group
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group add vip </code>
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group add vip VIP 0 </code>
<a id="removing-an-existing-group" href="#removing-an-existing-group"></a>Removing an existing group
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group remove vip </code>
<a id="setting-the-title-or-rank-of-a-group" href="#setting-the-title-or-rank-of-a-group"></a>Setting the title or rank of a group
The group title is usually a short description of a group, sometimes used for chat titles. The rank is a number which sorts a group based on its importance.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group set vip "[VIP Member]" </code>
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group set vip "[VIP Member]" 1 </code>
<a id="setting-the-parent-group-of-another-group" href="#setting-the-parent-group-of-another-group"></a>Setting the parent group of another group
A group will inherit all permissions from its parent group.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.group parent admin default </code>
<a id="showing-a-groups-members-and-permissions" href="#showing-a-groups-members-and-permissions"></a>Showing a group's members and permissions
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.show group admin </code>
<a id="showing-all-groups-or-permissions" class="fas fa-hashtag fa-fw documentation-anchor" href="#showing-all-groups-or-permissions"></a>Showing all groups or permissions
To show all of the permission groups, simple use the command below.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.show groups </code>
The show all of the registered permissions from plugins and Oxide/uMod, use the command below.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.show perms </code>
<a id="using-wildcards" class="fas fa-hashtag fa-fw documentation-anchor" href="#using-wildcards"></a>Using wildcards
A wildcard is something that covers multiple things at once time. For permissions, this is the * symbol. You can use the wildcard (*) to grant multiple permissions at one time. This can be done with all permissions or per plugin based on prefix.
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.grant group admin * </code>
<button class="btn btn-sm btn-secondary copy-button text-nowrap btn-copy" style="display: none;"><i class="fa fa-copy mr-1"></i><div class="d-inline-block d-sm-none d-md-inline-block">Copy</div></button><code class="copyable">oxide.grant player Wulf umod.* </code>
<a id="conclusion" class="fas fa-hashtag fa-fw documentation-anchor" href="#conclusion"></a>Conclusion
The same commands are also available with the "o." prefix (ex. "o.grant").
That's the basics to permissions for Oxide/uMod. Permissions give you a fantastic way to manage staff without worrying about them abusing powers from the game's admin functionality (such as flight, noclip, super speed, etc.) so they can still enjoy the game but also help monitor your server at the same time.
- <a data-uid="F78LNgl7iHIQQobq" data-level="2" href="#data-directory">Data directory</a>
- <a data-uid="oUlPrABSjWWT4BoY" data-level="2" href="#file-names">File names</a>
- <a data-uid="3T26DKsBKk9LCzd2" data-level="2" href="#valid-json">Valid JSON</a>
Data Files
Data files are JSON
files that plugins may use to store arbitrary data.
<a id="data-directory" class="fas fa-hashtag fa-fw documentation-anchor" href="#data-directory"></a>Data directory
Data files may be found in the data
folder which located by default in oxide/data
(unless the server host has moved it).
<a id="file-names" class="fas fa-hashtag fa-fw documentation-anchor" href="#file-names"></a>File names
Data files do not follow any naming convention, a plugin author may specify any name when creating a data file.
It is recommended to plugin authors, when creating a large number of data files, to create them in a subdirectory specific to their plugin.
<a id="valid-json" class="fas fa-hashtag fa-fw documentation-anchor" href="#valid-json"></a>Valid JSON
All plugin data files are saved as JSON (JavaScript Object Notation). Data files must be valid JSON. If editing a data file manually, use a validator such as <a href="https://jsonlint.com">jsonlint.com</a> to ensure the data file is valid JSON.