From 4008075fba23ede647e26b94325183c1634fe185 Mon Sep 17 00:00:00 2001
From: Shanomac99 The
## **Configuring SquadJS**
From 387d1d78597328737022f05f8ed64b4b56305557 Mon Sep 17 00:00:00 2001
From: Thomas Smyth
## **Configuring SquadJS**
From 48c2691f061e68c2d35b0b228ba1edf5f1e4f22d Mon Sep 17 00:00:00 2001
From: Thomas Smyth
'
);
}
diff --git a/squad-server/templates/SquadJS-Dashboard-v2.json b/squad-server/templates/SquadJS-Dashboard-v2.json
new file mode 100644
index 0000000..5ac32f0
--- /dev/null
+++ b/squad-server/templates/SquadJS-Dashboard-v2.json
@@ -0,0 +1,3448 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": "-- Grafana --",
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "gnetId": null,
+ "graphTooltip": 2,
+ "id": 7,
+ "iteration": 1614468639214,
+ "links": [],
+ "panels": [
+ {
+ "columnAliases": [],
+ "columnFiltersEnabled": false,
+ "columnWidthHints": [],
+ "columns": [],
+ "compactRowsEnabled": false,
+ "datasource": "MySQL",
+ "datatablePagingType": "simple_numbers",
+ "datatableTheme": "basic_theme",
+ "description": "This panel does not sort top scores. ",
+ "emptyData": false,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 9,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "hoverEnabled": true,
+ "id": 35,
+ "infoEnabled": true,
+ "lengthChangeEnabled": true,
+ "orderColumnEnabled": true,
+ "pagingTypes": [
+ {
+ "text": "Page number buttons only",
+ "value": "numbers"
+ },
+ {
+ "text": "'Previous' and 'Next' buttons only",
+ "value": "simple"
+ },
+ {
+ "text": "'Previous' and 'Next' buttons, plus page numbers",
+ "value": "simple_numbers"
+ },
+ {
+ "text": "'First', 'Previous', 'Next' and 'Last' buttons",
+ "value": "full"
+ },
+ {
+ "text": "'First', 'Previous', 'Next' and 'Last' buttons, plus page numbers",
+ "value": "full_numbers"
+ },
+ {
+ "text": "'First' and 'Last' buttons, plus page numbers",
+ "value": "first_last_numbers"
+ }
+ ],
+ "panelHeight": null,
+ "pluginVersion": "7.1.1",
+ "rowNumbersEnabled": false,
+ "rowsPerPage": 5,
+ "scroll": false,
+ "scrollHeight": "default",
+ "searchEnabled": true,
+ "showCellBorders": false,
+ "showHeader": true,
+ "showRowBorders": true,
+ "sort": {
+ "col": 0,
+ "desc": true
+ },
+ "sortByColumns": [
+ {
+ "columnData": "Kills",
+ "sortMethod": "desc"
+ }
+ ],
+ "sortByColumnsData": [
+ [
+ 3,
+ "desc"
+ ]
+ ],
+ "stripedRowsEnabled": true,
+ "styles": [
+ {
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "splitPattern": "/ /",
+ "thresholds": [],
+ "type": "string",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "format": "table",
+ "group": [],
+ "metricColumn": "none",
+ "rawQuery": true,
+ "rawSql": "SELECT\r\n m.attacker AS \"Steam ID\",\r\n m.attackerName AS \"Name\",\r\n `Wounds`,\r\n `Kills`,\r\n `Deaths`,\r\n `Kills`/`Deaths` AS `K/D`,\r\n `Revives`\r\nFROM `DBLog_Wounds` m\r\nLEFT JOIN (\r\n SELECT\r\n attacker,\r\n COUNT(*) AS `Wounds`\r\n FROM `DBLog_Wounds`\r\n WHERE\r\n $__timeFilter(time) AND\r\n server = $SERVER_ID\r\n GROUP BY attacker\r\n) w ON w.attacker = m.attacker\r\nLEFT JOIN (\r\n SELECT\r\n attacker,\r\n COUNT(*) AS `Kills`\r\n FROM `DBLog_Deaths`\r\n WHERE\r\n $__timeFilter(time) AND\r\n server = $SERVER_ID\r\n GROUP BY attacker\r\n) k ON k.attacker = m.attacker\r\nLEFT JOIN (\r\n SELECT\r\n victim,\r\n COUNT(*) AS `Deaths`\r\n FROM `DBLog_Deaths`\r\n WHERE\r\n $__timeFilter(time) AND\r\n server = $SERVER_ID\r\n GROUP BY victim\r\n) d ON d.victim = m.attacker\r\nLEFT JOIN (\r\n SELECT\r\n reviver,\r\n COUNT(*) AS `Revives`\r\n FROM `DBLog_Revives`\r\n WHERE\r\n $__timeFilter(time) AND\r\n server = $SERVER_ID\r\n GROUP BY reviver\r\n) r ON r.reviver = m.attacker\r\n WHERE\r\n $__timeFilter(time) AND\r\n server = $SERVER_ID \r\nGROUP BY m.attacker\r\nHAVING `K/D` IS NOT NULL;",
+ "refId": "A",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ }
+ ]
+ ],
+ "table": "DBLog_TickRates",
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "themeOptions": {
+ "dark": "./styles/dark.scss",
+ "light": "./styles/light.scss"
+ },
+ "themes": [
+ {
+ "disabled": false,
+ "text": "Basic",
+ "value": "basic_theme"
+ },
+ {
+ "disabled": true,
+ "text": "Bootstrap",
+ "value": "bootstrap_theme"
+ },
+ {
+ "disabled": true,
+ "text": "Foundation",
+ "value": "foundation_theme"
+ },
+ {
+ "disabled": true,
+ "text": "ThemeRoller",
+ "value": "themeroller_theme"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": " Only for search in the top scores - This panel does not sort top scores. ",
+ "transform": "table",
+ "type": "briangann-datatable-panel"
+ },
+ {
+ "columns": [],
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 14,
+ "w": 24,
+ "x": 0,
+ "y": 9
+ },
+ "id": 32,
+ "pageSize": null,
+ "showHeader": true,
+ "sort": {
+ "col": 3,
+ "desc": true
+ },
+ "styles": [],
+ "targets": [
+ {
+ "format": "table",
+ "group": [],
+ "metricColumn": "none",
+ "rawQuery": true,
+ "rawSql": "SELECT\r\n m.attacker AS \"Steam ID\",\r\n m.attackerName AS \"Name\",\r\n `Wounds`,\r\n `Kills`,\r\n `Deaths`,\r\n `Kills`/`Deaths` AS `K/D`,\r\n `Revives`\r\nFROM `DBLog_Wounds` m\r\nLEFT JOIN (\r\n SELECT\r\n attacker,\r\n COUNT(*) AS `Wounds`\r\n FROM `DBLog_Wounds`\r\n WHERE\r\n $__timeFilter(time) AND\r\n server = $SERVER_ID\r\n GROUP BY attacker\r\n) w ON w.attacker = m.attacker\r\nLEFT JOIN (\r\n SELECT\r\n attacker,\r\n COUNT(*) AS `Kills`\r\n FROM `DBLog_Deaths`\r\n WHERE\r\n $__timeFilter(time) AND\r\n server = $SERVER_ID\r\n GROUP BY attacker\r\n) k ON k.attacker = m.attacker\r\nLEFT JOIN (\r\n SELECT\r\n victim,\r\n COUNT(*) AS `Deaths`\r\n FROM `DBLog_Deaths`\r\n WHERE\r\n $__timeFilter(time) AND\r\n server = $SERVER_ID\r\n GROUP BY victim\r\n) d ON d.victim = m.attacker\r\nLEFT JOIN (\r\n SELECT\r\n reviver,\r\n COUNT(*) AS `Revives`\r\n FROM `DBLog_Revives`\r\n WHERE\r\n $__timeFilter(time) AND\r\n server = $SERVER_ID\r\n GROUP BY reviver\r\n) r ON r.reviver = m.attacker\r\n WHERE\r\n $__timeFilter(time) AND\r\n server = $SERVER_ID \r\nGROUP BY m.attacker\r\nHAVING `K/D` IS NOT NULL;",
+ "refId": "B",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "column"
+ }
+ ]
+ ],
+ "timeColumn": "time",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Top Scorers",
+ "transform": "table",
+ "type": "table-old"
+ },
+ {
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "custom": {},
+ "displayName": "",
+ "mappings": [],
+ "max": 60,
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "dark-red",
+ "value": null
+ },
+ {
+ "color": "yellow",
+ "value": 15
+ },
+ {
+ "color": "dark-green",
+ "value": 20
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 0,
+ "y": 23
+ },
+ "id": 16,
+ "options": {
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "mean"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showThresholdLabels": false,
+ "showThresholdMarkers": true
+ },
+ "pluginVersion": "7.1.4",
+ "targets": [
+ {
+ "format": "time_series",
+ "group": [],
+ "groupBy": [],
+ "measurement": "tick_rate",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT LAST(\"tick_rate\") FROM \"DBLog_TickRates\" WHERE server = '$SERVER_ID'",
+ "rawQuery": true,
+ "rawSql": "SELECT\n time AS \"time\",\n tickRate\nFROM DBLog_TickRates\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nORDER BY time DESC",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tick_rate"
+ ],
+ "type": "column"
+ }
+ ]
+ ],
+ "table": "DBLog_TickRates",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ },
+ {
+ "datatype": "int",
+ "name": "",
+ "params": [
+ "server",
+ "=",
+ "$SERVER"
+ ],
+ "type": "expression"
+ }
+ ]
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Current Tick Rate",
+ "type": "gauge"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 18,
+ "x": 6,
+ "y": 23
+ },
+ "hiddenSeries": false,
+ "id": 2,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pluginVersion": "7.1.4",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "5m"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tick_rate",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \n mean(\"tick_rate\") \nFROM \"DBLog_TickRates\" \nWHERE \n $timeFilter AND\n server = '$SERVER_ID'\nGROUP BY time($INTERVAL) fill(null)",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n avg(tickRate) AS \"tick_rate\"\nFROM DBLog_TickRates\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "tick_rate"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "avg"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "tick_rate"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_TickRates",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": false,
+ "fillColor": "rgba(50, 116, 217, 0.2)",
+ "line": true,
+ "lineColor": "#F2495C",
+ "op": "lt",
+ "value": 15,
+ "yaxis": "left"
+ },
+ {
+ "colorMode": "custom",
+ "fill": false,
+ "fillColor": "rgba(50, 116, 217, 0.2)",
+ "line": true,
+ "lineColor": "#FADE2A",
+ "op": "lt",
+ "value": 20,
+ "yaxis": "left"
+ }
+ ],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Tick Rate",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": "60",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "custom": {},
+ "displayName": "",
+ "mappings": [],
+ "max": 80,
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "orange",
+ "value": null
+ },
+ {
+ "color": "green",
+ "value": 50
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 0,
+ "y": 31
+ },
+ "id": 27,
+ "options": {
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "mean"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "showThresholdLabels": false,
+ "showThresholdMarkers": true
+ },
+ "pluginVersion": "7.1.4",
+ "targets": [
+ {
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [],
+ "measurement": "tick_rate",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT LAST(\"player_count\") FROM \"DBLog_PlayerCounts\" WHERE server = '$SERVER_ID'",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n players AS \"Player Count\"\nFROM DBLog_PlayerCounts\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval) DESC\nLIMIT 1",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "player_count"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "Player Count"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_PlayerCounts",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Current Player Count",
+ "type": "gauge"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 18,
+ "x": 6,
+ "y": 31
+ },
+ "hiddenSeries": false,
+ "id": 28,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pluginVersion": "7.1.4",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "5m"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "tick_rate",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \n MEAN(\"player_count\") \nFROM \"DBLog_PlayerCounts\" \nWHERE \n $timeFilter AND\n server = '$SERVER_ID'\nGROUP BY time($INTERVAL) fill(null)",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n avg(players) AS \"player_count\"\nFROM DBLog_PlayerCounts\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "player_count"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "avg"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "player_count"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_PlayerCounts",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "thresholds": [
+ {
+ "colorMode": "custom",
+ "fill": false,
+ "fillColor": "rgba(50, 116, 217, 0.2)",
+ "line": true,
+ "lineColor": "#FF9830",
+ "op": "lt",
+ "value": 50,
+ "yaxis": "left"
+ }
+ ],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Player Count",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": "80",
+ "min": "0",
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 6,
+ "x": 0,
+ "y": 39
+ },
+ "id": 12,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Wounds",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true,
+ "ymax": null,
+ "ymin": null
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT COUNT(\"victimName\") \nFROM DBLog_Wounds\nWHERE \n $timeFilter AND\n server = '$SERVER_ID'",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"id\"\nFROM DBLog_Wounds\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "id"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Wounds",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Wounded in Time Period",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 6,
+ "x": 6,
+ "y": 39
+ },
+ "id": 13,
+ "interval": null,
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Deaths",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true,
+ "ymax": null,
+ "ymin": null
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \n count(\"victimName\") \nFROM \"DBLog_Deaths\"\nWHERE \n $timeFilter AND\n server = '$SERVER_ID'",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"id\"\nFROM DBLog_Deaths\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "id"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Deaths",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Deaths in Time Period",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "avg"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 6,
+ "x": 12,
+ "y": 39
+ },
+ "id": 10,
+ "interval": "",
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " TKs",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true,
+ "ymax": null,
+ "ymin": null
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [],
+ "measurement": "player_wound",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \n count(\"victimName\") \nFROM \"DBLog_Wounds\"\nWHERE \n teamkill = true AND\n $timeFilter AND\n server = '$SERVER_ID'",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"id\"\nFROM DBLog_Wounds\nWHERE\n $__timeFilter(time) AND\n teamkill = '1' AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "id"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Wounds",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ },
+ {
+ "datatype": "tinyint",
+ "name": "",
+ "params": [
+ "teamkill",
+ "=",
+ "'1'"
+ ],
+ "type": "expression"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "TKs in Time Period",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "cacheTimeout": null,
+ "colorBackground": false,
+ "colorValue": false,
+ "colors": [
+ "#299c46",
+ "rgba(237, 129, 40, 0.89)",
+ "#d44a3a"
+ ],
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "format": "none",
+ "gauge": {
+ "maxValue": 100,
+ "minValue": 0,
+ "show": false,
+ "thresholdLabels": false,
+ "thresholdMarkers": true
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 6,
+ "x": 18,
+ "y": 39
+ },
+ "id": 14,
+ "interval": "",
+ "links": [],
+ "mappingType": 1,
+ "mappingTypes": [
+ {
+ "name": "value to text",
+ "value": 1
+ },
+ {
+ "name": "range to text",
+ "value": 2
+ }
+ ],
+ "maxDataPoints": 100,
+ "nullPointMode": "connected",
+ "nullText": null,
+ "postfix": " Revives",
+ "postfixFontSize": "50%",
+ "prefix": "",
+ "prefixFontSize": "50%",
+ "rangeMaps": [
+ {
+ "from": "null",
+ "text": "N/A",
+ "to": "null"
+ }
+ ],
+ "sparkline": {
+ "fillColor": "rgba(31, 118, 189, 0.18)",
+ "full": false,
+ "lineColor": "rgb(31, 120, 193)",
+ "show": true,
+ "ymax": null,
+ "ymin": null
+ },
+ "tableColumn": "",
+ "targets": [
+ {
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [],
+ "measurement": "revive",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Revives\" WHERE $timeFilter AND server = '$SERVER_ID'",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"id\"\nFROM DBLog_Revives\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "id"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Revives",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "thresholds": "",
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Revives in Time Period",
+ "type": "singlestat",
+ "valueFontSize": "80%",
+ "valueMaps": [
+ {
+ "op": "=",
+ "text": "N/A",
+ "value": "null"
+ }
+ ],
+ "valueName": "current"
+ },
+ {
+ "columns": [],
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 13,
+ "w": 24,
+ "x": 0,
+ "y": 43
+ },
+ "id": 4,
+ "pageSize": null,
+ "showHeader": true,
+ "sort": {
+ "col": 0,
+ "desc": true
+ },
+ "styles": [
+ {
+ "alias": "",
+ "align": "auto",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "decimals": 2,
+ "mappingType": 1,
+ "pattern": "Time",
+ "thresholds": [],
+ "type": "date",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "format": "table",
+ "group": [],
+ "metricColumn": "none",
+ "rawQuery": true,
+ "rawSql": "SELECT\n a.time AS \"Time\",\n a.attacker AS \"Attacker\",\n a.attackerName AS \"Attacker Name\",\n a.weapon AS \"Weapon\",\n a.victim AS \"Victim\",\n a.victimName AS \"Victim Name\",\n Total AS \"Total in Time Frame\"\nFROM DBLog_Wounds a\nJOIN\n (\n SELECT\n attacker,\n COUNT(*) AS \"Total\"\n FROM DBLog_Wounds\n WHERE \n $__timeFilter(time) AND\n server = $SERVER_ID AND\n teamkill = true\n GROUP BY attacker\n ) AS b\n ON a.attacker = b.attacker\nWHERE \n $__timeFilter(time) AND\n server = $SERVER_ID AND\n teamkill = true AND\n server = $SERVER_ID\nORDER BY time DESC\nLIMIT 30;",
+ "refId": "B",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "column"
+ }
+ ]
+ ],
+ "timeColumn": "time",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Recent Teamkills",
+ "transform": "table",
+ "type": "table-old"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 56
+ },
+ "id": 20,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Non-Teamkills",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \n COUNT(\"victimName\") \nFROM \"DBLog_Wounds\" \nWHERE \n $timeFilter AND\n server = '$SERVER_ID' AND\n teamkill = false",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"Non-Teamkill\"\nFROM DBLog_Wounds\nWHERE\n $__timeFilter(time) AND\n teamkill = 0 AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Non-Teamkill"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Wounds",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ },
+ {
+ "datatype": "tinyint",
+ "name": "",
+ "params": [
+ "teamkill",
+ "=",
+ "0"
+ ],
+ "type": "expression"
+ }
+ ]
+ },
+ {
+ "alias": "Teamkills",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \n COUNT(\"victimName\") \nFROM \"DBLog_Wounds\" \nWHERE \n $timeFilter AND\n server = '$SERVER_ID' AND\n teamkill = true",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"Teamkill\"\nFROM DBLog_Wounds\nWHERE\n $__timeFilter(time) AND\n teamkill = '1' AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Teamkill"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Wounds",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ },
+ {
+ "datatype": "tinyint",
+ "name": "",
+ "params": [
+ "teamkill",
+ "=",
+ "'1'"
+ ],
+ "type": "expression"
+ }
+ ]
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Non-Teamkills vs Teamkills (Wounds)",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 9,
+ "w": 18,
+ "x": 6,
+ "y": 56
+ },
+ "hiddenSeries": false,
+ "id": 29,
+ "interval": "2m",
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pluginVersion": "7.1.4",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Players Wounded",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "0"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "player_wound",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Wounds\" WHERE $timeFilter AND server = '$SERVER_ID' GROUP BY time($INTERVAL) fill(0)",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"All\"\nFROM DBLog_Wounds\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "All"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Wounds",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ },
+ {
+ "alias": "Players Wounded By Team 1",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "0"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "player_die",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Wounds\" WHERE $timeFilter AND server = '$SERVER_ID' AND attackerTeamID=1 GROUP BY time($INTERVAL) fill(0)",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"Team 1\"\nFROM DBLog_Wounds\nWHERE\n $__timeFilter(time) AND\n attackerTeamID = 1 AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Team 1"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Wounds",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ },
+ {
+ "datatype": "int",
+ "name": "",
+ "params": [
+ "attackerTeamID",
+ "=",
+ "1"
+ ],
+ "type": "expression"
+ }
+ ]
+ },
+ {
+ "alias": "Players Wounded By Team 2",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "0"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "player_die",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Wounds\" WHERE $timeFilter AND server = '$SERVER_ID' AND attackerTeamID=2 GROUP BY time($INTERVAL) fill(0)",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"Team 2\"\nFROM DBLog_Wounds\nWHERE\n $__timeFilter(time) AND\n attackerTeamID = 2 AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Team 2"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Wounds",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ },
+ {
+ "datatype": "int",
+ "name": "",
+ "params": [
+ "attackerTeamID",
+ "=",
+ "2"
+ ],
+ "type": "expression"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Wounds Per Minutes",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 65
+ },
+ "id": 18,
+ "interval": null,
+ "legend": {
+ "header": "",
+ "percentage": true,
+ "show": true,
+ "sideWidth": null,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Deaths",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "player_die",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \n COUNT(\"victimName\") \nFROM \"DBLog_Deaths\" \nWHERE \n $timeFilter ",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(woundTime,$__interval),\n count(id) AS \"Deaths\"\nFROM DBLog_Deaths\nWHERE\n $__timeFilter(woundTime) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(woundTime,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Deaths"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Deaths",
+ "tags": [],
+ "timeColumn": "woundTime",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ },
+ {
+ "alias": "Revives",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \n COUNT(\"victimName\") \nFROM \"DBLog_Revives\" \nWHERE \n $timeFilter ",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(woundTime,$__interval),\n count(id) AS \"Revives\"\nFROM DBLog_Revives\nWHERE\n $__timeFilter(woundTime) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(woundTime,$__interval)",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Revives"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Revives",
+ "tags": [],
+ "timeColumn": "woundTime",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Deaths vs Revives",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 9,
+ "w": 18,
+ "x": 6,
+ "y": 65
+ },
+ "hiddenSeries": false,
+ "id": 6,
+ "interval": "2m",
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pluginVersion": "7.1.4",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Players Killed",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "0"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "player_wound",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Deaths\" WHERE $timeFilter AND server = '$SERVER_ID' GROUP BY time($INTERVAL) fill(0)",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"All\"\nFROM DBLog_Deaths\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "All"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Deaths",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ },
+ {
+ "alias": "Players Killed By Team 1",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "0"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "player_die",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Deaths\" WHERE $timeFilter AND server = '$SERVER_ID' AND attackerTeamID=1 GROUP BY time($INTERVAL) fill(0)",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"Team 1\"\nFROM DBLog_Deaths\nWHERE\n $__timeFilter(time) AND\n attackerTeamID = 1 AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Team 1"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Deaths",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ },
+ {
+ "datatype": "int",
+ "name": "",
+ "params": [
+ "attackerTeamID",
+ "=",
+ "1"
+ ],
+ "type": "expression"
+ }
+ ]
+ },
+ {
+ "alias": "Players Killed By Team 2",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "0"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "player_die",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Deaths\" WHERE $timeFilter AND server = '$SERVER_ID' AND attackerTeamID=2 GROUP BY time($INTERVAL) fill(0)",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"Team 2\"\nFROM DBLog_Deaths\nWHERE\n $__timeFilter(time) AND\n attackerTeamID = 2 AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Team 2"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Deaths",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ },
+ {
+ "datatype": "int",
+ "name": "",
+ "params": [
+ "attackerTeamID",
+ "=",
+ "2"
+ ],
+ "type": "expression"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Kills Per Minutes",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 9,
+ "w": 6,
+ "x": 0,
+ "y": 74
+ },
+ "id": 31,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Team 1 Kills",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Deaths\" WHERE $timeFilter AND server = '$SERVER_ID' AND attackerTeamID=1",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"Team 1\"\nFROM DBLog_Wounds\nWHERE\n $__timeFilter(time) AND\n attackerTeamID = 1 AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Team 1"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Wounds",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ },
+ {
+ "datatype": "int",
+ "name": "",
+ "params": [
+ "attackerTeamID",
+ "=",
+ "1"
+ ],
+ "type": "expression"
+ }
+ ]
+ },
+ {
+ "alias": "Team 2 Kills",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Deaths\" WHERE $timeFilter AND server = '$SERVER_ID' AND attackerTeamID=2",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"Team 2\"\nFROM DBLog_Wounds\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Team 2"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Wounds",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Team 1 vs Team 2",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 9,
+ "w": 18,
+ "x": 6,
+ "y": 74
+ },
+ "hiddenSeries": false,
+ "id": 8,
+ "interval": "2m",
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pluginVersion": "7.1.4",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "alias": "Revives",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "0"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "revive",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Revives\" WHERE $timeFilter AND server = '$SERVER_ID' GROUP BY time($INTERVAL) fill(0)",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"All\"\nFROM DBLog_Revives\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "All"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Revives",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ },
+ {
+ "alias": "Revives",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "0"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "revive",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Revives\" WHERE $timeFilter AND server = '$SERVER_ID' AND reviverTeamID = 1 GROUP BY time($INTERVAL) fill(0)",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"Team 1\"\nFROM DBLog_Revives\nWHERE\n $__timeFilter(time) AND\n victimTeamID = 1 AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Team 1"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Revives",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ },
+ {
+ "datatype": "int",
+ "name": "",
+ "params": [
+ "victimTeamID",
+ "=",
+ "1"
+ ],
+ "type": "expression"
+ }
+ ]
+ },
+ {
+ "alias": "Revives",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "0"
+ ],
+ "type": "fill"
+ }
+ ],
+ "measurement": "revive",
+ "metricColumn": "none",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT count(\"victimName\") FROM \"DBLog_Revives\" WHERE $timeFilter AND server = '$SERVER_ID' AND reviverTeamID = 2 GROUP BY time($INTERVAL) fill(0)",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n count(id) AS \"Team 2\"\nFROM DBLog_Revives\nWHERE\n $__timeFilter(time) AND\n victimTeamID = 2 AND\n server = \"$SERVER_ID\"\nGROUP BY 1\nORDER BY $__timeGroup(time,$__interval)",
+ "refId": "C",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Team 2"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Revives",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ },
+ {
+ "datatype": "int",
+ "name": "",
+ "params": [
+ "victimTeamID",
+ "=",
+ "2"
+ ],
+ "type": "expression"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "Revives Per Minutes",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "columns": [],
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fontSize": "100%",
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 83
+ },
+ "id": 22,
+ "pageSize": null,
+ "showHeader": true,
+ "sort": {
+ "col": 2,
+ "desc": true
+ },
+ "styles": [
+ {
+ "alias": "Time",
+ "align": "auto",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "pattern": "Time",
+ "type": "date"
+ },
+ {
+ "alias": "",
+ "align": "auto",
+ "colorMode": null,
+ "colors": [
+ "rgba(245, 54, 54, 0.9)",
+ "rgba(237, 129, 40, 0.89)",
+ "rgba(50, 172, 45, 0.97)"
+ ],
+ "decimals": 2,
+ "pattern": "/.*/",
+ "thresholds": [],
+ "type": "number",
+ "unit": "short"
+ }
+ ],
+ "targets": [
+ {
+ "format": "table",
+ "group": [],
+ "metricColumn": "none",
+ "rawQuery": true,
+ "rawSql": "SELECT\n layerClassname as \"Layer\",\n startTime AS \"Start Time\",\n endTime AS \"End Time\"\nFROM `DBLog_Matches`\nWHERE \n (\n $__timeFilter(startTime) OR \n $__timeFilter(endTime) OR\n endTime IS NULL\n ) AND \n server = $SERVER_ID \nORDER BY startTime DESC;",
+ "refId": "A",
+ "select": [
+ [
+ {
+ "params": [
+ "value"
+ ],
+ "type": "column"
+ }
+ ]
+ ],
+ "timeColumn": "time",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Matches",
+ "transform": "table",
+ "type": "table-old"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 12,
+ "y": 83
+ },
+ "id": 25,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "sort": "current",
+ "sortDesc": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "format": "time_series",
+ "group": [],
+ "metricColumn": "layer",
+ "rawQuery": true,
+ "rawSql": "SELECT\n layerClassname AS metric,\n COUNT(*),\n startTime AS time\nFROM `DBLog_Matches`\nWHERE\n (\n $__timeFilter(startTime) OR \n $__timeFilter(endTime) OR\n endTime IS NULL\n ) AND \n server = $SERVER_ID \nGROUP BY layerClassname",
+ "refId": "A",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ }
+ ]
+ ],
+ "table": "game",
+ "timeColumn": "startTime",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Layers",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": 0
+ },
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {}
+ },
+ "overrides": []
+ },
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 18,
+ "y": 83
+ },
+ "id": 24,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": true
+ },
+ "legendType": "Under graph",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "format": "time_series",
+ "group": [],
+ "metricColumn": "layer",
+ "rawQuery": true,
+ "rawSql": "SELECT\n mapClassname AS metric,\n COUNT(*),\n startTime AS time\nFROM `DBLog_Matches`\nWHERE\n (\n $__timeFilter(startTime) OR \n $__timeFilter(endTime) OR\n endTime IS NULL\n ) AND \n server = $SERVER_ID \nGROUP BY mapClassname",
+ "refId": "A",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ }
+ ]
+ ],
+ "table": "game",
+ "timeColumn": "startTime",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Maps",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ },
+ {
+ "aliasColors": {},
+ "breakPoint": "50%",
+ "cacheTimeout": null,
+ "combine": {
+ "label": "Others",
+ "threshold": "0.01"
+ },
+ "datasource": "MySQL",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {
+ "align": null
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "fontSize": "80%",
+ "format": "short",
+ "gridPos": {
+ "h": 10,
+ "w": 12,
+ "x": 0,
+ "y": 91
+ },
+ "id": 33,
+ "interval": null,
+ "legend": {
+ "percentage": true,
+ "show": true,
+ "values": true
+ },
+ "legendType": "Right side",
+ "links": [],
+ "maxDataPoints": 3,
+ "nullPointMode": "connected",
+ "pieType": "pie",
+ "pluginVersion": "7.1.0",
+ "strokeWidth": 1,
+ "targets": [
+ {
+ "alias": "Non-Teamkills",
+ "format": "time_series",
+ "group": [
+ {
+ "params": [
+ "$__interval",
+ "none"
+ ],
+ "type": "time"
+ }
+ ],
+ "groupBy": [
+ {
+ "params": [
+ "$__interval"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
+ }
+ ],
+ "metricColumn": "weapon",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT \n COUNT(\"victimName\") \nFROM \"DBLog_Wounds\" \nWHERE \n $timeFilter AND\n server = '$SERVER_ID' AND\n teamkill = false",
+ "rawQuery": true,
+ "rawSql": "SELECT\n $__timeGroupAlias(time,$__interval),\n weapon AS metric,\n count(id) AS \"Wounds\"\nFROM DBLog_Wounds\nWHERE\n $__timeFilter(time) AND\n server = \"$SERVER_ID\"\nGROUP BY 2\nORDER BY count(id) DESC",
+ "refId": "B",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "id"
+ ],
+ "type": "column"
+ },
+ {
+ "params": [
+ "count"
+ ],
+ "type": "aggregate"
+ },
+ {
+ "params": [
+ "Wounds"
+ ],
+ "type": "alias"
+ }
+ ]
+ ],
+ "table": "DBLog_Wounds",
+ "tags": [],
+ "timeColumn": "time",
+ "timeColumnType": "timestamp",
+ "where": [
+ {
+ "name": "$__timeFilter",
+ "params": [],
+ "type": "macro"
+ }
+ ]
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Weapons",
+ "type": "grafana-piechart-panel",
+ "valueName": "current"
+ }
+ ],
+ "refresh": false,
+ "schemaVersion": 26,
+ "style": "dark",
+ "tags": [],
+ "templating": {
+ "list": [
+ {
+ "allValue": null,
+ "current": {
+ "selected": true,
+ "text": "1",
+ "value": "1"
+ },
+ "hide": 0,
+ "includeAll": false,
+ "label": "Server",
+ "multi": false,
+ "name": "SERVER_ID",
+ "options": [
+ {
+ "selected": true,
+ "text": "1",
+ "value": "1"
+ },
+ {
+ "selected": false,
+ "text": "2",
+ "value": "2"
+ }
+ ],
+ "query": "1,2",
+ "queryValue": "",
+ "skipUrlSync": false,
+ "type": "custom"
+ },
+ {
+ "auto": false,
+ "auto_count": 30,
+ "auto_min": "10s",
+ "current": {
+ "selected": false,
+ "text": "1m",
+ "value": "1m"
+ },
+ "hide": 0,
+ "label": "Interval",
+ "name": "INTERVAL",
+ "options": [
+ {
+ "selected": true,
+ "text": "1m",
+ "value": "1m"
+ },
+ {
+ "selected": false,
+ "text": "2m",
+ "value": "2m"
+ },
+ {
+ "selected": false,
+ "text": "3m",
+ "value": "3m"
+ },
+ {
+ "selected": false,
+ "text": "4m",
+ "value": "4m"
+ },
+ {
+ "selected": false,
+ "text": "5m",
+ "value": "5m"
+ },
+ {
+ "selected": false,
+ "text": "10m",
+ "value": "10m"
+ },
+ {
+ "selected": false,
+ "text": "20m",
+ "value": "20m"
+ },
+ {
+ "selected": false,
+ "text": "30m",
+ "value": "30m"
+ }
+ ],
+ "query": "1m,2m,3m,4m,5m,10m,20m,30m",
+ "refresh": 2,
+ "skipUrlSync": false,
+ "type": "interval"
+ }
+ ]
+ },
+ "time": {
+ "from": "now-3h",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ]
+ },
+ "timezone": "",
+ "title": "Server Overview",
+ "uid": "n7Xl7jEWx",
+ "version": 4
+ }
\ No newline at end of file
From 2827fc11ab92ea0125e2cfb008b252a0c6e8cbf7 Mon Sep 17 00:00:00 2001
From: got2bhockey SquadJS
.DiscordSubsystemRestarter
- DiscordSubsystemRestarter
- DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
Discord connector name.
discord
ID of role required to run the sub system restart commands.
+The ID of the channel to log admin broadcasts to.
667741905228136459
+ 667741905228136459
+The color of the embed.
+16761867
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin camera usage to.
+
667741905228136459
+The color of the embed.
+16761867
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log events to.
+
667741905228136459
+A list of events to dump.
+[]
[
+ "PLAYER_DIED"
+]
The DiscordAdminBroadcast
plugin will send a copy of admin broadcasts made in game to a Discord channel.
The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
+[]
[
+ "This server is powered by SquadJS."
+]
+Frequency of the broadcasts in milliseconds.
+300000
The DiscordServerStatus
plugin updates a message in Discord with current server information, e.g. player count.
Discord connector name.
discord
The ID of the channel to log admin broadcasts to.
+ID of messages to update.
667741905228136459
-[]
[
+ {
+ "channelID": "667741905228136459",
+ "messageID": "766688383043895387"
+ }
+]
+The color of the embed.
+How frequently to update the status in Discord.
16761867
60000
+Disable the bot status.
+false
The DiscordServerStatus
plugin updates a message in Discord with current server information, e.g. player count.
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.[
+ {
+ "command": "squadjs",
+ "type": "warn",
+ "response": "This server is powered by SquadJS.",
+ "ignoreChats": []
+ }
+]
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
The message to warn players with.
+Please apologise for ALL TKs in ALL chat!
The DiscordAdminBroadcast
plugin will send a copy of admin broadcasts made in game to a Discord channel.
Discord connector name.
discord
ID of messages to update.
+The ID of the channel to log admin broadcasts to.
[]
[
- {
- "channelID": "667741905228136459",
- "messageID": "766688383043895387"
- }
-]
-
667741905228136459
+How frequently to update the status in Discord.
+The color of the embed.
60000
16761867
The SeedingMode
plugin broadcasts seeding rule messages to players at regular intervals when the server is below a specified player count. It can also be configured to display "Live" messages when the server goes live.
Disable the bot status.
+Frequency of seeding messages in milliseconds.
+150000
Player count required for server not to be in seeding mode.
+50
Seeding message to display.
+Seeding Rules Active! Fight only over the middle flags! No FOB Hunting!
Enable "Live" messages for when the server goes live.
+true
Player count required for "Live" messages to not bee displayed.
+52
"Live" message to display.
+Live!
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
+discord
The ID of the channel to alert admins through.
+
667741905228136459
+Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
+6
The TeamRandomizer
can be used to randomize teams. It's great for destroying clan stacks or for social events. It can be run by typing, by default, !randomize
into in-game admin chat
The command used to randomize the teams.
+randomize
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
+discord
ID of channel to turn into RCON console.
+
667741905228136459
+{}
) permissions will be disabled{}
{
+ "123456789123456789": [
+ "AdminBroadcast",
+ "AdminForceTeamChange",
+ "AdminDemoteCommander"
+ ]
+}
+Prepend admin names when making announcements.
+false
The DiscordTeamkill
plugin logs teamkills and related information to a Discord channel for admins to review.
Discord connector name.
+discord
The ID of the channel to log teamkills to.
+
667741905228136459
+The color of the embeds.
+16761867
Disable Squad Community Ban List information.
false
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
The DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.
!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
Discord connector name.
discord
The ID of the channel to log events to.
+ID of role required to run the sub system restart commands.
667741905228136459
-A list of events to dump.
-[]
[
- "PLAYER_DIED"
-]
- The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
-[]
[
- "This server is powered by SquadJS."
-]
-Frequency of the broadcasts in milliseconds.
-300000
The DiscordTeamkill
plugin logs teamkills and related information to a Discord channel for admins to review.
Discord connector name.
-discord
The ID of the channel to log teamkills to.
-
667741905228136459
-The color of the embeds.
-16761867
Disable Squad Community Ban List information.
-false
The SeedingMode
plugin broadcasts seeding rule messages to players at regular intervals when the server is below a specified player count. It can also be configured to display "Live" messages when the server goes live.
Frequency of seeding messages in milliseconds.
-150000
Player count required for server not to be in seeding mode.
-50
Seeding message to display.
-Seeding Rules Active! Fight only over the middle flags! No FOB Hunting!
Enable "Live" messages for when the server goes live.
-true
Player count required for "Live" messages to not bee displayed.
-52
"Live" message to display.
-Live!
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
The message to warn players with.
-Please apologise for ALL TKs in ALL chat!
667741905228136459
SquadJS
.null
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin broadcasts to.
-
667741905228136459
-The color of the embed.
-16761867
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.[
- {
- "command": "squadjs",
- "type": "warn",
- "response": "This server is powered by SquadJS.",
- "ignoreChats": []
- }
-]
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin camera usage to.
-
667741905228136459
-The color of the embed.
-16761867
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
-discord
ID of channel to turn into RCON console.
-
667741905228136459
-{}
) permissions will be disabled{}
{
- "123456789123456789": [
- "AdminBroadcast",
- "AdminForceTeamChange",
- "AdminDemoteCommander"
- ]
-}
-Prepend admin names when making announcements.
-false
The TeamRandomizer
can be used to randomize teams. It's great for destroying clan stacks or for social events. It can be run by typing, by default, !randomize
into in-game admin chat
The command used to randomize the teams.
-randomize
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
-discord
The ID of the channel to alert admins through.
-
667741905228136459
-Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
-6
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
The DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.
!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
Discord connector name.
discord
The ID of the channel to log admin broadcasts to.
+ID of role required to run the sub system restart commands.
667741905228136459
-The color of the embed.
-16761867
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin camera usage to.
-
667741905228136459
-The color of the embed.
-16761867
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log events to.
-
667741905228136459
-A list of events to dump.
-[]
[
- "PLAYER_DIED"
-]
+ 667741905228136459
The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
-[]
[
- "This server is powered by SquadJS."
-]
-Frequency of the broadcasts in milliseconds.
-300000
The DiscordServerStatus
plugin updates a message in Discord with current server information, e.g. player count.
The DiscordAdminBroadcast
plugin will send a copy of admin broadcasts made in game to a Discord channel.
Discord connector name.
discord
ID of messages to update.
+The ID of the channel to log admin broadcasts to.
[]
[
- {
- "channelID": "667741905228136459",
- "messageID": "766688383043895387"
- }
-]
-
667741905228136459
+How frequently to update the status in Discord.
+The color of the embed.
60000
Disable the bot status.
-false
16761867
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
The DiscordServerStatus
plugin updates a message in Discord with current server information, e.g. player count.
An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.Discord connector name.
discord
ID of messages to update.
+[]
[
{
- "command": "squadjs",
- "type": "warn",
- "response": "This server is powered by SquadJS.",
- "ignoreChats": []
+ "channelID": "667741905228136459",
+ "messageID": "766688383043895387"
}
-]
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
The message to warn players with.
+How frequently to update the status in Discord.
Please apologise for ALL TKs in ALL chat!
The DiscordAdminBroadcast
plugin will send a copy of admin broadcasts made in game to a Discord channel.
60000
Discord connector name.
-discord
The ID of the channel to log admin broadcasts to.
-
667741905228136459
-The color of the embed.
-16761867
The SeedingMode
plugin broadcasts seeding rule messages to players at regular intervals when the server is below a specified player count. It can also be configured to display "Live" messages when the server goes live.
Frequency of seeding messages in milliseconds.
-150000
Player count required for server not to be in seeding mode.
-50
Seeding message to display.
-Seeding Rules Active! Fight only over the middle flags! No FOB Hunting!
Enable "Live" messages for when the server goes live.
-true
Player count required for "Live" messages to not bee displayed.
-52
"Live" message to display.
-Live!
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
-discord
The ID of the channel to alert admins through.
-
667741905228136459
-Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
-6
The TeamRandomizer
can be used to randomize teams. It's great for destroying clan stacks or for social events. It can be run by typing, by default, !randomize
into in-game admin chat
The command used to randomize the teams.
-randomize
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
-discord
ID of channel to turn into RCON console.
-
667741905228136459
-{}
) permissions will be disabled{}
{
- "123456789123456789": [
- "AdminBroadcast",
- "AdminForceTeamChange",
- "AdminDemoteCommander"
- ]
-}
-Prepend admin names when making announcements.
-false
The DiscordTeamkill
plugin logs teamkills and related information to a Discord channel for admins to review.
Discord connector name.
-discord
The ID of the channel to log teamkills to.
-
667741905228136459
-The color of the embeds.
-16761867
Disable Squad Community Ban List information.
+Disable the bot status.
false
The DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.
!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
Discord connector name.
discord
ID of role required to run the sub system restart commands.
+The ID of the channel to log events to.
667741905228136459
+ 667741905228136459
+A list of events to dump.
+[]
[
+ "PLAYER_DIED"
+]
+ The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
+[]
[
+ "This server is powered by SquadJS."
+]
+Frequency of the broadcasts in milliseconds.
+300000
The DiscordTeamkill
plugin logs teamkills and related information to a Discord channel for admins to review.
Discord connector name.
+discord
The ID of the channel to log teamkills to.
+
667741905228136459
+The color of the embeds.
+16761867
Disable Squad Community Ban List information.
+false
The SeedingMode
plugin broadcasts seeding rule messages to players at regular intervals when the server is below a specified player count. It can also be configured to display "Live" messages when the server goes live.
Frequency of seeding messages in milliseconds.
+150000
Player count required for server not to be in seeding mode.
+50
Seeding message to display.
+Seeding Rules Active! Fight only over the middle flags! No FOB Hunting!
Enable "Live" messages for when the server goes live.
+true
Player count required for "Live" messages to not bee displayed.
+52
"Live" message to display.
+Live!
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
The message to warn players with.
+Please apologise for ALL TKs in ALL chat!
null
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin broadcasts to.
+
667741905228136459
+The color of the embed.
+16761867
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.[
+ {
+ "command": "squadjs",
+ "type": "warn",
+ "response": "This server is powered by SquadJS.",
+ "ignoreChats": []
+ }
+]
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin camera usage to.
+
667741905228136459
+The color of the embed.
+16761867
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
+discord
ID of channel to turn into RCON console.
+
667741905228136459
+{}
) permissions will be disabled{}
{
+ "123456789123456789": [
+ "AdminBroadcast",
+ "AdminForceTeamChange",
+ "AdminDemoteCommander"
+ ]
+}
+Prepend admin names when making announcements.
+false
The TeamRandomizer
can be used to randomize teams. It's great for destroying clan stacks or for social events. It can be run by typing, by default, !randomize
into in-game admin chat
The command used to randomize the teams.
+randomize
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
+discord
The ID of the channel to alert admins through.
+
667741905228136459
+Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
+6
The DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.
!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
The AutoKickUnassigned
plugin will automatically kick players that are not in a squad after a specified ammount of time.
Discord connector name.
+Message SquadJS will send to players warning them they will be kicked
discord
Join a squad, you are are unassigned and will be kicked
ID of role required to run the sub system restart commands.
+Message to send to players when they are kicked
667741905228136459
Unassigned - automatically removed
+How often in Seconds should we warn the player about being unassigned?
+30
How long in Seconds to wait before a unassigned player is kicked
+360
Player count required for AutoKick to start kicking players, set to -1 to disable
+93
Time delay in Seconds from start of the round before AutoKick starts kicking again
+900
true
: Admins will NOT be kickedfalse
: Admins WILL be kickedfalse
true
: Reserve slot players will NOT be kickedfalse
: Reserve slot players WILL be kickedfalse
The DiscordChat
plugin will log in-game chat to a Discord channel.
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
Discord connector name.
+The message to warn players with.
discord
Please apologise for ALL TKs in ALL chat!
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
The ID of the channel to log admin broadcasts to.
-
667741905228136459
-The color of the embed for each chat.
-{}
{
- "ChatAll": 16761867
-}
-The color of the embed.
-16761867
A list of chat names to ignore.
+An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.[
- "ChatSquad"
+ {
+ "command": "squadjs",
+ "type": "warn",
+ "response": "This server is powered by SquadJS.",
+ "ignoreChats": []
+ }
]
The mysql-log
plugin will log various server statistics and events to a database. This is great for server performance monitoring and/or player stat tracking.
+
+Grafana (NOT YET WORKING WITH V2):
+
SquadJS
.The Sequelize connector to log server information to.
+mysql
A overridden server ID.
+null
16761867
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin camera usage to.
+
667741905228136459
+The color of the embed.
+16761867
16761867
The DiscordChat
plugin will log in-game chat to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin broadcasts to.
+
667741905228136459
+The color of the embed for each chat.
+{}
{
+ "ChatAll": 16761867
+}
+The color of the embed.
+16761867
A list of chat names to ignore.
+[
+ "ChatSquad"
+]
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log events to.
+
667741905228136459
+A list of events to dump.
+[]
[
+ "PLAYER_DIED"
+]
+ The DiscordPlaceholder
plugin allows you to make your bot create placeholder messages that can be used when configuring other plugins.
Discord connector name.
+discord
Command to create Discord placeholder.
+!placeholder
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
+discord
ID of channel to turn into RCON console.
+
667741905228136459
+{}
) permissions will be disabled{}
{
+ "123456789123456789": [
+ "AdminBroadcast",
+ "AdminForceTeamChange",
+ "AdminDemoteCommander"
+ ]
+}
+Prepend admin names when making announcements.
+false
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin broadcasts to.
+
667741905228136459
+The color of the embed.
+16761867
The AutoKickUnassigned
plugin will automatically kick players that are not in a squad after a specified ammount of time.
Message SquadJS will send to players warning them they will be kicked
-Join a squad, you are are unassigned and will be kicked
Message to send to players when they are kicked
-Unassigned - automatically removed
How often in Seconds should we warn the player about being unassigned?
-30
How long in Seconds to wait before a unassigned player is kicked
-360
Player count required for AutoKick to start kicking players, set to -1 to disable
-93
Time delay in Seconds from start of the round before AutoKick starts kicking again
-900
true
: Admins will NOT be kickedfalse
: Admins WILL be kickedfalse
true
: Reserve slot players will NOT be kickedfalse
: Reserve slot players WILL be kickedfalse
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
The DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.
!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
Discord connector name.
discord
The ID of the channel to log events to.
+ID of role required to run the sub system restart commands.
667741905228136459
-A list of events to dump.
-[]
[
- "PLAYER_DIED"
-]
- The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
-[]
[
- "This server is powered by SquadJS."
-]
-Frequency of the broadcasts in milliseconds.
-300000
667741905228136459
false
The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
+[]
[
+ "This server is powered by SquadJS."
+]
+Frequency of the broadcasts in milliseconds.
+300000
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
+discord
The ID of the channel to alert admins through.
+
667741905228136459
+Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
+6
Live!
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
The message to warn players with.
-Please apologise for ALL TKs in ALL chat!
The mysql-log
plugin will log various server statistics and events to a database. This is great for server performance monitoring and/or player stat tracking.
-
-Grafana (NOT YET WORKING WITH V2):
-
SquadJS
.The Sequelize connector to log server information to.
-mysql
A overridden server ID.
-null
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin broadcasts to.
-
667741905228136459
-The color of the embed.
-16761867
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.[
- {
- "command": "squadjs",
- "type": "warn",
- "response": "This server is powered by SquadJS.",
- "ignoreChats": []
- }
-]
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin camera usage to.
-
667741905228136459
-The color of the embed.
-16761867
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
-discord
ID of channel to turn into RCON console.
-
667741905228136459
-{}
) permissions will be disabled{}
{
- "123456789123456789": [
- "AdminBroadcast",
- "AdminForceTeamChange",
- "AdminDemoteCommander"
- ]
-}
-Prepend admin names when making announcements.
-false
randomize
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
-discord
The ID of the channel to alert admins through.
-
667741905228136459
-Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
-6
DiscordPlaceholder
plugin allows you to make your bot create placeholder messages that ' +
+ 'can be used when configuring other plugins.'
+ );
+ }
+
+ static get defaultEnabled() {
+ return true;
+ }
+
+ static get optionsSpecification() {
+ return {
+ discordClient: {
+ required: true,
+ description: 'Discord connector name.',
+ connector: 'discord',
+ default: 'discord'
+ },
+ command: {
+ required: false,
+ description: 'Command to create Discord placeholder.',
+ default: '!placeholder'
+ }
+ };
+ }
+
+ constructor(server, options, connectors) {
+ super(server, options, connectors);
+
+ this.onMessage = this.onMessage.bind(this);
+ }
+
+ async mount() {
+ this.options.discordClient.on('message', this.onMessage);
+ }
+
+ async unmount() {
+ this.options.discordClient.removeEventListener('message', this.onMessage);
+ }
+
+ async onMessage(message) {
+ if (message.author.bot) return;
+ await message.channel.send('Placeholder.');
+ }
+}
From e4328ad4e24f73e995197697978db2654b89ac3b Mon Sep 17 00:00:00 2001
From: Thomas Smyth The AutoKickUnassigned
plugin will automatically kick players that are not in a squad after a specified ammount of time.
The DiscordPlaceholder
plugin allows you to make your bot create placeholder messages that can be used when configuring other plugins.
Message SquadJS will send to players warning them they will be kicked
+Discord connector name.
Join a squad, you are are unassigned and will be kicked
discord
Message to send to players when they are kicked
+Command to create Discord placeholder.
Unassigned - automatically removed
How often in Seconds should we warn the player about being unassigned?
-30
How long in Seconds to wait before a unassigned player is kicked
-360
Player count required for AutoKick to start kicking players, set to -1 to disable
-93
Time delay in Seconds from start of the round before AutoKick starts kicking again
-900
true
: Admins will NOT be kickedfalse
: Admins WILL be kickedfalse
true
: Reserve slot players will NOT be kickedfalse
: Reserve slot players WILL be kickedfalse
!placeholder
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
The DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.
!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
The message to warn players with.
+Discord connector name.
Please apologise for ALL TKs in ALL chat!
discord
ID of role required to run the sub system restart commands.
+
667741905228136459
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
The DiscordChat
plugin will log in-game chat to a Discord channel.
An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.Discord connector name.
+discord
The ID of the channel to log admin broadcasts to.
+
667741905228136459
+The color of the embed for each chat.
+{}
{
+ "ChatAll": 16761867
+}
+The color of the embed.
+16761867
A list of chat names to ignore.
[
- {
- "command": "squadjs",
- "type": "warn",
- "response": "This server is powered by SquadJS.",
- "ignoreChats": []
- }
+ "ChatSquad"
]
The mysql-log
plugin will log various server statistics and events to a database. This is great for server performance monitoring and/or player stat tracking.
-
-Grafana (NOT YET WORKING WITH V2):
-
SquadJS
.The Sequelize connector to log server information to.
-mysql
A overridden server ID.
-null
16761867
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin camera usage to.
-
667741905228136459
-The color of the embed.
-16761867
16761867
The DiscordChat
plugin will log in-game chat to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin broadcasts to.
-
667741905228136459
-The color of the embed for each chat.
-{}
{
- "ChatAll": 16761867
-}
-The color of the embed.
-16761867
A list of chat names to ignore.
-[
- "ChatSquad"
-]
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log events to.
-
667741905228136459
-A list of events to dump.
-[]
[
- "PLAYER_DIED"
-]
- The DiscordPlaceholder
plugin allows you to make your bot create placeholder messages that can be used when configuring other plugins.
Discord connector name.
-discord
Command to create Discord placeholder.
-!placeholder
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
-discord
ID of channel to turn into RCON console.
-
667741905228136459
-{}
) permissions will be disabled{}
{
- "123456789123456789": [
- "AdminBroadcast",
- "AdminForceTeamChange",
- "AdminDemoteCommander"
- ]
-}
-Prepend admin names when making announcements.
-false
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin broadcasts to.
-
667741905228136459
-The color of the embed.
-16761867
The DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.
!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
The AutoKickUnassigned
plugin will automatically kick players that are not in a squad after a specified ammount of time.
Message SquadJS will send to players warning them they will be kicked
+Join a squad, you are are unassigned and will be kicked
Message to send to players when they are kicked
+Unassigned - automatically removed
How often in Seconds should we warn the player about being unassigned?
+30
How long in Seconds to wait before a unassigned player is kicked
+360
Player count required for AutoKick to start kicking players, set to -1 to disable
+93
Time delay in Seconds from start of the round before AutoKick starts kicking again
+900
true
: Admins will NOT be kickedfalse
: Admins WILL be kickedfalse
true
: Reserve slot players will NOT be kickedfalse
: Reserve slot players WILL be kickedfalse
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
Discord connector name.
discord
ID of role required to run the sub system restart commands.
+The ID of the channel to log events to.
667741905228136459
+ 667741905228136459
+A list of events to dump.
+[]
[
+ "PLAYER_DIED"
+]
+ The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
+[]
[
+ "This server is powered by SquadJS."
+]
+Frequency of the broadcasts in milliseconds.
+300000
false
The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
-[]
[
- "This server is powered by SquadJS."
-]
-Frequency of the broadcasts in milliseconds.
-300000
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
-discord
The ID of the channel to alert admins through.
-
667741905228136459
-Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
-6
Live!
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
The message to warn players with.
+Please apologise for ALL TKs in ALL chat!
The mysql-log
plugin will log various server statistics and events to a database. This is great for server performance monitoring and/or player stat tracking.
+
+Grafana (NOT YET WORKING WITH V2):
+
SquadJS
.The Sequelize connector to log server information to.
+mysql
A overridden server ID.
+null
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin broadcasts to.
+
667741905228136459
+The color of the embed.
+16761867
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.[
+ {
+ "command": "squadjs",
+ "type": "warn",
+ "response": "This server is powered by SquadJS.",
+ "ignoreChats": []
+ }
+]
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin camera usage to.
+
667741905228136459
+The color of the embed.
+16761867
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
+discord
ID of channel to turn into RCON console.
+
667741905228136459
+{}
) permissions will be disabled{}
{
+ "123456789123456789": [
+ "AdminBroadcast",
+ "AdminForceTeamChange",
+ "AdminDemoteCommander"
+ ]
+}
+Prepend admin names when making announcements.
+false
randomize
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
+discord
The ID of the channel to alert admins through.
+
667741905228136459
+Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
+6
The DiscordPlaceholder
plugin allows you to make your bot create placeholder messages that can be used when configuring other plugins.
The AutoKickUnassigned
plugin will automatically kick players that are not in a squad after a specified ammount of time.
Discord connector name.
+Message SquadJS will send to players warning them they will be kicked
discord
Join a squad, you are are unassigned and will be kicked
Command to create Discord placeholder.
+Message to send to players when they are kicked
!placeholder
Unassigned - automatically removed
How often in Seconds should we warn the player about being unassigned?
+30
How long in Seconds to wait before a unassigned player is kicked
+360
Player count required for AutoKick to start kicking players, set to -1 to disable
+93
Time delay in Seconds from start of the round before AutoKick starts kicking again
+900
true
: Admins will NOT be kickedfalse
: Admins WILL be kickedfalse
true
: Reserve slot players will NOT be kickedfalse
: Reserve slot players WILL be kickedfalse
The DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.
!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
Discord connector name.
+The message to warn players with.
discord
ID of role required to run the sub system restart commands.
-
667741905228136459
Please apologise for ALL TKs in ALL chat!
The DiscordChat
plugin will log in-game chat to a Discord channel.
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
Discord connector name.
-discord
The ID of the channel to log admin broadcasts to.
-
667741905228136459
-The color of the embed for each chat.
-{}
{
- "ChatAll": 16761867
-}
-The color of the embed.
-16761867
A list of chat names to ignore.
+An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.[
- "ChatSquad"
+ {
+ "command": "squadjs",
+ "type": "warn",
+ "response": "This server is powered by SquadJS.",
+ "ignoreChats": []
+ }
]
The mysql-log
plugin will log various server statistics and events to a database. This is great for server performance monitoring and/or player stat tracking.
+
+Grafana (NOT YET WORKING WITH V2):
+
SquadJS
.The Sequelize connector to log server information to.
+mysql
A overridden server ID.
+null
16761867
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin camera usage to.
+
667741905228136459
+The color of the embed.
+16761867
16761867
The DiscordChat
plugin will log in-game chat to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin broadcasts to.
+
667741905228136459
+The color of the embed for each chat.
+{}
{
+ "ChatAll": 16761867
+}
+The color of the embed.
+16761867
A list of chat names to ignore.
+[
+ "ChatSquad"
+]
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log events to.
+
667741905228136459
+A list of events to dump.
+[]
[
+ "PLAYER_DIED"
+]
+ The DiscordPlaceholder
plugin allows you to make your bot create placeholder messages that can be used when configuring other plugins.
Discord connector name.
+discord
Command to create Discord placeholder.
+!placeholder
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
+discord
ID of channel to turn into RCON console.
+
667741905228136459
+{}
) permissions will be disabled{}
{
+ "123456789123456789": [
+ "AdminBroadcast",
+ "AdminForceTeamChange",
+ "AdminDemoteCommander"
+ ]
+}
+Prepend admin names when making announcements.
+false
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin broadcasts to.
+
667741905228136459
+The color of the embed.
+16761867
The AutoKickUnassigned
plugin will automatically kick players that are not in a squad after a specified ammount of time.
Message SquadJS will send to players warning them they will be kicked
-Join a squad, you are are unassigned and will be kicked
Message to send to players when they are kicked
-Unassigned - automatically removed
How often in Seconds should we warn the player about being unassigned?
-30
How long in Seconds to wait before a unassigned player is kicked
-360
Player count required for AutoKick to start kicking players, set to -1 to disable
-93
Time delay in Seconds from start of the round before AutoKick starts kicking again
-900
true
: Admins will NOT be kickedfalse
: Admins WILL be kickedfalse
true
: Reserve slot players will NOT be kickedfalse
: Reserve slot players WILL be kickedfalse
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
The DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.
!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
Discord connector name.
discord
The ID of the channel to log events to.
+ID of role required to run the sub system restart commands.
667741905228136459
-A list of events to dump.
-[]
[
- "PLAYER_DIED"
-]
- The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
-[]
[
- "This server is powered by SquadJS."
-]
-Frequency of the broadcasts in milliseconds.
-300000
667741905228136459
false
The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
+[]
[
+ "This server is powered by SquadJS."
+]
+Frequency of the broadcasts in milliseconds.
+300000
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
+discord
The ID of the channel to alert admins through.
+
667741905228136459
+Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
+6
Live!
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
The message to warn players with.
-Please apologise for ALL TKs in ALL chat!
The mysql-log
plugin will log various server statistics and events to a database. This is great for server performance monitoring and/or player stat tracking.
-
-Grafana (NOT YET WORKING WITH V2):
-
SquadJS
.The Sequelize connector to log server information to.
-mysql
A overridden server ID.
-null
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin broadcasts to.
-
667741905228136459
-The color of the embed.
-16761867
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.[
- {
- "command": "squadjs",
- "type": "warn",
- "response": "This server is powered by SquadJS.",
- "ignoreChats": []
- }
-]
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin camera usage to.
-
667741905228136459
-The color of the embed.
-16761867
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
-discord
ID of channel to turn into RCON console.
-
667741905228136459
-{}
) permissions will be disabled{}
{
- "123456789123456789": [
- "AdminBroadcast",
- "AdminForceTeamChange",
- "AdminDemoteCommander"
- ]
-}
-Prepend admin names when making announcements.
-false
randomize
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
-discord
The ID of the channel to alert admins through.
-
667741905228136459
-Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
-6
The AutoKickUnassigned
plugin will automatically kick players that are not in a squad after a specified ammount of time.
The DiscordPlaceholder
plugin allows you to make your bot create placeholder messages that can be used when configuring other plugins.
Message SquadJS will send to players warning them they will be kicked
+Discord connector name.
Join a squad, you are are unassigned and will be kicked
discord
Message to send to players when they are kicked
+Command to create Discord placeholder.
Unassigned - automatically removed
How often in Seconds should we warn the player about being unassigned?
-30
How long in Seconds to wait before a unassigned player is kicked
-360
Player count required for AutoKick to start kicking players, set to -1 to disable
-93
Time delay in Seconds from start of the round before AutoKick starts kicking again
-900
true
: Admins will NOT be kickedfalse
: Admins WILL be kickedfalse
true
: Reserve slot players will NOT be kickedfalse
: Reserve slot players WILL be kickedfalse
!placeholder
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
The DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.
!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
The message to warn players with.
+Discord connector name.
Please apologise for ALL TKs in ALL chat!
discord
ID of role required to run the sub system restart commands.
+
667741905228136459
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
The DiscordChat
plugin will log in-game chat to a Discord channel.
An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.Discord connector name.
+discord
The ID of the channel to log admin broadcasts to.
+
667741905228136459
+The color of the embed for each chat.
+{}
{
+ "ChatAll": 16761867
+}
+The color of the embed.
+16761867
A list of chat names to ignore.
[
- {
- "command": "squadjs",
- "type": "warn",
- "response": "This server is powered by SquadJS.",
- "ignoreChats": []
- }
+ "ChatSquad"
]
The mysql-log
plugin will log various server statistics and events to a database. This is great for server performance monitoring and/or player stat tracking.
-
-Grafana (NOT YET WORKING WITH V2):
-
SquadJS
.The Sequelize connector to log server information to.
-mysql
A overridden server ID.
-null
16761867
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin camera usage to.
-
667741905228136459
-The color of the embed.
-16761867
16761867
The DiscordChat
plugin will log in-game chat to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin broadcasts to.
-
667741905228136459
-The color of the embed for each chat.
-{}
{
- "ChatAll": 16761867
-}
-The color of the embed.
-16761867
A list of chat names to ignore.
-[
- "ChatSquad"
-]
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log events to.
-
667741905228136459
-A list of events to dump.
-[]
[
- "PLAYER_DIED"
-]
- The DiscordPlaceholder
plugin allows you to make your bot create placeholder messages that can be used when configuring other plugins.
Discord connector name.
-discord
Command to create Discord placeholder.
-!placeholder
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
-discord
ID of channel to turn into RCON console.
-
667741905228136459
-{}
) permissions will be disabled{}
{
- "123456789123456789": [
- "AdminBroadcast",
- "AdminForceTeamChange",
- "AdminDemoteCommander"
- ]
-}
-Prepend admin names when making announcements.
-false
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
Discord connector name.
-discord
The ID of the channel to log admin broadcasts to.
-
667741905228136459
-The color of the embed.
-16761867
The DiscordSubSystemRestarter
plugin allows you to manually restart SquadJS subsystems in case an issues arises with them.
!squadjs restartsubsystem rcon
!squadjs restartsubsystem logparser
The AutoKickUnassigned
plugin will automatically kick players that are not in a squad after a specified ammount of time.
Message SquadJS will send to players warning them they will be kicked
+Join a squad, you are are unassigned and will be kicked
Message to send to players when they are kicked
+Unassigned - automatically removed
How often in Seconds should we warn the player about being unassigned?
+30
How long in Seconds to wait before a unassigned player is kicked
+360
Player count required for AutoKick to start kicking players, set to -1 to disable
+93
Time delay in Seconds from start of the round before AutoKick starts kicking again
+900
true
: Admins will NOT be kickedfalse
: Admins WILL be kickedfalse
true
: Reserve slot players will NOT be kickedfalse
: Reserve slot players WILL be kickedfalse
The DiscordDebug
plugin can be used to help debug SquadJS by dumping SquadJS events to a Discord channel.
Discord connector name.
discord
ID of role required to run the sub system restart commands.
+The ID of the channel to log events to.
667741905228136459
+ 667741905228136459
+A list of events to dump.
+[]
[
+ "PLAYER_DIED"
+]
+ The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
+[]
[
+ "This server is powered by SquadJS."
+]
+Frequency of the broadcasts in milliseconds.
+300000
false
The IntervalledBroadcasts
plugin allows you to set broadcasts, which will be broadcasted at preset intervals
Messages to broadcast.
-[]
[
- "This server is powered by SquadJS."
-]
-Frequency of the broadcasts in milliseconds.
-300000
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
-discord
The ID of the channel to alert admins through.
-
667741905228136459
-Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
-6
Live!
The AutoTkWarn
plugin will automatically warn players with a message when they teamkill.
The message to warn players with.
+Please apologise for ALL TKs in ALL chat!
The mysql-log
plugin will log various server statistics and events to a database. This is great for server performance monitoring and/or player stat tracking.
+
+Grafana (NOT YET WORKING WITH V2):
+
SquadJS
.The Sequelize connector to log server information to.
+mysql
A overridden server ID.
+null
The DiscordRoundWinner
plugin will send the round winner to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin broadcasts to.
+
667741905228136459
+The color of the embed.
+16761867
The ChatCommands
plugin can be configured to make chat commands that broadcast or warn the caller with present messages.
An array of objects containing the following properties:
command
- The command that initiates the message.type
- Either warn
or broadcast
.response
- The message to respond with.ignoreChats
- A list of chats to ignore the commands in. Use this to limit it to admins.[
+ {
+ "command": "squadjs",
+ "type": "warn",
+ "response": "This server is powered by SquadJS.",
+ "ignoreChats": []
+ }
+]
The DiscordAdminCamLogs
plugin will log in game admin camera usage to a Discord channel.
Discord connector name.
+discord
The ID of the channel to log admin camera usage to.
+
667741905228136459
+The color of the embed.
+16761867
The DiscordRcon
plugin allows a specified Discord channel to be used as a RCON console to run RCON commands.
Discord connector name.
+discord
ID of channel to turn into RCON console.
+
667741905228136459
+{}
) permissions will be disabled{}
{
+ "123456789123456789": [
+ "AdminBroadcast",
+ "AdminForceTeamChange",
+ "AdminDemoteCommander"
+ ]
+}
+Prepend admin names when making announcements.
+false
randomize
The SCBLInfo
plugin alerts admins when a harmful player is detected joining their server based on data from the Squad Community Ban List.
Discord connector name.
+discord
The ID of the channel to alert admins through.
+
667741905228136459
+Admins will be alerted when a player has this or more reputation points. For more information on reputation points, see the Squad Community Ban List's FAQ
+6