Pending Centralize Chat Command Listing / Explanation

As an 11.5 year PS user

1752283678813.png
source

and frequent room/global staff, I still frequently forget many commands and how they work.

To my understanding, there is no one centralized store of all commands and how they work. Besides the GitHub repo I guess. No straightforward way for the average PS user, anyway. /help covers some, but there are many it does not cover.

Additionally, even if you know what a command does, learning how it works and advanced use is often non-trivial. Descriptions of advanced use are often absent or unclear, with many commands having bare-bones descriptions, or occasionally none at all.

My suggestion is threefold.

One prompt you can enter (or button you can press, menu you can access, whatever) that, with enough intuitive navigation, will eventually get you to every command (excluding any you all don't want as public knowledge).

Every command clearly explaining both basic function and advanced uses with the /help commandname syntax.

Some way that new users who care to look at and read stuff (I understand this is a minority) can reasonably figure out, on their own, how to access the above two ideas.

If this isn't off the table for some reason, I'll probably draw up some more concrete plans and mock ups.

Cheers!
 
Last edited:
Ah I'll just draw up some mock-ups anyway. Here's an in-progress audit and revamp of the /help suite. I'll add more as / if I feel like it.

Thanks to Mathy for his continual help.

Commands Repos:
One
Two

Code:
COMMANDS: /report, /msg, /reply, /logout, /challenge, /search, /rating, /whois, /user, /join, /leave, /userauth, /roomauth
BATTLE ROOM COMMANDS: /savereplay, /hideroom, /inviteonly, /invite, /timer, /forfeit
OPTION COMMANDS: /nick, /avatar, /ignore, /status, /away, /busy, /back, /timestamps, /highlight, /showjoins, /hidejoins, /blockchallenges, /blockpms
INFORMATIONAL/RESOURCE COMMANDS: /groups, /faq, /rules, /intro, /formatshelp, /othermetas, /analysis, /punishments, /calc, /git, /cap, /roomhelp, /roomfaq (replace / with ! to broadcast. Broadcasting requires: + % @ # ~)
DATA COMMANDS: /data, /dexsearch, /movesearch, /itemsearch, /learn, /statcalc, /effectiveness, /weakness, /coverage, /randommove, /randompokemon (replace / with ! to broadcast. Broadcasting requires: + % @ # ~)
DRIVER COMMANDS: /warn, /mute, /hourmute, /unmute, /alts, /forcerename, /modlog, /modnote, /modchat, /lock, /weeklock, /unlock, /announce
MODERATOR COMMANDS: /globalban, /unglobalban, /ip, /markshared, /unlockip
ADMIN COMMANDS: /declare, /forcetie, /forcewin, /promote, /demote, /banip, /host, /ipsearch
-
For details of a specific command, use something like: /help data

My goals:
General:
A) Document how you are or are not able to access help for a command.
/help commandname works for almost anything, I'll just note rare exceptions where a help syntax doesn't work as expected
B) Log all public-facing commands in an accessible way. (stretch goal)

Within Command Help Messages: (My changes are underlined. I use extra line breaks here for readability.)
C) Improve the existing goals of specifying alternative entry means and (briefly) other commands with related functions.
D) Specify unclear parameter mechanics.
E) Add whatever other miscellaneous information would be useful.

COMMANDS:

1) /report:

Does /help commandname function? No.
Does /commandname with no parameters function? Mostly - it enacts the HT Report interface.
Suggestion: /help report becomes
Code:
Takes you to the PS Help system for a reporting a player. The Help system explains how to use it.

If you want to contact PS Staff for another reason besides reporting a player, use /helpticket (/ht) instead.

2) /msg

Does /help commandname function? Yes.
Does /commandname with no parameters function? Yes.

(I'll stop reporting the results of these questions unless they are unusual.)

Suggestion: Make the help message clearer on aliases and note offline PMs.
Current:
Code:
/msg OR /whisper OR /w [username], [message] - Send a private message.
New:
Code:
/msg [username], [message] - Send a private message.

You can also use /whisper, /w, /dm, or /pm. You can also click a username and press "Chat."

If the other user is offline, use /offlinemsg.

3) /reply

Suggestion: Consider moving this to a more obscure location. I don't see people talk about it ever, and it seems like bait for accidents. Happy to be proven wrong though.
Suggestion 2: Make the help message show alternate means and note the general use /msg.
Rich (BB code):
/reply OR /r [message] - Send a private message to the last user you got a private message from, or sent a message to.

You can also just chat within the private message window.
To send a private message to any user, use /msg.

4) /logout

Suggestion: Make the help message show an alternate means and softly discourage using the command when unnecessary.

Rich (BB code):
/logout - Logs you out and ends your session.
You can also click the Log out button in Options.

To leave PS without having to log in again, just close the tab or browsing window.
If you wanted to change your name while staying connected, use the '/nick' command.
The last line is mostly stolen from the existing PS! message when you log out.

5) /challenge

Suggestion: /challenge is oddly inconsistent with automatically enabling the Bo3 tab for some formats (like Random Battles) and not others (like OU). Further, clicking the username and "Challenge" will not enable the Bo3 tab for formats like Random Battles, though it does for VGC.

If this is unintentional, it can be wrangled. If it is intentional, it can be explained in the help message.

Suggestion 2: Make the help message show an alternate means and explain how to challenge yourself.

/help challenge (particularly through the challenge rules page) has tremendous functionality. My text suggestions are minor and partially stolen from a pre-existing PS message. I might dig into the separate Challenge Rules page another time.

Rich (BB code):
/challenge - Asks you to name a user to challenge to a battle. If done in a user's private messages, it prompts you to challenge that user.
You can also click on a user's name and press "Challenge."

/challenge [user] - Challenge the user [user] to a battle.
You can't battle yourself. The best you can do is open PS in Private Browsing and log into a different username, and battle that username.

/challenge [user], [format] - Challenge the user [user] to a battle in the specified [format].
...

6. /search

Does /commandname with no parameters function? It returns nothing and briefly freezes PS.
Suggestion: Mathy says /search is not intended for direct use on the official client (at least currently). It should probably be slotted to a more obscure place than /help (if it is unchanged).
Suggestion 2: Make /search with no parameters either default to the help text, or pull up a small prompt interface like /challenge without parameters does.
Suggestion 3: Make the help clarify the rarer use case, show an alternate means, note the restriction to ladder battles, and note /challenge for non-ladder formats. (If someone more knowledgable wants to add more about the official client part, go right ahead - I'm largely just stealing Mathy's note.)

Rich (BB code):
/search [format] - Searches for a ladder battle in the specified format.

You can also use the Battle window in the left.

This command is not intended for direct use on the official client. If you are searching for a teambuilding format, use the Battle window instead.

You can only search for formats you can play on the ladder.
For other formats, try /challenge.

7. /rating

Suggestion: Make the help message slightly clearer on the command's function, note the specific format parameter, and note the PS ratings FAQ.

Rich (BB code):
/rating - Get your own rating on all ladder formats.
/rating [username], [format] - Get user [username]'s ratings on [format] format.
If you do not specify a format, you will see all formats.

For more information on what the ratings mean, see the PS ratings guide here.

8. /whois

As I understand it, /alts covers all the functionality of /whois and more.
Notably, the help message says it provides information like IP and alts, but it does not. /alts does that. (At least for me checking myself as a non-global staff.)
Suggestion: Turn /whois into an alias for /alts.

9. /user

While testing, I had a weird bug where /user with no parameter returned my profile as intended the first time, but future uses made /user into /nick. Even going to a private tab did not revert /user into its proper form.
Suggestion: Stop /user from becoming /nick.
Suggestion 2: Make the help message show an alternate means and note statuses.
Rich (BB code):
/user [user] - Open a popup containing the user [user]'s avatar, name, rank, status, and chatroom list.

You can also click on their username.

10-11. /join and /leave

Suggestion: Slightly clarify the abilities of the commands, and show alternatives.
Rich (BB code):
/join [roomname] - Attempt to join the room [roomname].

Some rooms are private, so you cannot join unless you are invited to with /invite.
Rooms often have abbreviated names you can use to join. Use /roomalias to see them.

You can also join public rooms by clicking the + chat tab, scrolling through the list, and clicking one. You can search for specific types of rooms, like battling or entertainment rooms, with the dropdown at the top.
"Attempt to" was a bit unclear.
Rich (BB code):
/leave - Leave the current room, or a specified room.

You can also click the x in the top right of the chat tab.
"Given" was a bit unclear.

12. /roomauth

Suggestion: Make the help message's use of "authority" more clear, note again that bolded users are currently online, and reference the groups faq to explain what room ranks are.

Rich (BB code):
 /roomauth [room] - Shows a list of the staff and other rank users in the given [room].
If no room is given, it defaults to the current room.

Names in bold are currently online.

To learn what room staff and other ranks mean, use /groups.

13. /userauth

Suggestion: Like /roomauth, clarifying what "authority" means and referencing the groups faq.

Rich (BB code):
/userauth [username] - Shows all staff positions and other ranks visible to the user for the given [username].
If no username is given, it defaults to the current user.

To learn what room staff and other ranks mean, use /groups.

BATTLE ROOM COMMANDS:

1. /savereplay

Suggestion: Clarify how to get replays, and how the command interacts with /hideroom. This tripped me up personally quite a bit.

Rich (BB code):
Saves the replay for the current battle.

When you save a replay, PS will give you a link to the replay in the replay database. 

You can access the entire database here. You can search for any replays in any format from any user, including yourself, or see featured replays.

If either player makes a battle private with /hideroom or hides the replay with /hidereplay, you can still save it with /savereplay and share it with the link. However, a saved replay of a private battle will not appear in the public replay database. You can only search for your own private replays in the database.

2-4. /hideroom, /secretroom, /publicroom

Does /help commandname function? Yes, but it technically doesn't include the pure command.

Suggestion: /hiddenroom off is specified by the help message but did not work for me, returning this error.

Please specify what privacy setting you want for this room: /hiddenroom, /secretroom, or /publicroom

Therefore, I suggest removing this functionality. /publicroom seems to have its functionality anyway.

Suggestion 2: Merge /hidereplay's help message into this command. It has very similar functionality. Split /secretroom and /publicroom off due to overcrowding. (They are still referenced in the /hideroom help message, so user's won't be left in the dark.)

Suggestion 3: Make the battle functionality more clear and more separate from the chatroom functionality. Note /hidereplay as a battle alternative. Make the chatroom functionalities more clear too.
Old:
Code:
/secretroom - Makes a room secret. Secret rooms are visible to ~ and up. Requires: ~
/hiddenroom [on/off] - Makes a room hidden. Hidden rooms are visible to % and up, and inherit global ranks. Requires: ☆ ~
/publicroom - Makes a room public. Requires: ☆ ~

(Separately:)

/hidereplay - Hides the replay of the current battle. Requires: ☆ ~

New:
Rich (BB code):
/hideroom OR /hiddenroom (Battle) - Makes a battle or chat room hidden. Requires: ☆ ~

Hidden rooms are only visible to global staff and inherit global ranks. To learn more about ranks, use /groups.

Users can join hidden rooms if another user invites them with /invite. Unlike secret rooms with /secretroom, users can also join if they know the hidden room's name and use /join. /publicroom removes a room's hidden status.

Hidden battle rooms have special functionality. If the replay is saved with /savereplay, it will be hidden from the public replay database. Players can only search up their own hidden replays. Also, if any player hides a battle room, all players must unhide the room for it to be public.

/hidereplay - Hides the replay of the current battle. Also hides the room, like /hideroom, but the replay remains hidden even if all players make the battle public again. Requires: ☆ ~

(Separately:)

/secretroom - Makes a room secret. Secret rooms are visible to ~ and up. Requires: ~

To join a secret room, a user in the room must invite you with /invite. Unlike a room hidden with /hideroom, knowing the room's name and using /join will not work. /publicroom removes a room's secret status.

(Separately:)

/publicroom - Makes a battle or chat room public. This undoes /hideroom and /secretroom. Requires: ☆ ~

For a hidden battle room, all players must use /publicroom to make the room public. For a chat room, the room becomes accessible through the list of chat rooms.

5. /inviteonly

Does /help commandname function? Yes but it probably shouldn't.
Does /commandname with no parameters function? Yes but it probably shouldn't.

Here is the current help message.
Code:
/inviteonly [on|off] - Sets modjoin %. Users can't join unless invited with /invite. Requires: # ~
/ioo - Shortcut for /inviteonly on
/inviteonlynext OR /ionext - Sets your next battle to be invite-only.
/ionext off - Sets your next battle to be publicly visible.

/inviteonly on is an alias for /modjoin %. Everything else here is deprecated and throws an error to the effect of.

"foo" is an outdated feature. Hidden battles now have password-protected URLs, making them fully secure against eavesdroppers.
You probably want to switch from /ionext to /hidenext, and from /ioo to /hideroom


Suggestion: Remove this help message and make /inviteonly throw the same error as its shortened form. I can't imagine people are getting ue out of a more restrictive /modjoin alias whose original purpose is deprecated. If people really like /inviteonly for whatever reason, it can be filed under the help message for /modjoin.

6. /invite

Suggestion: Clarify interaction with hidden and secret rooms.

Rich (BB code):
/invite [username] - Invites the player [username] to join the room you sent the command to.
/invite [comma-separated usernames] - Invites multiple users to join the room you sent the command to. Requires trusted
/invite [username], [roomname] - Invites the player [username] to join the room [roomname].
(in a PM) /invite [roomname] - Invites the player you're PMing to join the room [roomname].

An invite is necessary to join a room made secret with /secretroom. An invite or room name is necessary to join a room hidden with /hideroom.

7. /timer

Suggestion: Make the Help room FAQ on the timer into a system wide FAQ, /faq timer, and expand it to include VGC/BSS timer (even if briefly).
Suggestion 2: Clarify alternatives and timer mechanics in the /timer help message. Make the more popular option (tmk) forefront.
Rich (BB code):
/timer [on|off] - Starts or stops the game timer. Requires: ☆ % @ ~

You can also use /timer or /timer start to start it, and /timer stop to stop it.

Use /faq timer to learn about the timer's mechanics.

8. /forfeit

Suggestion: Clarify an alternative. Remove the vaguely menacing "if it supports that" qualifier, unless there is some use case I'm unaware of where players are not allowed to forfeit. (I'm not sure how that would function anyways, as they could just freeze progress by not inputting anything, and the timer would not be useful because it'd create analogous function to /forfeit.)
Rich (BB code):
/forfeit - Forfeits your currently active game.

You can also click the x at the top right of the battle tab.

OPTION COMMANDS:

1. /nick

Suggestion: Clarify how username changes work and what you can do with usernames.
Rich (BB code):
/nick [new username] - Change your username.

If your chosen username is registered or disabled, somebody else already chose it.

You can't change a username's color without being global staff or winning a special event. Experiment with different names to see different colors. Also, ladder ratings are tied to usernames.

If you are autoconfirmed, switching to a new name without logging out will keep your autoconfirmed status, so you can still chat in rooms. See /faq ac for more information.

Usernames must follow the username rules.

2. /avatar

Does /help commandname function? Yes, but it technically doesn't include the pure command.
Does /commandname with no parameters function? Mostly. It returns a slightly different interface.
Suggestion: Make /help avatar an alias for the superior /avatar interface. To preserve information, briefly note the !avatar function in the /avatar help interface.

Here is the current description for !avatar. It could be worded more organically in its new home.
Code:
!avatar [avatar name or number] - Show the specified trainer sprite and credits. Requires: + % @ # ~

3. /ignore

Suggestion: Clarify what ignore specifically does.

Rich (BB code):
/ignore [user] - Hide all messages and challenges from the user [user].
...

4. /status

No suggestion.

5-7. /away, /busy, and /back

Suggestion 1: Merge the help messages together for these similar commands.

Suggestion 2: Clarify what exactly they do.
Rich (BB code):
/away - Marks you as away. Your username will appear gray in the user list, and at the bottom of any rank you have. Being idle for thirty minutes will do the same.
/busy  - Marks you as busy. Similar to /away, but only using /back will revert it.
/donotdisturb - Marks you as busy. Also, it blocks private messages and challenges.

Other users will see your away, idle, or busy status when they click on your name.

/back - Returns you to normal from /away, /busy, or /donotdisturb. If you used /away, sending a message, or otherwise interacting with PS, will also return you to normal.

8. /timestamps

Does /commandname with no parameters function? It gets you there but throws an error.

Suggestion 1: Just make /timestamps an alias for /help timestamps, instead of throwing an error, since it does that anyway.

Suggestion 2: Use a syntax for chatroom pms that is consistent with elsewhere (options gear) and less ambiguous than lobby (I legitimately thought it meant the specific Lobby room for a second). Reorder the bottom parameter set for slight tidyness. Note an alternative means.

Rich (BB code):
 /timestamps [all|chatroom|pms], [minutes|seconds|off]
all - Change all timestamps preferences, chatroom - Change only chatroom preferences, pms - Change only PM preferences.
minutes - Show timestamps of the form [hh:mm], seconds - Show timestamps of the form [hh:mm:ss], off - Set timestamps off.

You can also use the Timestamps dropdowns in Options.

9. /highlight

Does /commandname with no parameters function? It gets you there but throws an error.

Suggestion 1: Just make /highlight an alias for /help highlight, instead of throwing an error, since it does that anyway.

Suggestion 2: Make a new command, /hl name, to add your name to your highlight list, for full symmetry between the Options gear settings and commands.
Suggestion 3: Make it more clear what highlight actually does. Note regex compatibility the shortened hl form.

Rich (BB code):
Set up highlights:
/highlight add [word 1], [word 2], [...] - Add the provided list of words to your highlight list. Regex is also accepted.

If another user's message contains a word on your list, and you are in that room, the message will glow if you are actively watching that room, and the room tab will glow if you are not.

/highlight name - Adds your username to your highlight list. You can also check this setting in Options.

...

For any highlight command, you can write hl instead of highlight.

11-12. /showjoins and /hidejoins

Suggestion 1: Make the feedback messages more clear. (If the feedback messages are odd because there is some third state I don't know of, /help showjoins does not explain this setting, so that should be added.)

Suggestion 2: Clarify what exactly the command does.
Old Feedback Messages:
Code:
/showjoins: Join/leave messages: ALWAYS ON
/hidejoins: Join/leave messages: AUTOMATIC
New Feedback Messages:
Code:
/showjoins: Join/leave messages: ON
/hidejoins: Join/leave messages: OFF

/help showjoins:
Rich (BB code):
/showjoins [room] - Receive a chat message whenever a user joins or leaves a room. Optionally for only specified room.
/hidejoins [room] - Hide users' join/leave messages. Optionally for only specified room.

13-14: /blockchallenges and /blockpms

Suggestion 1: Group these similar commands' help messages together.

Suggestion 2: Clarify the interactions that follow from these commands. Note alternate forms.

Rich (BB code):
/blockchallenges OR /bch - Blocks challenges so no one can challenge you. Unblock them with /unblockchallenges OR /unbch.
/blockpms - Blocks private messages except from staff. Unblock them with /unblockpms.
/blockpms [unlocked/ac/trusted/+/friends] - Blocks private messages except from staff and the specified group.

If you block challenges / pms, and a user tries to challenge / pm you, they are told you block the action. If it was a challenge, you receive a message that [user] tried to challenge you, unless you used /ignore. If it was a pm, you receive no message.

"unless you used /ignore: pending a recently reported bug.
 
Last edited:
One prompt you can enter (or button you can press, menu you can access, whatever) that, with enough intuitive navigation, will eventually get you to every command (excluding any you all don't want as public knowledge).
Command tabcomplete exists for this reason.
One consistent syntax that, when applied to every command, explains its function and any advanced uses.
Mostly already exists in /help, needs to be handled on a case by case basis for those deviating.
Some way that new users who care to look at and read stuff (I understand this is a minority) can reasonably figure out, on their own, how to access the above two ideas.
Stewing some ideas on this. Not a bad idea, but difficult to implement in a way that is actually helpful for what people are looking for. TBA.
 
(As we discussed)

Tabcomplete makes this a lot easier, both in the sense of helping users and helping my particular ends.

Mostly already exists in /help, needs to be handled on a case by case basis for those deviating.
This is my current goal. I'll come back to big picture organization stuff later.

Some workarounds for implementation difficulties, for when I get back to that, and pending what y'all are cooking:
1) Log everything on a Smogon thread just so it's publicly organized and available for people that can't read the GitHub code:
2) (New) Target /help specifically, do things like update what commands it shows, mention tab autocomplete, reorganize a bit, etc.
 
Prior post: Completed audit / help message updates for general, battle, and option commands from /help.
Here: Audit / help message update for informational and data commands from /help.

INFORMATIONAL/RESOURCE COMMANDS

1. /groups
Suggestion: Specify that driver and below is staff, which is the most common lens for newcomers. Remove the period after Room Prize Winner for consistency.

Rich (BB code):
Room ranks
...
% Driver - The above, and they can mute and warn. Drivers and below are staff
@ Moderator - The above, and they can room ban users
* Bot - An automated account that can mute, warn, and use HTML
# Room Owner - They are leaders of the room and can almost totally control it

Global ranks
...
% Global Driver - Like Voice, and they can lock users and check for alts. Drivers and below are staff
@ Global Moderator - The above, and they can globally ban users
* Global Bot - An automated account that can use HTML anywhere
~ Global Administrator - They can do anything, like change what this message says and promote users globally

2. /faq

Suggestion: Note other entry means for topics. Specify the no-parameters functionality. Given this addition, make the broadcasting explanation more concise for neatness.
Rich (BB code):
/faq - Provides a link with answers to common PS questions.
/faq [topic] - Shows to other users a link that answers the FAQ topic. List of FAQ topics: autoconfirmed OR ac, badges, customavatar OR ca, decay, ladder, lostpassword OR password, privacy, proxy, rng, staff, tiers, tournaments.

Replace / with ! to broadcast. Broadcasting requires: + % @ # ~

3-4. /rules, /intro

No suggestions.

6-7. /formathelp and /othermetas

/othermetas seems almost fully a more restricted version of /formathelp. For example, /formathelp works for both OU and AAA, but /othermetas only works for AAA. The output for AAA is identical. /othermetas with no parameter links the OM forum, but that is the only difference I see.

Suggestion 1: Merge the help page of /om into /formathelp's page.

Suggestion 2: Make /om [format] work for all the formats, like /tier [format] does.

Suggestion 3: Note aliases and broadcast functionality.

(Self-note: Make /formathelp rendered without the s in future command-finder)

Rich (BB code):
/formathelp OR /tier OR /othermetas OR /om [format] - Provides information on the given [format].

Replace / with ! to broadcast. Broadcasting requires: + % @ # ~

If no format is given, /formathelp and /tier provide information on how tiers work, while /om links the Other Metagames forum.

6. /analysis

Suggestion 1: If parameters contain a valid format but no valid generation, make the generation become the current generation. It already does this if you enter an invalid generation as the generation.

Similarly, if parameters contain a valid format and a valid generation in the improper order, use them without requiring the correct order.

Current:
/analysis gholdengo, ou -> SV Gholdengo analysis, brought to you by Smogon University
/analysis gholdengo, ou, sv -> SV Gholdengo analysis, brought to you by Smogon University

Suggested:
/analysis gholdengo, ou -> SV OU Gholdengo analysis, brought to you by Smogon University
/analysis gholdengo, ou, sv -> SV OU Gholdengo analysis, brought to you by Smogon University
I achieved the above result with /analysis gholdengo, fart (or sv), ou.

Suggestion 2: Explain various cases when users enter parameters that do not return functional results.

I will list them in decreasing order of the priority they should take when multiple cases occur at once.

2A: This explanation already exists for entering a Pokemon that does not exist in the generation. However, I suggest linking its current generation analysis to give people a leg up.

Code:
Zacian-Crowned did not exist in GS!

You can navigate between generations from the current analysis here.

SV Zacian analysis, brought to you by Smogon University

2B: A format does not exist for the generation.
Current:
/analysis zekrom, bw, ag ->
Rich (BB code):

Suggested:
/analysis zekrom, bw, ag ->
Code:
Anything Goes did not exist in BW!

You can see BW Zekrom analysis here.

BW Zekrom analysis, brought to you by Smogon University

2C: A Pokemon has no analyses at all for the generation.

Current:
/analysis magikarp, sv ->
Rich (BB code):

Suggested:
/analysis magikarp, sv ->
Rich (BB code):
Magikarp does not have an SV analysis.

You can see its stats and moves, or navigate to analyses from other generations, here.

SV Magikarp, brought to you by Smogon University

Note the omission of "Analysis" in the above SV Magikarp analysis link.

2D: A Pokemon + format analysis that does not exist in the generation.

Current:
/analysis tinkaton, sv, ag ->
Rich (BB code):

Suggested:
/analysis tinkaton, sv, ag ->
Rich (BB code):
Tinkaton does not have an Anything Goes analysis for SV.

You can see Tinkaton analyses from other tiers here.

SV Tinkaton analysis, brought to you by Smogon University

Suggestion 3: Note aliases.

Rich (BB code):
/analysis OR /smogdex [pokemon], [generation], [format] - Links to the Smogon University analysis for this Pokémon in the given generation.
!analysis OR /smogdex [pokemon], [generation], [format] - Shows everyone this link. Requires: + % @ # ~

The Pokémon can be an abbreviation. The generation can either be a number, like 5, or an abbreviation, like bw.

7. /punishments

I see /clearlines (or similar) used as a de facto warn, especially because some warns naturally necessitate clearlines (or similar) anyway, so I suggest including it in /punishments. If people philosophically disagree, then I won't implement this suggestion. This is a tech project, not a policy one.

Suggestion: Add /hidelines to the faq output.

Rich (BB code):
Room punishments:
clearlines [number] - Removes a user's last [number] messages from chat. Variations remove all their lines, or give other users an option to click and see the removed lines again.
warn - Displays a popup with the rules.
mute - Mutes a user (makes them unable to talk) for 7 minutes.

8. /calc

No suggestions. I might suggest a calc faq at some point, but that's later.

9. /git

Suggestion: Specify aliases, with the more common first.

Rich (BB code):
/git OR /opensource - Links to PS's source code repository.
!git OR !opensource - Show everyone that information. Requires: + % @ # ~

10. /cap

No suggestions.

11. /roomhelp

Suggestion 1: Spruce up the help command a bit.

Current:
Code:
'/roomhelp' is a help command.

Suggested:
Code:
/roomhelp explains how to use staff commands and create tournaments.

Replace / with ! to broadcast. Broadcasting requires: + % @ # ~

Suggestion 2: Add a command alias to the actual faq. Replace hidetext with clearlines, which is more useful to me and from what I see, other staff. Clear > hide because generally little value in users seeing the thing you intentionally made them not see, and Lines > Text since harsher punishment commands already cover most cases you'd need to clear ALL a user's messages.

Rich (BB code):
Room drivers (%) can use:
- /warn OR /k username: warn a user and show the Pokémon Showdown rules
- /mute OR /m username: 7 minute mute
- /hourmute OR /hm username: 60 minute mute
- /unmute OR /um username: unmute
- /clearlines username, number: clear user's [number] most recent messages.
- /announce OR /wall message: make an announcement
...

12. /roomfaq

Suggestion: Specify it applies to the room you sent the command to.

Rich (BB code):
/roomfaq - Shows the list of all available FAQ topics for the room you sent the command to.
...

DATA COMMANDS

1. /data
Suggestion 1: Merge its help page with /dt, which is very similar. Make the shared help page more concise. Harmonize the two commands (accept /data1 like /dt1) and their help pages to make them full variants of each other.

Suggestion 2: Retire or rework the format parameter for /dt and /data.
/dt and /data currently take generation or format as distinct alternative parameters, but format appears to be mostly non-functional. It's another, less convenient way to input the generation, e.g. /dt scyther, gen5lc will give you the same results as /dt scyther, gen5. Scyther is illegal in LC, so some kind of illegality indicator could be useful, but there is not one. However, I can't think of much to do with the format parameter besides noting legality, so I first suggest just scrapping this alternative parameter.

Suggestion 3: Clarify what exactly e.g. /dt1 does.

Note that the below help text includes the new functionalities above.
Rich (BB code):
/data [pokemon/item/move/ability/nature] - Get details on this pokemon/item/move/ability/nature.

/data [pokemon/item/move/ability/nature], gen[number] - Get details on this pokemon/item/move/ability/nature during the time of generation [number]. You can also add gen before the number, or use /data[number].

For example, /data1 Mewtwo won't show abilities or SpA / SpD stats, since these did not exist in Generation 1.

You can also use /data[number].
Using dt over data gets additional details, like National Pokédex number. The BP next to weight is the power of moves like Low Kick against this Pokémon.

Replace / with ! to broadcast. Broadcasting requires: + % @ # ~

2. /dexsearch
Suggestion: Note an alias. Slightly clarify some parameters and reorder some of the help text for clarity.

Suggestion 2: Make a separate help command for advanced dexsearch help, and make the current one more organized and accessible. There's already an overwhelming amount / presentation of text here and there should be more text.

Current:
Code:
/dexsearch [parameter], [parameter], [parameter], ...: searches for Pokémon that fulfill the selected criteria
Search categories are: type, tier, color, moves, ability, gen, resists, weak, recovery, zrecovery, priority, stat, weight, height, egg group, pivot.
Valid colors are: green, red, blue, white, brown, yellow, purple, pink, gray and black.
Valid tiers are: Uber/OU/UUBL/UU/RUBL/RU/NUBL/NU/PUBL/PU/ZUBL/ZU/NFE/LC/CAP/CAP NFE/CAP LC.
Valid doubles tiers are: DUber/DOU/DBL/DUU/DNU.
Types can be searched for by either having the type precede type or just using the type itself as a parameter; e.g., both fire type and fire show all Fire types; however, using psychic as a parameter will show all Pokémon that learn the move Psychic and not Psychic types.
resists followed by a type or move will show Pokémon that resist that typing or move (e.g. resists normal).
weak followed by a type or move will show Pokémon that are weak to that typing or move (e.g. weak fire).
asc or desc following a stat will show the Pokémon in ascending or descending order of that stat respectively (e.g. speed asc). You can use tier and dtier to sort by singles and doubles tiers, respectively.
Inequality ranges use the characters >= for ≥ and <= for ≤; e.g., hp <= 95searches all Pokémon with HP less than or equal to 95; tier <= uu searches all Pokémon in singles tiers lower than UU.
Parameters can be excluded through the use of !; e.g., !water type excludes all Water types.
The parameter mega can be added to search for Mega Evolutions only, the parameter gmax can be added to search for Pokémon capable of Gigantamaxing only, and the parameter Fully Evolved (or FE) can be added to search for fully-evolved Pokémon.
Alola, Galar, Therian, Totem, or Primal can be used as parameters to search for those formes.
Parameters separated with | will be searched as alternatives for each other; e.g., trick | switcheroo searches for all Pokémon that learn either Trick or Switcheroo.
You can search for info in a specific generation by appending the generation to ds or by using the maxgen keyword; e.g. /ds1 normal or /ds normal, maxgen1 searches for all Pokémon that were Normal type in Generation I.
You can search for info in a specific mod by using mod=[mod name]; e.g. /nds mod=ssb, protean. All valid mod names are: base, gen9, ccapm2024, fullpotential, gen1, gen1jpn, gen1rbycap, gen1stadium, gen2, gen2doubles, gen2stadium2, gen3, gen3colosseum, gen3rs, gen4, gen4pt, gen5, gen5bw1, gen6, gen6megasrevisited, gen6xy, gen7, gen7apex, gen7letsgo, gen7pokebilities, gen7sm, gen8, gen8bdsp, gen8dlc1, gen8linked, gen9dlc1, gen9fe, gen9predlc, gen9ssb, gennext, littlecolosseum, mixandmega, moderngen2, monkeyspaw, partnersincrime, passiveaggressive, pokebilities, pokemoves, randomroulette, sharedpower, sharingiscaring, thecardgame, trademarked, vaporemons
You can search for info in a specific rule defined metagame by using rule=[rule name]; e.g. /nds rule=alphabetcupmovelegality, v-create. All supported rule names are: stabmonsmovelegality, alphabetcupmovelegality, 350cupmod, flippedmod, scalemonsmod, badnboostedmod, reevolutionmod, hoennpokedex, sinnohpokedex, oldunovapokedex, newunovapokedex, kalospokedex, oldalolapokedex, newalolapokedex, galarpokedex, isleofarmorpokedex, crowntundrapokedex, galarexpansionpokedex, paldeapokedex, kitakamipokedex, blueberrypokedex
By default, /dexsearch will search only Pokémon obtainable in the current generation. Add the parameter unreleased to include unreleased Pokémon. Add the parameter natdex (or use the command /nds) to include all past Pokémon.
Searching for a Pokémon with both egg group and type parameters can be differentiated by adding the suffix group onto the egg group parameter; e.g., seaching for grass, grass group will show all Grass types in the Grass egg group.
The parameter monotype will only show Pokémon that are single-typed.
The order of the parameters does not matter.

Suggested:

I've underlined meaningfully new information and categorization. There's lots of reordering too.

/help dexsearch:
Rich (BB code):
/dexsearch OR /ds [parameter], [parameter], [parameter], ...: searches for Pokémon that fulfill the selected criteria
Main parameters: type, moves, ability, tier, gen, resists, weak, and numeric range for stats

You can use any number of parameters in any order. The main and minor parameters are explained below.

Basic: type, moves, ability, tier, gen[number]
For a type, you can add type after, like fire type, or just say it, like fire. The exception is psychic, where you have to add type, or you will search for the move Psychic.

Effectiveness: resists [type OR move], weak [type OR move]
For example, resists normal and resists freezedry both work.

Comparative: stat, weight, height
Use comparative with the >, >=, =, <, <= syntax, e.g. /ds hp >= 95.

Forme: alola, galar, therian, totem, mega, gmax, primal

Move-type: recovery, zrecovery, priority, pivot
These search for Pokémon with a move of the specified type.

Specialty: mod=[mod], rule=[rule]
You can search for info in a specific mod, like mixandmega or gen1stadium, or a specific rule-defined metagame, like stabmonsmovelegality, flippedmod, and oldalolapokedex.

Miscellaneous: monotype, fe, nfe, color, egg group, unreleased
Monotype shows Pokémon with only one type. FE shows fully evolved Pokémon, and NFE shows not fully evolved Pokémon. NFE includes LC-banned unevolved Pokeéon like Aipom.

Valid Pokédex colors are: green, red, blue, white, brown, yellow, purple, pink, gray and black. If an egg group shares a type's name, add group after the egg group's name.

Dexsearch syntax: maxgen, natdex, !, |
/ds[number] or /ds maxgen[number] searches during the time of generation [number]. For example, /ds1 normal type will show all Normal-types in Generation 1 metagames, while /ds normaltype, gen1 will show all Normal-types in current generation metagames that originated from Generation 1.

/nds or /ds natdex includes all past Pokémon. Otherwise, /ds only searches Pokémon obtainable in the current generation.

![parameter] excludes it, e.g. !water type excludes all Water types. Parameters separated with | will be searched as alternatives to each other, e.g. trick | switcheroo searches for all Pokémon that learn either Trick or Switcheroo.

For more information on what specific parameters accept as inputs, and how they work, use /dsadvanced.

/dsadvanced OR /dexsearchadvanced:

Code:
Valid tiers are: Uber/OU/UUBL/UU/RUBL/RU/NUBL/NU/PUBL/PU/ZUBL/ZU/NFE/LC/CAP/CAP NFE/CAP LC.
Valid doubles tiers are: DUber/DOU/DBL/DUU/DNU.

To see what moves qualify for the recovery, zrecovery, priority, and pivot paramaters, use /ms, for example /ms pivot.

Comparative parameters like stats must be compared to numbers, not each other. For example, using /ds atk > spa to find Pokémon with more Attack than Special Attack will not work.

You can search for info in a specific mod by using mod=[mod name]; e.g. /nds mod=ssb, protean. All valid mod names are: base, gen9, ccapm2024, fullpotential, gen1, gen1jpn, gen1rbycap, gen1stadium, gen2, gen2doubles, gen2stadium2, gen3, gen3colosseum, gen3rs, gen4, gen4pt, gen5, gen5bw1, gen6, gen6megasrevisited, gen6xy, gen7, gen7apex, gen7letsgo, gen7pokebilities, gen7sm, gen8, gen8bdsp, gen8dlc1, gen8linked, gen9dlc1, gen9fe, gen9predlc, gen9ssb, gennext, littlecolosseum, mixandmega, moderngen2, monkeyspaw, partnersincrime, passiveaggressive, pokebilities, pokemoves, randomroulette, sharedpower, sharingiscaring, thecardgame, trademarked, vaporemons

You can search for info in a specific rule defined metagame by using rule=[rule name]; e.g. /nds rule=alphabetcupmovelegality, v-create. All supported rule names are: stabmonsmovelegality, alphabetcupmovelegality, 350cupmod, flippedmod, scalemonsmod, badnboostedmod, reevolutionmod, hoennpokedex, sinnohpokedex, oldunovapokedex, newunovapokedex, kalospokedex, oldalolapokedex, newalolapokedex, galarpokedex, isleofarmorpokedex, crowntundrapokedex, galarexpansionpokedex, paldeapokedex, kitakamipokedex, blueberrypokedex
By default, /dexsearch will search only Pokémon obtainable in the current generation. Add the parameter unreleased to include unreleased Pokémon. Add the parameter natdex (or use the command /nds) to include all past Pokémon.

3. /ms
Suggestion: Reorders and clarifications, similar to /ds but less intensive. Like before, underlines are significant content changes and not reordering.

Suggestion 2: Remove mention of the type boosted parameter and instruct / mimic flags, which don't seem to actually exist (I tried various syntaxes). I don't know what the former would do anyway, and the latter seem redundant with failinstruct and failmimic.

Suggestion 3: Give Snatch the mustpressure tag, since the Pokemon Showdown dex entry for Pressure suggests it should have it. Give Baton Pass the pivot tag.

Suggestion 4: Make /flags like /dsadvanced for a fuller explanation of what flags mean.

Current:
Code:
/movesearch [parameter], [parameter], [parameter], ...: searches for moves that fulfill the selected criteria.

Search categories are: type, category, gen, contest condition, flag, status inflicted, type boosted, Pokémon targeted, and numeric range for base power, pp, priority, and accuracy.

Parameter Options- Types can be followed by type for clarity; e.g. dragon type.
- Stat boosts must be preceded with boosts , and stat-lowering moves with lowers ; e.g., boosts attack searches for moves that boost the Attack stat of either Pokémon.
- Z-stat boosts must be preceded with zboosts ; e.g. zboosts accuracy searches for all Status moves with Z-Effects that boost the user's accuracy. Moves that have a Z-Effect of fully restoring the user's health can be searched for with zrecovery.
- zmove, max, or gmax as parameters will search for Z-Moves, Max Moves, and G-Max Moves respectively.
- Move targets must be preceded with targets ; e.g. targets usersearches for moves that target the user.
- Valid move targets are: one ally, user or ally, one adjacent opponent, all Pokemon, all adjacent Pokemon, all adjacent opponents, user and allies, user's side, user's team, any Pokemon, opponent's side, one adjacent Pokemon, random adjacent Pokemon, scripted, and user.
- Valid flags are: allyanim, bypasssub (bypasses Substitute), bite, bullet, cantusetwice, charge, contact, dance, defrost, distance (can target any Pokemon in Triples), failcopycat, failencore, failinstruct, failmefirst, failmimic, futuremove, gravity, heal, highcrit, instruct, metronome, mimic, mirror (reflected by Mirror Move), mustpressure, multihit, noassist, nonsky, noparentalbond, nosketch, nosleeptalk, ohko, pivot, pledgecombo, powder, priority, protect, pulse, punch, recharge, recovery, reflectable, secondary, slicing, snatch, sound, and wind.
- protection as a parameter will search protection moves like Protect, Detect, etc.
- A search that includes !protect will show all moves that bypass protection.

Parameter Filters- Inequality ranges use the characters &gt; and &lt;.
- Parameters can be excluded through the use of !; e.g. !water typeexcludes all Water-type moves.
- asc or desc following a move property will arrange the names in ascending or descending order of that property, respectively; e.g., basepower asc will arrange moves in ascending order of their base powers.
- Parameters separated with | will be searched as alternatives for each other; e.g. fire | water searches for all moves that are either Fire type or Water type.
- If a Pokémon is included as a parameter, only moves from its movepool will be included in the search.
- You can search for info in a specific generation by appending the generation to ms; e.g. /ms1 normal searches for all moves that were Normal type in Generation I.
- You can search for info in a specific mod by using mod=[mod name]; e.g. /nms mod=ssb, dark, bp=100. All valid mod names are: base, gen9, ccapm2024, fullpotential, gen1, gen1jpn, gen1rbycap, gen1stadium, gen2, gen2doubles, gen2stadium2, gen3, gen3colosseum, gen3rs, gen4, gen4pt, gen5, gen5bw1, gen6, gen6megasrevisited, gen6xy, gen7, gen7apex, gen7letsgo, gen7pokebilities, gen7sm, gen8, gen8bdsp, gen8dlc1, gen8linked, gen9dlc1, gen9fe, gen9predlc, gen9ssb, gennext, littlecolosseum, mixandmega, moderngen2, monkeyspaw, partnersincrime, passiveaggressive, pokebilities, pokemoves, randomroulette, sharedpower, sharingiscaring, thecardgame, trademarked, vaporemons
- /ms will search all non-dexited moves (clickable in that game); you can include dexited moves by using /nms or by adding natdex as a parameter.
- The order of the parameters does not matter.

Suggested /ms:
Rich (BB code):
/movesearch [parameter], [parameter], [parameter], ...: searches for moves that fulfill the selected criteria.

Main search categories are: type, category, gen[number], Pokémon, boosts / lowers [stat], target, flag, and numeric range for base power, pp, priority, and accuracy

You can use any number of parameters in any order. Main and minor parameters are explained below.

- Types can be followed by type for clarity; e.g. dragon type.
- If a Pokémon is included as a parameter, only moves from its movepool will be included in the search.
- For stat boosts / lowering, e.g. boosts attack searches for moves that boost the Attack stat of either Pokémon.
- Z-stat boosts must be preceded with zboosts ; e.g. zboosts accuracy searches for all Status moves with Z-Effects that boost the user's accuracy. For moves whose Z-Effect fully restores the user's health, use the zrecovery parameter.
- zmove, max, or gmax as parameters will search for Z-Moves, Max Moves, and G-Max Moves respectively.
- Move targets must be preceded with targets ; e.g. targets user searches for moves that target the user.
- Valid move targets are: one ally, user or ally, one adjacent opponent, all Pokemon, all adjacent Pokemon, all adjacent opponents, user and allies, user's side, user's team, any Pokemon, opponent's side, one adjacent Pokemon, random adjacent Pokemon, scripted, and user.
- Valid flags are: allyanim, bypasssub (bypasses Substitute), bite, bullet, cantusetwice, charge, contact, dance, defrost, distance (can target any Pokemon in Triples), failcopycat, failencore, failinstruct, failmefirst, failmimic, futuremove, gravity, heal, highcrit,, metronome, mirror, mustpressure, multihit, noassist, nonsky, noparentalbond, nosketch, nosleeptalk, ohko, pivot, pledgecombo, powder, priority, protect (blocked by protection moves), protection (protect the user), pulse, punch, recharge, recovery, reflectable, secondary, slicing, snatch, sound, and wind.
- If a flag was not explained here, use /flags to learn more.
- A search that includes !protect will show all moves that bypass protection.
- Contest conditions like cool and brave will search for moves of that condition.

Parameter Filters
- Numeric ranges use the characters >, >=, =, <, and <=.
- asc or desc following a move property will arrange the names in ascending or descending order of that property, respectively; e.g., basepower asc will arrange moves in ascending order of their base powers.
- Parameters can be excluded through the use of !; e.g. !water typeexcludes all Water-type moves.
- Parameters separated with | will be searched as alternatives for each other; e.g. fire | water searches for all moves that are either Fire type or Water type.
- /ms will search all non-dexited moves (clickable in that game); you can include dexited moves by using /nms or by adding natdex as a parameter
- You can search for info in a specific generation by appending the generation to ms or using maxgen[number]; e.g. /ms1 normal searches for all moves that were Normal type in Generation I.
- You can search for info in a specific mod by using mod=[mod name]; e.g. /nms mod=ssb, dark, bp=100. All valid mod names are: base, gen9, ccapm2024, fullpotential, gen1, gen1jpn, gen1rbycap, gen1stadium, gen2, gen2doubles, gen2stadium2, gen3, gen3colosseum, gen3rs, gen4, gen4pt, gen5, gen5bw1, gen6, gen6megasrevisited, gen6xy, gen7, gen7apex, gen7letsgo, gen7pokebilities, gen7sm, gen8, gen8bdsp, gen8dlc1, gen8linked, gen9dlc1, gen9fe, gen9predlc, gen9ssb, gennext, littlecolosseum, mixandmega, moderngen2, monkeyspaw, partnersincrime, passiveaggressive, pokebilities, pokemoves, randomroulette, sharedpower, sharingiscaring, thecardgame, trademarked, vaporemons

/flags: (largely sourced from here)
Code:
allyanim: Plays a move animation when used on an ally.
bypasssub: Ignores a target's Substitute.
bite: Activates Strong Jaw.
bullet: Blocked by Bulletproof.
cantusetwice: Cannot be used on consecutive turns.
charge: Has a charge turn before use, except if using Power Herb.
contact: Activate many abilities and items like Tough Claws, Flame Body and Rocky Helmet.
dance: Activates Dancer.
defrost: Thaws the user if executed successfully while they are frozen.
failcopycat/encore/instruct/mefirst/mimic; no assist/sketch/sleeptalk: Cannot be used or otherwise interacted with by the respective move.
futuremove: The attack lands multiple turns later, like Future Sight.
gravity: Suppressed by gravity.
heal / recovery: Heals the user. The parameters are identical and show more moves than /ds recovery.
highcrit: Has a higher critical hit ratio.
metronome: Metronome may select it.
mirror: Reflected by Mirror Move.
mustpressure: Always loses an extra PP when a Pokémon on the opponent's side has Pressure.
multihit: Hits multiple times. Activates Skill Link, and may activate other mechanics like Loaded Dice.
noparentalbond: Does not active Parental Bond.
ohko: Always OHKOs the target if it lands.
pivot: Switches the user out if successfully executed.
pledgecombo: Creates a special effect when used alongside an ally's other pledge attack. Does not activate Gems or redirection abilities.
powder: Blocked by Grass-types, Overcoat, and Safety Goggles.
priority: Has priority above 0. You can search for specific priority ranges with > >= = < <= syntax, e.g. /ms priority=2.
protect: Blocked by protection moves like Protect. Blocked by King's Shield if not a status move.
protection: Protects the user. Conditional protection like Wide Guard is not included.
pulse: Activates Mega Launcher.
punch: Activates Iron Fist and Punching Glove.
recharge: After using this move, the user must spend a turn without using a move or switching.
reflectable: Reflected by Magic Coat and Magic Bounce.
secondary: Have a secondary effect. Activates Sheer Force.
slicing: Activates Sharpness.
snatch: Can be stolen by Snatch.
sound: Blocked by Soundproof. All sound moves also bypass the opponent's Substitute.
wind: Activates Wind Power and Wind Rider.

You can see a move's most important flags by doing /dt [move].

4. /is
Suggestion 1: Clarify exactly how is searches. Clarify fling and natural gift syntax.

Suggestion 2: Support /is fling support (or somesuch) for the Mental Herb and White Herb. I looked through the code and couldn't find any support for fling and the herbs, not just 'this specific syntax wasn't accepted'.

(I went in detail on fling parameters because they're tricky. fling paralysis fails (fling paralyze), fling poison doesn't show toxic orb (fling badly poison), etc.

Rich (BB code):
/itemsearch [item description]: finds items whose descriptions match the given keywords.
This command accepts natural language. (tip: fewer words tend to work better)
The gen keyword can be used to search for items introduced in a given generation; e.g., /is gen4 searches for items introduced in Generation 4.
To search for items within a generation, append the generation to /is or use the maxgen keyword; e.g., /is4 Water-type or /is maxgen4 Water-type searches for items whose Generation 4 description includes "Water-type".
Searches with fling in them will find items with the specified Fling behavior. Add a number base power, e.g. /is fling 80, or a behavior, e.g. /is fling paralyze. Behaviors are badly poison, burn, flinch, paralyze, poison, and support.
Searches with natural gift in them will find items with the specified Natural Gift behavior. Add a type, a number base power, or both, e.g. /is natural gift fire 80.

5. /learn
A common confusing interaction is using /learn with Dexited Pokemon.
Screen Shot 2025-07-15 at 6.55.52 PM.png

This message is technically correct missing the point. Accelgor is illegal in Gen 9, so it won't be learning any moves in Gen 9 I guess, but this message seems like the move specifically is the problem.

Suggestion 1: When a Pokemon is Dexited in a generation, instead make /learn say the Pokemon is illegal, and specify learn behavior in the most recent generation in which it was legal. This swipes me all the time.

Suggestion 1B: When a Pokemon is illegal in LC, make /learn say the Pokemon is illegal if it is illegal.

Also, /learnall appears to be nonfunctional, giving the same output as /learn. These two outputs use /learn and /learnall. (Snorlax is an example Pokemon not mentioned here.)

Screen Shot 2025-07-15 at 7.00.35 PM.png


Suggestion 2: Remove mention of /learnall or bugfix the command. (I remove it in my suggested help text.)

Suggestion 3: Hint at move compatibility situations when combining multiple moves. Reorder a parameter alias in a more organized way.

Rich (BB code):
/learn [ruleset], [pokemon], [move, move, ...] - Displays how the Pokémon can learn the given moves, if it can at all. For multiple moves, checks whether the Pokémon can have all of them at the same time.
!learn [ruleset], [pokemon], [move, move, ...] - Show everyone that information. Requires: + % @ # ~
Specifying a ruleset is entirely optional. The ruleset can be a format, a generation (e.g.: gen3) or "min source gen [number]".
A value of 'min source gen [number]' indicates that trading (or Pokémon Bank) from generations before [number] is not allowed.
A generation number can also be appended to /learn (e.g.: /learn4) to indicate which generation is used.
/learnlc displays how the Pokémon can learn the given moves at level 5, if it can at all.[/hide]

6. /statcalc
Suggestion: Clarify parameter and behavior defaults. Make some explanations simpler and more readable. Specify some parameter aliases.

Rich (BB code):
/statcalc [level] [base stat value] [IVs] [EVs] [nature] [modifier] - Calculates what the actual stat of a Pokémon is with the given parameters. Only base stat value is required. The other parameters default to level 100, maximum IVs and EVs, a neutral nature, and no modifier.

For example, to see the speed of a level 100, base 100 speed Pokémon with maximum IVs and EVs, a boosting nature, and a Choice Scarf, use /statcalc 100 positive +1. Here, Level, IVs, and EVs already default to the desired values.

Inputting 'hp' as an argument makes it use the formula for HP.

Instead of the number of a base stat, you can use a Pokémon + stat combination. /statcalc Mew speed will insert 100 for base stat value. For IVs and EVs, use [number]IV/EV, or uninvested for 0 EVs. Accepted natures are positive, neutral, and negative. Alternatively, append + or - to the EV amount, which removes the need to say ev (e.g. 252+). Modifiers range from +6 to -6. Modifier also accepts Scarf, Speed, or Band, which each insert +1 for the modifier.

Alternatively, provide a final raw stat to see what base stats and modifiers are needed to reach it, instead of providing base stats and modifiers to calculate a final raw stat. To do this, use the [number]real parameter instead of the base stat value. For example, '/statcalc 502real 252+ scarf' calculates the minimum base speed for a positive natured, fully invested Choice Scarf user to match a raw Speed stat of 502. Other parameters work the same as normal and have the same defaults. If there is no way to exactly match your value, /statcalc will find a combination with a minimally higher value.

!statcalc [level] [base stat] [IVs] [nature] [EVs] [modifier] (only base stat is required) - Shows this information to everyone.

7. /effectiveness
Does /commandname with no parameters function? No, but it might as well.

Suggestion 2: Clarify an alias and alternative parameter syntax. Note some similar commands.

Rich (BB code):
/effectiveness OR /type [attack OR type], [defender OR type] - Provides the effectiveness of a move or type on a Pokémon or type.
!effectiveness [attack], [defender] - Shows everyone the effectiveness of a move or type on another type or a Pokémon

For a fuller picture of an attack or type's coverage, use /coverage. For a fuller picture of a Pokémon or type's defensive properties, use /weakness.

8. /weakness
Suggestion: Make the three-type functionality explicit and use this to clarify the Pokemon + type functionality. Make the broadcasting description more concise. Note a similar command.

Rich (BB code):
 /weakness [pokemon] - Provides a Pokémon's resistances, weaknesses, and immunities, ignoring abilities.
/weakness [type 1], [type 2], [type3] - Provides a type or type combination's resistances, weaknesses, and immunities, ignoring abilities.

You can also search a Pokémon alongside a type(s), which will combine the Pokémon's type(s) and the other type(s). The maximum total number of types is 3.

Replace / with ! to broadcast. Broadcasting requires: + % @ # ~

To calculate one type or move's effectiveness on one Pokémon or type, you can use /effectiveness.

9. /coverage
Suggestion: Clarify alternate input. Explain 'best effectiveness matchup against all types' more thoroughly. Clarify the 'all' parameter.

Rich (BB code):
/coverage [move OR type 1], [move OR type 2] ... - Provides the best effectiveness match-up against all defending types for given moves or attacking types. (added missing period)

The defending types are singular types. E.g. /coverage fire, fighting shows no resistances, but a dual Dragon / Flying type defender would resist them. To see coverage against all type combinations in a table, add the parameter 'all' or 'table'.

!coverage [move 1], [move 2] ... - Shows this information to everyone.

To calculate one type or move's effectiveness on one Pokémon or type, you can use /effectiveness.

10-11. /randommove, /randompokemon
Suggestion 1: Merge the help pages for these similar commands (and randability) together.

Suggestion 2: Make /randability 1 output similar to /dt, to provide a bit more information and homogenize it with /randommove or /randompokemon.

Suggestion 3: Note aliases and output formatting. Note broadcast functionality. Correct /randability suggesting to see /ds for help instead of /as. Change a small grammar inconsistency in /as. Note one especially helpful parameter.

Rich (BB code):
/randompokemon OR /randpoke - Generates random Pokémon based on given search conditions.

/randommove OR /randmove - Generates random Pokémon Moves based on given search conditions.

/randomability OR /randability - Generates random Pokémon abilities based on given search conditions.

They use the same parameters as /dexsearch, /movesearch, and /abilitysearch, respectively. See /help ds, /help ms, and /help as. For example, the natdex parameter allows you to generate Pokemon and moves exclusive to past generations.

Adding a number as a parameter returns that many random items, e.g., '/randmove 6' returns 6 random Pokémon Moves. If you return one random item, the output is equivalent to /dt, but if you return multiple, it is a list with the names of the items.

Replace / with ! to broadcast. Broadcasting requires: + % @ # ~
 
Last edited:
Prior posts: Completed audit / help message updates for general, battle, option, informational, and data commands from /help. Outlined suggestion and philosophy.
Here: Audit / help message update for driver, moderator, and admin commands from /help.

DRIVER COMMANDS
1. /warn
Suggestion: Make /punishmentsadvanced for explanations that apply to most moderation commands but would be cumbersome to add to each command's explanation specifically. Note it in /warn.

Suggestion 2: Make explicit the reason is optional. Add a comma.

/punadv OR /punishmentsadvanced
Code:
Most moderation actions and reasons are logged in both public chat and the modlog. Forcerenames and namelocks do not show in public chat. Private reasons marked with spoiler tags do not show in public chat. Permabans and permalocks do not show in either, but when seeing the user's page by clicking their name, they show as (Banned indefinitely).

For more information on how to find past moderation actions in the modlog, use /help modlog.

If a user is already subject to /mute, /hourmute, /ban, /weekban, or /blacklist, that command or a less severe command (including /warn) will not work. E.g. if a user under /hourmute has 10 minutes remaining until their mute is lifted, /hourmute will not punish them again. However, a more severe command will replace a less severe command if they are the same type, or stack onto it if they are different types. For example, /m + /hm is equivalent to /hm, but /m + /rb enacts both punishments separately, and each punishment must be reversed separately.


/warn:
Rich (BB code):
/warn OR /k [username], [reason] - Warns a user,  showing them the site rules and optional [reason] in an overlay.
/warn OR /k [username], [reason] spoiler: [private reason] - Warns a user, marking [private reason] only in the modlog.
Requires: % @ # ~

For more information on how moderation actions work, see /punishmentsadvanced.

2-4. /mute, /hourmute, and /unmute
Suggestion 1: Merge the help pages for these similar commands.

Suggestion 2: Clarify the reason is optional. Note /punishmentsadvanced
Rich (BB code):
/mute OR /m [username], [reason] - Mutes a user with optional reason for 7 minutes. Requires: % @ # ~
/hourmute OR /hm [username], [reason] - Mutes a user with reason for an hour. Requires: % @ # ~
/unmute OR /um [username], [reason] - Unmutes a user with reason. Requires: % @ # ~

For more information on how moderation actions work, see /punishmentsadvanced.

oddly not on /help but anyway. /ban and /weekban
Suggestion: Note time length and aliases. Clarify the ban message and that the reason is optional. Note /punishmentsadvanced.

Rich (BB code):
/ban OR /b OR /roomban OR /rb [username], [reason] - Bans the user from the room you are in for two days, with optional reason. Tells the user the ban length, the staff who banned them, and the option to appeal by messaging them. Requires: @ # ~
/weekban OR /wb [username], [reason] - Bans the user from the room you are in for a week. Requires: @ # ~

5. /alts
Suggestion 0: As before, turn /whois into an alias for /alts. Change the help text to match.

Suggestion 1: Make /alts show your active punishments, regardless of rank. You may not want the time remaining to show, but you can show the punishment without showing the time remaining. I tested this in a group chat and the functionality was absent - maybe it's different in public rooms?

Suggestion 2: Explain in more detail what you can see. Make the [username] version a bit more concise and clear.
Rich (BB code):
/alts OR /whois - Get details on yourself: alternate accounts, group, autoconfirmed and trusted status, IP address, active punishments, and rooms and active battles.
/alts [username] - Get details on a username. Alternate accounts and punishments require % @ ~, IP address requires global @ ~, hidden rooms require global % @ ~, and secret rooms require global ~.

6. /forcerename
Suggestion 1: Merge the help page of /namelock, a similar command.

Suggestion 2: Specify the reason is optional. Specify it is global staff only. Note the part where it forfeits your battles. Clarify the action and length of namelock.

Rich (BB code):
/forcerename OR /fr [username], [reason] - Forcibly change a user's name and shows them the optional [reason]. If they are in battles, forfeits them. Requires: global % @ ~
/allowname [username] - Unmarks a forcerenamed username, stopping staff from being notified when it is used. Requires global % @ ~
/namelock OR /nl [user], [reason] - Name locks a [user], forcing them onto a Guest username for two days, and shows the [reason]. If they are in battles, forfeits them. Requires: global % @ ~

7. /modlog
Suggestion: Clarify default behavior and requirements. Slightly clarify notes parameter.
Rich (BB code):
/modlog [comma-separated list of parameters]: searches the moderator log, defaulting to the current room and all actions unless specified otherwise. Requires % @ ~.
You can replace the = in a parameter with a != to exclude entries that match that parameter.
Parameters

...
  • note=[text] - searches the contents of modnotes/reasons
...

8. /modnote
Suggestion: Standardize displayed syntax for assigning a specific user.
Rich (BB code):
/modnote <note> - Adds a moderator note that can be read through modlog. Requires: % @ # ~
/modnote [<user>] <note> - Adds a moderator note to a user's modlog that can be read through modlog. Requires: % @ # ~

9. /modchat
Suggestion: Clarify what command actually does. Note default behavior. Note additional permission details, and denote the player group consistently. Reorder player in the list to reflect global staff being able to talk in /modchat player. Add ending period.

Rich (BB code):
/modchat - Tells you the minimum group you must have to chat in the room, if there is one. 
/modchat [off/autoconfirmed/trusted/+/player/%/@/*/#/~] - Limits chat to users of the assigned group or higher. Requires: player for off/autoconfirmed/trusted/+/player options, % for these options and *, and * @ # ~ for all the options.

10-11. /lock, /weeklock
 
Last edited:
Back
Top