constructor(coreChatSystem, coreFactSystem, options) {
    this.coreChatSystem = coreChatSystem;
    this.coreFactSystem = coreFactSystem;
    this.plugins = [];

    // This is a kill switch for filterBySeen which is useless in the editor.
    this.editMode = options.editMode || false;
    this.conversationTimeout = options.conversationTimeout;
    this.historyCheckpoints = options.historyCheckpoints;
    this.scope = options.scope || {};

    // Built-in plugins
    this.loadPlugins(`${__dirname}/../plugins`);

    // For user plugins
    if (options.pluginsPath) {
      this.loadPlugins(options.pluginsPath);
    }

    if (options.messagePluginsPath) {
      Message.loadPlugins(options.messagePluginsPath);
    }
  }
This a class which has global settings for all bots on a certain database server,
 so we can reuse parts of the chat and fact systems and share plugins, whilst still
 being able to have multiple bots on different databases per server.