Core Plugin Overview
enables cross-cluster communication and data management, allowing for instant complex event handling across the cluster and integration with other core modules, such as the Discord bot.
RCON Commands
NGC.reload - Reloads Config, Cache, Database
NGC.reload.Log - Reload logger.json
NGC.reload.Cache - Reloads clusterdata cache from database
NGC.reload.Auth - Reloads auth from license API
NGC.dump.Cache - Dumps Ngc cache to Json file for support to assist in identifying issues
NGC.Log - Logs the cluster info to console
NGC.reconnect - Manually triggers reconnect if a server has failed to connect to another
Setup Instructions
Video Available
config.json
example cluster.json
logger.json
Support Discord
enables cross-cluster communication and data management, allowing for instant complex event handling across the cluster and integration with other core modules, such as the Discord bot.
RCON Commands
NGC.reload - Reloads Config, Cache, Database
NGC.reload.Log - Reload logger.json
NGC.reload.Cache - Reloads clusterdata cache from database
NGC.reload.Auth - Reloads auth from license API
NGC.dump.Cache - Dumps Ngc cache to Json file for support to assist in identifying issues
NGC.Log - Logs the cluster info to console
NGC.reconnect - Manually triggers reconnect if a server has failed to connect to another
Setup Instructions
Video Available
config.json
JSON:
{
"AccountEmail": "", // Should match the discord email used to login to the website
"IgnoreTribeRanksAndAdmins ": true, // Will ignore admin tribe ranks when checking tribes
"Mysql": {
"MysqlHost": "", // MySql Server Ip or host name
"MysqlPort": 3306, // MySql Server port number
"MysqlUser": "", // Database Username
"MysqlPass": "", // Database Password
"MysqlDB": "" // Database name
},
"Pings": {
"PingIntervalMs": 20000, // How often the server should ping each other in Milliseconds
"ReportIntervalSeconds":, 60 // How often should the console how the connected servers in seconds
"WebsocketTimeoutSecs": 2
"EnableServerOfflineChecks": true,
}
}
[/SPOILER]
example cluster.json
JSON:
{
"ClusterName": "Kals Servers", //The name of your cluster, Used by addons
"Machines": [
{
"IpAddress": "192.168.1.2", // Ark maps server IP address
"UseLocalWhenPossible": true,
"Label": "Ark SE", // A label for this host
"ArkServers": [
{
"Key": "TheIsland", // The server key for an Ark Map
"Label": "The Island", // The label you want the name to show
"WebsocketPort": 48030 // Websocket Port number this Map should use. Must be unique and accessable form other maps
},
{
"Key": "TheIsland2", // The server key for an Ark Map, if you have more than 1 of the same map use server Param -ServerKey=TheIsland2
"Label": "The Island 2", // The label you want the name to show
"WebsocketPort": 48032 // Websocket Port number this Map should use. Must be unique and accessable form other maps
},
{
"Key": "Aberration_P",
"Label": "Aberration",
"WebsocketPort": 48034 // Websocket Port number this Map should use. Must be unique and accessable form other maps
},
{
"Key": "EventMap", // The server key for an Ark Map, if you have more than 1 of the same map use server Param -ServerKey=EventMap
"Label": "Event Map", // The label you want the name to show
"WebsocketPort": 48036 // Websocket Port number this Map should use. Must be unique and accessable form other maps
}
],
"CustomServers": [
{
"Key": "discord", // The key that will be used in the discord bot config.json
"Label": "Discord", // The label you want the name to show
"WebsocketPort": 48200 // Websocket Port number this Map should use. Must be unique and accessable form other maps
}
]
},
{
"IpAddress": "192.168.1.3", // Ark maps server IP address
"UseLocalWhenPossible": true,
"Label": "Ark SA", // A label for this host
"ArkServers": [
{
"Key": "TheIsland_WP", // The server key for an Ark Map
"Label": "The Island", // The label you want the name to show
"WebsocketPort": 48030 // Websocket Port number this Map should use. Must be unique and accessable form other maps
},
{
"Key": "TheIsland2", // The server key for an Ark Map, if you have more than 1 of the same map use server Param -ServerKey=TheIsland2
"Label": "The Island 2", // The label you want the name to show
"WebsocketPort": 48032 // Websocket Port number this Map should use. Must be unique and accessable form other maps
},
{
"Key": "Svartalfheim_WP",
"Label": "Svartalfheim",
"WebsocketPort": 48034 // Websocket Port number this Map should use. Must be unique and accessable form other maps
},
{
"Key": "EventMap", // The server key for an Ark Map, if you have more than 1 of the same map use server Param -ServerKey=EventMap
"Label": "Event Map", // The label you want the name to show
"WebsocketPort": 48036 // Websocket Port number this Map should use. Must be unique and accessable form other maps
}
],
"CustomServers": []
}
]
}
[/SPOILER]
logger.json
JSON:
{
"LogLevel": 2,
"SaveEventsToDb": true,
"CoreLogOverrides": {
// 0 - Trace, 1 - Debug, 2 - Info, 3 - Warning, 4 - Error, 5 - Fatal
// AUTH, CONFIG, DATABASE, CACHE, PLUGIN, EVENTS, POOL
//"AUTH": 4,
//"CONFIG": 4,
//"DATABASE": 0,
//"CACHE": 4
//"PLUGIN": 4,
//"EVENTS": 1,
// "POOL": 0
},
"SubLogOverrides": {
// Server, Player, Char, Tribe, Thread, Ping
//"Player": 0,
//"Server": 0,
//"RolePermSync": 0
//"Ping": 0
//"KC": 0
},
"NetworkLog": {
/*
bool OnInit = true;
bool OnServerReady = true;
bool OnConnectionChange = true;
bool ShowOffline = true;
bool ShowNonArk = true;
int PingIntervalMs = 1000;
double ReportIntervalMins = -1;
*/
"ShowOffline": true,
"OnServerReady": true,
"ReportIntervalMins": 1, // -1 means no automatic report in console
"PingIntervalMs": 30000
}
}
[/SPOILER]
Support Discord