# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Trackmania Template

game: Trackmania
requires:
  version: 0.6.6 # Version of Archipelago required for this yaml to work as expected.
  game:
    Trackmania: 1.3.1 # Version of the world required for this yaml to work as expected.

Trackmania:
  ##############
  # Generation #
  ##############
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  ##############
  # Difficulty #
  ##############
  target_time:
    # Determines what time you must drive on a map for it to be considered completed. 
    # You can enter any number from 0 to 300.
    # 
    # 0   = Bronze Medal
    # 100 = Silver Medal
    # 200 = Gold Medal
    # 300 = Author Medal
    # 
    # If you choose a value inbetween two medals, your target time will be a mix of those two medals. 
    # For example, a value of 250 will make your target time halfway between the gold and author medals. 
    # A value of 120 will make your target time 20% of the way from the silver medal to the gold medal.
    # 
    # The quickest medal equal to or below your target time is made your progression medal.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 300
    240: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-300: 0 # random value between 0 and 300

  skip_percentage:
    # The number of map skips in the item pool, calculated as a percentage of the total number of maps.
    # 
    # If a map is broken, impossible, or you get stuck, use the /reroll command in the client to replace
    # the currently loaded map with a new one.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    5: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  discount_percentage:
    # The number of target time discounts in the item pool, calculated as a percentage of the total number of maps.
    # 
    # This item decreases your personal best time used by this plugin by 1.5% (by default). That might not sound like a lot, but it helps!
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    20: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  discount_amount:
    # The strength of PB Discount Items. The discount is calculated by dividing this setting by 10 and multiplying it by the author time. For example, the default setting of 15 becomes 1.5% of the author time.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 100
    15: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-100: 0 # random value between 1 and 100

  difficulties:
    # Difficulty Ratings that maps from Trackmania Exchange are allowed to have.
    ['Beginner', 'Intermediate', 'Advanced', 'Expert']

  ##########################
  # Campaign Configuration #
  ##########################
  medal_requirement:
    # Percentage of maps in each series you must get the progression medal from.
    # 
    # Your progression medal is the quickest medal equal to or below your target time.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 100
    80: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-100: 0 # random value between 1 and 100

  target_progression_chance:
    # Percentage chance that the item received for beating the target time is guaranteed to be a progression item
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    20: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  series_number:
    # Sets the number of series that you must play.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 20
    5: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-20: 0 # random value between 1 and 20

  series_minimum_map_number:
    # Sets the minimum number of maps in each series.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 20
    5: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-20: 0 # random value between 1 and 20

  series_maximum_map_number:
    # Sets the maximum number of maps in each series.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 20
    15: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-20: 0 # random value between 1 and 20

  #######################
  # Map Search Settings #
  #######################
  map_tags:
    # Tags that maps from Trackmania Exchange are allowed to have. If none of these tags are checked, 
    # it will default to allowing all tags.
    []

  map_etags:
    # Tags that maps from Trackmania Exchange are *not* allowed to have.
    ['Kacky', 'Royal', 'Arena', 'FlagRush', 'Puzzle']

  map_tags_inclusive:
    # Enable if maps must have every single tag chosen in Allowed TMX Tags
    'false': 50
    'true': 0

  random_series_tags:
    # Enable to pick one of your tags at random to use for each series, instead of using all tags for each series
    'false': 50
    'true': 0

  has_award:
    # Enable to guarantee every rolled track will have at least one award on Trackmania Exchange.
    'false': 50
    'true': 0

  map_min_length:
    # The minimum length a map can be in seconds.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 2000
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-2000: 0 # random value between 0 and 2000

  map_max_length:
    # The maximum length a map can be in seconds.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 2000
    300: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-2000: 0 # random value between 1 and 2000

  ############
  # Advanced #
  ############
  first_series_size:
    # This is an override setting to manually set the size of the first series. Some games, like Super Metroid, work best with small first areas. This setting is here to enable that!
    # 
    # Set this to zero to have the first series randomized the same as all the others.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 20
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-20: 0 # random value between 0 and 20

  disable_bronze_locations:
    # Disable Bronze Medal times from counting as locations.
    'false': 50
    'true': 0

  disable_bronze_medals:
    # Remove all Bronze Medals from the Item Pool (unless it is the progression medal).
    'false': 50
    'true': 0

  disable_silver_locations:
    # Disable Silver Medal times from counting as locations.
    'false': 50
    'true': 0

  disable_silver_medals:
    # Remove all Silver Medals from the Item Pool (unless it is the progression medal).
    'false': 50
    'true': 0

  disable_gold_locations:
    # Disable Gold Medal times from counting as locations.
    'false': 50
    'true': 0

  disable_gold_medals:
    # Remove all Gold Medals from the Item Pool (unless it is the progression medal).
    'false': 50
    'true': 0

  disable_author_locations:
    # Disable Author Medal times from counting as locations.
    'false': 50
    'true': 0

  custom_series:
    # Define custom search parameters for Trackmania Exchange for each series.
    # 
    # The expected format is a dictionary containing the series number you wish to customize, followed by a list of
    # options and search parameters. The series number may also be "all", to customize all series at once.
    # 
    # The following options may be redefined on a per-series basis to override them:
    # - "map_tags"
    # - "map_etags"
    # - "map_tags_inclusive"
    # - "difficulties"
    # - "has_award"
    # 
    # In addition, the following custom search parameters are available:
    # - "map_ids": A list of specific map IDs to randomly choose between (max 100)
    # - "name": The name of the map must contain the given string (partial search)
    # - "author": The map must be authored by the given user on TMX (by ID, not name)
    # - "map_pack": The map must be in the given map pack on TMX (by ID, not name)
    # - "uploaded_after": The map must have been uploaded after the given date
    # - "uploaded_before": The map must have been uploaded before the given date
    # - "min_length": The author time of the map must be longer than the given time, in milliseconds
    # - "max_length": The author time of the map must be shorter than the given time, in milliseconds
    # - "has_replay": If true, the map must have at least 1 replay
    # 
    # Example:
    # ```
    # custom_series:
    #   all:
    #     has_award: true
    #   1:
    #     map_tags: ["LOL"]
    #     difficulties: ["Beginner", "Intermediate"]
    #     uploaded_after: "2019-12-31"
    #   2:
    #     map_tags: ["Tech"]
    #     min_length: 40000
    #     max_length: 75000
    # ```
    # 
    # All Current Valid Tags:
    # Race,FullSpeed,Tech,RPG,LOL,Press Forward,SpeedTech,MultiLap,
    # Offroad,Trial,ZrT,SpeedFun,Competitive,Ice,Dirt,Stunt,Reactor,
    # Platform,Slow Motion,Bumper,Fragile,Scenery,Kacky,Endurance,Mini,
    # Remake,Mixed,Nascar,SpeedDrift,Minigame,Obstacle,Transitional,Grass,
    # Backwards,EngineOff,Signature,Royal,Water,Plastic,Arena,Freestyle,
    # Educational,Sausage,Bobsleigh,Pathfinding,FlagRush,Puzzle,Freeblocking,
    # Altered Nadeo,SnowCar,Wood,Underwater,Turtle,RallyCar,MixedCar,
    # Bugslide,Mudslide,Moving Items,DesertCar,SpeedMapping,NoBrake,CruiseControl,
    # NoSteer,RPG-Immersive,Pipes,Magnet,NoGrip
    # TM2 Exclusive Tags:
    # Glass,Sand,Cobblestone,ForceAccel
    {}

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
