code: def _load_bot_config(index, config_bundle: BotConfigBundle,
                      looks_config_object: ConfigObject, overall_config: ConfigObject,
                      human_index_tracker: IncrementingInteger) -> PlayerConfig:
      
  
      bot_configuration = PlayerConfig()
      bot_configuration.config_path = config_bundle.config_path
  
      team_num = get_team(overall_config, index)
  
      bot_configuration.team = team_num
  
      # Setting up data about what type of bot it is
      bot_type = overall_config.get(PARTICIPANT_CONFIGURATION_HEADER, PARTICIPANT_TYPE_KEY, index)
      bot_configuration.bot, bot_configuration.rlbot_controlled = get_bot_options(bot_type)
      bot_configuration.bot_skill = overall_config.getfloat(
          PARTICIPANT_CONFIGURATION_HEADER, PARTICIPANT_BOT_SKILL_KEY, index)
  
      if not bot_configuration.bot:
          bot_configuration.human_index = human_index_tracker.increment()
  
      # Setting up the bots name
      bot_configuration.name = config_bundle.name
  
      loadout_config = load_bot_appearance(looks_config_object, team_num)
      bot_configuration.loadout_config = loadout_config
  
      return bot_configuration
docs: Loads the config data of a single bot
      :param index: This is the bot index (where it appears in game_cars)
      :param bot_configuration: A config object that will eventually be transformed and sent to the game.
      :param config_bundle: A config object for a single bot
      :param overall_config: This is the config for the entire session not one particular bot
      :param human_index_tracker: An object of type HumanIndexManager that helps set human_index correctly.
      :return: