Supported/tested versions:
-
0.35.0
- Environment variable config support
- MITM Proxy
- Google User authentication/login
- PTC User authentication/login
Could probably emulate the SSO server as well...
- Create/Edit player avatar(tutorial + afterwards)
- Create/Change playername
- Asset Hosting w/ 2 minute expiration
- Pokemon generator
- Import game_master
- Build pokemon profiles using game_master data
- Custom Spawn tables
- Spawn database
-
generateStarter
(Generate "decent" starter and assign to player) -
generateWild
-
generateEgg
- Captcha menu
- Welcome disclaimer(Needs improvement though)
- pogo-emulator admin menu
- pogo-emulator player menu
- Pokestops
- Custom Loot tables
- Gyms
- Imports
- PokemonGoMap
- Spawn JSON files
- Webhook target
- PokemonGoMap
- Configurable
- Simplify configuring
Loopback
forMongoDB
,Redis
andMariaDB
- Simplify configuring
- Other
- Could easily add support for the PokemonGoMap frontend to interface directly with the server's database, or some other Map frontend
Below are steps I use for connecting/testing/etc. Remember this is an unofficial server, so we don't care about SafetyNet
- Server
- Ubuntu 14.04 (From scratch VM/DigitalOcean/etc)
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
git clone https://github.com/zaephor/pogo-emulator.git
cd pogo-emulator
npm install
cp config/pogo.example.js config/pogo.js
cp config/server.example.js config/server.js
cp config/download.example.js config/download.js
- Edit
config/server.js
andconfig/pogo.js
to your liking- Make sure you supply a
google_maps_api_key
inconfig/pogo.js
- Make sure you supply a
- Download the PokemonGo
game_master
,assetdigest
and all the Pokemon asset files- Can edit
config/download.js
and runnpm assets
ornode download.js
to obtain these files
- Can edit
npm start
- I often run this from within a
screen
session...
- I often run this from within a
- Ubuntu 14.04 (From scratch VM/DigitalOcean/etc)
- Client
- Android (CM12.1 Root + Xposed)
- Install Xposed somehow(look this one up)
- Install @rastapasta's Pokemon Go Xposed (Mostly care about the cert pinning)
- Activate Pokemon Go Xposed
- Reboot
- Configure device for Proxy PAC address
- Wifi
- Edit current wifi network
- Check
Advanced options
- Change proxy to
Proxy Auto-Config
- Set the
PAC URL
tohttp://<SERVERIP>:<PORT>/proxy/pac
- Other
- Supposedly you can modify APN settings, or use
ProxyDroid
, I've not tried it yet
- Supposedly you can modify APN settings, or use
- Wifi
- If needed, the CA cert file can be downloaded on the device at
http://<SERVERIP>:<PORT>/proxy/ca.(pem|crt|der|etc)
- This guide walks through adding the
ca.pem
file as a system cred to remove needing a lockscreen pin - I also lazily use Root Certificate Manager(ROOT)
- This guide walks through adding the
- Android (CM12.1 Root + Xposed)
- After completing the tutorial, the capture rewards pop-up get stuck on screen. This begun as soon as I started experimenting with Pokemon Inventory it's database
I know my free time to work on this will vary so I welcome most pull requests.
Currently this runs off of a memory/file based DB, but can easily be configured and connected to MongoDB, MariaDB, or anything else supported by Loopback.
- Application
app.js
<-- Core application file, mostly just contains middleware and routes mappings/config
<-- All necessary config files(Except for some DB specific stuff at the moment)/assets/<platform>
<-- Asset directories/middleware
<-- Custom middleware functions used on all/plfe/*
routes/requests
<-- The functions executed for each request action in an RPC call/platform_requests
<-- Some more functions in RPC calls, usually device signature and IAP stuff/routes
<-- The various routes endpoints/ssl
<-- Configured as MITM's default cert path/views
<-- PUG-based templates path/views/captcha
<-- Templates meant to specifically be displayed in the Captcha display on the phone
- Database/ORM
/db/common/models
<-- Database model objects/db/server/datasources.json
<-- Literal DB configurations/db/server/model-config.json
<-- DB Model-to-storage mappings
- @rastapasta for
- Pokemon Go Xposed
- pokemon-go-mitm(Used to understand MITM module)
- pokemon-go-protobuf-node(Got tired of ProtobufJS)
- @maierfelix for POGOserver(Reminded me I should share my experiments with others)
- @AeonLucid for POGOProtos
©2016 Niantic, Inc. ©2016 Pokémon. ©1995–2016 Nintendo / Creatures Inc. / GAME FREAK inc. © 2016 Pokémon/Nintendo Pokémon and Pokémon character names are trademarks of Nintendo. The Google Maps Pin is a trademark of Google Inc. and the trade dress in the product design is a trademark of Google Inc. under license to The Pokémon Company. Other trademarks are the property of their respective owners. Privacy Policy
pogo-emulator
is meant for an academic understanding of building and scaling a mobile multiplayer game from the server-side perspective and see what the game could have become.