6. Full Config - RealDeviceMap/RealDeviceMap GitHub Wiki

General

Only set those values you want to override, there is no need to copy the whole default.json, this makes it more clear.

Docker Usage

If you want to use Full Json Config, pls remove environment block from yml. Yml overwrites local, local overwrites default.

Download local.example.json (next to your yml or in a directory of your choice) and modifiy it if needed.

wget https://raw.githubusercontent.com/RealDeviceMap/RealDeviceMap/master/resources/config/local.example.json -O local.json

Don't forget to embed this file in docker-compose.yml as volume, adapt first part only (before :) if your local.json is not located next to your yml. There is already an example in docker-compose.yml.

Non-Docker Usage

Config files are located in resources/config. Keep default.json unchanged (use it as reference only).

cd resources/config/ && cp local.example.json local.json

Explanation

{
  "logger": {
    "logLevel": "info",                        // debug, info, warning -> possible values for logger level
    "rawDebug": {
      "enabled": false,                        // show protos raw in logs, only visible on log level debug
      "types": [                               // choose wisely which type of protos raw you want to log -> huge amount of data
        "GetPlayerResponse",
        "GetMapObjects_wildMons",
        "GetMapObjects_nearbyMons",
        "GetMapObjects_mapMons",
        "GetMapObjects_forts",
        "GetMapObjects_cells",
        "GetMapObjects_clientWeathers",
        "GetMapForts",
        "EncounterResponse",
        "DiskEncounterResponse",
        "FortDetailsResponse",
        "FortSearchResponse",
        "GymGetInfoResponse"
      ]
    }
  },
  "server": {                                  // server settings
    "host": "0.0.0.0",
    "port": 9000
  },
  "webhookServer": {                           // device api webhook settings
    "host": "0.0.0.0",
    "port": 9001
  },
  "database": {                                // configure access to your DB, depends on your usage (with or without Docker)
    "host": "db",
    "port": 3306,
    "database": "rdmdb",
    "user": "rdmuser",
    "password": "",
    "rootUser": "root",
    "rootPassword": "",
    "backup": true
  },
  "application": {
    "rawThreadLimit": 100,
    "rawForward": {                             // Use this functionality to forward every RAW to any listener
      "url": "http://127.0.0.1:9001/raw",
      "bearer": "yourBearerSecret"
    },
    "account": {
      "requireInDB": true,                      // Account info is required to be stored in RDM - used for quest jobs 
      "useRwForQuest": false,                   // use Accounts with Red Warning for quest scanning
      "useRwForRaid": false,                    // use Accounts with Red Warning for raid circle scanning
      "useRwForPokes": false,                   // use Accounts with Red Warning for pokemon scanning
      "maxEncounters": 0,                       // feature is disabled by default - disable account when that limit is reached - to prevent errors - recommended value 9000
      "disablePeriod": 86400,                   // don't use a disabled account for at least 24 hours,
      "lastRecentlyUsed": false
    },
    "loginLimit": {
      "enabled": false,                         // login limit is used to prevent IP-Ban on devices 
      "count": 15,                              // e.g. 15 possible logins within a fixed timeframe of 300 seconds
      "interval": 300
    },
    "map": {
      "generateImages": true,                   // generate combined images/icons for pokestops/gyms for front-end
      "ivWeatherClearing": true,                // clear IV on weatherchange
      "saveCellPokemon": true,                  // save cell mons, no fix position, use s2 cell center coordinates
      "scanLureEncounter": false,               // enable scanning of lure mon
      "saveSpawnPointLastSeen": false           // when spawnpoint is seen update last_seen to monitor active points
    },
    "memoryCache": {
      "enabled": true,                          // use for backend to keep track of pokemon, pokestop, gym, etc. to prevent DB-Fetches
      "clearInterval": 900,
      "keepTime": 3600
    },
    "clearer": {                                // database clearer for tables pokemon and incident/invasion
      "pokemon": {                              // modify values related to pokemon clearing
        "enabled": true,                        // enabled per default, can also be disabled if you prefer database event scheduler or processes - have to be enabled when you want to use pokemon history stats
        "interval": 300,                        // execute DELETE LIMIT again after interval
        "keepTime": 3600,                       // keep time for table entries after expired timestamp - only relevant for clearer with disabled stats
        "batchSize": 250                        // batch size for DELETE LIMIT, e.g. `DELETE LIMIT 250` - only relevant for clearer with disabled stats
      },
      "incident": {                             // modify values related to incident/invasion/rockets clearing
        "enabled": true,                        // enabled per default, can also be disabled if you prefer database event scheduler or processes
        "interval": 900,                        // execute DELETE LIMIT again after interval
        "keepTime": 3600,                       // keep time for table entries after expired timestamp
        "batchSize": 250                        // batch size for DELETE LIMIT, e.g. `DELETE LIMIT 250` 
      }
    },
    "stats": {
      "pokemon": {
        "archive": false,                       // archive pokemon in separate table automatically - only possible in combination with pokemon clearer enabled
        "timing": false,                        // timing is used for creating stats used for dkmur/rdmStats
        "count": true                           // count stats are used for rdm.url/stats or for tools like ccev/Discordopole or ReactMap (calculate rarity filter)
      }
    },
    "pvp": {
      "enabled": true,
      "levelCaps": [50],
      "defaultRank": "ordinal",                 // choose the default rank - wiki/8.-FAQ#pvp-settings
      "filterLittleMinCP": 450,                 // exclude if Hundo does not reach MinCP for levelCap
      "filterGreatMinCP": 1400,                 // set the MinCP for each league you want
      "filterUltraMinCP": 2350
    },
    "webhook": {
      "endpointTimeout": 30,
      "endpointConnectTimeout": 30
    },
    "quest": {
        "allowARQuests": true,                  // It will block AR geotargeting quest from being saved so it gets rescanned if set to false
        "questRetryLimit": 10,                  // retry limit per stop to retrieve quest data
        "spinDistance": 80                      // option to change spin distance for stops, if it ever changes again you can update it
    },
    "stopAllBootstrapping": false               // allows quest instances to skip their bootstrap and just scan the available pokestops from DB.
    "process": {
      "pokemon": true,                         // should pokemon be processed to DB/Memory-Cache? If not IV instance would not work
      "incident": true                         // should invidents be processed to DB/Memory-Cache?
    }
  }
}