Big database with light weight way to save it to prevent lag

Supported Games

This plugin has no usage on its own. Other plugins may require it for the storing or fetching of player data.

You could also use the data this plugin stores for things such as websites or backend management systems.(Presuming you are using MySQL)


  "Data Type : 0 (Files) or 1 (SQLite) or 2 (MySQL)": 2,
  "MySQL - Database Name": "rust",
  "MySQL - Host": "localhost",
  "MySQL - Password": "toor",
  "MySQL - Port": 3306,
  "MySQL - Username": "root",
  "MySQL/SQLite - Database Table Name": "PlayerDatabase",
  "SQLite - Database Name": "playerdatabase.db"

Files is the default mode.


Files Option:In server/serveridentity/oxide/data, create a folder named: playerdatabase

SQLite option:Nothing to do. your DB will be in oxide/data/playerdatabase.db by default

MySQL option:

  1. You will need to setup the MySQL database.
  2. The plugin will create on it's own the table, and set on it's own all the fields. You have nothing to do exept making a database with permissions that will let the plugin edit the database.
  3. The table name will be "playerdatabase"

Reset Data

Files Option

  1. Unload the plugin/shutdown the server
  2. Delete oxide/data/PlayerDatabase.json
  3. Empty the folder: oxide/data/playerdatabase
  4. Reload the plugin/restart your server

SQLite option

  1. Unload the plugin/shutdown the server
  2. Delete oxide/data/playerdatabase.db
  3. Reload the plugin / restart your server

MySQL option

  1. Unload the plugin/shutdown the server
  2. Empty or delete the table in your mysql db
  3. Reload the plugin/restart your server

For Developers

You need this as reference:using Newtonsoft.Json;

Setting values

Set a value as string/int/float/etc

PlayerDatabase.Call("SetPlayerData", UserIDString, "KeyName", "Value");

Set a value as Dictionary/List/Class/etc

var list = new List<string>{ "hi", "ho", "hey" };
PlayerDatabase.Call("SetPlayerData", UserIDString, "KeyName",list);

Getting values

Get a value as string/int/float/etc

var name = (string)PlayerDatabase.Call("GetPlayerData", UserIDString, "name") ?? "Unknown

Get a value as List/Dictionary/Class/etc:

var list = new List<string>();
var success = PlayerDatabase.Call("GetPlayerDataRaw", UserIDString, "KeyName");
if (success is string)
    list = JsonConvert.DeserializeObject<List<string>>((string)success);
This plugin is unlicensed and the original author reserves all rights to it.

The original author may request that this plugin be removed and there is a risk that the plugin may be unavailable in the future.

Note that the current maintainer may not have permission to assign a license to the plugin if they are not the original author, so explicit permission would need to be obtained from the original author in order for the plugin to remain openly available and guarantee that it will be around for all to enjoy going forward.

138 watchers