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
LoopbackforMongoDB,RedisandMariaDB
- 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 nodejsgit clone https://github.com/zaephor/pogo-emulator.gitcd pogo-emulatornpm installcp config/pogo.example.js config/pogo.jscp config/server.example.js config/server.jscp config/download.example.js config/download.js- Edit
config/server.jsandconfig/pogo.jsto your liking- Make sure you supply a
google_maps_api_keyinconfig/pogo.js
- Make sure you supply a
- Download the PokemonGo
game_master,assetdigestand all the Pokemon asset files- Can edit
config/download.jsand runnpm assetsornode download.jsto obtain these files
- Can edit
npm start- I often run this from within a
screensession...
- 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 URLtohttp://<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.pemfile 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.