NidToolbox: Player Manager module 1.1.8

Due to human (non-bot) spam the first contribution of a user has to be reviewed and activated manually, all further contributions do not require this.
As long as a user does not have at least one reviewed and activated contribution, the user is unable to edit his profile, set a avatar, title picture or a signature.

Contains commands useful in day-to-day player management, ability to Reset Skills, Talents and progression, set Job Level and refund specialisation points of any player on the server, geo-location and more.

Player Manager module

for NidToolbox Light

requries nid-core module available here


1586-default-violet-2-png



Useful in day to day administration of your citizens.


Player Manager module allows:

  • Easy player resets to the starting state, including reimbursement of any deleted alpha backer items, (see below for screenshots) each time you reset a player, a confirmation window will be displayed - providing the details of the reset, as well as targeted player and their information. This allows you to abort the procedure at any time.
  • Fixes some of the errors present in the vanilla game reset commands: non updating skill tree and ghosting issue.
  • Setting of required profession levels, including up levels and de-levels;
  • Ability to set and sync player levels.
  • Module takes into account translated and localised names, should your server be running in language other than English. For example: You can use Готовка for Cooking or Holzfällen for Logging.
  • Module accepts partial names for easier lookup.
  • Granting and deducting of specialty points, with respect and checks against locked and already invested points.
  • Additional user tooltip information - IP, SteamId and SLGId, with customisation of which user groups can see these.
  • Resetting individual professions to the unlearnt state;
  • As it is impossible to target talents by their localised (translated and displayed names), this module provides a helpful way to remove talents either one by one or enmasse. Popup window will list all of the player's talents, including their links, so administrator may ensure they remove a desired talent.
  • Ability to obtain geo-location info on the player, their IP address and details about it. Allows to detect players using same IP address, for administrators who use this feature.
  • Custom announcements, warnings, offline messages.


Settings file:

Settings for the module are located in Configs/NidToolbox/PlayerManager.json and deal mainly with visibility of the additional user tooltip information.

Code
{
  "Info1": "NidToolbox Light: Player Manager settings.",
  "ShowIPinTooltip": true,
  "ShowSteamIdinTooltip": true,
  "ShowSlgIdInTooltip": true,
  "ShowTooltipInfoToGroups": [
    "Admin"
  ]
}

ShowIPinTooltip - sets IP Address visibility in the user's tooltip. Can be also changed in game via /tooltip-conf

ShowSteamIdinTooltip - sets Steam Id visibility in the user's tooltip. Can be also changed in game via /tooltip-conf

ShowSlgIdInTooltip - sets Slg Id visibility in the user's tooltip. Can be also changed in game via /tooltip-conf

ShowTooltipInfoToGroups - EM Groups included in this list can view additional tooltip info, mentioned above. Can be set in game via /tooltip-grpAdd

and /tooltip-grpdel


Requirements:


As any module of NidToolbox set, it requires nid-core version 1.0.3+ module, available in the main forum thread: here


How to install:

  1. Unpack .zip archive
  2. Copy nid-playermanager.dll to Mods\NidToolbox\Modules


Usage Notes:


Module accepts partial names for skills, if serveral same partial names exist, you will have to be more specific.


Module accepts skill names in the language set on server. For example: You can use Готовка for Cooking or Holzfällen for Logging.



Available commands:


/help ManagePlayer

Displays information about all commands contained within this module.


/Ann

Sends server wide announcements. Has several advantages over the default announce: possibility to add the message to Notifications, possibility to leave the message for offline users, to check when they come online, ability to show the PopUp message as either OKBox - requiring user to confirm before it disappears (all actions blocked until OK is clicked), or standard InfoWindow - resizable but prone to disappearance at any click. Both popups accept all formatting options. Sending the message with different tag, for example General instead of Notifications - this was requested by users that have Notifications cleared in chat filters.


/ann string text (required), int size, bool showAsPopUp, bool showAsOKBox, bool leaveIfOffline, bool showInNotifications, string windowHeader, string tag

showAsPopUp - (Default: false) - sets message to be displayed as InfoBox - resizable and scrollable ;

showAsOKBox - (Default: true) - sets message to be displayed as OKBOx - requires click on OK from the user to go away, all actions are blocked;

leaveIfOffline - (Default: true) - stores message if the user is offline at the moment of sending, this message can be found and read through notification interface when user logs back in.

showInNotifications - (Default: true) - adds message to the notifications panel. If leaveIfOffline is set to on and user is offline, this setting is always true.

windowHeader - (Default: "Server Announcement") - sets title of the announcement as well as title of the window, if any of the popups are selected.

tag - (Default: Notifications) - sets the tag of the message. Requested by people who have everything but General filtered off. Accepts either Notifications or General.


Code
/Ann We are wiping the server in two days!

/Ann Free items available at the general stockpile, 32, false, true 


/AnnTest

Sends warning to the target user. Requires only two arguments, rest is assumed automatically. Advantages over the vanilla warning are the same like in case of the announcement: ability to leave this message if user is offline, different popup options, sizing etc.


Code
/AnnTest Here is my test announcement.


/Warn

Sends warning to the target user. Requires only two arguments, rest is assumed automatically. Advantages over the vanilla warning are the same like in case of the announcement: ability to leave this message if user is offline, different popup options, sizing etc.

/Warn User targetUser (required), string text(required), int size, bool showAsPopUp, bool showAsOKBox, bool leaveIfOffline, string windowHeader


showAsPopUp - (Default: false) - sets message to be displayed as InfoBox - resizable and scrollable ;

showAsOKBox - (Default: true) - sets message to be displayed as OKBOx - requires click on OK from the user to go away, all actions are blocked;

leaveIfOffline - (Default: true) - stores message if the user is offline at the moment of sending, this message can be found and read through notification interface when user logs back in.

showInNotifications - (Default: true) - adds message to the notifications panel. If leaveIfOffline is set to on and user is offline, this setting is always true.

windowHeader - (Default: "Server Announcement") - sets title of the announcement as well as title of the window, if any of the popups are selected.


Code
/Warn Boop, Clean up your rubble!

/Warn Boop, Clean up your rubble!, 28, false, true, true, Warning


/on

Shows online players. Has two optional parameters - format and maxPerLine. Format accepts two values: v for vertical list and h for horizontal; maxPerLine is an integer limiting max number of usernames per line.

Command can be triggered with just its name and then it will launch with default values - vertical list.

/on string format, int maxPerLine.

Code
/on
/on h, 6


/grant-spec

Grants or deducts exact amount of specialty points. Use negative numbers to deduct. It has checks against already invested points and those that are otherwise locked.

/grant-spec User targetPlayer, int amount

Code
/grant-spec targetPlayer, amount


/grant-specAll

Grants exact amount of specialty points to all players.

/grant-specAll int amount

Code
/grant-specAll amount


/spec-report

Lists free and invested speciality points of the target player.

/spec-report User targetPlayer,

Code
/spec-report targetPlayer


/talent-unlearn

Unlearns specified talent. IMPORTANT: As talents follow own naming format, it is recommended to use /talent-list to obtain ID names for this command. If the requested talent is not found, information window will appear by default.

/talent-unlearn User targetPlayer, string talentName

Code
/talent-unlearn targetPlayer, talentName


/talents-list

Lists talents currently known by the target player. Provides naming IDs for the command /talent-unlearn. Provided talents are linked and available for mouse over to ensure proper talent is removed.

/talents-list User targetPlayer

Code
/talents-list targetPlayer


/talents-reset

Resets ALL talents of the target player.

/talent-reset User targetPlayer

Code
/talent-reset targetPlayer


/player-reset

Resets skills, talents, inventory, stats of the target player to the starting state. Effectively making them born anew. Contrary to the game method, this one will also reimburse the player any alpha backer items, they have entitlement for. Targets keep all of their plots and other owned property. Before the reset occurs, confirmation window is provided with all details of the reset. See below for screenshots.

/player-reset User targetPlayer

Code
/player-reset targetPlayer


/player-refundspec

Refunds specialisation points and resets skills, but preserves character's progress: levels and experience points.

After the refund player can pick their skills anew.

/player-refundspec User targetPlayer

Code
/player-refundspec targetPlayer


/job-reset

Resets specified profession to the starting, unlearnt state. Contrary to the game method, it uses own way of searching through skills, making sure the correct skill is targeted. Has optional attribute toUnlearnt which will set targeted skill to unlearnt state if the skill required a skill scroll to learn.

/job-reset User targetPlayer, string skillName, (optional) toUnlearnt = true

Code
/job-reset targetPlayer, skillName, true 


/job-set

Set specified skill to the desired level. This command sets the job level to the one indicated by the issuer. It ensures that server stats are updated properly as well as the user info available in real time. Information on the command effect is sent both to the issuer and to the receiver but not to the whole server.

/job-set User targetPlayer, string skillName, int level

Code
/job-set targetPlayer, skillName, level


/player-LvlSet

Sets player's current level to the selected level.

/player-LvlSet User targetPlayer, int level

Code
/player-LvlSet targetPlayer, level


/player-LvlSync

Calculates a proper level character should be at, basing on invested specialities and earned stars and synchronises current level to it.

/player-LvlSync User targetPlayer

Code
/player-LvlSync targetPlayer


/ip

Gets current IP address of the player. Allow for detailed (default) or simple check. Detailed check offers approximate location (country and city of the Internet Service Provider), simple check returns only IP address.

/ip User targetPlayer, bool simple

Code
/ip targetPlayer, true/false


/ip-list

Displays pop-up windows with a list of currently connected players with their IP Addresses.

/ip-list

Code
/ip-list


/ip-same

Returns list of players who are connected from the same IP Address.

/ip-same

Code
/ip-same


/tooltip-conf

Sets player info tooltip options. (IP Address, Steam ID, SLG ID)

/tooltip-conf bool showIp, bool showSteamId, bool showSLGId

Code
/tooltip-conf true, true, true


/tooltip-grpAdd

Allows members of EM group to see additional player tooltip info (IP Address, Steam ID, SLG ID). EM Group must already exist.

/tooltip-grpAdd string groupName

Code
/tooltip-grpAdd groupName


/tooltip-grpDel

Removes members of EM group from seeing additional player tooltip info. (IP Address, Steam ID, SLG ID)

/tooltip-grpDel string groupName

Code
/tooltip-grpDel groupName


/tooltip-grpLs

Lists EM Groups able to see player tooltip info. (IP Address, Steam ID, SLG ID)

/tooltip-grpLs

Code
/tooltip-grpLs


Screenshots:





  • Version 1.1.8

    • Fixes player-lvlSet command, leaving player at their current level in specific circumstance.
  • Version 1.1.7

    • Added the ability to set and sync player levels.
    • Added the ability to unlearn skills that require scroll to learn.
    • Fixed /grant-spec now allows to remove starting available star when used with negative numbers.
    • Added /grant-specAll - grants set amount of specialization points (stars) to everyone on the server. Requires confirmation.
    • Added /player-lvlSync - Calculates a proper level character should be at, basing on invested specialities and earned stars and synchronises current level to it.
    • Added /player-lvlSet - sets player's current level to the selected level.
    • Command /job-reset when targeting skills that required skill scroll to learn, will set them to unlearnt status.. This can be prevented by setting the /job-reset  toUnlearnt attribute to false. It is assumed true by default. As the scroll requiring skill UI updates only on relog, character will be kicked briefly from the game for the reset. Proper notification will be sent to them.
    • Command /player-reset will kick the affected player from the game briefly, in case the target player had skills that required skill scroll to learn, as the scroll requiring skill UI updates only on relog. Proper notification is sent to player before and after reset (on the loggout out window and reason).
  • Version 1.1.6

    Version 1.1.6

    • Fixed Additional Info Tooltip showing the IP Address, Steam Id and Slg Id of the info requester instead of the tooltip source. Thx to @MonzUn for reporting!
    • Fixed module properly recognizing special user DiscordLink and its properties.
  • Version 1.1.5

    Version 1.1.5


    • Added optional extended tooltip info: IP Address, Steam Id and SLG Id, when hovering over user name in Eco.
    • Info can be limited to certain EM Groups and by default is only visible to Admins.
    • Added /tooltip-conf command, allowing for additional tooltip info visibility.
    • Added /tooltip-grpAdd command allowing for adding additional EM user groups, whose members can see additional tooltip info.
    • Added /tooltip-grpDel command, allowing for removal of the above groups.
    • Added /tooltip-grpLs alowing for listing of EM Groups whose members can currently view additional tooltip info.
    • Changed /player-reset command to remove additional 3 xp presence on freshly reset character. It was used as a fix in the past, doesn't harm anything now, but gets people confused, so I removed it.


  • Version 1.1.4

    Version 1.1.4

    • Compatibility patch with EM Framework 3.1.0
    • Requires EM Framework 3.1.0
  • Version 1.1.3

    Version 1.1.3:

    • Fixes: player-reset will now also reset the character level. Character level by itself does not do anything, but as its visibility have been moved into main UI view now as well as it being editable, it is better to reset it as well, so players don't get confused.
  • Version 1.1.2

    Version 1.1.2

    • Fixes: Skills list visible in lower left corner of the screen will now properly remove skills that have been unlearnt or at level 0, without the need of a relog.
    • Fixes: job-reset command now returns invested star.
    • Migrated project to Net5
    • Compatibility patch for Eco version 9.4
  • Version 1.0.11

    Version 1.0.11:

    • Brings back warnings and announcements known from the old versions of NidToolbox.
    • Adds command to send custom messages, as popups, announcements and offline messages to individual users.

    Introduces the following new commands:

    • /Ann - (Announce) - has several advantages over the default announce: possibility to add the message to Notifications, possibility to leave the message for offline users, to check when they come online, ability to show the PopUp message as either OKBox - requiring user to confirm before it disappears (all actions blocked until OK is clicked), or standard InfoWindow - resizable but prone to disappearance at any click. Both popups accept all formatting options. Sending the message with different tag, for example General instead of Notifications - this was requested by users that have Notifications cleared in chat filters.

      Command requires only one argument the content of the message, the rest is optional

      /Ann Server will be wiped in three days! - will send the announcement and assume all undeclared parameters.

      Full syntax: /ann string text, int size, bool showAsPopUp, bool showAsOKBox, bool leaveIfOffline, bool showInNotifications, string windowHeader, string tag

      Properties:
      • showAsPopUp - (Default: false) - sets message to be displayed as InfoBox - resizable and scrollable ;
      • showAsOKBox - (Default: true) - sets message to be displayed as OKBOx - requires click on OK from the user to go away, all actions are blocked;
      • leaveIfOffline - (Default: true) - stores message if the user is offline at the moment of sending, this message can be found and read through notification interface when user logs back in.
      • showInNotifications - (Default: true) - adds message to the notifications panel. If leaveIfOffline is set to on and user is offline, this setting is always true.
      • windowHeader - (Default: "Server Announcement") - sets title of the announcement as well as title of the window, if any of the popups are selected.
      • tag - (Default: Notifications) - sets the tag of the message. Requested by people who have everything but General filtered off. Accepts either Notifications or General.

    • /AnnTest - this command lets the user test the announcement first, it won't be visible to anyone, but the issuing user. Otherwise identical with /Ann.

    • /Warn - sends warning to the target user. Requires only two arguments, rest is assumed automatically. Advantages over the vanilla warning are the same like in case of the announcement: ability to leave this message if user is offline, different popup options, sizing etc.

      example: /Warn Boop, Clean up your rubble!

      Full syntax: /Warn User targetUser, string text, int size, bool showAsPopUp, bool showAsOKBox, bool leaveIfOffline, string windowHeader
    • /MsgMe - allows for sending custom messages to individual users, either as PopUps, OKBoxes, Announcements or standard chat messages. Requires only two arguments rest is assumed automatically.

      Full syntax: /MsgMe User targetUser
      (required), string text (required), int size, bool showAsPopUp, bool showAsOKBox, bool leaveIfOffline, string windowHeader

    forum.play.eco/core/attachment/1648/


    forum.play.eco/core/attachment/1649/


    forum.play.eco/core/attachment/1650/


    forum.play.eco/core/attachment/1651/


    forum.play.eco/core/attachment/1652/

    Images

  • Version 1.0.10

    Version 1.0.10:

    • Fixes job-reset command when used against modded skill that either has no talents or no selectable active talents. Huge thanks for @MNK for reporting on Discord.
  • Version 1.0.9

    Version 1.0.9:

    • Adds new command /on which displays list of players who are currently online as well as grand totals of all players, and offline ones. Command has two optional parameters format - accepting v for vertical user list alignment or h for the horizontal one, as well as optional parameter maxPerLine which limits users per one line in horizontal view. Issuing command with no parameters assumes the defaults - vertical view.
      Example use: /on or /on h, 6. Thx @Dennis for suggestion.
    • Position and size of the window can be saved for future uses, by closing it via the X button, available in the upper right corner.
    • Fixes display error on online user checking. Thx @Dennis and @Kye for reporting.

    forum.play.eco/core/attachment/1644/ forum.play.eco/core/attachment/1645/

    Images