Files
nadekobot/docs/jsons-explained.md

7.1 KiB

Setting up your API keys

This part is completely optional, however it's necessary for music and a few other features to work properly.

  • GoogleAPIKey
    • Required for Youtube Song Search, Playlist queuing, and a few more things.
    • Follow these steps on how to setup Google API keys:
      • Go to Google Console and log in.
      • Create a new project (name does not matter).
      • Once the project is created, go into Library
      • Under the YouTube APIs section, enable YouTube Data API
      • On the left tab, access Credentials,
        • Click Create Credentials button,
        • Click on API Key
        • A new window will appear with your Google API key
          NOTE: You don't really need to click on RESTRICT KEY, just click on CLOSE when you are done.
        • Copy the key.
      • Open up creds.yml and look for GoogleAPIKey, paste your API key after the :.
      • It should look like this:
      GoogleApiKey: "AIzaSyDSci1sdlWQOWNVj1vlXxxxxxbk0oWMEzM",
      
  • MashapeKey
    • Required for Hearthstone cards.
    • Api key obtained on https://rapidapi.com (register -> go to MyApps -> Add New App -> Enter Name -> Application key)
    • Copy the key and paste it into creds.yml
  • OsuApiKey
    • Required for Osu commands
    • You can get this key here.
  • CleverbotApiKey
    • Required if you want to use Cleverbot. It's currently a paid service.
    • You can get this key here.
  • PatreonAccessToken
    • For Patreon creators only.
  • PatreonCampaignId
    • For Patreon creators only. Id of your campaign.
  • TwitchClientId
    • Mandatory for following twitch streams with .twitch (or .stadd with twitch link)
    • Go to apps page on twitch and register your application.
    • You need 2FA enabled on twitch in order to create an application
    • You can set http://localhost as the OAuth Redirect URL (and press Add button)
    • Select Chat Bot from the Category dropdown
    • Once created, clicking on your application will show a new Client ID field
    • Copy it to your creds.yml as shown below
    • (if you're adding it as the last key inside your creds.yml, remove the trailling comma from the example below)
        TwitchClientId: "516tr61tr1qweqwe86trg3g",
    
  • LocationIqApiKey
    • Optional. Used only for the .time command. https://locationiq.com api key (register and you will receive the token in the email).
  • TimezoneDbApiKey
    • Optional. Used only for the .time command. https://timezonedb.com api key (register and you will receive the token in the email YOU HAVE TO ACTIVEATE IT AFTER YOU GET IT).
  • CoinmarketcapApiKey
    • Optional. Used only for the .crypto command. You can use crypto command without it, but you might get ratelimited from time to time, as all self-hosters share the default api key. https://pro.coinmarketcap.com/
Additional Settings
  • TotalShards
    • Required if the bot will be connected to more than 2500 servers.
    • Most likely unnecessary to change until your bot is added to more than 2500 servers.
  • RedisOptions
    • Required if the Redis instance is not on localhost or on non-default port.
    • You can find all available options here.
  • RestartCommand
    • Required if you want to be able to use the .restart command
    • If you're using the CLI installer or Linux/OSX, it's easier and more reliable setup Nadeko with auto-restart and just use .die

For Windows (Updater), add this to your creds.yml

RestartCommand:
    Cmd: "NadekoBot.exe"

For Windows (Source), Linux or OSX, add this to your creds.yml

"RestartCommand": {
    "Cmd": "dotnet",
    "Args": "run -c Release"
},

End Result

This is an example of how the creds.yml looks like with multiple owners, the restart command (optional) and all the API keys (also optional):

{
  "Token": "MTc5MzcyXXX2MDI1ODY3MjY0.ChKs4g.I8J_R9XX0t-QY-0PzXXXiN0-7vo",
  "OwnerIds": [
        105635123466156544,
        145521851676884992,
        341420590009417729
  ],
  "GoogleApiKey": "AIzaSyDSci1sdlWQOWNVj1vlXxxxxxbk0oWMEzM",
  "MashapeKey": "4UrKpcWXc2mshS8RKi00000y8Kf5p1Q8kI6jsn32bmd8oVWiY7",
  "OsuApiKey": "4c8c8fdff8e1234581725db27fd140a7d93320d6",
  "CleverbotApiKey": "",
  "Db": null,
  "TotalShards": 1,
  "PatreonAccessToken": "",
  "PatreonCampaignId": "334038",
  "RestartCommand": {
    "Cmd": "NadekoBot.exe"
	},
  "ShardRunCommand": "",
  "ShardRunArguments": "",
  "ShardRunPort": null,
  "TwitchClientId": null,
  "RedisOptions": null
}

Database

Nadeko saves all settings and data in the database file NadekoBot.db, located in:

  • Windows (Updater): system/data (can be easily accessed through the Data button on the updater)
  • Windows (Source), Linux and OSX: NadekoBot/src/NadekoBot/bin/Release/netcoreapp2.1/data/NadekoBot.db

In order to open it you will need SQLite Browser.

NOTE: You don't have to worry if you don't have the NadekoBot.db file, it gets automatically created once you successfully run the bot for the first time.

To make changes:

  • Shut your bot down.
  • Copy the NadekoBot.db file to someplace safe. (Back up)
  • Open it with SQLite Browser.
  • Go to the Browse Data tab.
  • Click on the Table drop-down list.
  • Choose the table you want to edit.
  • Click on the cell you want to edit.
  • Edit it on the right-hand side.
  • Click on Apply.
  • Click on Write Changes.

nadekodb


Sharding your bot

  • ShardRunCommand
    • Command with which to run shards 1+
    • Required if you're sharding your bot on windows using .exe, or in a custom way.
    • This internally defaults to dotnet
    • For example, if you want to shard your NadekoBot which you installed using windows installer, you would want to set it to something like this: C:\Program Files\NadekoBot\system\NadekoBot.exe
  • ShardRunArguments
    • Arguments to the shard run command
    • Required if you're sharding your bot on windows using .exe, or in a custom way.
    • This internally defaults to run -c Release --no-build -- {0} {1} {2} which will be enough to run linux and other 'from source' setups
    • {0} will be replaced by the shard ID of the shard being ran, {1} by the shard 0's process id, and {2} by the port shard communication is happening on
    • If shard0 (main window) is closed, all other shards will close too
    • For example, if you want to shard your NadekoBot which you installed using windows installer, you would want to set it to {0} {1} {2}
  • ShardRunPort
    • Bot uses a random UDP port in [5000, 6000] range for communication between shards