This repository has been archived by the owner. It is now read-only.
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
src refactor servepkx repo Sep 2, 2018
Makefile refactor servepkx repo Sep 2, 2018 refactor servepkx repo Sep 2, 2018

servepkx-go by Allen Lydiard

This is a small program built in golang that allows you to upload a pokemon or multiple pokemon to PKSM through it's wireless server feature.

Thank you to zaksabeast for a bit of logic that I borrowed from his servepkx-browser tool.

Currently the following OSes are supported

  • Linux
  • macOs
  • Windows


Method 1: Terminal

Pushing a file

servepkx filename.fileext


servepkx pikachu.pk7

Pushing a folder

servepkx folder


servepkx pokemon

Method 2: Drag'n'Drop

Simply drag a compatible file/folder onto the executable and the pokemon will be uploaded


The program is stuck on "Looking for 3DS IP, please wait!"

This issue sometimes occurs if the 3DS fails to respond to the port check. Simply just stop the script by doing ctrl + c and rerun it.

I get a "DS not found on network!" error

This happens when PKSM isn't listening for incoming connections. Please check to make sure you have launched the PKSM wireless server on your 3DS and try again!

I get an index out of range error

This happens when your pokemon file is corrupted. Please try fetching a clean version of your pokemon file and try again.

The program says the pokemon has been uploaded but I don't see it.

This can happen for a few reasons

  • Attempting to use a wc7/wc7full/wc6/wc6full file outside of the event injector
  • Another device on your network has port 9000 open.

Problem 1 is simple: just use the event injector screen and not the storage or editor screen

Problem 2 is a bit more complicated: I discovered that devices such as

  • Google Home
  • Google ChromeCast

Are listening for port 9000, which means that they might get picked up as a 3DS IP

I fixed this by checking to see if they also have port 8008 open as well, as these devices do And if the port is open, then the IP is skipped and the next one is checked.

There might be cases where the wrong IP is chosen and if it does, just post an issue on the repo and I'll take a look at it.


Golang >= 1.10.3

Golang Libraries


Compile the program by doing