Programming TIBot

The Immortal

They Don't Want None
is a member of the Site Staffis a Battle Server Administratoris a Smogon Social Media Contributoris a Community Leaderis a Programmeris a Live Chat Contributor Alumnusis a Tiering Contributor Alumnus
Other Metas Leader
#1
<Molk> because tibot is legitimately the best bot

Hello Smogon.

TIBot is an IRC bot that I started developing about 10 months ago. It contains numerous features that I have implemented over the months to help with teambuilding, battling, or just to learn about the various elements that make up Pokemon. The source of informational commands, such as !data and !learn, is Pokemon Showdown.

The purpose of this thread is to show you how to utilize TIBot to its maximum potential, because many of you that frequent IRC are unaware about all its features. In addition, you can also request new features to be added or changes to current ones.

The list of TIBot commands can be viewed by using !tibot. This will bring up a list of Pokemon related commands and another of general commands. To view the syntax of a specific command, use the command without any parameters. In this thread, I will focus on the Pokemon commands.

!data
Displays information about Pokemon, Items, Abilities, Moves, and Natures
Syntax: !data followed by one of the above mentioned elements
Example: !data technician

!egg
Displays the gender ratios and egg groups of Pokemon
Syntax: !egg [pokemon]
Example: !egg lucario

!eggsearch
Searches for Pokemon with a particular egg group and move(s)
Syntax: !eggsearch [egg group], [move1], [move2], ...
Example: !eggsearch field, spikes

!event / !events
Displays all the information about any particular event Pokemon
Syntax: !event [pokemon] [number] with the first event being 0 (to correlate with the output from !learn and event only moves)
Example: !event raikou 1
Using just !event [pokemon] without any number will tell you how many events the Pokemon has

!learn
Checks if a Pokemon can learn a specific Move or a set of Moves, and mentions the limitations if there are any
Syntax: !learn [pokemon], [move1], [move2], ...
Example: !learn ferrothorn, leech seed, spikes
To check for legality in LC, use !learn5 as the command
For breeding, parents are limited to 10 to prevent spam; message TIBot to view them all

!psreg
Displays the date a certain nick was registered on Pokemon Showdown
Syntax: !psreg [nick]
Example: !psreg chaos

!randbat / !randbats
Displays the list of moves a Pokemon can possibly have in Pokemon Showdown's Random Battle
Syntax: !randbat [pokemon]
Example: !randbat vaporeon
!randdubs is the command for checking Random Doubles/Triples moves

!rank
Displays a user's current rank in a certain tier on the official Pokemon Showdown server
Syntax: !rank [nick], [tier] or !rank tier which will use your IRC nick
Valid tiers are those you can "Look for a battle" with on Pokemon Showdown
Includes aliases for some tiers: randbats, cc, cc1v1, bh, vgc, doubles
Example: !rank zebraiken, ubers

replays
When the link to a Pokemon Showdown replay is shown, TIBot provides details about the battle
Example:
<TheImmortal> https://pokemonshowdown.com/replay/ou-48291593
<TIBot> Lady Samantha vs haunter | OU | Unrated

!search
Searches for Pokemon based on Ability, Type, Moves, and base Stats
Syntax: !search [ability][/ability], [move][/move], [type], [stat operator number] with the parameters in any order
One Ability, two Types, and four Moves are the limits
Stats are: hp, atk, def, spa, spd, spe
Operators are: <, <=, =, >=, >
Example: !search ground, stealth rock, spe > 100
To limit the results to a particular tier only, include the tier in the command; for example: !searchou
To search for fully evolved Pokemon only, use !searchfe
To search for VGC 2015 permitted Pokemon only, use !searchvgc
Results are either limited to 15 Pokemon or a link to the Pokemon Showdown Pokedex is shown, depending on the search; message TIBot to view them all
Certain form(e)s are not shown in the results, depending on the search; such as all the Deoxys formes when searching for only a move

!sets
Retrieves a Pokemon's sets from Smogon
Syntax: !sets [pokemon] [tier] [number]
Valid tiers are: OU, Uber, UU, RU, NU, PU, LC, Doubles, VGC15
Example: !sets jirachi ou 1
Not specifying a number, or 0, will show you how many sets are available
Previous gen sets can be obtained by adding the gen number after the command, such as: !sets4
The tier parameter can be left out for the current gen, and it will use the Pokemon's current tier

!stat
Calculates any of a Pokemon's stats
Syntax: !stat [pokemon] [hp/atk/def/spa/spd/spe] [ivs:evs±] [boost] [level]
No IVs assumes 31, no level assumes 100, and boost is optional
Examples: !stat victini atk 252+ and !stat latios spa 30:252 +1

!teambuild (currently unavailable)
Builds a team from Smogon sets, and uploads it to Hastebin
Syntax: !teambuild [tier], [pokemon] [set number], [pokemon] [set number], ...
Valid tiers are: OU, Uber, UU, RU, NU, PU, LC, Doubles, VGC14
Example: !teambuild ou, politoed 1, jirachi 1, ferrothorn 1, toxicroak 1, garchomp 5, thundurus-t 2
Set numbers can be obtained from the !sets command

!ts
Displays a Pokemon's stats in Tier Shift (https://smogon.com/forums/threads/3508369/)

Syntax: !ts [pokemon]
Example: !ts golurk

!usage
Displays usage stats for the official Pokemon Showdown server
Syntax: !usage [pokemon] [abilities/items/spreads/moves/teammates/checkscounters] [tier]
The parameter after "pokemon" is for moveset stats and not specifying it will show you the Pokemon's usage in the tier specified
Valid tiers are: ou, ubers, uu, ru, nu, lc, doubles, vgc, cap, pu, 1v1
Examples: !usage espeon ou and !usage espeon moves ou
Adding "1337" after the command will display the 1337 stats; such as !usage1337 keldeo
The tier parameter can be left out, and it will use the Pokemon's current tier

Note on aliases: In addition to single letter aliases after the species name for form(e)s, TIBot also accepts the trademarked Japanese names and Pokedex numbers for Pokemon.

!d / !def / !define - Looks up the definition of a term on Wiktionary

!g - Displays the first Google search result

!gis - Displays the first Google images result

!log - Links a log of the current channel only for halfops and above

!s / !soundcloud - Displays the first SoundCloud tracks search result

!syn / !ant - Displays synonyms/antonyms for a particular word

!tell - Securely sends a message to someone the next time they speak; need to be identified to send/receive

!u - Looks up a term on Urban Dictionary

!w / !wiki - Displays the first Wikipedia search result

!y - Displays the first YouTube search result


Feel free to invite TIBot to one of your channels, or even message it. I hope this was helpful, and keep on using TIBot :)!
 
Last edited:

The Immortal

They Don't Want None
is a member of the Site Staffis a Battle Server Administratoris a Smogon Social Media Contributoris a Community Leaderis a Programmeris a Live Chat Contributor Alumnusis a Tiering Contributor Alumnus
Other Metas Leader
#6
I don't want to include commands for older gens, so I am not adding !gen1. Maybe I'll add !smogdex once Smogon is updated with XY.

Added !searchvgc for Kalos Pokemon, at the request of breh. In addition, it only shows fully evolved Pokemon.
 
Likes: Mq

The Immortal

They Don't Want None
is a member of the Site Staffis a Battle Server Administratoris a Smogon Social Media Contributoris a Community Leaderis a Programmeris a Live Chat Contributor Alumnusis a Tiering Contributor Alumnus
Other Metas Leader
#8
Hey, this is a pretty stupid question but is it possible to get Tibot's commands on another server (Quakenet) or invite it there? I frequent a channel that would greatly benefit from this.
No. TIBot is not opensource, and I only run it on synIRC.
 
Likes: Mq

Isa

CHINGUYA
is a Tournament Director Alumnusis a Smogon Social Media Contributor Alumnusis a Community Leader Alumnusis a Community Contributor Alumnus
#12
can you make a !help command that lists the available commands

i forget where to find this thread frequently, my memory is poor