⚠️ Font Notice: If the program's fonts are not displaying properly for you, download them here and install them on your machine.
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.
ZE FusionBot is a fusion by design — built from years of shared ideas, forks, experiments, and respect for the SysBot.NET ecosystem.
ZE FusionBot was created, inspired, and upgraded through time, in pieces, through a collaboration of multiple developers of all skill levels with bright ideas and a hobby. There's many I know, and many I don't know, but I have respect and appreciation for them all. If they didn't inspire or help, simply diving into their code and learning C# over the years through their contributions helped me get to this point to continue to refine ZE FusionBot and is also what allowed this project to grow into one of - if not the best SysBot program to date, in large to @hexbyt3's PokeBot, another contender as the best SysBot.
The projects below represent the strongest influences in the SysBot.NET space and the inspiration behind calling this a Fusion bot.
🧬 Click to view credits & inspirations
-
SysBot.NET
Created by @kwsch — also the creator of PKHeX.
The origin of everything. -
ForkBot.NET
Developed by @Koi-3088.
One of the earliest and most influential forks. TradeCord will never be forgotten. Somewhat of a friend for a while, but it's been many years, yet his talent had me learn so much. -
SysBot.NET (berichan fork)
An insightful and clever fork by @berichan that helped shape many later ideas. Many years ago, I'd take and modify beri's work to learn more about C#. -
SysBot.NET (Lusamine fork)
A respected fork that stayed close to the original vision, maintained by @Lusamine. -
SysBot.NET (santacrab fork)
A long-followed fork by @santacrab2 — a brilliant developer and dear local friend.
-
MergeBot
Originally created by @bakakaito (now offline), possibly preserved by @Paschar1.
One of the first major user-driven evolutions of SysBot. -
PokeBot
Created by @hexbyt3, a brilliant friend of mine — and the primary foundation of ZE FusionBot.
Much of FusionBot’s structure, philosophy, and stability originates here, alongside deep collaboration and shared ideas between repos.
- SysBot.NET (easyworld fork) — by @easyworld A fork I've followed for some time that's given me inspiration in the past
- ManuBot.NET — by @Manu098vm A fork I've been following for update inspiration with great C# knowledge
- ManuBot.NET (9B1td0 fork) — by @9B1td0 I believe this is a fork of ManuBot.NET but seems almost collaborated with the original.
- DudeBot.NET — by @Havokx89 A fun and fused iteration combining a lot of ZE FusionBot that I follow for various integration ideas.
- ZenBot.NET — by @Omni-KingZeno A fork of ManuBot.NET that I follow and quite enjoy getting inspiration from. Plus, great bot name and username. I'm a DBtard.
- TradeBot — by @jonklee99 with @joseph11024 Created by a good friend that tends to use their own ideas that I've happily borrowed from before.
- ZE-FusionBot (Taku1991 fork) — by @Taku1991.
An independently evolved fork that shares ideas, structure, and inspiration within the ZE FusionBot ecosystem that I myself have proudly borrowed from.
- 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.pk9to 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. |
.StatNature= |
Stat Nature: |
Accepts a Nature keyword. |
~=Version= |
Game: or Version: |
Supports full game names or abbreviations. |
.MetLocation= |
Met Location: |
Numeric IDs & Location names 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. |
.Nickname= |
Nickname: |
Write "Suggest" for a random nickname pulled from code dictionary. |
ZE FusionBot supports modern Discord Slash Commands for fast, clean Pokémon creation across all supported games.
These commands integrate directly with the bot’s legality pipeline and AutoOT logic.
| Slash Command | Game |
|---|---|
/create-sv |
Scarlet / Violet |
/create-swsh |
Sword / Shield |
/create-bdsp |
Brilliant Diamond / Shining Pearl |
/create-pla |
Legends: Arceus |
/create-plza |
Legends: Z-A |
/create-lgpe |
Let’s Go Pikachu / Eevee |
- Slash commands provide guided Pokémon creation without needing manual Showdown formatting.
- Fully compatible with Auto-Legalization, AutoOT, and language handling.
- Ideal for newer users or servers that want a clean, modern interaction flow.
Text commands and batch systems remain fully supported — slash commands simply add another powerful option.
🔹 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=BlueFusionBot 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
mlcommand. - 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 -> Discordand 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.





















