Trade Abuse Monitoring - kwsch/SysBot.NET GitHub Wiki

These settings can be used to mitigate trade abuses such as bypassing trade cooldown and using multiple accounts to queue. It is also possible to disallow users from using the bot by Nintendo ID. The bot will use Echo channels to alert when trade abuse is detected and any action is taken. Mentions can be added to call for further action on the user.

Users are only logged for previous trade comparisons if they successfully complete a trade.

This is fully implemented for SWSH trade bots. LA, BDSP, and SV trade bots are only able to leave the trade when a banned user is detected.

Users will get an error about SuspiciousActivity. You will have to check the logs to find the exact reason to decide if any penalties are needed.

Refer to the Discord and Twitch Commands page to learn how to remove users who have flagged this detection.

Trade Cooldown

This is a limit on how often a user may trade with the bot.

  • TradeCooldown: Bot will alert if a user is detected in-game multiple times in less than this setting's value in minutes.
  • EchoNintendoOnlineIDCooldown: Sets whether to include the Nintendo ID in echoes when trade cooldown is ignored.
  • CooldownAbuseEchoMention: If not empty, the provided string will be appended to Echo alerts to notify whomever you specify when a user violates trade cooldown. For Discord, use <@userIDnumber> to mention.

Multiple Accounts

These are limits on users on multiple Discord/Twitch accounts queuing for the same Nintendo online account.

  • TradeAbuseExpiration: Bot will alert if a user is detected using multiple Discord/Twitch accounts in less than this setting's value in minutes.
  • EchoNintendoOnlineIDMulti: Sets whether to include the Nintendo ID in echoes when multiple accounts are detected.
  • TradeAbuseAction: Sets the action when a user is detected using multiple accounts to queue. Ignore does nothing. Quit leaves the trade. Block initializes the in-game block routine in SWSH, and leaves the trade in other games.
  • BanIDWhenBlockingUser: Sets whether to add a user's Nintendo ID to the BannedIDs list when they are blocked in-game for multiple accounts. This will cause them to be blocked in-game again if they switch games. Only SWSH has in-game blocking.
  • MultiAbuseEchoMention: If not empty, the provided string will be appended to Echo alerts to notify whomever you specify when a user is found using multiple Discord/Twitch accounts to send to the same in-game user. For Discord, use <@userIDnumber> to mention.
  • EchoNintendoOnlineIDMultiRecipients: Sets whether to include the Nintendo ID in echoes when multiple in-game accounts are detected.
  • MultiRecipientEchoMention: If not empty, the provided string will be appended to Echo alerts to notify whomever you specify when a user is found sending to multiple in-game accounts. For Discord, use <@userIDnumber> to mention.

ID Banlist

These are bans on Nintendo online account IDs.

  • BannedIDs / BlockDetectedBannedUser: A list of IDs that are banned from using the bot. If a user is encountered matching one of these IDs and BlockDetectedBannedUser is enabled, the bot will block them in-game during trade. Otherwise, it will leave the trade.
    • Users can be added to this list with $bantrade <Nintendo ID> "Comment", e.g. $bantrade 1234567890123 "bad user". The ID to use should show up as "OT-TID (ID: x)" when a trade partner is found.
  • BannedIDMatchEchoMention: If not empty, the provided string will be appended to Echo alerts to notify whomever you specify when a user matches a banned ID. For Discord, use <@userIDnumber> to mention.

Random Distribution (Ledy) Trades

These are restrictions on Random Distribution trades.

  • EchoNintendoOnlineIDLedy: Sets whether to include the Nintendo ID in echoes when a user abuses Ledy trades.
  • LedyAbuseEchoMention: If not empty, the provided string will be appended to Echo alerts to notify whomever you specify when a user abuses Ledy trades. For Discord, use <@userIDnumber> to mention.

Record Logging

A folder named records is generated to log each user that is encountered. Each line should have in the following order:

  • whether a trade started/ended
  • Nintendo ID in hexadecimal
  • the In-Game Name that was encountered
  • the type of trade
  • the Discord ID that started the trade (or 0 if Distribution)
  • the number of the trade
  • the EC of the Pokémon