# 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 shapez Template

game: shapez
requires:
  version: 0.6.6 # Version of Archipelago required for this yaml to work as expected.

shapez:
  ################
  # Game Options #
  ################
  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

  goal:
    # Sets the goal of your world.
    # 
    # - **Vanilla:** Complete level 26.
    # - **MAM:** Complete a specified level after level 26. Every level before that will be a location. It's recommended
    #   to build a Make-Anything-Machine (MAM).
    # - **Even fasterer:** Upgrade everything to a specified tier after tier 8. Every upgrade before that will be a
    #   location.
    # - **Efficiency III:** Deliver 256 blueprint shapes per second to the hub.
    vanilla: 50
    mam: 0
    even_fasterer: 0
    efficiency_iii: 0

  goal_amount:
    # Specify, what level or tier (when either MAM or Even Fasterer is chosen as goal) is required to reach the goal.
    # 
    # If MAM is set as the goal, this has to be set to 27 or more. Else it will raise an error.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 9
    # Maximum value is 500
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-9-500: 0 # random value between 9 and 500
    minimum_mam: 50 # equivalent to 27
    recommended_mam: 0 # equivalent to 50
    long_game_mam: 0 # equivalent to 120
    minimum_even_fasterer: 0 # equivalent to 9
    recommended_even_fasterer: 0 # equivalent to 16
    long_play_even_fasterer: 0 # equivalent to 35

  required_shapes_multiplier:
    # Multiplies the amount of required shapes for levels and upgrades by value/10.
    # 
    # For level 1, the amount of shapes ranges from 3 to 300.
    # 
    # For level 26, it ranges from 5k to 500k.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 100
    10: 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

  allow_floating_layers:
    # Toggle whether shape requirements are allowed to have floating layers (like the logo or the rocket shape).
    # 
    # However, be aware that floating shapes make MAMs much more complex.
    'false': 50
    'true': 0

  randomize_level_requirements:
    # Randomize the required shapes to complete levels.
    'false': 0
    'true': 50

  randomize_upgrade_requirements:
    # Randomize the required shapes to buy upgrades.
    'false': 0
    'true': 50

  randomize_level_logic:
    # If level requirements are randomized, this sets how those random shapes are generated and how logic works for
    # levels. The shuffled variants shuffle the order of progression buildings obtained in the multiworld. The standard
    # order is: **cutter -> rotator -> painter -> color mixer -> stacker**
    # 
    # - **Vanilla:** Level 1 requires nothing, 2-4 require the first building, 5-6 require also the second, 7-8 the
    #   third, 9-10 the fourth, and 11 and onwards the fifth and thereby all buildings.
    # - **Stretched:** After every floor(maxlevel/6) levels, another building is required.
    # - **Quick:** Every Level, except level 1, requires another building, with level 6 and onwards requiring all
    #   buildings.
    # - **Random steps:** After a random amount of levels, another building is required, with level 1 always requiring
    #   none. This can potentially generate like any other option.
    # - **Hardcore:** All levels (except level 1) have completely random shape requirements and thus require all
    #   buildings. Expect early BKs.
    # - **Dopamine (overflow):** All levels (except level 1 and the goal) require 2 random buildings (or none in case of
    #   overflow).
    vanilla: 0
    vanilla_shuffled: 0
    stretched: 50
    stretched_shuffled: 0
    quick: 0
    quick_shuffled: 0
    random_steps: 0
    random_steps_shuffled: 0
    hardcore: 0
    dopamine: 0
    dopamine_overflow: 0

  randomize_upgrade_logic:
    # If upgrade requirements are randomized, this sets how those random shapes are generated
    # and how logic works for upgrades.
    # 
    # - **Vanilla-like:** Tier II requires up to two random buildings, III requires up to three random buildings,
    #   and IV and onwards require all processing buildings.
    # - **Linear:** Tier II requires nothing, III-VI require another random building each,
    #   and VII and onwards require all buildings.
    # - **Category:** Belt and miner upgrades require no building up to tier V, but onwards all buildings, processors
    #   upgrades require the cutter (all tiers), rotator (tier III and onwards), and stacker (tier V and onwards), and
    #   painting upgrades require the cutter, rotator, stacker, painter (all tiers) and color mixer (tiers V and onwards).
    #   Tier VII and onwards will always require all buildings.
    # - **Category random:** Each upgrades category (up to tier VI) requires a random amount of buildings (in order),
    #   with one category always requiring no buildings. Tier VII and onwards will always require all buildings.
    # - **Hardcore:** All tiers (except each tier II) have completely random shape requirements and thus require all
    #   buildings. Expect early BKs.
    vanilla_like: 0
    linear: 50
    category: 0
    category_random: 0
    hardcore: 0

  throughput_levels_ratio:
    # If level requirements are randomized, this sets the ratio of how many levels (approximately) will require either
    # a total amount or per second amount (throughput) of shapes delivered.
    # 
    # 0 means only total, 100 means only throughput, and vanilla (-1) means only levels 14, 27 and beyond have throughput.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    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
    vanilla: 0 # equivalent to -1
    only_total: 50 # equivalent to 0
    half_half: 0 # equivalent to 50
    only_throughput: 0 # equivalent to 100

  complexity_growth_gradient:
    # If level requirements are randomized, this determines how fast complexity will grow each level. In other words:
    # The higher you set this value, the more difficult lategame shapes will be.
    # 
    # Allowed values are floating numbers ranging from 0.0 to 10.0.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0.0
    # Maximum value is 10.0
    0.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.0-10.0: 0 # random value between 0.0 and 10.0

  same_late_upgrade_requirements:
    # If upgrade requirements are randomized, should the last 3 shapes for each category be the same,
    # as in vanilla?
    'false': 0
    'true': 50

  early_balancer_tunnel_and_trash:
    # Makes the balancer, tunnel, and trash appear in earlier spheres.
    # 
    # - **None:** Complete randomization.
    # - **5 buildings:** Should be accessible before getting all 5 main buildings.
    # - **3 buildings:** Should be accessible before getting the first 3 main buildings for levels and upgrades.
    # - **Sphere 1:** Always accessible from start. **Beware of generation failures.**
    none: 0
    5_buildings: 0
    3_buildings: 50
    sphere_1: 0

  lock_belt_and_extractor:
    # Locks Belts and Extractors and adds them to the item pool.
    # 
    # **If you set this to true, achievements must also be included.**
    'false': 50
    'true': 0

  include_achievements:
    # Include up to 45 achievements (depending on other options) as additional locations.
    'false': 0
    'true': 50

  exclude_softlock_achievements:
    # Exclude 6 achievements, that can become unreachable in a save file, if not achieved until a certain level.
    'false': 0
    'true': 50

  exclude_long_playtime_achievements:
    # Exclude 2 achievements, that require actively playing for a really long time.
    'false': 0
    'true': 50

  exclude_progression_unreasonable:
    # Exclude progression and useful items from being placed into softlock and long playtime achievements.
    'false': 0
    'true': 50

  shapesanity_amount:
    # Amount of single-layer shapes that will be included as locations.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 4
    # Maximum value is 1000
    50: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-4-1000: 0 # random value between 4 and 1000

  traps_percentage:
    # The probability of any filler item (in percent) being replaced by a trap.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    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
    none: 50 # equivalent to 0
    rare: 0 # equivalent to 4
    occasionally: 0 # equivalent to 10
    maximum_suffering: 0 # equivalent to 100

  include_whacky_upgrades:
    # Includes some very unusual upgrade items in generation (and logic), that greatly increase or decrease building
    # speeds. If the goal is set to Efficiency III or throughput levels ratio is not 0, decreasing upgrades (aka traps)
    # will always be disabled.
    'false': 50
    'true': 0

  split_inventory_draining_trap:
    # If set to true, the inventory draining trap will be split into level, upgrade, and blueprint draining traps
    # instead of executing as one of those 3 randomly.
    'false': 50
    'true': 0

  toolbar_shuffling:
    # If set to true, the toolbars (main and wires layer) will be shuffled (including bottom and top row).
    # However, keybindings will still select the same building to place.
    'false': 0
    'true': 50

  ###########################
  # 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.
    []
