A community-driven and inspired SysBot.NET project with the most beautiful GUI that unites code from everyone, supporting LGPE, SWSH, BDSP, PLA, SV, and PLZA!
Visit FreeMons.Org to join Zeraora's Emporium!
ZE FusionBot
is a powerful and open-source SysBot.NET fork, initially tailored for the Discord server Zeraora's Emporium. While originally built for internal server use, it has transformed into a beautiful, community-powered GUI with dozens of integrated forks and unique enhancements, catering to every Nintendo Switch Pokémon game.
- One-click Game Restart, Hot Reload, and Updater.
- Support for batch trades via Showdown format or .zip archives.
- Mystery Pokémon and Eggs, Battle-Ready, HOME-Ready, and Event Pokémon trading modules.
- Full GUI control for SysDVR and Switch Remote for PC integration.
- Smart Auto-Correct and Auto-Legalization.
- DM embeds with GIFs, Channel Status notifications, Announcement System, Keyword Response.
- Built-in metrics: Queue tracking, trade counters, medal system.
- Multi-Language request support.
- Live/Real-time log searches.
- Read user DMs sent to the bot.
- Animated, hover-responsive panel buttons for Bots / Hub / Logs.
- Color-coded UI themes: blue-purple primary, themed subpanels.
- Fully redesigned icons, fonts, buttons, and layout.
- Bot controller with sections for Address, Status, Trade Type, and Log time.
- No native window titlebars — drag by top panel. Minimal, modern design.
- Animated glow around controller buttons to indicate their use.
- Progress bar in the controller that shows a visual glow during the trade process.
🎮 GIFS
Command | Aliases | Summary | Example | Permission |
---|---|---|---|---|
trade |
t | Trade a Pokémon from Showdown Set or PKM file. | trade <Showdown Format> or <upload pkm> |
Everyone |
trade true |
t true | Trade a Pokémon from a PKM file, without AutoOT | trade true <upload pkm> |
Everyone |
tradeUser |
tu, tradeOther | Trade the mentioned user the attached file. | tradeuser @user |
Everyone |
hidetrade |
ht | Same as trade, but hides the embed. | hidetrade <Showdown Format> |
Everyone |
clone |
c | Clone the Pokémon you show via Link Trade. | clone |
Everyone |
dump |
d | Dump the Pokémon you show via Link Trade. | dump |
Everyone |
egg |
Egg | Trade an egg via provided Pokémon set. | egg <Showdown Format> |
Everyone |
seed |
checkMySeed, checkSeed, seedCheck, s, sc | Check a Pokémon seed. | seedCheck |
Everyone |
itemTrade |
it, item | Trade a Pokémon holding a requested item. | it <Leftovers> |
Everyone |
fixOT |
fix, f | Fix OT and Nickname of a Pokémon if an advert is detected. | fixOT |
Everyone |
convert |
showdown | Convert a Showdown Set to RegenTemplate. | convert <set> |
Everyone |
legalize |
alm | Attempt to legalize PKM data. | legalize <pkm> |
Everyone |
validate |
lc, check, verify | Verify PKM legality. | validate <pkm> |
Everyone |
verbose |
lcv | Verify PKM legality with verbose output. | verbose <pkm> |
Everyone |
findFrame |
ff, GetFrameData | Prints next shiny frame from seed. | findFrame <seed> |
Everyone |
deleteTradeCode |
dtc | Deletes the stored Link Trade Code for the user. | dtc |
Everyone |
changeTradeCode |
ctc | Change your stored Link Trade Code. | ctc 12345678 |
Everyone |
Command | Aliases | Summary | Example | Permission |
---|---|---|---|---|
textTrade |
tt, text | Upload a .txt/.csv of Showdown sets for batch trading. | tt <upload .txt/.csv file> |
Everyone |
textView |
tv | View a specific Pokémon from your pending TextTrade file. | tv 2 |
Everyone |
listEvents |
le | Lists available event files via DM. | le <species> <page2> |
Everyone |
eventRequest |
er | Downloads event attachments and adds to trade queue. | eventRequest <file> |
Everyone |
battleReadyList |
brl | Lists available battle-ready files via DM. | brl <species> <page2> |
Everyone |
battleReadyRequest |
br, brr | Downloads battle-ready attachments and adds to trade queue. | battleReadyRequest <file> |
Everyone |
pokepaste |
pp, Pokepaste, PP | Generates a team from a PokePaste URL. | pp <URL> |
Everyone |
dittoTrade |
dt, ditto | Trade a Ditto with requested stats, language, and nature. | dt <LinkCode> <IVToBe0> <Lang> <Nature> |
Everyone |
mysteryegg |
me | Get a random shiny 6IV egg. | mysteryegg |
Everyone |
mysterymon |
mm, mystery, surprise | Get a fully random Pokémon. | mysterymon |
Everyone |
randomTeam |
rt, RandomTeam, Rt | Generates a random team. | randomTeam |
Everyone |
homeReady |
hr | Displays instructions for HOME-ready trading. | homeReady |
Everyone |
homeReadyRequest |
hrr | Downloads HOME-ready files and adds to trade queue. | homeReadyRequest <number> |
Everyone |
homeReadylist |
hrl | Lists available HOME-ready files. | homeReadylist |
Everyone |
specialRequest |
sr, srp | Lists Wondercard events or requests specific ones. | srp <game> <page2> |
Everyone |
getEvent |
ge, gep | Downloads the requested event as a PKM file. | getEvent <eventID> |
Everyone |
Command | Aliases | Summary | Example | Permission |
---|---|---|---|---|
batchTrade |
bt | Trade multiple Pokémon (max 6) from a list. | bt <Set1> --- <Set2> |
Everyone |
batchTradeZip |
btz | Trade multiple Pokémon from a ZIP file. | btz <file.zip> |
Everyone |
batchInfo |
bei | Get info about a batch property. | batchInfo <prop> |
Everyone |
batchValidate |
bev | Validate a batch property. | batchValidate <prop> |
Everyone |
Command | Aliases | Summary | Example | Permission |
---|---|---|---|---|
queueMode |
qm | Change queue control (manual/threshold/interval). | qm manual |
Everyone |
queueClearAll |
qca, tca | Clear all users from all queues. | qca |
Sudo, Owner |
queueClear |
qc, tc | Remove yourself from the queue. | qc |
Everyone |
queueClearUser |
qcu, tcu | Clear a specified user (sudo required). | qcu @user |
Sudo, Owner |
queueStatus |
qs, ts | Check your position in the queue. | qs |
Everyone |
queueToggle |
qt | Enable/disable queue joining. | qt |
Sudo, Owner |
queueList |
ql | DM the full queue list. | ql |
Sudo, Owner |
tradeList |
tl | Show users currently in trade queue. | tl |
Sudo, Owner |
fixOTList |
fl, fq | Prints the users in the FixOT queue. | fixOTList |
Sudo, Owner |
cloneList |
cl, cq | Prints the users in the Clone queue. | cloneList |
Sudo, Owner |
dumplist |
dl, dq | Prints the users in the Dump queue. | dumplist |
Sudo, Owner |
seedList |
sl, scq, seedCheckQueue, seedQueue, seedList | Show seed check queue users. | seedList |
Sudo, Owner |
Command | Aliases | Summary | Example | Permission |
---|---|---|---|---|
addSudo |
— | Add a user to global sudo. | addSudo <ID> |
Owner |
removeSudo |
— | Remove a user from global sudo. | removeSudo <ID> |
Owner |
blacklistServer |
bls | Adds a server ID to the server blacklist. | blacklistServer <ID> |
Sudo, Owner |
unblacklistServer |
ubls | Removes a server ID from the server blacklist. | unblacklistServer <ID> |
Sudo, Owner |
blacklist |
— | Blacklist a Discord user. | blacklist @user |
Sudo, Owner |
unblacklist |
— | Remove a user from blacklist. | unblacklist @user |
Sudo, Owner |
blacklistId |
— | Blacklist Discord user IDs. | blacklistId <ID> |
Sudo, Owner |
unBlacklistId |
— | Unblacklist Discord user IDs. | unBlacklistId <ID> |
Sudo, Owner |
blacklistComment |
— | Adds comment for blacklisted user. | blacklistcomment <ID> <msg> |
Sudo, Owner |
banTrade |
bant | Ban a user from trading with reason. | bant @user <reason> |
Sudo, Owner |
banID |
— | Ban an online user ID. | banID <ID> |
Sudo, Owner |
unbanID |
— | Unban an online user ID. | unbanID <ID> |
Sudo, Owner |
bannedIDComment |
— | Adds a comment for banned ID. | bannedIDcomment <ID> <msg> |
Sudo, Owner |
bannedIDSummary |
printBannedID, bannedIDPrint | Show list of banned IDs. | bannedIDSummary |
Sudo, Owner |
blacklistSummary |
printBlacklist, blacklistPrint | Show list of blacklisted users. | blacklistSummary |
Sudo, Owner |
Command | Aliases | Summary | Example | Permission |
---|---|---|---|---|
click |
— | Click a button on the Switch. | click <IP> <Button> |
Sudo, Owner |
setStick |
— | Move stick to coordinates. | setStick <IP> <Coords> |
Sudo, Owner |
setScreenOn |
screenOn, scrOn | Turn on screen. | setScreenOn |
Sudo, Owner |
setScreenOff |
screenOff, scrOff | Turn off screen. | setScreenOff |
Sudo, Owner |
setScreenOnAll |
screenOnAll, scrOnAll | Turn on screen for all bots. | setScreenOnAll |
Sudo, Owner |
setScreenOffAll |
screenOffAll, scrOffAll | Turn off screen for all bots. | setScreenOffAll |
Sudo, Owner |
peek |
repeek | Take and send a screenshot. | peek |
Sudo, Owner |
video |
Video | Record a GIF from the Switch. | video |
Sudo, Owner |
startSysdvr |
dvrstart, startdvr, sysdvrstart, dvr, stream | Start SysDVR streaming. | startSysdvr |
Owner |
sysDvr |
— | Show instructions for SysDVR. | sysDvr |
Owner |
startController |
controllerstart, startcontrol, controlstart, startremote, remotestart, sbr, controller | Start Switch Remote controller. | startController |
Owner |
Command | Aliases | Summary | Example | Permission |
---|---|---|---|---|
ping |
— | Ping the bot to check if it's running. | ping |
Sudo, Owner |
help |
— | Show all commands. | help |
Everyone |
info |
about, whoami, owner, bot | Show bot information. | info |
Everyone |
botStatus |
— | Get bot status via logs. | botStatus |
Sudo, Owner |
botStart |
— | Start the bot. | botStart |
Sudo, Owner |
botStop |
— | Stop the bot. | botStop |
Sudo, Owner |
botIdle |
botPause, idle | Pause the bot. | botIdle |
Sudo, Owner |
botChange |
— | Change the bot routine. | botChange <FlexTrade> |
Sudo, Owner |
botRestart |
— | Restart the bot(s). | botRestart |
Sudo, Owner |
status |
stats | Get the bot environment status. | status |
Sudo, Owner |
kill |
shutdown | Shutdown the bot. | kill |
Owner |
Command | Aliases | Summary | Example | Permission |
---|---|---|---|---|
announce |
Announce | Send an announcement to Echo channels. | announce <msg> |
Owner |
dm |
- | Send a DM to a user as the bot. | dm @user <msg> |
Owner |
addEmbedChannel |
aec | Assign a channel for bot embeds. | addEmbedChannel #channel |
Sudo, Owner |
echoInfo |
— | Dump echo message settings. | echoInfo |
Sudo, Owner |
echoClear |
rec | Clear echo settings for current channel. | echoClear |
Sudo, Owner |
echoClearAll |
raec | Clear echo settings from all channels. | echoClearAll |
Sudo, Owner |
logHere |
— | Log to current channel. | logHere |
Sudo, Owner |
logClearAll |
— | Clear all log settings. | logClearAll |
Sudo, Owner |
logClear |
— | Clear log settings for current channel. | logClear |
Sudo, Owner |
logInfo |
— | Dump logging settings. | logInfo |
Sudo, Owner |
Command | Aliases | Summary | Example | Permission |
---|---|---|---|---|
listGuilds |
lg, servers, listservers | List all guilds the bot is in. | listGuilds |
Sudo, Owner |
leave |
bye | Leave current server. | leave |
Sudo, Owner |
leaveGuild |
lg | Leave a guild by ID. | leaveGuild <ID> |
Sudo, Owner |
leaveAll |
— | Leave all servers. | leaveAll |
Sudo, Owner |
Command | Aliases | Summary | Example | Permission |
---|---|---|---|---|
joke |
lol, insult | Tell a random joke. | joke |
Everyone |
hello |
hi, hey, yo | Say hello to the bot. | hello |
Everyone |
medals |
ml | View medals earned from trades. | medals |
Everyone |
- Use filename code like
Great Tusk-Tera(Steel)-03760382.pk9
to auto-set trade code. - Paste a PKM in chat to receive info + legal formats.
- Thank the bot — it might reply!
ZE FusionBot
supports converting batch commands from Discord messages into official Showdown Set formats. This allows easy bulk Pokémon trading with full customization of stats, moves, ribbons, and other metadata.
Batch Command | Showdown Format Equivalent | Notes |
---|---|---|
.Scale= |
Scale: or Size: |
Accepts keywords (XXXS, XXS, XS, S, AV, L, XL, XXL, XXXL) or numeric values 1-255. |
.WeightScalar= |
Weight: |
Accepts keywords (XS, S, AV, L, XL) or numeric values 1-255. |
.HeightScalar= |
Height: |
Accepts keywords (XS, S, AV, L, XL) or numeric values 1-255. |
.OriginalTrainerFriendship= |
OT Friendship: |
Value 1–255. |
.HandlingTrainerFriendship= |
HT Friendship: |
Value 1–255. |
.MetDate= |
Met Date: |
Supports flexible date formats. |
~=Version= |
Game: or Version: |
Supports full game names or abbreviations. |
.MetLocation= |
Met Location: |
Only numeric IDs currently supported. |
.HyperTrainFlags= |
HyperTrain: |
True / False. |
.HT_[STAT]= |
HT: |
Supports HP, Atk, Def, SpA, SpD, Spe. |
.Moves= |
Moves: |
“Random” generates random moves. |
.RelearnMoves= |
Relearn Moves: |
“All” or “None” accepted. |
.Ribbons= |
Ribbons: |
“All” or “None” supported. |
.RibbonMark[mark]=True |
Mark: |
Mark names without spaces (e.g., BestFriends). |
.Ribbon[name]=True |
Ribbon: |
Ribbon names without spaces (e.g., BattleChampion). |
.SetEVs= |
Set EVs: |
Accepts Random , or Suggest . |
.SetIVs= |
Set IVs: |
Accepts Random , or presets like 1IV –6IV . |
.GV_[STAT]= |
GVs: |
Supports HP, Atk, Def, SpA, SpD, Spe. |
.Marking[type]= |
Markings: |
Diamond, Heart, Square, Star, Triangle, Circle in Red or Blue Markings: Diamond=Red / Circle=Blue etc. |
.Characteristic= |
Characteristic: |
Type out a characteristic. |
🔹 Currently,
Met Location:
only supports numeric IDs. See above references for valid values per generation.
Characteristic | IV Set | IV Type |
---|---|---|
Likes to eat |
30, 8, 13, 18, 23, 25 | HP |
Takes plenty of siestas |
31, 6, 26, 22, 10, 0 | HP |
Scatters things often |
28, 8, 28, 12, 9, 19 | HP |
Likes to relax |
29, 16, 3, 7, 26, 13 | HP |
Nods off a lot |
27, 0, 13, 27, 27, 8 | HP |
Proud of its power |
18, 30, 10, 11, 26, 3 | Attack |
Likes to thrash about |
10, 31, 0, 3, 12, 0 | Attack |
A little quick tempered |
25, 27, 9, 7, 8, 8 | Attack |
Quick tempered |
0, 29, 6, 23, 4, 17 | Attack |
Likes to fight |
25, 28, 11, 8, 9, 18 | Attack |
Sturdy body |
15, 24, 30, 5, 24, 29 | Defense |
Capable of taking hits |
6, 0, 21, 2, 18, 3 | Defense |
Highly persistent |
4, 21, 27, 9, 21, 18 | Defense |
Good endurance |
19, 2, 23, 2, 6, 4 | Defense |
Good perseverance |
26, 16, 29, 0, 20, 22 | Defense |
Highly curious |
9, 6, 21, 30, 10, 28 | Special Attack |
Mischievous |
7, 20, 0, 31, 5, 17 | Special Attack |
Thoroughly cunning |
5, 4, 20, 27, 12, 26 | Special Attack |
Often lost in thought |
8, 3, 1, 23, 19, 14 | Special Attack |
Very finicky |
9, 1, 0, 24, 21, 12 | Special Attack |
Strong willed |
14, 6, 29, 16, 30, 0 | Special Defense |
Somewhat vain |
10, 5, 10, 15, 26, 15 | Special Defense |
Strongly defiant |
10, 10, 12, 3, 12, 10 | Special Defense |
Hates to lose |
3, 8, 13, 18, 23, 2 | Special Defense |
Somewhat stubborn |
4, 9, 14, 19, 24, 15 | Special Defense |
Likes to run |
2, 7, 12, 17, 22, 30 | Speed |
Alert to sounds |
31, 31, 31, 31, 31, 31 | Speed |
Impetuous and silly |
2, 7, 12, 17, 22, 27 | Speed |
Somewhat of a clown |
3, 8, 13, 18, 23, 28 | Speed |
Quick to flee |
4, 9, 14, 19, 24, 29 | Speed |
Set EVs: Suggest
Set IVs: 5IV
Scale: XL
Weight: 45
Height: AV
OT Friendship: 128
HT Friendship: 128
Met Location: 30024
Game: PLA
Moves: Random
Relearn Moves: All
Mark: BestFriends
Ribbons: All
GVs: 7 HP / 7 Atk / 7 Def / 7 SpA / 7 SpD / 7 Spe
HT: HP / Atk / Def / SpA / SpD / Spe
Characteristic: Quick to flee
Markings: Diamond=Red / Heart=Red / Square=Blue / Star=Blue / Triangle=Red / Circle=Blue
FusionBot automatically applies your trainer information based on the save file you’re currently using.
- Your OT / TID / SID / OTGender are applied automatically.
- To keep the trainer info in your own files, attach them with
t true
. - For Showdown Sets, simply include the OT/TID/SID you want — AutoOT will then be disabled.
This ensures all trades feel natural and consistent with your game, while still letting you override it if you want custom trainer data.
FusionBot assigns you a personal static Link Trade Code on your first trade.
- This code is unique to you and stays the same for all future trades.
- To reset it: use
dtc
(your next trade gives you a new random code). - To customize it: use
ctc 12345678
(sets your permanent code to whatever you choose).
This makes trading smoother by removing guesswork — your link code is always ready.
Every trade you complete is tracked by FusionBot, and your trade count shows up in the footer of the trade embed.
- For every 50 trades, you earn a new medal 🥇.
- You can check your medals anytime with the
ml
command. - It’s just for fun — a little progression system to show off your trading dedication.
Think of it like leveling up — the more you trade, the more medals you rack up, proving you’re a true master trader.
You can now read the DMs a user sends to the bot. This is fun for when people think your bot is a real person and they attempt to speak to it, or get enraged at it because their internet sucks or don't have NSO. As sad as it is, sometimes users will send derogatory/racial/sexist messages to your bot thinking no one can see it, but now you can, and if they speak like that, do you really want them in your server?
- Visit the UserDMsToBotForwarder option in
Hub -> Discord
and insert a Channel ID, then restart the bot. - The DMs that get logged are only those without a command, so you will not get flooded with user command input.
- You'll also be able to see attachments users send to the bot, but beware, because it can get weird. I learned from experience.
- Switch Remote for PC — GUI to control Switch from PC.
- PKHeX ALM Releases — PKHeX + AutoLegalityMod pre-built with config files.
- GenPKM — Web-based alternative to Showdown for bot-ready sets.