NidToolbox Server Tools

86.9kb

allcmds.png
logs.png
wlcm.png

NidToolbox Server Tools

1111


current compatible Eco
version0.8.3+
(both Windows & Linux)



This server plugin enables per command permissions, brings in moderators group, adds server wide announcements & pop-up messages, as well as set of commands useful in day-to-day server administration.

IMPORTANT: This plugin requires Apshalt-Modkit Framework, available here.


Suggestions: Join plugin's Discord: NidToolbox


Support for the plugin is provided on the main plugin page

>>>here<<<

and on 1217Discord here: >> Invite.gg <<


Overview of features

  1. Ability to Reset Skills, Talents and progression, set Job Level and refund specialisation points of any player on the server.
  2. Moderators group - you can promote players on your server into a Moderators group. These users can be allowed a set of commands they can use, without the need to rise everyone to Administrator with full rights on the server. It is possible to allow Moderators to only kick, send announcements, Ban, refund specialisation points, fly, grant skill points - or any combination of these that suits you best. The full list of grantable permissions can be found below.
  3. Timer messages module - allows for sending messages that are based on specific timer. Module can store multiple messages which can all have their own timers. Please see the Modules section for details on usage.
  4. MOTD / Welcome function (Message of the Day) - it is possible to enable MOTD module (disabled by default) to greet players that log in with a nice Welcome Message. This message can be displayed in chat, as pop up, resizable window or as both. All configuration options are in the file Settings.json and the welcome message itself is stored in the Motd.txt file. Options should be easy to figure out just by looking at them, they can be changed directly in the file or via the commands (see below for details).
  5. User Homes teleport module - allows for players to set up locations as their homes and later teleport to these places by using the command. Admins can enable a cooldown timer that will prevent players for abusing this option too often.
  6. Connections and IP Logger - these can be enabled if needed and when active will register information on each user logging in to your server - their IP Address, date and time when logged, Steam ID, Slg ID and character names.
  7. IP Address and Same IP users checker commands - these give detailed info about locations your players connect from as well as how many of the chars use the same IP address.
  8. Rules Module - makes it possible to set Rules for the server. Configuration resides in Settings.json, allowing for filename change as well as default file Rules.txt. File accepts all formating availble for Eco client - i.e. bold, italic, underline, colors etc.
  9. Configuration files can be reloaded at anytime, without the need to restart the server. This can be achieved either by editing the config file and issuing /nid-reload command, or from within the game via the specified command. (see blow for details)
  10. Server wide announcements - it is possible to broadcast announcement to all online users on the server in three types: Scroll down to see example screenshots
    • Chat message
    • Pop-up message with OK button
    • Pop-up message with resizeable window and formatted text.
  11. Easy way to promote moderators and change command permission levels - can be done either from the configuration file or from within the game via the administrator only command.
  12. Set of modified and new commands to help in Server administration, these include: add/remove moderator, refund skill specialisation point, review commands permission levels, reload configuration etc.
  13. Logging and feedback capacity - all commands used by moderators are traceable in the console log, errors are logged as well, so it is easy to see why the command did not work and where the culprit of the error lies.


Modules


Command permission levels as well as Moderators can be loaded from within the configuration file. There are five config files that plugin uses available in the same directory the plugin occupies:

  • Settings.json - stores settings for: moderators list, motd options, User Homes Teleport Module and IP/Connections Logger
  • CommandPermissions.json - stores commands and their permission levels
  • Messages.json - stores time based messages settings
  • Motd.txt - stores default welcome message
  • Rules.txt - stores default, example rules.


Permissions Module

Module related commands:

  • /nid-AddModerator and /nid-RemoveModerator - these are used to add and remove player from the moderators list.
  • /nid-SetPermission - sets new required permission level to use the command. Accepts command name and permission level. Valid permission levels: Admin, Moderator, User and Disabled (this will switch off the command entirely).

All files can be edited and then reloaded into the game via the command. There is no need to restart the server to apply new permissions or add users to Moderators list. However, I would advise to simply use the in game commands to add mods and change permission levels, in order to avoid any edit errors to JSON file. Plugin will detect such errors and inform if there are any.

Motd.txt and Rules.txt files on the other hand, should be easy to to edit as they contain general string. They accept tags such as for different text formatting as in Eco client.


Timer Messages Module



This module enables sending messages that are based on specific timer. Module can store multiple messages which can all have their own timers. Messages can be added either via the file editing (Messages.json), or by using the in game commands (see info below for details).

They accept formatting like bold, underline, different text size etc. When running the plugin for the first time, timer module, as most of the plugin functionalities, start as disabled and need to be enabled by the admin. Please note that all timers are shown and should be given in minutes!

Configuration of each message and the module resides in file Messages.json, below is the example extract:

"Title": "Read Rules Reminder",
"ShowAsPopup": false,
"TimerMinutes": 30.0,
"Message": "Remember to read our rules! Command: /nid-rules"


  • Title (string) - short text used to identify the command on the list via the in game commands.
  • showAsPopup (true/false) - if true message will not only show in chat but also pop-up in window.
  • Message (string) - actual text of the message. Accepts formatting like , , , . The default file has some examples in it. See there if you need some inspiration.

Timer messages related commands:

  • nid-TimerMsgEnable - enables the timer message module;
  • nid-SetTimerMsg - adds/sets new timer message. Accepts string Title, string MessageText, float Timer and bool ShowAsPopup .
    Title
    should be a short string that makes it easy to identify the message if you want to edit it, MessageText is a general text of the message, Timer should be given in minutes, ShowAsPopup is a simple true/false, indicating if the message should also pop-up in the window;
  • nid-CheckTimers - displays all active timer messages, current server time, time when message will trigger, remaining hours/minutes/seconds on the timer;
  • nid-ChangeDefTimerMsg - accepts string Title and float Timer allows to edit and change the default timer for the existing message. For example: If the message originally triggered every 30 minutes you can change it to trigger every 120 minutes. Requires string Title to find the message. You can indicate whole or partial name here. Using this command does not affect or reset other messages;
  • nid-ChangeRunningTimerMsg - accepts string Title and float timeLeft - allows to edit and change the running timer (time left to trigger) of the existing message. For example: If the message has 13 minutes left to trigger you can either prolong or shorten it. Requires string Title to find the message. You can indicate whole or partial name here. Using this command does not affect or reset other messages;
  • nid-DelTimerMsg - deletes the specified timer message. Requires string Title to find the message. You can indicate whole or partial name here. Using this command does not affect or reset other messages;
  • nid-ConfigTimersReload - Reloads Configs of time messages, if the file was edited manually. It will load new settings from Messages.json file.

    WARNING: While adding and removing individual timer messages via the commands does not reset the timer of the other messages, using this command will reset all of the running timers to the timers indicated in the file. This command is independent from /nid-reload and nid-reload does not reset the timers or influence them in any way.
  • nid-reload - my older command that now reloads all of the plugin config apart from the timers, to reload these use nid-ConfigTimersReload . I made this distinction to avoid affecting/resetting the timers if the player wants to reload other plugin settings.
nid-CheckTimers output example:

1209



MOTD

Welcome Message Module



Main configuration resides in the Settings.json file and following options are available:

"isEnabled": false,
"showAsPopUp": true,
"FileName": "Motd.txt",
"WindowTitle": "Message of the Day",
"showInChat": false
  • isEnabled (true/false) - activates or disables the module. Possible to change also from commands in game.
  • showAsPopup (true/false) - activates Welcome text as popup. Possible to change also from commands in game.
  • showInChat (true/false) - activates Welcome text as regular chat message. Possible to change also from commands in game.
  • FileName (string) - indicates which file should Plugin load the welcome message from. This is also the location plugin will save any changes to the message. It should be already existing, valid text file. If plugin is unable to find or read the indicated file, it will load default Welcome.
  • WindowTitle (string) - sets the title of the popup window as well as header of the chat welcome message.

MOTD related Commands:

  • /nid-MotdEnable / nid-MotdDisable - activates or disables the module. No arguments, just command.
  • /nid-MotdShowPopUp (true/false) - activates Welcome text as popup: true = enabled, false = disabled.
  • /nid-MotdShowInChat (true/false) - activates Welcome text as regular chat message: true = enabled, false = disabled.
  • /nid-MotdSetMsg (string) - sets the new MOTD/Welcome message. Accepts just regular text. If you would like to apply any advanced formatting, it is better to use the motd.txt file. See default file for examples. After making changes to the file directly, use /nid-Reload to load the changes into server. No need to restart.
  • /nid-MotdShow - shows current MOTD message.

Example Announcements

1112


OK PopUp​
1113


Resizable Window​

1114


User Homes Teleport Module


This module allows players to designate a specific location as their home. When set, players are able to teleport back to this location via the command.
Module is also equipped with a timer that can enforce a cooldown on the ability to ensure it is not abused by the server members.

Configuration for the module is available in the Settings.json file but all of these can be also changed in game via the in-game commands.
Code:

"HomeTeleportModule": {
    "TimerEnabled": true,
    "TimerMinutes": 60.0
  • TimerEnabled (true/false) - if true it establishes a timer on /nid-GoHome command, that allows players to teleport to their designated home location.
  • TimerMinutes (float) - given in minutes, it sets up a timer for the above command.

IMPORTANT: If you edit any of the configuation files by hand, make sure you use /nid-reload to load your changed values into the server! No restart needed.

Home teleport module related Commands:

  • /nid-SetHome - Sets location as user's home.
  • /nid-GoHome - teleports user to their home location. Subject to cooldown timer, if enabled by admins.
  • /nid-SetHomeTimer (float) - accepts number of minutes as a value. Can be set by Administrator (by default), it constrains /nid-GoHome command with a timer that needs to pass before it can be used again. Default timer value is 60 minutes.
  • /nid-HomeTimerReset (targetUser) - allows to reset a specified user cooldown to zero.
  • /nid-HomeTimerResetAll - resets all active home teleport timers of all users to zero.
  • /nid-HomeTimerEnable - enables timer.
  • /nid-HomeTimerDisable - disables timer.

IP Logger / Connection info Module



When active this module will trigger at each user logon event, registering data about IP, time of connection, steam, slg and internal IDs as well as user name;

It provides a possibility for checks and tracking of the user activity on Server.

Log files are stored in Mods/NidToolbox/Logs/IPsHistory . Each file is named according to the following format: _.log example name nidaren_SrvID-1.log. This makes them easy to locate when trying to find connection information on specific player.

Configuration for the module is available in the Settings.json file but all of these can be also changed in game via the in-game commands.
Code:

"IpLoggerModule": {
    "ModuleEnabled": false,
    "MakeCSVFile": false
  • ModuleEnabled (true/false) - if true it will turn on the module
  • MakeCSVFile - if true, it will additionally create a comma delimited file that can be imported to to tools like Excel or Google Sheets for data analysis.

IP Logger / Connection info related Commands - see /nid-help

Rules Module



Important: There is no option to disable the Rules Module in the config file, as it can be achived simply by setting the command /nid-Rules to Disabled.

Main configuration resides in the Settings.json file and following options are available:

"FileName": "Rules.txt"

  • FileName (string) - indicates which file should Plugin load the rules from. This is also the location plugin will save any changes to the rules. It should be already existing, valid text file. If plugin is unable to find or read the indicated file, it will set empty ruleset.

Rules related Commands:

  • /nid-Rules - Shows current Rules set in the file.
  • /nid-SetRules (string) - allows to change rules from within the game. It is recommended to just edit the Rules.txt file as it is far easier and more convenient.


Specific Commands Information

Currency related commands



All currencies names are NOT case sensitive and can be typed partially, for example: Mossy for MossyCoin or nidaren for (Nidaren's Credits). Plugin will find and match the currency. If more currencies are named the same, you will be asked to be more specific.

  • /nid-UserCurrencies - (accepts string currency name), it will display all accounts containing currency specified by the command issuer, together with bank account's IDs needed for other commands.
  • /nid-UserBankAccounts - (accepts User username), it will display all bank accounts and all currencies present on these bank accounts, that belong to the specified user,together with bank account's IDs needed for other commands.
  • /nid-DeductAccount - (accepts integer BankAccountID, float amount, string Currency), it will deduct specified amount of specified currency from specified Bank Account. To check bank account ID(s) use the commands: /nid-UserCurrencies or /nid-UserBankAccounts.
  • /nid-ZeroOutCurrency - (accepts currency name) - this command will remove currency from circulation. It will destroy all existing coins on all accounts. However, it will NOT delete the currency from game, as it is no longer safe to do so. Zeroed currency is no longer visible in the Currencies in Circulation Tab To prevent currency from being minted again, zero it by this command and then use /nid-LawBanCurrency.
  • /nid-ZeroOutCredits - (accepts credits name) - this command targets the starting player credits, that are issued as infinity at the game start. It will remove specific starting credits from circulation. Please note: It is perfectly safe to zero out all minted currencies, however in case of Credits, I am not too sure, hence why this command ships as disabled by default. You can enable it yourself if you want to use it. The plugin will warn you on enable. We did zero all starting credits on our server, but I will leave the choice to you.
  • /nid-LawBanCurrency (accepts string currency) - it will issue a Law that prevents minting of specified currency. Note that it will be impossible to mint this currency, however the existing coins of this currency will be kept. To destroy these use: /nid-ZeroOutCurrency.

Currency commands output example:

1166

1167



Available Commands

(extract - for full list see in game or on below screenshot)



To view the available commands in the plugin type /nid-help. It will list all the commands with the corresponding permission level requirements.

All the plugin's assignable commands start with nid- prefix.

IMPORTANT: Names are case sensitive in the game client. If you are getting user not found error, do make sure you have typed the name properly.

I. General usage commands:

  • /nid-help - lists all commands and their respective permission levels needed to use them. By default it shows the list divided by command tags, if used with argument alphabetical set to true it will show a simple list ordered alphabetically.
  • /nid-Reload - this will reload the config files. This command does not affect Timer Messages configs. It is useful if these were edited externally or after plugin update to load your old permissions and settings.

II. Management commands:

Commands below, similarly to the ones above can all be assigned specific permission levels. Admins will have access to all commands.

  • /nid-IssueWarn - Issues warning for the specified user. Warning can be either chat or popup window. Accepts player name, warning text and true/false value for if it should pop-up as window.
  • /nid-SetJobLevel (accepts: targetUser, string skillName, integer level) - sets skill level to indicated level, including levelling up and down. Note: For levelling down, affected player will be kicked briefly to allow for UI update.Their Talents in the skill will be reset, so they can pick them again. Levelling up does not require kick, nor talents reset. skillName - if it contains spaces, please type it without them i.e. AdvancedBaking or advancedbaking, capitalisation does not matter anywhere apart from User names. Partial names for skills are accepted too. If skill is not known to the target player, it will be learned automatically. Example use: /nid-SetJobLevel nidaren, hewing, 6
  • /nid-ResetJob (accepts: targetUser, string skillName, true/false refundSpecPoint)- allowing for complete reset of the skill to its starting state, including skill dependent talents, only indicated skill is affected. Select TRUE if you want to also return player invested spec point. skillName - if it contains spaces, please type it without them i.e. AdvancedBaking or advancedbaking, capitalisation does not matter anywhere apart from User names. Partial names for skills are accepted too. User will be kicked briefly for UIs update. Example use: /nid-ResetJob nidaren, hewing, true
  • /nid-ResetTalents (accepts: targetUser)- resets all talents in all skills so they can be picked again. Does not affect any of the skills. As per vanilla Eco, User names are case sensitive. User will be kicked briefly for UIs update.
  • /nid-ResetPlayer - Accepts player name, and a true/false value for whether it should only refund specialisation points via option: "onlyRefundPoints". Very useful in the beginning of the game when newer players make mistakes with their skills distribution. By default it will reset the player to the starting state, as they were when first logging to game. It is also possible to keep the progression of the player and only allow them to redistribute specialisation points, by selecting TRUE as third parameter. IMPORTANT: This command will kick the player briefly, for the skill panel to update. They can log back in after
  • /nid-Announce - announces message to all online players. Does not trigger the popup. Accepts colours.
  • /nid-AnnouncePopUp - announces message to all online players. Does trigger the resizeable popup.
  • /nid-AnnouncePopUpOK - announces message to all online players. Triggers pop-up window with OK button to confirm by the players.
  • /nid-GiveSkillPoints - works in the same way as the vanilla command. Grants X skill points to the specified player. Accepts also the player who is the issuer of the command.
  • /nid-GiveSpecPoints - gives exact amount of experience to grant one specialisation point.


All Commands:

1210

Details

RankDownloadsCreatorAddedUpdated
18 of 4689 (0 today)nid

Releases

FilenameSizeVersionAddedOptions
nidtoolbox_v1.8.2.zip86.9kb1.8.2

nidtoolbox_v.1.8.1.0.zip86.6kb1.8.1

nidtoolbox_v1.8.0.zip86.17kb1.8.0

nidtoolbox_v1.7.6.zip71.58kb1.7.6

nidtoolbox_v1.7.5.zip65.85kb1.7.5

nidtoolbox_v1.7.4.zip65.86kb1.7.4

nidtoolbox_v1.7.3.zip61.96kb1.7.3

nidtoolbox_v1.7.2.zip58.36kb1.7.2

nidtoolbox_v1.7.1.zip57.11kb1.7.1

nidtoolbox_1.7.0.zip56.87kb1.7.0

nidtoolbox_1.6.0.zip48.18kb1.6.0

2 comments

#4
Guest @guest

Would there be any chance of adding some kind of user lookup such as IP data so server admins can check if users are using alternate accounts?

NI
nid @nid

Yes, it will be released in the upcoming update, this week. If you would like to view the details on the IP-related commands, please join my discord on Invite.gg .