NidToolbox Server Tools
current compatible Eco
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
and on Discord here: >> Invite.gg <<
Overview of features
- Ability to Reset Skills, Talents and progression, set Job Level and refund specialisation points of any player on the server.
- 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.
- 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.
- 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).
- 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.
- 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)
- 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.
- 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.
- 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.
- 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.
Command permission levels as well as Moderators can be loaded from within the configuration file. There are four config files that plugin uses available in the same directory the plugin occupies:
- Settings.json - stores moderators list and motd options
- CommandPermissions.json - stores commands and their permission levels
- Motd.txt - stores default welcome message
- Rules.txt - stores default, example rules.
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.
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",
"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.
Welcome Message Module
Main configuration resides in the Settings.json file and following options are available:
"WindowTitle": "Message of the Day",
- 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.
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 (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:
(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.