NAV
csharp lua coffeescript javascript python

Getting Started

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", 0.1)]
    [Description("Makes epic stuff happen")]

    class EpicPlugin : RustPlugin
    {
        // The rest of the code and magic
    }
}
PLUGIN.Title = "EpicPlugin"
PLUGIN.Author = "Unknown"
PLUGIN.Version = V(0, 1, 0)
PLUGIN.Description = "Makes epic stuff happen"

-- The rest of the code and magic
Title: "EpicPlugin"
Author: "Unknown"
Version: V(0, 1, 0)
Description: "Makes epic stuff happen"

# The rest of the code and magic
var EpicPlugin = {
  Title : "EpicPlugin",
  Author : "Unknown",
  Version : V(0, 1, 0),
  Description : "Makes epic stuff happen",

  // The rest of the code and magic
}
class EpicPlugin:
  def __init__(self):
    self.Title = "EpicPlugin"
    self.Author = "Unknown"
    self.Version = V(0, 1, 0)
    self.Description = "Makes epic stuff happen"

  # The rest of the code and magic

The Title variable is what defines your plugin. This should be a unique codename or short description such as Pets.

The Author variable is used to show who made the plugin. This should match your OxideMod.org username if releasing.

The Version variable is used to tell if the plugin is outdated or not, and is incremented with each release. Semantic Versioning recommended.

The Description variable helps explain to users what your plugin does, in case the title isn’t enough. Make it good, but not too long!

Universal Hooks

Available for all supported games

7 Days to Die Blockstorm Hide & Hold Out Hurtworld Reign of Kings Rust Rust Legacy The Forest Unturned

Init

void Init()
{
    Puts("Init works!");
}
function PLUGIN:Init()
    print("Init works!")
end
Init: function() {
    print("Init works!");
}
Init: ->
    print "Init works!"
def Init():
    print "Init works!"

Loaded

void Loaded()
{
    Puts("Loaded works!");
}
function PLUGIN:Loaded()
    print("Loaded works!")
end
Loaded: function() {
    print("Loaded works!");
}
Loaded: ->
    print "Loaded works!"
def Loaded():
    print "Loaded works!"

Unload

void Unload()
{
    Puts("Save files, destroy timers, etc");
}
function PLUGIN:Unload()
    print("Save files, destroy timers, etc")
end
Unload: ->
    print "Save files, destroy timers, etc."
Unload: function() {
    print("Save files, destroy timers, etc");
}
def Unload():
    print "Save files, destroy timers, etc."

LoadDefaultConfig

protected override void LoadDefaultConfig()
{
    Puts("Default configuration created");
}
function PLUGIN:LoadDefaultConfig()
    print("Default configuration created")
end
LoadDefaultConfig: ->
    print "Default configuration created"
LoadDefaultConfig: function() {
    print("Default configuration created");
}
def LoadDefaultConfig():
    print "Default configuration created"

OnFrame

void OnFrame()
{
    Puts("OnFrame works!");
}
function PLUGIN:OnFrame()
    print("OnFrame works!")
end
OnFrame: ->
    print "OnFrame works!"
OnFrame: function() {
    print("OnFrame works!");
}
def OnFrame():
    print "OnFrame works!"

OnPluginLoaded

void OnPluginLoaded(Plugin name)
{
    Puts($"Plugin '{name}' has been loaded");
}
function PLUGIN:OnPluginLoaded(name)
    print("Plugin '" .. name .. "' has been loaded")
end
OnPluginLoaded: (name) =>
    print "Plugin '#{name}' has been loaded"
OnPluginLoaded: function(name) {
    print("Plugin '" + name + "' has been loaded");
}
def OnPluginLoaded(name):
    print "OnPluginLoaded works!"

OnPluginUnloaded

void OnPluginUnloaded(Plugin name)
{
    Puts($"Plugin '{name}' has been unloaded");
}
function PLUGIN:OnPluginUnloaded(name)
    print("Plugin '" .. name .. "' has been unloaded")
end
OnPluginUnloaded: (name) =>
    print "Plugin '#{name}' has been unloaded"
OnPluginUnloaded: function(name) {
    print("Plugin '" + name + "' has been unloaded");
}
def OnPluginUnloaded(name):
    print "OnPluginUnloaded works!"

OnServerInitialized

void OnServerInitialized()
{
    Puts("OnServerInitialized works!");
}
function PLUGIN:OnServerInitialized()
    print("OnServerInitialized works!")
end
OnServerInitialized: ->
    print "OnServerInitialized works!"
OnServerInitialized: function() {
    print("OnServerInitialized works!");
}
def OnServerInitialized():
    print "OnServerInitialized works!"

OnServerSave

void OnServerSave
{
    Puts("OnServerSave works!");
}
function PLUGIN:OnServerSave()
    print("OnServerSave works!")
end
OnServerSave: ->
    print "OnServerSave works!"
OnServerSave: function() {
    print("OnServerSave works!");
}
def OnServerSave():
    print "OnServerSave works!"

OnUserPermissionGranted

void OnUserPermissionGranted(string id, string perm)
{
    Puts($"User '{id}' granted permission: {perm}");
}
function PLUGIN:OnUserPermissionGranted(id, perm)
    print("User '" .. id .. "' granted permission: " .. perm)
end
OnUserPermissionGranted: (id, perm) =>
    print "User '#{id}' granted permission: #{perm}"
OnUserPermissionGranted: function(id, perm) {
    print("User '" + id + "' granted permission: " + perm);
}
def OnUserPermissionGranted(name, perm):
    print "OnUserPermissionGranted works!"

OnUserPermissionRevoked

void OnUserPermissionRevoked(string id, string perm)
{
    Puts($"User '{id}' revoked permission: {perm}");
}
function PLUGIN:OnUserPermissionRevoked(id, perm)
    print("User '" .. id .. "' revoked permission: " .. perm)
end
OnUserPermissionRevoked: (id, perm) =>
    print "User '#{id}' revoked permission: #{perm}"
OnUserPermissionRevoked: function(id, perm) {
    print("User '" + id + "' revoked permission: " + perm);
}
def OnUserPermissionRevoked(id, perm):
    print "OnUserPermissionRevoked works!"

OnUserGroupAdded

void OnUserGroupAdded(string id, string name)
{
    Puts($"User '{id}' added to group: {name}");
}
function PLUGIN:OnUserGroupAdded(id, name)
    print("User '" .. id .. "' added to group: " .. name)
end
OnUserGroupAdded: (id, name) =>
    print "User '#{id}' added to group: #{name}"
OnUserGroupAdded: function(id, name) {
    print("User '" + id + "' added to group: " + name);
}
def OnUserGroupAdded(id, name):
    print "OnUserGroupAdded works!"

OnUserGroupRemoved

void OnUserGroupRemoved(string id, string name)
{
    Puts($"User '{id}' removed from group: {name}");
}
function PLUGIN:OnUserGroupRemoved(id, name)
    print("User '" .. id .. "' removed from group: " .. name)
end
OnUserGroupRemoved: (id, name) =>
    print "User '#{id}' removed from group: #{name}"
OnUserGroupRemoved: function(id, name) {
    print("User '" + id + "' removed from group: " + name);
}
def OnUserGroupRemoved(id, name):
    print "OnUserGroupRemoved works!"

OnGroupPermissionGranted

void OnGroupPermissionGranted(string name, string perm)
{
    Puts($"Group '{name}' granted permission: {perm}");
}
function PLUGIN:OnGroupPermissionGranted(name, perm)
    print("Group '" .. name .. "' granted permission: " .. perm)
end
OnGroupPermissionGranted: (name, perm) =>
    print "Group '#{name}' granted permission: #{perm}"
OnGroupPermissionGranted: function(name, perm) {
    print("Group '" + name + "' granted permission: " + perm);
}
def OnGroupPermissionGranted(name, perm):
    print "OnGroupPermissionGranted works!"

OnGroupPermissionRevoked

void OnGroupPermissionRevoked(string name, string perm)
{
    Puts($"Group '{name}' revoked permission: {perm}");
}
function PLUGIN:OnGroupPermissionRevoked(name, perm)
    print("Group '" .. name .. "' revoked permission: " .. perm)
end
OnGroupPermissionRevoked: (name, perm) =>
    print "Group '#{name}' revoked permission: #{perm}"
OnGroupPermissionRevoked: function(name, perm) {
    print("Group '" + name + "' revoked permission: " + perm);
}
def OnGroupPermissionRevoked(name, perm):
    print "OnGroupPermissionRevoked works!"

Server Hooks

OnMessagePlayer

void OnMessagePlayer(string message, BasePlayer player)
{
    Puts("OnMessagePlayer works!");
}
function PLUGIN:OnMessagePlayer(message, player)
    print("OnMessagePlayer works!")
end
OnMessagePlayer: (message, player) =>
    print "OnMessagePlayer works!"
OnMessagePlayer: function(message, player) {
    print("OnMessagePlayer works!");
}
def OnMessagePlayer(self, message, player):
    print "OnMessagePlayer works!"

OnServerCommand

void OnServerCommand(ConsoleSystem.Arg arg)
{
    Puts("OnServerCommand works!");
}
function PLUGIN:OnServerCommand(arg)
    print("OnServerCommand works!")
end
OnServerCommand: (arg) =>
    print "OnServerCommand works!"
OnServerCommand: function(arg) {
    print("OnServerCommand works!");
}
def OnServerCommand(self, arg):
    print "OnServerCommand works!"

OnServerMessage

void OnServerMessage(string message, string name, string color, ulong id)
{
    Puts("OnServerMessage works!");
}
function PLUGIN:OnServerMessage(message, name, color, id)
    print("OnServerMessage works!")
end
OnServerMessage: (message, name, color, id) =>
    print "OnServerMessage works!"
OnServerMessage: function(message, name, color, id) {
    print("OnServerMessage works!");
}
def OnServerMessage(self, message, name, color, id):
    print "OnServerMessage works!"

OnTick

void OnTick()
{
    Puts("OnTick works!");
}
function PLUGIN:OnTick()
    print("OnTick works!")
end
OnTick: ->
    print "OnTick works!"
OnTick: function() {
    print("OnTick works!");
}
def OnTick(self):
    print "OnTick works!"

Player Hooks

CanBeTargeted (autoturret)

void CanBeTargeted(BasePlayer player, AutoTurret turret) 
{
    Puts("CanBeTargeted works!");
}
function PLUGIN:CanBeTargeted(player, turret)
    print("CanBeTargeted works!")
end
CanBeTargeted: function(player, turret) {
    print("CanBeTargeted works!");
}
We need a CoffeeScript example here
def CanBeTargeted(self, player, turret):
    print "CanBeTargeted works!"

CanBeTargeted (helicopter)

void CanBeTargeted(BasePlayer player, HelicopterTurret turret) 
{
    Puts("CanBeTargeted works!");
}
function PLUGIN:CanBeTargeted(player, turret)
    print("CanBeTargeted works!")
end
CanBeTargeted: function(player, turret) {
    print("CanBeTargeted works!");
}
We need a CoffeeScript example here
def CanBeTargeted(self, player, turret):
    print "CanBeTargeted works!"

CanBeWounded

void CanBeWounded(BasePlayer player, HitInfo info) 
{
    Puts("CanBeWounded works!");
}
function PLUGIN:CanBeWounded(player, info)
    print("CanBeWounded works!")
end
CanBeWounded: function(player, info) {
    print("CanBeWounded works!");
}
We need a CoffeeScript example here
def CanBeWounded(self, player, info):
    print "CanBeWounded works!"

CanBypassQueue

void CanBypassQueue(Network.Connection connection)
{
    Puts("CanBypassQueue works!");
}
function PLUGIN:CanBypassQueue(connection)
    print("CanBypassQueue works!")
end
CanBypassQueue: function(connection) {
    print("CanBypassQueue works!");
}
We need a CoffeeScript example here
def CanBypassQueue(self, connection):
    print "CanBypassQueue works!"

CanClientLogin

void CanClientLogin(Network.Connection connection)
{
    Puts("CanClientLogin works!");
}
function PLUGIN:CanClientLogin(connection)
    print("CanClientLogin works!")
end
CanClientLogin: function(connection) {
    print("CanClientLogin works!");
}
We need a CoffeeScript example here
def CanClientLogin(self, connection):
    print "CanClientLogin works!"

CanEquipItem

void CanEquipItem(PlayerInventory inventory, Item item)
{
    Puts("CanEquipItem works!");
}
function PLUGIN:CanEquipItem(inventory, item)
    print("CanEquipItem works!")
end
CanEquipItem: function(inventory, item) {
    print("CanEquipItem works!");
}
We need a CoffeeScript example here
def CanEquipItem(self, inventory, item):
    print "CanEquipItem works!"

CanLootPlayer

void CanLootPlayer(BasePlayer target, BasePlayer looter) 
{
    Puts("CanLootPlayer works!");
}
function PLUGIN:CanLootPlayer(player, target)
    print("CanLootPlayer works!")
end
CanLootPlayer: function(player, target) {
    print("CanLootPlayer works!");
}
We need a CoffeeScript example here
def CanLootPlayer(self, player, target):
    print "CanLootPlayer works!"

CanWearItem

void CanWearItem(PlayerInventory inventory, Item item)
{
    Puts("CanWearItem works!");
}
function PLUGIN:CanWearItem(inventory, item)
    print("CanWearItem works!")
end
CanWearItem: function(inventory, item) {
    print("CanWearItem works!");
}
We need a CoffeeScript example here
def CanWearItem(self, inventory, item):
    print "CanWearItem works!"

OnExplosiveThrown

void OnExplosiveThrown(BasePlayer player, BaseEntity entity)
{
    Puts("OnExplosiveThrown works!");
}
function PLUGIN:OnExplosiveThrown(player, entity)
    print("OnExplosiveThrown works!")
end
OnExplosiveThrown: function(player, entity) {
    print("OnExplosiveThrown works!");
}
We need a CoffeeScript example here
def OnExplosiveThrown(self, player, entity):
    print "OnExplosiveThrown works!"

OnFindSpawnPoint

void OnFindSpawnPoint()
{
    Puts("OnFindSpawnPoint works!");
}
function PLUGIN:OnFindSpawnPoint()
    print("OnFindSpawnPoint works!")
end
OnFindSpawnPoint: function() {
    print("OnFindSpawnPoint works!");
}
We need a CoffeeScript example here
def OnFindSpawnPoint(self):
    print "OnFindSpawnPoint works!"

OnPlayerAttack

void OnPlayerAttack(BasePlayer attacker, HitInfo info)
{
    Puts("OnPlayerAttack works!");
}
function PLUGIN:OnPlayerAttack(attacker, info)
    print("OnPlayerAttack works!")
end
OnPlayerAttack: function(attacker, info) {
    print("OnPlayerAttack works!");
}
We need a CoffeeScript example here
def OnPlayerAttack(self, attacker, info):
    print "OnPlayerAttack works!"

OnPlayerChat

void OnPlayerChat(ConsoleSystem.Arg arg)
{
    Puts("OnPlayerChat works!");
}
function PLUGIN:OnPlayerChat(arg)
    print("OnPlayerChat works!")
end
OnPlayerChat: function(arg) {
    print("OnPlayerChat works!");
}
We need a CoffeeScript example here
def OnPlayerChat(self, arg):
    print "OnPlayerChat works!"

OnPlayerConnected

void OnPlayerConnected(Network.Message packet)
{
    Puts("OnPlayerConnected works!");
}
function PLUGIN:OnPlayerConnected(packet)
    print("OnPlayerConnected works!")
end
OnPlayerConnected: function(packet) {
    print("OnPlayerConnected works!");
}
We need a CoffeeScript example here
def OnPlayerConnected(self, packet):
    print "OnPlayerConnected works!"

OnPlayerDisconnected

void OnPlayerDisconnected(BasePlayer player, string reason)
{
    Puts("OnPlayerDisconnected works!");
}
function PLUGIN:OnPlayerDisconnected(player, reason)
    print("OnPlayerDisconnected works!")
end
OnPlayerDisconnected: function(player, reason) {
    print("OnPlayerDisconnected works!");
}
We need a CoffeeScript example here
def OnPlayerDisconnected(self, player, reason):
    print "OnPlayerDisconnected works!"

OnPlayerInit

void OnPlayerInit(BasePlayer player)
{
    Puts("OnPlayerInit works!");
}
function PLUGIN:OnPlayerInit(player)
    print("OnPlayerInit works!")
end
OnPlayerInit: function(player) {
    print("OnPlayerInit works!");
}
We need a CoffeeScript example here
def OnPlayerInit(self, player):
    print "OnPlayerInit works!"

OnPlayerInput

void OnPlayerInput(BasePlayer player, InputState input)
{
    Puts("OnPlayerInput works!");
}
function PLUGIN:OnPlayerInput(player, input)
    print("OnPlayerInput works!")
end
OnPlayerInput: function(player, input) {
    print("OnPlayerInput works!");
}
We need a CoffeeScript example here
def OnPlayerInput(self, player, input):
    print "OnPlayerInput works!"

OnPlayerLanded

void OnPlayerLanded(BasePlayer player)
{
    Puts("OnPlayerLanded works!");
}
function PLUGIN:OnPlayerLanded(player)
    print("OnPlayerLanded works!")
end
OnPlayerLanded: function(player) {
    print("OnPlayerLanded works!");
}
We need a CoffeeScript example here
def OnPlayerLanded(self, player):
    print "OnPlayerLanded works!"

OnPlayerRespawn

void OnPlayerRespawn(BasePlayer player)
{
    Puts("OnPlayerRespawn works!");
}
function PLUGIN:OnPlayerRespawn(player)
    print("OnPlayerRespawn works!")
end
OnPlayerRespawn: function(player) {
    print("OnPlayerRespawn works!");
}
We need a CoffeeScript example here
def OnPlayerRespawn(self, player):
    print "OnPlayerRespawn works!"

OnPlayerRespawned

void OnPlayerRespawned(BasePlayer player)
{
    Puts("OnPlayerRespawned works!");
}
function PLUGIN:OnPlayerRespawned(player)
    print("OnPlayerRespawned works!")
end
OnPlayerRespawned: function(player) {
    print("OnPlayerRespawned works!");
}
We need a CoffeeScript example here
def OnPlayerRespawned(self, player):
    print "OnPlayerRespawned works!"

OnLootEntity

void OnLootEntity(BasePlayer player, BaseEntity entity)
{
    Puts("OnLootEntity works!");
}
function PLUGIN:OnLootEntity(player, target)
    print("OnLootEntity works!")
end
OnLootEntity: function(player, target) {
    print("OnLootEntity works!");
}
We need a CoffeeScript example here
def OnLootEntity(self, player, target):
    print "OnLootEntity works!"

OnLootPlayer

void OnLootPlayer(BasePlayer player, BasePlayer target)
{
    Puts("OnLootPlayer works!");
}
function PLUGIN:OnLootPlayer(player, target)
    print("OnLootPlayer works!")
end
OnLootPlayer: function(player, target) {
    print("OnLootPlayer works!");
}
We need a CoffeeScript example here
def OnLootPlayer(self, player, target):
    print "OnLootPlayer works!"

OnLootItem

void OnLootItem(BasePlayer player, Item item)
{
    Puts("OnLootItem works!");
}
function PLUGIN:OnLootItem(player, item)
    print("OnLootItem works!")
end
OnLootItem: function(player, item) {
    print("OnLootItem works!");
}
We need a CoffeeScript example here
def OnLootItem(self, player, target):
    print "OnLootItem works!"

OnMeleeThrown

void OnMeleeThrown(BasePlayer player, Item item)
{
    Puts("OnMeleeThrown works!");
}
function PLUGIN:OnMeleeThrown(player, item)
    print("OnMeleeThrown works!")
end
OnMeleeThrown: function(player, item) {
    print("OnMeleeThrown works!");
}
We need a CoffeeScript example here
def OnMeleeThrown(self, player, item):
    print "OnMeleeThrown works!"

OnPlayerSleepEnded

void OnPlayerSleepEnded(BasePlayer player)
{
    Puts("OnPlayerSleepEnded works!");
}
function PLUGIN:OnPlayerSleepEnded(player)
    print("OnPlayerSleepEnded works!")
end
OnPlayerSleepEnded: function(player) {
    print("OnPlayerSleepEnded works!");
}
We need a CoffeeScript example here
def OnPlayerSleepEnded(self, player):
    print "OnPlayerSleepEnded works!"

OnRocketLaunched

void OnRocketLaunched(BasePlayer player, BaseEntity entity)
{
    Puts("OnRocketLaunched works!");
}
function PLUGIN:OnRocketLaunched(player, entity)
    print("OnRocketLaunched works!")
end
OnRocketLaunched: function(player, entity) {
    print("OnRocketLaunched works!");
}
We need a CoffeeScript example here
def OnRocketLaunched(self, player, entity):
    print "OnRocketLaunched works!"

OnRunPlayerMetabolism

void OnRunPlayerMetabolism(PlayerMetabolism metabolism)
{
    Puts("OnRunPlayerMetabolism works!");
}
function PLUGIN:OnRunPlayerMetabolism(metabolism)
    print("OnRunPlayerMetabolism works!")
end
OnRunPlayerMetabolism: function(metabolism) {
    print("OnRunPlayerMetabolism works!");
}
We need a CoffeeScript example here
def OnRunPlayerMetabolism(self, metabolism):
    print "OnRunPlayerMetabolism works!"

OnNewConnection

void OnNewConnection(Network.Connection connection)
{
    Puts("OnNewConnection works!");
}
function PLUGIN:OnNewConnection(connection)
    print("OnNewConnection works!")
end
OnNewConnection: function(connection) {
    print("OnNewConnection works!");
}
We need a CoffeeScript example here
def OnNewConnection(self, connection):
    print "OnNewConnection works!"

OnUserApprove

void OnUserApprove(Network.Connection connection)
{
    Puts("OnUserApprove works!");
}
function PLUGIN:OnUserApprove(connection)
    print("OnUserApprove works!")
end
OnUserApprove: function(connection) {
    print("OnUserApprove works!");
}
We need a CoffeeScript example here
def OnUserApprove(self, connection):
    print "OnUserApprove works!"

OnWeaponFired

void OnWeaponFired(BaseProjectile projectile, BasePlayer player, ItemModProjectile mod, ProtoBuf.ProjectileShoot projectiles)
{
    Puts("OnWeaponFired works!");
}
function PLUGIN:OnWeaponFired(projectile, player, mod, projectiles)
    print("OnWeaponFired works!")
end
OnWeaponFired: function(projectile, player, mod, projectiles) {
    print("OnWeaponFired works!");
}
We need a CoffeeScript example here
def OnWeaponFired(self, projectile, player, mod, projectiles):
    print "OnWeaponFired works!"

Experience Hooks

CanSpendXp

object CanSpendXp(ulong id, int amount, string item) 
{
    Puts("CanSpendXp works!");
    return null;
}
function PLUGIN:CanSpendXp(id, amount, item)
    print("CanSpendXp works!")
end
CanSpendXp: function(id, amount, item) {
    print("CanSpendXp works!");
}
We need a CoffeeScript example here
def CanSpendXp(self, id, amount, item):
    print "CanSpendXp works!"

OnXpEarn

object OnXpEarn(ulong id, float amount, string source)
{
    Puts("OnXpEarn works!");
    return 1f;
}
function PLUGIN:OnXpEarn(id, amount, category)
    print("OnXpEarn works!")
end
OnXpEarn: function(id, amount, category) {
    print("OnXpEarn works!");
}
We need a CoffeeScript example here
def OnXpEarn(self, id, amount, category):
    print "OnXpEarn works!"

OnXpEarned

void OnXpEarned(ulong id, float amount, string source)
{
    Puts("OnXpEarned works!");
}
function PLUGIN:OnXpEarned(id, amount, source)
    print("OnXpEarned works!")
end
OnXpEarned: function(id, amount, source) {
    print("OnXpEarned works!");
}
We need a CoffeeScript example here
def OnXpEarned(self, id, amount, source):
    print "OnXpEarned works!"

OnXpReset

void OnXpReset(BasePlayer player)
{
    Puts("OnXpReset works!");
}
function PLUGIN:OnXpReset(player)
    print("OnXpReset works!")
end
OnXpReset: function(player) {
    print("OnXpReset works!");
}
We need a CoffeeScript example here
def OnXpReset(self, player):
    print "OnXpReset works!"

OnXpSet

void OnXpSet(ulong id, float amount)
{
    Puts("OnXpSet works!");
}
function PLUGIN:OnXpSet(id, amount)
    print("OnXpSet works!")
end
OnXpSet: function(id, amount) {
    print("OnXpSet works!");
}
We need a CoffeeScript example here
def OnXpSet(self, id, amount):
    print "OnXpSet works!"

OnXpSpent

void OnXpSpent(ulong id, int amount, string item)
{
    Puts("OnXpSpent works!");
}
function PLUGIN:OnXpSpent(id, amount, item)
    print("OnXpSpent works!")
end
OnXpSpent: function(id, amount, item) {
    print("OnXpSpent works!");
}
We need a CoffeeScript example here
def OnXpSpent(self, id, amount, item):
    print "OnXpSpent works!"

Entity Hooks

CanNetworkTo

void CanNetworkTo(BaseNetworkable entity, BasePlayer target)
{
    Puts("CanNetworkTo works!");
}
function PLUGIN:CanNetworkTo(entity, player)
    print("CanNetworkTo works!")
end
CanNetworkTo: function(entity, player) {
    print("CanNetworkTo works!");
}
We need a CoffeeScript example here
def CanNetworkTo(self, entity, player):
    print "CanNetworkTo works!"

OnAirdrop

void OnAirdrop(CargoPlane plane, Vector3 location)
{
    Puts("OnAirdrop works!");
}
function PLUGIN:OnAirdrop(plane, location)
    print("OnAirdrop works!")
end
OnAirdrop: (plane, location) =>
    print "OnAirdrop works!"
OnAirdrop: function(plane, location) {
    print("OnAirdrop works!");
}
def OnAirdrop(self, plane, location):
    print "OnAirdrop works!"

OnEntityDeath

void OnEntityDeath(BaseCombatEntity entity, HitInfo info)
{
    Puts("OnEntityDeath works!");
}
function PLUGIN:OnEntityDeath(entity, info)
    print("OnEntityDeath works!")
end
OnEntityDeath: function(entity, info) {
    print("OnEntityDeath works!");
}
We need a CoffeeScript example here
def OnEntityDeath(self, entity, info):
    print "OnEntityDeath works!"

OnEntityEnter

void OnEntityEnter(TriggerBase trigger, BaseEntity entity)
{
    Puts("OnEntityEnter works!");
}
function PLUGIN:OnEntityEnter(trigger, entity)
    print("OnEntityEnter works!")
end
OnEntityEnter: function(trigger, entity) {
    print("OnEntityEnter works!");
}
We need a CoffeeScript example here
def OnEntityEnter(self, trigger, entity):
    print "OnEntityEnter works!"

OnEntityGroundMissing

void OnEntityGroundMissing(BaseEntity entity)
{
    Puts("OnEntityGroundMissing works!");
}
function PLUGIN:OnEntityGroundMissing(entity)
    print("OnEntityGroundMissing works!")
end
OnEntityGroundMissing: function(entity) {
    print("OnEntityGroundMissing works!");
}
We need a CoffeeScript example here
def OnEntityGroundMissing(self, entity):
    print "OnEntityGroundMissing works!"

OnEntityLeave

void OnEntityLeave(TriggerBase trigger, BaseEntity entity)
{
    Puts("OnEntityLeave works!");
}
function PLUGIN:OnEntityLeave(trigger, entity)
    print("OnEntityLeave works!")
end
OnEntityLeave: function(trigger, entity) {
    print("OnEntityLeave works!");
}
We need a CoffeeScript example here
def OnEntityLeave(self, trigger, entity):
    print "OnEntityLeave works!"

OnEntitySpawned

void OnEntitySpawned(BaseNetworkable entity)
{
    Puts("OnEntitySpawned works!");
}
function PLUGIN:OnEntitySpawned(entity)
    print("OnEntitySpawned works!")
end
OnEntitySpawned: function(entity) {
    print("OnEntitySpawned works!");
}
We need a CoffeeScript example here
def OnEntitySpawned(self, entity):
    print "OnEntitySpawned works!"

OnEntityTakeDamage

void OnEntityTakeDamage(BaseCombatEntity entity, HitInfo info)
{
    Puts("OnEntityTakeDamage works!");
}
function PLUGIN:OnEntityTakeDamage(entity, info)
    print("OnEntityTakeDamage works!")
end
OnEntityTakeDamage: function(entity, info) {
    print("OnEntityTakeDamage works!");
}
We need a CoffeeScript example here
def OnEntityTakeDamage(self, entity, info):
    print "OnEntityTakeDamage works!"

OnHelicopterTarget

void OnHelicopterTarget(HelicopterTurret turret, BaseCombatEntity entity)
{
    Puts("OnHelicopterTarget works!");
}
function PLUGIN:OnHelicopterTarget(turret, BaseCombatEntity entity)
    print("OnHelicopterTarget works!")
end
OnHelicopterTarget: function(turret, BaseCombatEntity entity) {
    print("OnHelicopterTarget works!");
}
We need a CoffeeScript example here
def OnHelicopterTarget(self, turret, BaseCombatEntity entity):
    print "OnHelicopterTarget works!"

OnResourceDepositCreated

void OnResourceDepositCreated(ResourceDepositManager.ResourceDeposit deposit)
{
    Puts("OnResourceDepositCreated works!");
}
function PLUGIN:OnResourceDepositCreated(deposit)
    print("OnResourceDepositCreated works!")
end
OnResourceDepositCreated: function(deposit) {
    print("OnResourceDepositCreated works!");
}
We need a CoffeeScript example here
def OnResourceDepositCreated(self, deposit):
    print "OnResourceDepositCreated works!"

OnTurretTarget

void OnTurretTarget(AutoTurret turret, BaseCombatEntity entity)
{
    Puts("OnTurretTarget works!");
}
function PLUGIN:OnTurretTarget(turret, BaseCombatEntity entity)
    print("OnTurretTarget works!")
end
OnTurretTarget: function(turret, BaseCombatEntity entity) {
    print("OnTurretTarget works!");
}
We need a CoffeeScript example here
def OnTurretTarget(self, turret, BaseCombatEntity entity):
    print "OnTurretTarget works!"

Item Hooks

CanAcceptItem

void CanAcceptItem(ItemContainer container, Item item)
{
    Puts("CanAcceptItem works!");
}
function PLUGIN:CanAcceptItem(container, item)
    print("CanAcceptItem works!")
end
CanAcceptItem: function(container, item) {
    print("CanAcceptItem works!");
}
We need a CoffeeScript example here
def CanAcceptItem(self, container, item):
    print "CanAcceptItem works!"

OnBlueprintReveal

void OnBlueprintReveal(Item item, BasePlayer player)
{
    Puts("OnBlueprintReveal works!");
}
function PLUGIN:OnBlueprintReveal(item)
    print("OnBlueprintReveal works!")
end
OnBlueprintReveal: function(item) {
    print("OnBlueprintReveal works!");
}
We need a CoffeeScript example here
def OnBlueprintReveal(self, item):
    print "OnBlueprintReveal works!"

OnBlueprintRevealed

void OnBlueprintRevealed(Item item, Item revealed, BasePlayer player)
{
    Puts("OnBlueprintRevealed works!");
}
function PLUGIN:OnBlueprintRevealed(item)
    print("OnBlueprintRevealed works!")
end
OnBlueprintRevealed: function(item) {
    print("OnBlueprintRevealed works!");
}
We need a CoffeeScript example here
def OnBlueprintRevealed(self, item):
    print "OnBlueprintRevealed works!"

OnConsumableUse

void OnConsumableUse(Item item)
{
    Puts("OnConsumableUse works!");
}
function PLUGIN:OnConsumableUse(item)
    print("OnConsumableUse works!")
end
OnConsumableUse: function(item) {
    print("OnConsumableUse works!");
}
We need a CoffeeScript example here
def OnConsumableUse(self, item):
    print "OnConsumableUse works!"

OnConsumeFuel

void OnConsumeFuel(BaseOven oven, Item fuel, ItemModBurnable burnable)
{
    Puts("OnConsumeFuel works!");
}
function PLUGIN:OnConsumeFuel(oven, fuel, burnable)
    print("OnConsumeFuel works!")
end
OnConsumeFuel: function(oven, fuel, burnable) {
    print("OnConsumeFuel works!");
}
We need a CoffeeScript example here
def OnConsumeFuel(self, oven, fuel, burnable):
    print "OnConsumeFuel works!"

OnDispenserGather

void OnDispenserGather(ResourceDispenser dispenser, BaseEntity entity, Item item)
{
    Puts("OnDispenserGather works!");
}
function PLUGIN:OnDispenserGather(dispenser, entity, item)
    print("OnDispenserGather works!")
end
OnDispenserGather: function(dispenser, entity, item) {
    print("OnDispenserGather works!");
}
We need a CoffeeScript example here
def OnDispenserGather(self, dispenser, entity, item):
    print "OnDispenserGather works!"

OnHealingItemUse

void OnHealingItemUse(HeldEntity item, BasePlayer target)
{
    Puts("OnHealingItemUse works!");
}
function PLUGIN:OnHealingItemUse(item, target)
    print("OnHealingItemUse works!")
end
OnHealingItemUse: function(item, target) {
    print("OnHealingItemUse works!");
}
We need a CoffeeScript example here
def OnHealingItemUse(self, item, target):
    print "OnHealingItemUse works!"

OnItemAddedToContainer

void OnItemAddedToContainer(ItemContainer container, Item item)
{
    Puts("OnItemAddedToContainer works!");
}
function PLUGIN:OnItemAddedToContainer(container, item)
    print("OnItemAddedToContainer works!")
end
OnItemAddedToContainer: function(container, item) {
    print("OnItemAddedToContainer works!");
}
We need a CoffeeScript example here
def OnItemAddedToContainer(self, container, item):
    print "OnItemAddedToContainer works!"

OnItemCraft

void OnItemCraft(ItemCraftTask item)
{
    Puts("OnItemCraft works!");
}
function PLUGIN:OnItemCraft(item)
    print("OnItemCraft works!")
end
OnItemCraft: function(item) {
    print("OnItemCraft works!");
}
We need a CoffeeScript example here
def OnItemCraft(self, item):
    print "OnItemCraft works!"

OnItemCraftCancelled

void OnItemCraftCancelled(ItemCraftTask task)
{
    Puts("OnItemCraftCancelled works!");
}
function PLUGIN:OnItemCraftCancelled(task)
    print("OnItemCraftCancelled works!")
end
OnItemCraftCancelled: function(task) {
    print("OnItemCraftCancelled works!");
}
We need a CoffeeScript example here
def OnItemCraftCancelled(self, task):
    print "OnItemCraftCancelled works!"

OnItemCraftFinished

void OnItemCraftFinished(ItemCraftTask task, Item item)
{
    Puts("OnItemCraftFinished works!");
}
function PLUGIN:OnItemCraftFinished(task, item)
    print("OnItemCraftFinished works!")
end
OnItemCraftFinished: function(task, item) {
    print("OnItemCraftFinished works!");
}
We need a CoffeeScript example here
def OnItemCraftFinished(self, task, item):
    print "OnItemCraftFinished works!"

OnItemDeployed

void OnItemDeployed(Deployer deployer, BaseEntity entity)
{
    Puts("OnItemDeployed works!");
}
function PLUGIN:OnItemDeployed(deployer, entity)
    print("OnItemDeployed works!")
end
OnItemDeployed: function(deployer, entity) {
    print("OnItemDeployed works!");
}
We need a CoffeeScript example here
def OnItemDeployed(self, deployer, entity):
    print "OnItemDeployed works!"

OnCollectiblePickup

void OnCollectiblePickup(Item item, BasePlayer player)
{
    Puts("OnCollectiblePickup works!");
}
function PLUGIN:OnCollectiblePickup(item, player)
    print("OnCollectiblePickup works!")
end
OnCollectiblePickup: function(item, player) {
    print("OnCollectiblePickup works!");
}
We need a CoffeeScript example here
def OnCollectiblePickup(self, item, player):
    print "OnCollectiblePickup works!"

OnItemResearch

void OnItemResearch(Item item, BasePlayer player)
{
    Puts("OnItemResearch works!");
}
function PLUGIN:OnItemResearch(item, player)
    print("OnItemResearch works!")
end
OnItemResearch: function(item, player) {
    print("OnItemResearch works!");
}
We need a CoffeeScript example here
def OnItemResearch(self, item, player):
    print "OnItemResearch works!"

OnItemResearchEnd

void OnItemResearchEnd(ResearchTable table, float chance)
{
    Puts("OnItemResearchEnd works!");
    return chance;
}
function PLUGIN:OnItemResearchEnd(table, chance)
    print("OnItemResearchEnd works!")
    return chance
end
OnItemResearchEnd: function(table, chance) {
    print("OnItemResearchEnd works!");
    return chance;
}
We need a CoffeeScript example here
def OnItemResearchEnd(self, table, chance):
    print "OnItemResearchEnd works!"
    return chance

OnItemResearchStart

void OnItemResearchStart(ResearchTable table)
{
    Puts("OnItemResearchStart works!");
}
function PLUGIN:OnItemResearchStart(table)
    print("OnItemResearchStart works!")
end
OnItemResearchStart: function(table) {
    print("OnItemResearchStart works!");
}
We need a CoffeeScript example here
def OnItemResearchStart(self, table):
    print "OnItemResearchStart works!"

OnItemRemovedFromContainer

void OnItemRemovedFromContainer(ItemContainer container, Item item)
{
    Puts("OnItemRemovedFromContainer works!");
}
function PLUGIN:OnItemRemovedFromContainer(container, item)
    print("OnItemRemovedFromContainer works!")
end
OnItemRemovedFromContainer: function(container, item) {
    print("OnItemRemovedFromContainer works!");
}
We need a CoffeeScript example here
def OnItemRemovedFromContainer(self, container, item):
    print "OnItemRemovedFromContainer works!"

OnItemSplit

void OnItemSplit(Item item, int amount)
{
    Puts("OnItemSplit works!");
}
function PLUGIN:OnItemSplit(item, amount)
    print("OnItemSplit works!")
end
OnItemSplit: function(item, amount) {
    print("OnItemSplit works!");
}
We need a CoffeeScript example here
def OnItemSplit(self, item, amount):
    print "OnItemSplit works!"

OnItemUpgrade

void OnItemUpgrade(Item item, Item upgraded, BasePlayer player)
{
    Puts("OnItemUpgrade works!");
}
function PLUGIN:OnItemUpgrade(item, upgraded, player)
    print("OnItemUpgrade works!")
end
OnItemUpgrade: function(item, upgraded, player) {
    print("OnItemUpgrade works!");
}
We need a CoffeeScript example here
def OnItemUpgrade(self, item, upgraded, player):
    print "OnItemUpgrade works!"

OnLoseCondition

void OnLoseCondition(Item item, ref float amount)
{
    Puts("OnLoseCondition works!");
}
function PLUGIN:OnLoseCondition(item, amount)
    print("OnLoseCondition works!")
end
OnLoseCondition: function(item, amount) {
    print("OnLoseCondition works!");
}
We need a CoffeeScript example here
def OnLoseCondition(self, item, amount):
    print "OnLoseCondition works!"

OnCropGather

void OnCropGather(PlantEntity plant, Item item, BasePlayer player)
{
    Puts("OnCropGather works!");
}
function PLUGIN:OnCropGather(plant, item, player)
    print("OnCropGather works!")
end
OnCropGather: function(plant, item, player) {
    print("OnCropGather works!");
}
We need a CoffeeScript example here
def OnCropGather(self, plant, item, player):
    print "OnCropGather works!"

OnQuarryEnabled

void OnQuarryEnabled(MiningQuarry quarry)
{
    Puts("OnQuarryEnabled works!");
}
function PLUGIN:OnQuarryEnabled(quarry)
    print("OnQuarryEnabled works!")
end
OnQuarryEnabled: function(quarry) {
    print("OnQuarryEnabled works!");
}
We need a CoffeeScript example here
def OnQuarryEnabled(self, quarry):
    print "OnQuarryEnabled works!"

OnQuarryGather

void OnQuarryGather(MiningQuarry quarry, Item item)
{
    Puts("OnQuarryGather works!");
}
function PLUGIN:OnQuarryGather(quarry, item)
    print("OnQuarryGather works!")
end
OnQuarryGather: function(quarry, item) {
    print("OnQuarryGather works!");
}
We need a CoffeeScript example here
def OnQuarryGather(self, quarry, item):
    print "OnQuarryGather works!"

OnSurveyGather

void OnSurveyGather(SurveyCharge survey, Item item)
{
    Puts("OnSurveyGather works!");
}
function PLUGIN:OnSurveyGather(survey, item)
    print("OnSurveyGather works!")
end
OnSurveyGather: function(survey, item) {
    print("OnSurveyGather works!");
}
We need a CoffeeScript example here
def OnSurveyGather(self, survey, item):
    print "OnSurveyGather works!"

OnTrapArm

void OnTrapArm(BearTrap trap, BasePlayer player)
{
    Puts("OnTrapArm works!");
}
function PLUGIN:OnTrapArm(trap, player)
    print("OnTrapArm works!")
end
OnTrapArm: function(trap, player) {
    print("OnTrapArm works!");
}
We need a CoffeeScript example here
def OnTrapArm(self, trap, player):
    print "OnTrapArm works!"

OnTrapDisarm

void OnTrapDisarm(Landmine trap, BasePlayer player)
{
    Puts("OnTrapDisarm works!");
}
function PLUGIN:OnTrapDisarm(trap, player)
    print("OnTrapDisarm works!")
end
OnTrapDisarm: function(trap, player) {
    print("OnTrapDisarm works!");
}
We need a CoffeeScript example here
def OnTrapDisarm(self, trap, player):
    print "OnTrapDisarm works!"

OnTrapSnapped

void OnTrapSnapped(BaseTrapTrigger trap, GameObject go)
{
    Puts("OnTrapSnapped works!");
}
function PLUGIN:OnTrapSnapped(trap, player)
    print("OnTrapSnapped works!")
end
OnTrapSnapped: function(trap, player) {
    print("OnTrapSnapped works!");
}
We need a CoffeeScript example here
def OnTrapSnapped(self, trap, player):
    print "OnTrapSnapped works!"

OnTrapTrigger

void OnTrapTrigger(BaseTrap trap, GameObject go)
{
    Puts("OnTrapTrigger works!");
}
function PLUGIN:OnTrapTrigger(trap, go)
    print("OnTrapTrigger works!")
end
OnTrapTrigger: function(trap, go) {
    print("OnTrapTrigger works!");
}
We need a CoffeeScript example here
def OnTrapTrigger(self, trap, go):
    print "OnTrapTrigger works!"

Sign Hooks

CanUpdateSign

void CanUpdateSign(BasePlayer player, Signage sign)
{
    Puts("CanUpdateSign works!");
}
function PLUGIN:CanUpdateSign(player, sign)
    print("CanUpdateSign works!")
end
CanUpdateSign: (player, sign) =>
    print "CanUpdateSign works!"
CanUpdateSign: function(player, sign) {
    print("CanUpdateSign works!");
}
def CanUpdateSign(self, player, sign):
    print "CanUpdateSign works!"

CanLockSign

void CanLockSign(BasePlayer player, Signage sign)
{
    Puts("CanLockSign works!");
}
function PLUGIN:CanLockSign(player, sign)
    print("CanLockSign works!")
end
CanLockSign: (player, sign) =>
    print "CanLockSign works!"
CanLockSign: function(player, sign) {
    print("CanLockSign works!");
}
def CanLockSign(self, player, sign):
    print "CanLockSign works!"

CanUnlockSign

void CanUnlockSign(BasePlayer player, Signage sign)
{
    Puts("CanUnlockSign works!");
}
function PLUGIN:CanUnlockSign(player, sign)
    print("CanUnlockSign works!")
end
CanUnlockSign: (player, sign) =>
    print "CanUnlockSign works!"
CanUnlockSign: function(player, sign) {
    print("CanUnlockSign works!");
}
def CanUnlockSign(self, player, sign):
    print "CanUnlockSign works!"

OnSignLocked

void OnSignLocked(Signage sign, BasePlayer player)
{
    Puts("OnSignLocked works!");
}
function PLUGIN:OnSignLocked(sign, player)
    print("OnSignLocked works!")
end
OnSignLocked: (sign, player) =>
    print "OnSignLocked works!"
OnSignLocked: function(sign, player) {
    print("OnSignLocked works!");
}
def OnSignLocked(self, sign, player):
    print "OnSignLocked works!"

OnSignUpdate

void OnSignUpdate(Signage sign, BasePlayer player)
{
    Puts("OnSignUpdate works!");
}
function PLUGIN:OnSignUpdate(sign, player, text)
    print("OnSignUpdate works!")
end
OnSignUpdate: (sign, player, text) =>
    print "OnSignUpdate works!"
OnSignUpdate: function(sign, player, text) {
    print("OnSignUpdate works!");
}
def OnSignUpdate(self, sign, player, text):
    print "OnSignUpdate works!"

OnSignUpdated

void OnSignUpdated(Signage sign, BasePlayer player, string text)
{
    Puts("OnSignUpdated works!");
}
function PLUGIN:OnSignUpdated(sign, player, text)
    print("OnSignUpdated works!")
end
OnSignUpdated: (sign, player, text) =>
    print "OnSignUpdated works!"
OnSignUpdated: function(sign, player, text) {
    print("OnSignUpdated works!");
}
def OnSignUpdated(self, sign, player, text):
    print "OnSignUpdated works!"

Structure Hooks

CanBuild

void CanBuild(Planner plan, Construction prefab)
{
    Puts("CanBuild works!");
}
function PLUGIN:CanBuild(player, prefab)
    print("CanBuild works!")
end
CanBuild: (player, prefab) =>
    print "CanBuild works!"
CanBuild: function(player, prefab) {
    print("CanBuild works!");
}
def CanBuild(self, player, prefab):
    print "CanBuild works!"

CanUseLock

void CanUseLock(BasePlayer player, BaseLock @lock)
{
    Puts("CanUseLock works!");
}
function PLUGIN:CanUseLock(player, lock)
    print("CanUseLock works!")
end
CanUseLock: (player, lock) =>
    print "CanUseLock works!"
CanUseLock: function(player, lock) {
    print("CanUseLock works!");
}
def CanUseLock(self, player, lock):
    print "CanUseLock works!"

CanUseLock

void CanUseLock(BasePlayer player, CodeLock @lock)
{
    Puts("CanUseLock works!");
}
function PLUGIN:CanUseLock(player, lock)
    print("CanUseLock works!")
end
We need a CoffeeScript example here
CanUseLock: function(player, lock) {
    print("CanUseLock works!");
}
def CanUseLock(self, player, lock):
    print "CanUseLock works!"

CanUseLock

void CanUseLock(BasePlayer player, KeyLock @lock)
{
    Puts("CanUseLock works!");
}
function PLUGIN:CanUseLock(player, lock)
    print("CanUseLock works!")
end
We need a CoffeeScript example here
CanUseLock: function(player, lock) {
    print("CanUseLock works!");
}
def CanUseLock(self, player, lock):
    print "CanUseLock works!"

OnCupboardClearList

void OnCupboardClearList(BuildingPrivlidge privilege, BasePlayer player)
{
    Puts("OnCupboardClearList works!");
}
function PLUGIN:OnCupboardClearList(privilege, player)
    print("OnCupboardClearList works!")
end
We need a CoffeeScript example here
OnCupboardClearList: function(privilege, player) {
    print("OnCupboardClearList works!");
}
def OnCupboardClearList(self, privilege, player):
    print "OnCupboardClearList works!"

OnDoorClosed

void OnDoorClosed(Door door, BasePlayer player)
{
    Puts("OnDoorClosed works!");
}
function PLUGIN:OnDoorClosed(door, player)
    print("OnDoorClosed works!")
end
We need a CoffeeScript example here
OnDoorClosed: function(door, player) {
    print("OnDoorClosed works!");
}
def OnDoorClosed(self, lock, player):
    print "OnDoorClosed works!"

OnDoorOpened

void OnDoorOpened(Door door, BasePlayer player)
{
    Puts("OnDoorOpened works!");
}
function PLUGIN:OnDoorOpened(door, player)
    print("OnDoorOpened works!")
end
We need a CoffeeScript example here
OnDoorOpened: function(door, player) {
    print("OnDoorOpened works!");
}
def OnDoorOpened(self, lock, player):
    print "OnDoorOpened works!"

OnCupboardAuthorize

void OnCupboardAuthorize(BuildingPrivlidge privilege, BasePlayer player)
{
    Puts("OnCupboardAuthorize works!");
}
function PLUGIN:OnCupboardAuthorize(privilege, player)
    print("OnCupboardAuthorize works!")
end
We need a CoffeeScript example here
OnCupboardAuthorize: function(privilege, player) {
    print("OnCupboardAuthorize works!");
}
def OnCupboardAuthorize(self, privilege, player):
    print "OnCupboardAuthorize works!"

OnCupboardDeauthorize

void OnCupboardDeauthorize(BuildingPrivlidge privilege, BasePlayer player)
{
    Puts("OnCupboardDeauthorize works!");
}
function PLUGIN:OnCupboardDeauthorize(privilege, player)
    print("OnCupboardDeauthorize works!")
end
We need a CoffeeScript example here
OnCupboardDeauthorize: function(privilege, player) {
    print("OnCupboardDeauthorize works!");
}
def OnCupboardDeauthorize(self, privilege, player):
    print "OnCupboardDeauthorize works!"

OnEntityBuilt

void OnEntityBuilt(Planner plan, GameObject go)
{
    Puts("OnEntityBuilt works!");
}
function PLUGIN:OnEntityBuilt(plan, obj)
    print("OnEntityBuilt works!")
end
We need a CoffeeScript example here
OnEntityBuilt: function(plan, obj) {
    print("OnEntityBuilt works!");
}
def OnEntityBuilt(self, planner, component):
    print "OnEntityBuilt works!"

OnHammerHit

void OnHammerHit(BasePlayer player, HitInfo info)
{
    Puts("OnHammerHit works!");
}
function PLUGIN:OnHammerHit(player, info)
    print("OnHammerHit works!")
end
We need a CoffeeScript example here
OnHammerHit: function(player, info) {
    print("OnHammerHit works!");
}
def OnHammerHit(self, player, info):
    print "OnHammerHit works!"

OnStructureDemolish

void OnStructureDemolish(BaseCombatEntity entity, BasePlayer player)
{
    Puts("OnStructureDemolish works!");
}
function PLUGIN:OnStructureDemolish(entity, player)
    print("OnStructureDemolish works!")
end
We need a CoffeeScript example here
OnStructureDemolish: function(entity, player) {
    print("OnStructureDemolish works!");
}
def OnStructureDemolish(self, entity, player):
    print "OnStructureDemolish works!"

OnStructureRepair

void OnStructureRepair(BaseCombatEntity entity, BasePlayer player)
{
    Puts("OnStructureRepair works!");
}
function PLUGIN:OnStructureRepair(entity, player)
    print("OnStructureRepair works!")
end
We need a CoffeeScript example here
OnStructureRepair: function(entity, player) {
    print("OnStructureRepair works!");
}
def OnStructureRepair(self, entity, player):
    print "OnStructureRepair works!"

OnStructureRotate

void OnStructureRotate(BaseCombatEntity entity, BasePlayer player)
{
    Puts("OnStructureRotate works!");
}
function PLUGIN:OnStructureRotate(entity, player)
    print("OnStructureRotate works!")
end
We need a CoffeeScript example here
OnStructureRotate: function(entity, player) {
    print("OnStructureRotate works!");
}
def OnStructureRotate(self, entity, player):
    print "OnStructureRotate works!"

OnStructureUpgrade

void OnStructureUpgrade(BaseCombatEntity entity, BasePlayer player, BuildingGrade.Enum grade)
{
    Puts("OnStructureUpgrade works!");
}
function PLUGIN:OnStructureUpgrade(block, player, grade)
    print("OnStructureUpgrade works!")
end
We need a CoffeeScript example here
OnStructureUpgrade: function(block, player, grade) {
    print("OnStructureUpgrade works!");
}
def OnStructureUpgrade(self, block, player, grade):
    print "OnStructureUpgrade works!"

Terrain Hooks

OnTerrainInitialized

void OnTerrainInitialized()
{
    Puts("OnTerrainInitialized works!");
}
function PLUGIN:OnTerrainInitialized()
    print("OnTerrainInitialized works!")
end
OnTerrainInitialized: ->
    print "OnTerrainInitialized works!"
OnTerrainInitialized: function() {
    print("OnTerrainInitialized works!");
}
def OnTerrainInitialized(self):
    print "OnTerrainInitialized works!"

Library Functions

There are a few functions that have been added to wrap Rust functions, creating aliases of sorts to make your life easier during initial coding as well as during upgrades.

QuoteSafe

rust.QuoteSafe("Use /kick \"Player Name\" to kick player");
rust.QuoteSafe("Use /kick \"Player Name\" to kick player")
We need a CoffeeScript example here
rust.QuoteSafe("Use /kick \"Player Name\" to kick player");
rust.QuoteSafe("Use /kick \"Player Name\" to kick player")

Used to safely save text or send a message that contains quotation marks.

rust.QuoteSafe(message)

PrivateBindingFlag

We need a CSharp example here
We need a Lua example here
We need a CoffeeScript example here
// Get value of private property
var field = myObject.GetType().GetField("propertyName", rust.PrivateBindingFlag());
var privateFieldValue = field.GetValue(myObject);
We need a Python example here

Used to get/set private methods, fields, and properties.

rust.PrivateBindingFlag()

Commands

Default commands

load *|<pluginname>+
unload *|<pluginname>+
reload *|<pluginname>+
grant <group|user> <name|id> *|<permission>
revoke <group|user> <name|id> *|<permission>
group <add|set> <name> [title] [rank]
group <remove> <name>
group <parent> <name> <parentname>
usergroup <add|remove> <username> <groupname>
show <group|user|perm> <name>
show <groups|perms>
version or oxide.version

Chat commands

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", "1.0.0")]
    [Description("A basic chat command")]

    class EpicPlugin : CovalencePlugin
    {
        [Command("test")]
        void TestCommand(IPlayer player, string command, string[] args)
        {
            player.Reply("Test successful!");
        }
    }
}
We need a Lua example here
We need a CoffeeScript example here
var EpicPlugin = {
    Title : "EpicPlugin",
    Author : "Unknown",
    Version : V(0, 1, 0),
    Description : "A basic chat command",

    Init: function ()
    {
        command.AddChatCommand('test', this.Plugin, 'TestCommand');
    },

    TestCommand: function (player, cmd, arg)
    {
        player.Reply('Test successful!');
    }
}
class EpicPlugin:
    def __init__(self):
        self.Title = "EpicPlugin"
        self.Description = "A basic chat command"
        self.Author = "Unknown"
        self.Version = V(1, 0, 0)

    def Init(self):
        command.AddChatCommand("test", self.Plugin, "TestCommand")

    def TestCommand(self, player, cmd, args):
        player.Reply("Test successful!")

Console commands

using UnityEngine;

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", "1.0.0")]
    [Description("A basic console command")]

    class EpicPlugin : CovalencePlugin
    {
        [Command("global.test")]
        void TestCommand(IPlayer player)
        {
            Puts("Test successful!");
        }
    }
}
PLUGIN.Title = "EpicPlugin"
PLUGIN.Author = "Unknown"
PLUGIN.Version = V(0, 1, 0)
PLUGIN.Description = "Makes epic stuff happen"

function PLUGIN:Init()
  command.AddConsoleCommand("global.test", self.Plugin, "TestCommand")
end

function PLUGIN:TestCommand(arg)
  print("Test successful!")
end
We need a CoffeeScript example here
var EpicPlugin = {
    Title : "EpicPlugin",
    Author : "Unknown",
    Version : V(0, 1, 0),
    Description : "A basic console command",

    Init: function ()
    {
        command.AddConsoleCommand('global.test', this.Plugin, 'TestCommand');
    },

    TestCommand: function (arg)
    {
        Puts('Test successful!');
    }
}
class EpicPlugin:
    def __init__(self):
        self.Title = "EpicPlugin"
        self.Description = "A basic chat command"
        self.Author = "Unknown"
        self.Version = V(1, 0, 0)

    def Init(self):
        command.AddConsoleCommand("global.test", self.Plugin, "TestCommand")

    def TestCommand(self, player, cmd, args):
        print("Test successful!")

Configurations

Creating a configuration

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", 1.0)]
    [Description("This example illustrates how to use a basic configuration file")]

    class EpicPlugin : RustPlugin
    {
        protected override void LoadDefaultConfig()
        {
            PrintWarning("Creating a new configuration file");
            Config.Clear();
            Config["ShowJoinMessage"] = true;
            Config["ShowLeaveMessage"] = true;
            Config["JoinMessage"] = "Welcome to this server";
            Config["LeaveMessage"] = "Goodbye";
            SaveConfig();
        }
    }
}
function PLUGIN:Init()
    self:LoadDefaultConfig()
end

function PLUGIN:LoadDefaultConfig()
    self.Config.ShowJoinMessage = self.Config.ShowJoinMessage or "true"
    self.Config.ShowLeaveMessage = self.Config.ShowLeaveMessage or "true"
    self.Config.Messages = self.Config.Messages or {}
    self.Config.Messages.Join = self.Config.Messages.Join or "Welcome to this server"
    self.Config.Messages.Leave = self.Config.Messages.Leave or "Goodbye"
    self:SaveConfig()
end
We need a CoffeeScript example here
var EpicPlugin = {
    Init: function() {
        this.LoadDefaultConfig();
    },

    LoadDefaultConfig: function() {
        this.Config.ShowJoinMessage = this.Config.ShowJoinMessage || "true";
        this.Config.ShowLeaveMessage = this.Config.ShowLeaveMessage || "true";
        this.Config.Messages = this.Config.Messages || {};
        this.Config.Messages.Join = this.Config.Messages.Join || "Welcome to this server";
        this.Config.Messages.Leave = this.Config.Messages.Leave || "Goodbye";
        this:SaveConfig();
    }
}
class EpicPlugin:
    def __init__(self):
        self.Title = "EpicPlugin"
        self.Description = "This example illustrates how to use a basic configuration file"
        self.Author = "Unknown"
        self.Version = V(1, 0, 0)

    def LoadDefaultConfig(self):
        default_cfg = {
            "ShowJoinMessage": True,
            "ShowLeaveMessage": True,
            "Messages": ("Hello", "World")
        }
        self.Config = default_cfg
        self.SaveConfig()

Since many users won’t want to (or can’t) edit the plugin directly to change the default configuration, it’s best to offer to offer them a configuration file that can easily be edited without worrying about messing up the plugin.

Saving a configuration

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", 1.0)] 
    [Description("This example illustrates how to update a value in a configuration file")]

    class EpicPlugin : RustPlugin
    {
        [ChatCommand("Test")]
        void Test(BasePlayer player, string command, string[] args)
        {
            if ((bool) Config["ShowJoinMessage"])
                Config["ShowJoinMessage"] = false;
            else
                Config["ShowJoinMessage"] = true;
            SaveConfig();
        }
    }
}
function PLUGIN:cmdTest(player, cmd, args)
    if self.Config.ShowJoinMessage == "true" then
        self.Config.ShowJoinMessage = "false"
    else
        self.Config.ShowJoinMessage = "true"
    end
    self:SaveConfig()
end
We need a CoffeeScript example here
cmdTest: function(player, cmd, args) {
    if (this.Config.ShowJoinMessage == "true") {
        this.Config.ShowJoinMessage = "false";
    } else {
        this.Config.ShowJoinMessage = "true";
    }
    this:SaveConfig();
}
class EpicPlugin:
    def __init__(self):
        self.Title = "EpicPlugin"
        self.Description = "This example illustrates how to update a value in a configuration file"
        self.Author = "Unknown"
        self.Version = V(1, 0, 0)

    def Test(self, player, cmd, args):
        self.Config["ShowJoinMessage"] = not self.Config["ShowJoinMessage"]
        self.SaveConfig()

You can change and save configuration entries by simply assigning the new values and calling the save function.

Storing Data

Creating a data table

using System.Collections.Generic;
using Oxide.Core;

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", 1.0)] 
    [Description("This example illustrates how to create a data file")]

    class EpicPlugin : RustPlugin
    {
        class StoredData
        {
            public HashSet<PlayerInfo> Players = new HashSet<PlayerInfo>();

            public StoredData()
            {
            }
        }

        class PlayerInfo
        {
            public string UserId;
            public string Name;

            public PlayerInfo()
            {
            }

            public PlayerInfo(BasePlayer player)
            {
                UserId = player.userID.ToString();
                Name = player.displayName;
            }
        }

        StoredData storedData;

        void Loaded()
        {
            storedData = Interface.Oxide.DataFileSystem.ReadObject<StoredData>("MyDataFile");
        }
    }
}
function PLUGIN:Init()
    self:LoadDataFiles()
end

local dataTable
function PLUGIN:LoadDataFiles()
    dataTable = datafile.GetDataTable("EpicPlugin") or {}
end
We need a CoffeeScript example here
Init: function() {
    this.LoadDataFiles();
}

var dataTable
LoadDataFiles: function() {
    dataTable = data.GetData("EpicPlugin");
}
def Init(self):
    self.dataTable = data.GetData("EpicPlugin")

To store plugin related data to use in your plugin, you want to create a data file.

Saving a data table

using System.Collections.Generic;
using Oxide.Core;

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", 1.0)] 
    [Description("This example illustrates how to save to a data file")]

    class EpicPlugin : RustPlugin
    {
        class StoredData
        {
            public HashSet<PlayerInfo> Players = new HashSet<PlayerInfo>();

            public StoredData()
            {
            }
        }

        class PlayerInfo
        {
            public string UserId;
            public string Name;

            public PlayerInfo()
            {
            }

            public PlayerInfo(BasePlayer player)
            {
                UserId = player.userID.ToString();
                Name = player.displayName;
            }
        }

        StoredData storedData;

        void Loaded()
        {
            storedData = Interface.Oxide.DataFileSystem.ReadObject<StoredData>("MyDataFile");
        }

        [ChatCommand("Test")]
        void Test(BasePlayer player, string command, string[] args)
        {
            var info = new PlayerInfo(player);
            if (storedData.Players.Contains(info))
                PrintToChat(player, "Your data has already been added to the file");
            else
            {
                PrintToChat(player, "Saving your data to the file");
                storedData.Players.Add(info);
                Interface.Oxide.DataFileSystem.WriteObject("MyDataFile", storedData);
            }
        }
    }
}
function PLUGIN:cmdTest(player, cmd, args)
    local name = player.displayName
    dataTable[name] = true
    datafile.SaveDataTable("EpicPlugin")
end
We need a CoffeeScript example here
cmdTest: function(player, cmd, args) {
    var name = player.displayName;
    dataTable[name] = true;
    data.SaveData("EpicPlugin");
}
def Init(self):
    self.dataTable = data.GetData("EpicPlugin")
    self.dataTable["name"] = True
    data.SaveData("EpicPlugin")

Timers (Basic)

Timers are great for delaying code, allowing it to be run later.

Single timer

timer.Once(3f, () =>
{
    Puts("Hello world!")
});
timer.Once(3, function()
    print("Hello world!")
end)
timer.Once 3, ->
    print "Hello world!"
timer.Once(3, function() {
    print("Hello world!");
});
def my_callback_func():
    print("Hello world!")

timer.Once(3, Action(my_callback_func), self.Plugin)

Executes the specified function once after the specified delay.

Repeating timer

timer.Repeat(5f, 0, () =>
{
    Puts("Hello world!")
});
timer.Repeat(5, 0, function()
    print("Hello world!")
end, self.Plugin)
timer.Repeat 5, 0, (->
    print "Hello world!"
), @Plugin
timer.Repeat(5, 0, function() {
    print("Hello world!");
}, this.Plugin);
def my_callback_func():
    print("Hello world!")

timer.Repeat(5, 0, Action(my_callback_func), self.Plugin)

Executes the specified function every “delay” seconds.

If “repeats” is specified, the function will only be called “repeats” times.

Next frame timer

NextFrame(() =>
{
    Puts("Hello world!");
});
timer.NextFrame(function()
    print("Hello world!")
);
timer.NextFrame ->
    print "Hello world!"
timer.NextFrame(function() {
    print("Hello world!");
});
timer.NextFrame((lambda:
    print("Hello world!")
), self.Plugin)

Executes the specified function at the next frame.

Web Requests

Web requests allow you to send a HTTP GET or POST to a specified URL.

The request will return true if the web request was sent, false if not. The callback is called with 2 parameters - an integer HTTP response code and a string response.

Basic Get method

using Oxide.Core.Libraries.Covalence;

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", 1.0)]
    [Description("This example illustrates how to use a GET WebRequest")]

    class EpicPlugin : CovalencePlugin
    {
        [Command("get")]
        void GetRequest(IPlayer player, string command, string[] args)
        {
            webrequest.EnqueueGet("http://www.google.com/search?q=oxide", (code, response) => GetCallback(code, response, player), this);
        }

        void GetCallback(int code, string response, IPlayer player)
        {
            if (response == null || code != 200)
            {
                Puts($"Error: {code} - Couldn't get an answer from Google for {player.Name}");
                return;
            }

            Puts($"Google answered for {player.Name}: {response}");
        }
    }
}
webrequest.EnqueueGet("http://www.google.com/search?q=oxide", function(code, response)
    if response == nil or code ~= 200 then 
        print("Couldn't get an answer from Google!") 
        return 
    end
    print("Google answered: " .. tostring(response))
end, self.Plugin)
webrequests.EnqueueGet("http://www.google.com/search?q=oxide", function(code, response) {
    if (response == null || code != 200) {
        print("Couldn't get an answer from Google!");
        return
    }
    print("Google answered: " + response);
}.bind(this), this.Plugin);
We need a CoffeeScript example here
from System import Action, Int32, String
def response_handler(code, response):
    if response == None or code != 200:
        print "Couldn't get an answer from Google!" 
        return 
    print "Google answered: " + response
webrequest.EnqueueGet("http://www.google.com/search?q=oxide", Action[Int32,String](response_handler), self.Plugin);

This uses the raw connection to a web page as you would on your browser.

Basic POST method

using Oxide.Core.Libraries.Covalence;

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", 1.0)]
    [Description("This example illustrates how to use a POST WebRequest")]

    class EpicPlugin : CovalencePlugin
    {
        [Command("post")]
        void PostRequest(IPlayer player, string command, string[] args)
        {
            webrequest.EnqueuePost("http://www.google.com/search?q=oxide", "param1=value1&param2=value2", (code, response) => PostCallback(code, response, player), this);
        }

        void PostCallback(int code, string response, IPlayer player)
        {
            if (response == null || code != 200)
            {
                Puts($"Error: {code} - Couldn't get an answer from Google for {player.Name}");
                return;
            }
            Puts("Google answered for " + player.Name + ": " + response);
        }
    }
}
We need a Lua example here
We need a JavaScript example here
We need a CoffeeScript example here
We need a Python example here

Advanced GET method

using Oxide.Core.Libraries.Covalence;

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", 1.0)]
    [Description("This example illustrates how to use a GET WebRequest")]

    class EpicPlugin : CovalencePlugin
    {
        [Command("get")]
        void GetRequest(IPlayer player, string command, string[] args)
        {
            // Set a custom timeout (in milliseconds)
            var timeout = 200f;

            // Set some custom request headers (eg. for HTTP Basic Auth)
            var headers = new Dictionary<string, string> { { "header", "value" } };

            webrequest.EnqueueGet("http://www.google.com/search?q=oxide", (code, response) => GetCallback(code, response, player), this, headers, timeout);
        }

        void GetCallback(int code, string response, IPlayer player)
        {
            if (response == null || code != 200)
            {
                Puts($"Error: {code} - Couldn't get an answer from Google for {player.Name}");
                return;
            }

            Puts($"Google answered for {player.Name}: {response}");
        }
    }
}
We need a Lua example here
We need a JavaScript example here
We need a CoffeeScript example here
We need a Python example here

Advanced POST method

using Oxide.Core.Libraries.Covalence;

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", 1.0)]
    [Description("This example illustrates how to use a POST WebRequest")]

    class EpicPlugin : CovalencePlugin
    {
        [Command("post")]
        void PostRequest(IPlayer player, string command, string[] args)
        {
            // Set a timeout (in milliseconds)
            var timeout = 200f;

            // Set some custom request headers (eg. for HTTP Basic Auth)
            var headers = new Dictionary<string, string> { { "header", "value" } };

            webrequest.EnqueuePost("http://www.google.com/search?q=oxide", "param1=value1&param2=value2", (code, response) => PostCallback(code, response, player), this, headers, timeout);
        }

        void PostCallback(int code, string response, IPlayer player)
        {
            if (response == null || code != 200)
            {
                Puts($"Error: {code} - Couldn't get an answer from Google for {player.Name}");
                return;
            }
            Puts("Google answered for " + player.Name + ": " + response);
        }
    }
}
We need a Lua example here
We need a JavaScript example here
We need a CoffeeScript example here
We need a Python example here

Plugin API

Oxide allows you to expose methods in your plugin and make them available to other plugins. This allows you to access objects or properties from other plugins without having to replicate functionality yourself.

Exposing an API method

namespace Oxide.Plugins
{
    [Info("EpicPlugin", "Unknown", 0.1)]
    [Description("Makes epic stuff happen")]

    class EpicPlugin : CovalencePlugin
    {
        // Plugin methods can be a simple bool that is returned
        public bool GetReturn()
        {
            return true;
        }

        // Plugin methods can take parameters and return simple types
        public string TakeParam(string param, int secondParam)
        {
            if (param == "first parameter") return param;
            else return "First parameter didn't match!";
        }

        // To return complex types, they should first be converted
        // into builtin types (e.g. JSON.net types like JObject, JArray, etc. or builtin
        // collections like System.Collections.Generic.Dictionary)
        public JObject ReturnObject()
        {
            var myObject = new JObject();
            myObject["key"] = "value";
            myObject["array"] = new JArray();
            return myObject;
        }

        // Plugin methods don't have to return something
        public void SendMessage()
        {
            Puts("You just called the 'SendMessage' method!");
        }
    }
}
We need a Lua example here
We need a CoffeeScript example here
We need a javascript example here
from System.Collections.Generic import Dictionary
from System.Collections.Generic import List

class EpicPlugin:
    def __init__(self):
        self.Title = "EpicPlugin"
        self.Description = "Makes epic stuff happen"
        self.Author = "Unknown"
        self.Version = V(0, 1, 0)

    # Plugin methods can be a simple bool that is returned
    def GetReturn(self):
        return True

    # Plugin methods can take parameters and return simple types
    def TakeParam(self, param, secondParam):
        if param == "first parameter":
            return param
        else:
            return "First parameter didn't match!"

    # To return complex types, they should first be converted
    # into C# builtin types (e.g. System.Collections.Generic.Dictionary)
    def ReturnObject(self):
        myObject = Dictionary[str, object]()
        myObject["key"] = "value"
        myObject["array"] = List[object]()
        return myObject

    # Plugin methods don't have to return something
    def SendMessage(self):
        print("You just called the 'SendMessage' method!")

Exposing an API method allows other plugins to call that method.

For example, you could write a plugin that does some player management, then allow other plugins to “query” it via an API method to get a list of players who have certain privileges set in the original plugin.

Calling an API method

namespace Oxide.Plugins
{
    [Info("SecondEpicPlugin", "Unknown", 0.1)]
    [Description("Makes more epic stuff happen")]

    class SecondEpicPlugin : CovalencePlugin
    {
        // First, add a reference to the plugin you are trying to call
        // The name of this field needs to be the exact name of the desired plugin
        // eg. We are referencing the example plugin above which is called 'EpicPlugin'
        [PluginReference] Plugin EpicPlugin;

        // It's a good idea to check if the plugin you're trying to call
        // has been loaded by oxide (otherwise you can't call the method)
        void OnServerInitialized()
        {
            // Note: Trying to do this check in the plugin Init() method may
            // fail, as the plugin load order may be different each time
            if (EpicPlugin == null)
            {
                PrintWarning("Plugin 'EpicPlugin' was not found!");
            }
        }

        void CallApi()
        {
            // Plugin methods return objects, so cast the API call to the type
            // you're expecting
            var getTypedReturn = (bool)EpicPlugin?.Call("GetReturn");

            // Send parameters through as variables after the method name
            var takeParam = (string)EpicPlugin?.Call("TakeParam", "param1", 1024);

            // Use JSON.net to process the returned object
            var returnedObject = EpicPlugin?.Call("ReturnObject");

            // Call a plugin to do some work without returning anything
            EpicPlugin?.Call("SendMessage");
        }
    }
}
We need a Lua example here
We need a CoffeeScript example here
We need a javascript example here
class SecondEpicPlugin:
    def __init__(self):
        self.Title = "SecondEpicPlugin"
        self.Description = "Makes more epic stuff happen"
        self.Author = "Unknown"
        self.Version = V(0, 1, 0)

    def Init(self):
        self.EpicPlugin = plugins.Find("EpicPlugin")

    def CallApi(self):
        if self.EpicPlugin is None:
            return

        # Python is dynamically typed, so casting is not necessary:
        # the structure of the type matters, not the name
        getReturn = self.EpicPlugin.Call("GetReturn")

        # Send parameters through as variables after the method name
        takeParam = self.EpicPlugin.Call("TakeParam", "param1", 1024)

        # Access returned object like dictionary
        returnedObject = self.EpicPlugin.Call("ReturnObject")

        # Call a plugin to do some work without returning anything
        self.EpicPlugin.Call("SendMessage")

Calling an API method allows you to access results from another plugin.

Item List

Item Id Item Name Item Shortname
2115555558 Handmade Shell ammo.handmade.shell
-533875561 Pistol Bullet ammo.pistol
1621541165 Incendiary Pistol Bullet ammo.pistol.fire
-422893115 HV Pistol Ammo ammo.pistol.hv
815896488 5.56 Rifle Ammo ammo.rifle
805088543 Explosive 5.56 Rifle Ammo ammo.rifle.explosive
1152393492 HV 5.56 Rifle Ammo ammo.rifle.hv
449771810 Incendiary 5.56 Rifle Ammo ammo.rifle.incendiary
1578894260 Rocket ammo.rocket.basic
1436532208 Incendiary Rocket ammo.rocket.fire
542276424 High Velocity Rocket ammo.rocket.hv
1594947829 Smoke Rocket WIP!!!! ammo.rocket.smoke
-1035059994 12 Gauge Buckshot ammo.shotgun
1819281075 12 Gauge Slug ammo.shotgun.slug
1685058759 Anti-Radiation Pills antiradpills
93029210 Apple apple
-1565095136 Rotten Apple apple.spoiled
-1280058093 High Velocity Arrow arrow.hv
-420273765 Wooden Arrow arrow.wooden
-148163128 Hide Boots attire.hide.boots
936777834 Hide Halterneck attire.hide.helterneck
-135651869 Hide Pants attire.hide.pants
102672084 Hide Poncho attire.hide.poncho
-132588262 Hide Skirt attire.hide.skirt
-1666761111 Hide Vest attire.hide.vest
563023711 Auto Turret autoturret
790921853 Salvaged Axe axe.salvaged
-337261910 Bandage bandage
498312426 Concrete Barricade barricade.concrete
504904386 Metal Barricade barricade.metal
-1221200300 Sandbag Barricade barricade.sandbags
510887968 Stone Barricade barricade.stone
-814689390 Wooden Barricade barricade.wood
1024486167 Barbed Wooden Barricade barricade.woodwire
2021568998 Battery - Small battery.small
1325935999 Bear Meat bearmeat
-2066726403 Burnt Bear Meat bearmeat.burned
-2043730634 Bear Meat Cooked bearmeat.cooked
97409 Bed bed
1611480185 Black Raspberries black.raspberries
-1386464949 Bleach bleach
93832698 Blood blood
-1063412582 Blueberries blueberries
-1887162396 Blueprint blueprintbase
569119686 Bone Armor bone.armor.suit
919780768 Bone Club bone.club
-365801095 Bone Fragments bone.fragments
68998734 Bota Bag botabag
-853695669 Hunting Bow bow.hunting
-1026117678 Repair Bench box.repair.bench
-770311783 Wood Storage Box box.wooden
271534758 Large Wood Box box.wooden.large
1260209393 Bucket Helmet bucket.helmet
-1192532973 Water Bucket bucket.water
-307490664 Building Plan building.planner
115739308 Leather Gloves burlap.gloves
-1035315940 Burlap Headwrap burlap.headwrap
707427396 Burlap Shirt burlap.shirt
707432758 Burlap Shoes burlap.shoes
1767561705 Burlap Trousers burlap.trousers
-2079677721 Cactus Flesh cactusflesh
-139769801 Camp Fire campfire
-1043746011 Can of Beans can.beans
2080339268 Empty Can Of Beans can.beans.empty
-171664558 Can of Tuna can.tuna
1050986417 Empty Tuna Can can.tuna.empty
523409530 Candy Cane candycane
1300054961 CCTV Camera cctv.camera
-2095387015 Ceiling Light ceilinglight
1436001773 Charcoal charcoal
1711323399 Burned Chicken chicken.burned
1734319168 Cooked Chicken. chicken.cooked
-1658459025 Raw Chicken Breast chicken.raw
-726947205 Spoiled Chicken chicken.spoiled
-341443994 Chocolate Bar chocholate
2045107609 Corn Clone clone.corn
2045246801 Hemp Clone clone.hemp
509654999 Pumpkin Plant Clone clone.pumpkin
94756378 Cloth cloth
3059095 Coal :( coal
-2128719593 Coffee Can Helmet coffeecan.helmet
3059624 Corn corn
2123300234 Crossbow crossbow
1983936587 Crude Oil crude.oil
1257201758 Tool Cupboard cupboard.tool
-1178289187 Bone Helmet deer.skull.mask
-1598790097 Sheet Metal Double Door door.double.hinged.metal
-933236257 Armored Double Door door.double.hinged.toptier
-1575287163 Wood Double Door door.double.hinged.wood
-2104481870 Sheet Metal Door door.hinged.metal
-1571725662 Armored Door door.hinged.toptier
1456441506 Wooden Door door.hinged.wood
1200628767 Door Key door.key
1891056868 Duct Tape ducttape
1295154089 Satchel Charge explosive.satchel
498591726 Timed Explosive Charge explosive.timed
1755466030 Explosives explosives
-1034048911 Animal Fat fat.animal
-2078972355 Cooked Fish fish.cooked
88869913 Minnows fish.minnows
-533484654 Raw Fish fish.raw
865679437 Small Trout fish.troutsmall
1369769822 Survival Fish Trap fishtrap.small
1045869440 Flame Thrower flamethrower
97513422 Flare flare
-1722829188 A floor grill floor.grill
1849912854 Ladder Hatch floor.ladder.hatch
-217113639 Acoustic Guitar fun.guitar
-505639592 Furnace furnace
1598149413 Large Furnace furnace.large
-1779401418 High External Stone Gate gates.external.high.stone
-57285700 High External Wooden Gate gates.external.high.wood
98228420 Gears gears
277631078 Wind Turbine generator.wind.scrap
3175989 Glue glue
718197703 Granola Bar granolabar
384204160 Beancan Grenade grenade.beancan
-1308622549 F1 Grenade grenade.f1
-1580059655 Gun Powder gunpowder
-1224598842 Hammer hammer
-1976561211 Salvaged Hammer hammer.salvaged
-1406876421 Beenie Hat hat.beenie
-1397343301 Boonie Hat hat.boonie
-1381682752 Candle Hat hat.candle
696727039 Baseball Cap hat.cap
-450738836 Miners Hat hat.miner
124310981 Wolf Headdress hat.wolf
698310895 Hatchet hatchet
-1078788046 Hazmat Boots hazmat.boots
1057685737 Hazmat Gloves hazmat.gloves
1079752220 Hazmat Helmet hazmat.helmet
1133046397 Hazmat Jacket hazmat.jacket
-1066276787 Hazmat Pants hazmat.pants
523855532 Hazmat Suit hazmatsuit
-1211618504 Hoodie hoodie
2133577942 High Quality Metal Ore hq.metal.ore
-1014825244 Burned Human Meat humanmeat.burned
-991829475 Cooked Human Meat humanmeat.cooked
-642008142 Raw Human Meat humanmeat.raw
661790782 Spoiled Human Meat humanmeat.spoiled
-1440143841 Salvaged Icepick icepick.salvaged
-1167640370 Jacket jacket
-1616887133 Snow Jacket - Red jacket.snow
-1284735799 Jack O Lantern Angry jackolantern.angry
-1278649848 Jack O Lantern Happy jackolantern.happy
776005741 Bone Knife knife.bone
108061910 Wooden Ladder ladder.wooden.wall
-51678842 Lantern lantern
-789202811 Large Medkit largemedkit
50834473 Leather leather
193190034 M249 lmg.m249
-975723312 Code Lock lock.code
1908195100 Lock lock.key
146685185 Longsword longsword
28178745 Low Grade Fuel lowgradefuel
3343606 Mace mace
825308669 Machete machete
107868 Paper Map map
997973965 Improvised Balaclava mask.balaclava
-46188931 Bandana Mask mask.bandana
-253819519 Pork meat.boar
968732481 Burned Pork meat.pork.burned
991728250 Cooked Pork meat.pork.cooked
-46848560 Metal Facemask metal.facemask
688032252 Metal Fragments metal.fragments
-1059362949 Metal Ore metal.ore
1265861812 Metal Chest Plate metal.plate.torso
374890416 High Quality Metal metal.refined
1567404401 Metal Blade metalblade
-1057402571 Metal Pipe metalpipe
1835797460 Metal Spring metalspring
-758925787 Pump Jack mining.pumpjack
-1411620422 Mining Quarry mining.quarry
843418712 Mushroom mushroom
3387378 Note note
106433500 Pants pants
-459156023 Shorts pants.shorts
106434956 Paper paper
-578028723 Pick Axe pickaxe
-1379225193 Eoka Pistol pistol.eoka
371156815 M92 Pistol pistol.m92
2033918259 Python Revolver pistol.python
-930579334 Revolver pistol.revolver
548699316 Semi-Automatic Pistol pistol.semiauto
142147109 Large Planter Box planter.large
148953073 Small Planter Box planter.small
640562379 Pookie Bear pookie.bear
1974032895 Empty Propane Tank propanetank
-225085592 Pumpkin pumpkin
1987447227 Research Table research.table
540154065 Research Paper researchpaper
-1461508848 Assault Rifle rifle.ak
-55660037 Bolt Action Rifle rifle.bolt
-1716193401 LR-300 Assault Rifle rifle.lr300
-1745053053 Semi-Automatic Rifle rifle.semiauto
1939428458 Rifle Body riflebody
340009023 Riot Helmet riot.helmet
-288010497 Road Sign Jacket roadsign.jacket
-1595790889 Road Sign Kilt roadsign.kilt
-847065290 Road Signs roadsigns
3506021 Rock rock
649603450 Rocket Launcher rocket.launcher
3506418 Rope rope
-1775234707 Salvaged Cleaver salvaged.cleaver
-388967316 Salvaged Sword salvaged.sword
2007564590 Santa Hat santahat
583366917 Corn Seed seed.corn
583506109 Hemp Seed seed.hemp
466113771 Pumpkin Seed seed.pumpkin
1223860752 Semi Automatic Body semibody
-419069863 Sewing Kit sewingkit
-1617374968 Sheet Metal sheetmetal
2057749608 Salvaged Shelves shelves
24576628 Shirt shirt.collared
-1659202509 Tank Top shirt.tanktop
2107229499 Boots shoes.boots
191795897 Double Barrel Shotgun shotgun.double
-1009492144 Pump Shotgun shotgun.pump
2077983581 Waterpipe Shotgun shotgun.waterpipe
-529054135 Metal horizontal embrasure shutter.metal.embrasure.a
-529054134 Metal Vertical embrasure shutter.metal.embrasure.b
486166145 Wood Shutters shutter.wood.a
1498516223 Two Sided Hanging Sign sign.hanging
1628490888 Large Banner Hanging sign.hanging.banner.large
-632459882 Two Sided Ornate Hanging Sign sign.hanging.ornate
-626812403 Landscape Picture Frame sign.pictureframe.landscape
385802761 Portrait Picture Frame sign.pictureframe.portrait
2117976603 Tall Picture Frame sign.pictureframe.tall
1338515426 XL Picture Frame sign.pictureframe.xl
-1455694274 XXL Picture Frame sign.pictureframe.xxl
1579245182 Large Banner on pole sign.pole.banner.large
-587434450 Double Sign Post sign.post.double
-163742043 Single Sign Post sign.post.single
-1224714193 One Sided Town Sign Post sign.post.town
644359987 Two Sided Town Sign Post sign.post.town.roof
-1962514734 Huge Wooden Sign sign.wooden.huge
-705305612 Large Wooden Sign sign.wooden.large
-357728804 Wooden Sign sign.wooden.medium
-698499648 Small Wooden Sign sign.wooden.small
960793436 Human Skull skull.human
1001265731 Wolf Skull skull.wolf
1253290621 Sleeping Bag sleepingbag
470729623 Small Oil Refinery small.oil.refinery
927253046 Small Water Bottle smallwaterbottle
109552593 Custom SMG smg.2
-2094080303 MP5A4 smg.mp5
456448245 Thompson smg.thompson
-2092529553 SMG Body smgbody
-2118132208 Stone Spear spear.stone
-1127699509 Wooden Spear spear.wooden
-685265909 Wooden Floor Spikes spikes.floor
1051155022 Small Stash stash.small
-892259869 Sticks sticks
-1623330855 SUPER Stocking stocking.large
-1616524891 Small Stocking stocking.small
789892804 Stone Pick Axe stone.pickaxe
-1289478934 Stone Hatchet stonehatchet
-892070738 Stones stones
-891243783 Sulfur sulfur
889398893 Sulfur Ore sulfur.ore
-1625468793 Supply Signal supply.signal
1293049486 Survey Charge surveycharge
586484018 Medical Syringe syringe.medical
2069925558 Reactive Target target.reactive
1490499512 Targeting Computer targeting.computer
3552619 Tarp tarp
1471284746 Tech Trash techparts
-1342405573 Camera tool.camera
110547964 Torch torch
1046072789 Snap Trap trap.bear
255101535 Land Mine trap.landmine
-864578046 T-Shirt tshirt
1660607208 Longsleeve T-Shirt tshirt.long
-1792066367 High External Wooden Wall wall.external.high
-496055048 High External Stone Wall wall.external.high.stone
-427925529 Prison Cell Wall wall.frame.cell
562888306 Prison Cell Gate wall.frame.cell.gate
-378017204 Chainlink Fence wall.frame.fence
995306285 Chainlink Fence Gate wall.frame.fence.gate
1175970190 Shop Front wall.frame.shopfront
-1021702157 Metal Window Bars wall.window.bars.metal
-402507101 Reinforced Window Bars wall.window.bars.toptier
-1556671423 Wooden Window Bars wall.window.bars.wood
112903447 Water water
-1628526499 Water Barrel water.barrel
1817873886 Large Water Catcher water.catcher.large
1824679850 Small Water Catcher water.catcher.small
1840561315 Water Purifier water.purifier
1916127949 Salt Water water.salt
547302405 Water Jug waterjug
1229879204 Weapon Flashlight weapon.mod.flashlight
-465236267 Holosight weapon.mod.holosight
516382256 Weapon Lasersight weapon.mod.lasersight
-1569356508 Muzzle Boost weapon.mod.muzzleboost
-1569280852 Muzzle Brake weapon.mod.muzzlebrake
1213686767 Silencer weapon.mod.silencer
-141135377 4x Zoom Scope weapon.mod.small.scope
-1714986849 Burned Wolf Meat wolfmeat.burned
-1691991080 Cooked Wolf Meat wolfmeat.cooked
179448791 Raw Wolf Meat wolfmeat.raw
431617507 Spoiled Wolf Meat wolfmeat.spoiled
3655341 Wood wood
1554697726 Wood Chestplate wood.armor.jacket
-1883959124 Wood Armor Pants wood.armor.pants
-1732316031 Large Present xmas.present.large
-2130280721 Medium Present xmas.present.medium
-1725510067 Small Present xmas.present.small

Item Skins

Acoustic Guitar (fun.guitar)

Skin Id Skin name
809801196 Addicted Guitarist
826914904 Army Acoustic Guitar
809938266 Black Acoustic Guitar
844914652 No War Guitar

Armored Door (door.hinged.toptier)

Skin Id Skin name
804286931 Corroded Bronze Door
801889927 High Voltage
801937986 Incarceration Armored Door
801831553 Laboratory Armored Door
839925176 Military Armored Door
809638761 No Escape
807729959 Radioactive Armored Door

Assault Rifle (rifle.ak)

Skin Id Skin name
809190373 Battle-Scarred AKS47
840477492 Crimson King
10135 Digital Camo AK47
10137 Military Camo AK47
654502185 Rustpunk AK47
10138 Tempered AK47

Bandana Mask (mask.bandana)

Skin Id Skin name
10061 Black Bandana
10060 Blue Bandana
10067 Checkered Bandana
10104 Creepy Clown Bandana
10066 Desert Camo Bandana
10063 Forest Camo Bandana
10059 Green Bandana
10065 Red Skull Bandana
10064 Skull Bandana
10062 Snow Camo Bandana
10079 Wizard Bandana

Baseball Cap (hat.cap)

Skin Id Skin name
10029 Blue Cap
10027 Forest Camo Cap
10055 Friendly Cap
10030 Green Cap
10026 Grey Cap
10028 Red Cap
10045 Rescue Cap

Beenie Hat (hat.beenie)

Skin Id Skin name
14180 Black Beenie Hat
10018 Blue Beenie Hat
10017 Green Beenie Hat
594202145 Gunner Beanie
10040 Rasta Beenie
10016 Red Beenie Hat
10085 Winter Deers

Bolt Action Rifle (rifle.bolt)

Skin Id Skin name
818403150 Army Bolt Rifle
10117 Dreamcatcher
10115 Ghost Bolt Rifle
840105253 Polymer BAR
819149392 Rustpunk Rifle
10116 Tundra Bolt Rifle

Bone Club (bone.club)

Skin Id Skin name
791109245 Little Friend

Bone Helmet (deer.skull.mask)

Skin Id Skin name
784259585 Demonic Deer Skull
837166252 Uprising Deer Skull Mask

Bone Knife (knife.bone)

Skin Id Skin name
808955868 Etched Edge Bone Knife

Boonie Hat (hat.boonie)

Skin Id Skin name
10058 Farmer Hat
587812040 Fisherman Boonie Hat

Boots (shoes.boots)

Skin Id Skin name
10080 Army Boots
10023 Black Boots
10088 Bloody Boots
838205144 Combat Boots
784559403 Hazard Move Boots
10034 Punk Boots
613481881 Rock Star Boots
10044 Scavenged Sneaker Boots
809586899 Tactical Boots
10022 Tan Boots

Bucket Helmet (bucket.helmet)

Skin Id Skin name
10127 Medic Helmet
784438982 Smilin’ Jack
564826303 Wooden Bucket

Burlap Headwrap (burlap.headwrap)

Skin Id Skin name
785890135 SandPrince

Burlap Shirt (burlap.shirt)

Skin Id Skin name
809909900 Burlap and Leather Vest
654502725 Captain’s Vest and Shirt
10136 Pirate Vest & Shirt

Burlap Shoes (burlap.shoes)

Skin Id Skin name
790679533 Burlap Ninja Slippers

Burlap Trousers (burlap.trousers)

Skin Id Skin name
809968188 Recycled Tarp Pants

Coffee Can Helmet (coffeecan.helmet)

Skin Id Skin name
843676357 Lizard Skull
806212029 Rusty Coffee Can Helmet
784910461 Skull Hazard
814098474 Spare Parts

Concrete Barricade (barricade.concrete)

Skin Id Skin name
828182621 Metal Barricade
791070521 Road Barrier

Crossbow (crossbow)

Skin Id Skin name
818070371 Engraved Crossbow
809964230 HazardCross

Custom SMG (smg.2)

Skin Id Skin name
820350952 Alien Relic SMG
820402694 Anarchy SMG
816728172 Firestarter Custom SMG
822943156 tRUSTy Friend

F1 Grenade (grenade.f1)

Skin Id Skin name
836745325 Fire and Brimstone Grenade
815252048 Voodoo Grenade

Hammer (hammer)

Skin Id Skin name
833423263 Scorched Hammer
822539548 Welded Hammer

Hatchet (hatchet)

Skin Id Skin name
814630559 Firefighter Hatchet
824552943 Golden Axe
816715928 Military Hatchet
826402867 Veteran Hatchet
814713259 Vikings Tomahawk

Hide Boots (attire.hide.boots)

Skin Id Skin name
785347695 Native American Hide Shoes
837175591 Uprising Hide Shoes

Hide Halterneck (attire.hide.helterneck)

Skin Id Skin name
798669794 Caution Tape Top
845019310 Leopard Top

Hide Pants (attire.hide.pants)

Skin Id Skin name
837179220 Uprising Hide Pants

Hide Poncho (attire.hide.poncho)

Skin Id Skin name
788732722 Grey Wolf Hide Poncho
825459163 Toymaker Poncho
837191793 Uprising Hide Poncho

Hide Skirt (attire.hide.skirt)

Skin Id Skin name
831920129 Blue Tarp Skirt
793180528 Irish Kilt

Hoodie (hoodie)

Skin Id Skin name
10142 BCHILLZ! Hoodie
14179 Black Hoodie
10052 Bloody Hoodie
14178 Blue Hoodie
10133 Cuda87 Hoodie
14072 Green Hoodie
797128321 Official Vertiigo Hoodie
661319427 Ranger’s Vest
10132 Rhinocrunch Hoodie
10129 Safety Crew
10086 Skeleton Hoodie
677636990 Tank Crew Hoodie
803249256 Unknown Territory Hoodie

Improvised Balaclava (mask.balaclava)

Skin Id Skin name
843976918 Burglar Mask
539536877 Burlap Brains Balaclava
10069 Desert Camo Balaclava
10071 Double Yellow Balaclava
10068 Forest Camo Balaclava
813561728 Knitted Balaclava
10057 Murica Balaclava
10075 Nightmare Balaclava
10070 Red Check Balaclava
10054 Rorschach Skull
807719156 Santa Balaclava
10090 Skin Balaclava
539562549 Stitched Skin
10084 The Rust Knight
10139 Valentine Balaclava
10111 Zipper Face

Jacket (jacket)

Skin Id Skin name
10011 Blue Jacket
10012 Desert Jacket
834233801 Fire jacket
10009 Green Jacket
10015 Hunting Jacket
10013 Multicam Jacket
10072 Provocateur Jacket
10010 Red Jacket
10008 Snowcamo Jacket
10014 Urban Camo Jacket

Large Wood Box (box.wooden.large)

Skin Id Skin name
813269955 Ammo Box
10124 Ammo Wooden Box
810383121 Christmas Holiday LWB
10122 Christmas Storage
576569265 D.O.A Trunk
798455489 Explosives Box
10123 First Aid Green
10141 Gun Box
797422750 Large Stone Box
842083350 Military Crate

Leather Gloves (burlap.gloves)

Skin Id Skin name
816473273 Black Alligator
10128 Boxer’s Bandages
661317919 Duelist Gloves
610098458 Motorcycle Gloves

Longsleeve T-Shirt (tshirt.long)

Skin Id Skin name
10047 Aztec Long T-Shirt
801204141 Battle Worn Long TShirt
10004 Black Longsleeve T-Shirt
808300545 Christmas Elf
512107102 Christmas Jumper
10106 Creepy Jack
10050 Frankensteins Sweater
10032 Green Checkered Shirt
10005 Grey Longsleeve T-Shirt
566893368 Lawman
10118 Merry Reindeer
10051 Nightmare Sweater
10006 Orange Longsleeve T-Shirt
10036 Sign Painter
10042 Varsity Jacket
10007 Yellow Longsleeve T-Shirt

Longsword (longsword)

Skin Id Skin name
825169057 Danger Fork
796733487 Hot-tempered Longsword
825008040 Xtreme Sword

Metal Chest Plate (metal.plate.torso)

Skin Id Skin name
832233112 Chainmail
842577956 Chest Resistance
796728308 Flak Vest - Green
794169855 Forest Camo Chest Plate
823132085 Hazardous Grater Chest Plate
828888000 Machina Plate
817022417 Metal Barrel Chest Plate
797410767 Plate Carrier - Black
799657859 Racing Stripes Chest Plate

Metal Facemask (metal.facemask)

Skin Id Skin name
832021670 Army Facemask
792649975 Aztek Night Hunter
784316334 Big Grin
799044333 Blingin Grill
821441043 BoltFace Metal Facemask
792079554 Death Facemask
807821375 Frostbite
794837198 Glowing Skull
812933296 Human Sacrifice Mask
806983252 Industrial Protection Mask
828888629 Machina Mask
841012325 Mask of Sacrifice
803894027 Punishment Mask
792905158 Rusted Smile
792827436 Sacrificial Mask
824898622 Stainless Facemask
816530945 Steampunk Leather Mask
800980236 Tempered Mask
832934294 Where Eagles Dare

Miners Hat (hat.miner)

Skin Id Skin name
788260164 Train Conductor Miner’s Hat

MP5A4 (smg.mp5)

Skin Id Skin name
796679172 Digital Camo MP5
833639834 Elite Mp5
796687275 Military Camo MP5
808554348 Polymer MP5
800974015 Tempered Mp5

Pants (pants)

Skin Id Skin name
10001 Blue Jeans
10049 Blue Track Pants
10019 Forest Camo Pants
10078 Old Prisoner Pants
823154911 One Percenter Chaps
10048 Punk Rock Pants
10021 Snow Camo Pants
798690647 Steppe Camo Pants
10020 Urban Camo Pants

Pump Shotgun (shotgun.pump)

Skin Id Skin name
10074 Chieftain Pump Shotgun
813631833 Native Gold
813628651 Native Yellow
10140 The Swampmaster
731119713 Urban Afterburn Pump Shotgun

Reactive Target (target.reactive)

Skin Id Skin name
824001540 Led Light Target
791177585 On Target

Revolver (pistol.revolver)

Skin Id Skin name
809865395 Handmade Revolver
809822151 Hot-tempered Revolver
10114 Outback revolver

Riot Helmet (riot.helmet)

Skin Id Skin name
801095823 Captain’s Helmet

Road Sign Jacket (roadsign.jacket)

Skin Id Skin name
801873550 British Sign Vest
818611894 Chopshop Body Armor
784581113 Hazard Protection Vest
828175620 Spiked Metal Vest

Road Sign Kilt (roadsign.kilt)

Skin Id Skin name
801837047 British Sign Pants
818612271 Chopshop Kilt
784577443 Hazard Cover Pants
794291485 Military Camo Roadsign Kilt
828173323 Spiked Metal Kilt

Rock (rock)

Skin Id Skin name
804791902 Gold Rock
807372963 Meteorite
834287924 Ripe Watermelon
824904841 Shard of True Ice

Rocket Launcher (rocket.launcher)

Skin Id Skin name
813795591 Army Surplus Rocket Launcher
812737524 ThatGermanGuy Warhawk

Salvaged Icepick (icepick.salvaged)

Skin Id Skin name
820810719 Inferno Hazard Salvaged Icepick
844666224 Lavapick

Salvaged Sword (salvaged.sword)

Skin Id Skin name
825240467 Wooden Sword

Sandbag Barricade (barricade.sandbags)

Skin Id Skin name
809144507 Grandmother’s Gift Barricade

Semi-Automatic Pistol (pistol.semiauto)

Skin Id Skin name
10087 Contamination Pistol
805925675 Golden Leaf SAP
10108 Halloween Bat
830255284 LCD Marine Sidearm
804337360 Paint Rush SAP
798375117 Polymer SAP
10081 Reaper Note Pistol
10073 Red Shine Pistol
827533196 Salt Shaker SAP
829983759 Tehno Pistol

Semi-Automatic Rifle (rifle.semiauto)

Skin Id Skin name
828616457 Army SAR
818613234 Workbench SAR

Sheet Metal Door (door.hinged.metal)

Skin Id Skin name
827190175 Doomsday Door
832957536 Metal Shutter Door
835119969 Recycled Garage Door

Shirt (shirt.collared)

Skin Id Skin name
797241160 Charitable Rust 2016 Shirt
802078252 Green Lumberjack
802073199 Red Lumberjack
819818852 Sergeant Shirt
809704306 Survival Shirt
801955689 The Blue Death

Shorts (pants.shorts)

Skin Id Skin name
794678401 Camo Shorts
793871235 Cutoff Shorts
818068257 Homemade Shorts
799006291 Snow Camo Shorts

Sleeping Bag (sleepingbag)

Skin Id Skin name
10121 Aston Christmas
10037 Blue Plaid Sleeping Bag
10119 Christmas Bag
809186722 Christmas Holiday Bag
539536110 Freshly Dug Grave
10107 Horror Bag
795398514 Jungle Camo Sleeping Bag
834487561 Red Survival Sleeping Bag
10077 Tiger Crown Sleeping Bag
10076 Wood Camo Sleeping Bag

Snow Jacket - Red (jacket.snow)

Skin Id Skin name
530154777 60’s Army Jacket
10113 Black
530159711 Salvaged Shirt, Coat and Tie
839466039 Telogreika Jacket
10112 Woodland

Stone Hatchet (stonehatchet)

Skin Id Skin name
797445687 Ice Tooth

Stone Pick Axe (stone.pickaxe)

Skin Id Skin name
840380436 Bloody Tooth Pickaxe

Tank Top (shirt.tanktop)

Skin Id Skin name
784578916 Black Mesh Crop Top

Thompson (smg.thompson)

Skin Id Skin name
561462394 Santa’s Little Helper
839819171 Wasteland Hunter

T-Shirt (tshirt)

Skin Id Skin name
10130 Argyle Scavenger
10033 Baseball Tshirt
10003 Black Tshirt
14177 Blue Tshirt
489329801 Facepunch TShirt
14181 Forest Camo Tshirt
10024 German Tshirt
10035 Hacker Valley Veteran
10046 Missing Textures TShirt
10038 Murderer T-Shirt
101 Red Tshirt
10025 Russia Tshirt
10002 Sandbox Game Shirt
10134 Ser Winter TShirt
489687236 Shadowfrax TShirt
10041 Skull & Bones TShirt
10053 Smile T-Shirt
10039 Target Practice T-Shirt
584379 Urban Camo
10043 Vyshyvanka Shirt

Waterpipe Shotgun (shotgun.waterpipe)

Skin Id Skin name
819137470 Rustpunk Scattergun
10143 The Peace Pipe

Wood Storage Box (box.wooden)

Skin Id Skin name
787716105 First Aid Box

Wooden Door (door.hinged.wood)

Skin Id Skin name
804991715 Christmas Tree Door
809253752 Door to Heaven
804854812 Old Heavy Wooden Door

Prefabs List

Autospawn

assets/bundled/prefabs/autospawn/<category>/<subcategory>/<name>.prefab

Category Subcategory Name
animals bear
animals boar
animals chicken
animals horse
animals stag
animals wolf
clutter cliffside boulder1
clutter cliffside boulder3
clutter driftwood driftwood-1
clutter driftwood driftwood-2
clutter driftwood driftwood-3
clutter driftwood driftwood-4
clutter driftwood driftwood-5
clutter forestferns fern-a-1
clutter forestferns fern-a-2
clutter forestferns fern-b-1
clutter forestferns fern-b-2
clutter forestflowers flowers-white
clutter forestflowers flowers-yellow
clutter forestmediumgrowth bush-snakeweed-1
clutter forestmediumgrowth bush-snakeweed-2
clutter forestweeds knapweed
clutter forestweeds knapweed-flower
clutter grassflowers flowers-red
clutter grassflowers flowers-violet
clutter grassflowers flowers-white
clutter grassflowers flowers-yellow
clutter grassweeds snakeweed-1
clutter grassweeds snakeweed-2
clutter grassweeds snakeweed-flower-1
clutter grassweeds snakeweed-flower-2
clutter icesheet icesheets-1
clutter icesheet icesheets-2
clutter icesheet icesheets-3
clutter icesheet icesheets-4
clutter icesheet icesheets-5
clutter icesheet icesheets-6
clutter icesheet icesheets-7
collectable hemp hemp
collectable mushrooms mushroom-cluster-1
collectable mushrooms mushroom-cluster-2
collectable mushrooms mushroom-cluster-3
collectable mushrooms mushroom-cluster-4
collectable mushrooms mushroom-cluster-5
collectable mushrooms mushroom-cluster-6
collectable stone metalore-2
collectable stone stone-1
collectable stone sulfurore-3
collectable stone wood
decor beach-arctic bush-a-1-snow
decor beach-arid bush-a-1
decor beach-arid bush-a-2
decor beach-temperate bush-a-1
decor beach-temperate bush-a-2
decor beach-tundra bush-a-1
decor beach-tundra bush-a-2
decor bridge bridge
decor cliff cliff_1
decor cliff-micro rock_10
decor cliff-micro rock_9
decor fields-arctic bush-a-1-snow
decor fields-arid azalea-1
decor fields-arid azalea-2
decor fields-arid azalea-3
decor fields-arid bush-a-1
decor fields-arid bush-a-2
decor fields-temperate bush-a-1
decor fields-temperate bush-a-2
decor fields-tundra bush-a-1
decor fields-tundra bush-a-2
decor forest-arctic bush-a-1-snow
decor forest-arid bush-a-1
decor forest-arid bush-a-2
decor forest-temperate bush-a-1
decor forest-temperate bush-a-2
decor forest-tundra bush-a-1
decor forest-tundra bush-a-2
decor hapis-rocks-bottom rock_a
decor hapis-rocks-bottom rock_b
decor hapis-rocks-bottom rock_c
decor hapis-rocks-forest rock_a
decor hapis-rocks-forest rock_b
decor hapis-rocks-forest rock_c
decor hapis-rocks-medium rock_1
decor hapis-rocks-medium rock_2
decor hapis-rocks-medium rock_3
decor hapis-rocks-medium rock_7
decor hapis-rocks-medium rock_a
decor hapis-rocks-medium rock_b
decor hapis-rocks-medium rock_c
decor hapis-rocks-mountainsides rock_a
decor hapis-rocks-mountainsides rock_b
decor hapis-rocks-mountainsides rock_c
decor hapis-rocks-small rock_08
decor hapis-rocks-small stone_21
decor hapis-rocks-small stone_23
decor iceberg iceberg_1
decor iceberg iceberg_2
decor iceberg iceberg_3
decor overhang overhang_1
decor powerline powerline
decor powerline-small powerline
decor river stone_21
decor river stone_22
decor river stone_23
decor riverdrain splash
decor riversound river_sound
decor riversource source
decor roadside busstop
decor roadside powerbox1
decor roadside powerbox2
decor roadside powerbox3
decor roadside powerbox4
decor roadside roadsign1
decor roadside roadsign2
decor roadside roadsign3
decor roadside roadsign4
decor roadside roadsign5
decor roadside roadsign6
decor roadside roadsign7
decor roadside roadsign8
decor roadside roadsign9
decor rock-beachside rock_1
decor rock-beachside rock_13
decor rock-beachside rock_7
decor rock-beachside rock_8
decor rock-beachside rock_a
decor rock-beachside rock_b
decor rock-beachside rock_c
decor rock-field rock_1
decor rock-field rock_2
decor rock-field rock_3
decor rock-field rock_7
decor rock-waterside rock_1
decor rock-waterside rock_12
decor rock-waterside rock_2
decor rock-waterside rock_3
decor rock-waterside rock_7
decor rock-waterside rock_8
decor rock-waterside rock_a
decor rock-waterside rock_b
decor rock-waterside rock_c
decor shore elephant-grass
monument airfield airfield_1
monument cave cave_small
monument lighthouse lighthouse
monument mining warehouse
monument mountain mountain_test
monument production satellite_dish
monument production sphere_tank
monument radtown radtown_small_1
monument radtown radtown_small_2
monument radtown radtown_small_3
monument radtown radtown_small_4
monument radtown radtown_small_5
resource beachside-deadtrees deadtree-1
resource beachside-deadtrees deadtree-2
resource beachside-deadtrees field-bare-1
resource beachside-deadtrees field-bare-2
resource beachside-deadtrees field-bare-3
resource beachside-palms palm-1
resource beachside-palms palm-2
resource beachside-palms palm-3
resource beachside-trees douglas-fir-1
resource beachside-trees douglas-fir-2
resource crystals crystal1
resource crystals crystal1b
resource crystals crystal1c
resource crystals crystal2
resource crystals crystal2b
resource crystals crystal2c
resource field-temperate field-1
resource field-temperate field-2
resource field-temperate field-3
resource field-temperate field-4
resource field-temperate field-5
resource field-tundra deadtree-3
resource field-tundra deadtree-4
resource field-tundra field-bare-1
resource field-tundra field-bare-2
resource field-tundra field-bare-3
resource forest-arctic pinesnow-1
resource forest-arctic pinesnow-2
resource forest-arctic pinesnowtall-1
resource forest-arid douglas-fir-1
resource forest-arid douglas-fir-2
resource forest-temperate oak-1
resource forest-temperate oak-2
resource forest-tundra pine-1
resource forest-tundra pine-2
resource forest-tundra-commons pine-3
resource forest-tundra-commons pine-4
resource forest-tundra-rares pinebare-1
resource forest-tundra-rares pinebare-2
resource forest-tundra-rares pinetall-1
resource forest-tundra-rares pinetall-2
resource forest-tundra-rares pinetall-3
resource loot loot-barrel-1
resource loot loot-barrel-2
resource loot trash-pile-1
resource ores metal-ore
resource ores stone-ore
resource ores sulfur-ore
resource roadside hollywood-juniper-1
resource roadside hollywood-juniper-2

Plants

assets/prefabs/plants/<subcategory>/<name>.prefab

Category Subcategory Name
corn corn.entity
corn corn.item
corn corn.skin.1.seedling
corn corn.skin.2.sapling
corn corn.skin.3.mature
corn corn.skin.4.fruiting
corn corn.skin.5.dying
corn corn_seed.item
plantharvest.effect
plantseed.effect
pumpkin pumpkin.entity
pumpkin pumpkin.item
pumpkin pumpkin.skin.1.seedling
pumpkin pumpkin.skin.2.sapling
pumpkin pumpkin.skin.3.mature
pumpkin pumpkin.skin.4.fruiting
pumpkin pumpkin.skin.5.dying
pumpkin pumpkin.wearable
pumpkin pumpkin.worldmodel
pumpkin pumpkin_seed.item

Player

assets/prefabs/player/<subcategory>/<name>.prefab

Category Subcategory Name
player construct_vision
player player
player player_collision
player player_corpse
player player_model
player player_movement
player player_nametag
player player_preview
player player_ragdoll
player ui_damageindicator

Resource

assets/prefabs/resource/<subcategory>/<name>.prefab

Category Subcategory Name
resource battery_small.item
resource blood.item
resource bone_fragments.item
resource can_beans_empty.item
resource can_tuna_empty.item
resource cctv_camera.item
resource charcoal.item
resource cloth.item
resource crude_oil.item
resource explosives.item
resource fat.animal.item
resource fuel.lowgrade.item
resource gunpowder.item
resource hq_metal_ore.item
resource leather.item
resource metal_fragments.item
resource metal_ore.item
resource metal_refined.item
resource paper.item
resource salt_water.item
resource skull_wolf.item
resource stone stone.worldmodel
resource stone stones.item
resource sulfur.item
resource sulfur_ore.item
resource targeting_computer.item
resource water.item
resource wood wood.item
resource wood wood.worldmodel

Styling Messages

Render the text in boldface

We are <b>not</b> amused.

Render the text in italics

We are <i>usually</i> not amused.

It is possible to apply more than one style to a section of text by nesting one element inside another.

We are <b><i>definitely not</i></b> amused

Note the ordering of the ending tags, which is in reverse to that of the starting tags. The reason for this is perhaps clearer when you consider that the inner tags need not span the whole text of the outermost element.

We are <b>absolutely <i>definitely</i> not</b> amused

Change the size of text, by pixel value

We are <size=50>largely</size> unaffected.

Change the color of text

<color=#00ffffff>Hello world</color>

Messages sent from the server via plugins can be stylized using basic HTML. Styling is limited to bold, italic, size, and color.

The color can be specified in the traditional HTML format. #rrggbbaa… where the letters correspond to pairs of hexadecimal digits denoting the red, green, blue and alpha (transparency) values for the color.

Another option is to use the name of the color. This is easier to understand but naturally, the range of colors is limited and full opacity is always assumed. <color=cyan>… The available color names are given in the table below.

Color Name Hex Value Swatch
aqua (same as cyan) #00ffffff
black #000000ff
blue #0000ffff
brown #a52a2aff
cyan (same as aqua) #00ffffff
darkblue #0000a0ff
fuchsia (same as magenta) #ff00ffff
green #008000ff
grey #808080ff
lightblue #add8e6ff
lime #00ff00ff
magenta (same as fuchsia) #ff00ffff
maroon #800000ff
navy #000080ff
olive #808000ff
orange #ffa500ff
purple #800080ff
red #ff0000ff
silver #c0c0c0ff
teal #008080ff
white #ffffffff
yellow #ffff00ff

Source: http://docs.unity3d.com/Manual/StyledText.html