ArchipelagoMW / Archipelago

Archipelago Multi-Game Randomizer and Server
https://archipelago.gg
Other
494 stars 646 forks source link

Bug: Can no longer create an empty Archipelago game player yaml file for spectating, ect. #3702

Closed jacobmix closed 2 months ago

jacobmix commented 2 months ago

What happened?

After updating to 5.0 if i have my Spectator.yaml file in the Players folder. I get this error:

Archipelago (0.5.0) logging initialized on Windows-10-10.0.22631-SP0 running Python 3.11.5 (frozen)
P1 Weights: Spectator.yaml >> Empty Spectator slot

...

Creating MultiWorld.
Creating Items.
Calculating Access Rules.
Running Item Plando.
Running Pre Main Fill.
Filling the multiworld with 436 items.
Uncaught exception
Traceback (most recent call last):
  File "__startup__.py", line 138, in run
  File "console.py", line 17, in run
  File "Generate.py", line 551, in <module>
  File "Main.py", line 275, in main
  File "Fill.py", line 484, in distribute_items_restrictive
  File "Fill.py", line 73, in fill_restrictive
  File "BaseClasses.py", line 457, in has_beaten_game
  File "BaseClasses.py", line 457, in <genexpr>
  File "BaseClasses.py", line 455, in has_beaten_game
  File "Utils.py", line 849, in __getitem__
KeyError: 1
Traceback (most recent call last):
  File "__startup__.py", line 138, in run
  File "console.py", line 17, in run
  File "Generate.py", line 551, in <module>
  File "Main.py", line 275, in main
  File "Fill.py", line 484, in distribute_items_restrictive
  File "Fill.py", line 73, in fill_restrictive
  File "BaseClasses.py", line 457, in has_beaten_game
  File "BaseClasses.py", line 457, in <genexpr>
  File "BaseClasses.py", line 455, in has_beaten_game
  File "Utils.py", line 849, in __getitem__
KeyError: 1

Spectator.yaml

name: "Spectator"

# Used to describe your yaml. Useful if you have multiple files.
description: Empty Spectator slot

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

Archipelago: {}

What were the expected results?

To still be able create, and use a slot for "spectating". No items that impact the run.

Software

Local generation

alwaysintreble commented 2 months ago

i can't reproduce this, it's working fine for me on the release and on latest. are you generating it with anything else and/or do you have unsupported apworlds?

jacobmix commented 2 months ago

All i have is Jak and Daxter The Precursor Legacy, and An Untitled Story (latest Beta v1.0 apworld from Discord) installed.

Archipelago (0.5.0) logging initialized on Windows-10-10.0.22631-SP0 running Python 3.11.5 (frozen)
P1 Weights: Jak1_test.yaml >> Default Jak and Daxter The Precursor Legacy Template
P2 Weights: Spectator.yaml >> Empty Spectator slot
Generating for 2 players, 23340112259711825258 Seed 415051311598741227 with plando: items, connections, texts, bosses
Archipelago Version 0.5.0  -  Seed: 415051311598741227

Found 71 World Types:
 An Untitled Story                       :   34 Items (IDs:      72001 -      72421) |   166 Locations (IDs:      72001 -      72421)
 Jak and Daxter The Precursor Legacy     :   61 Items (IDs:  741000000 -  741999999) |  4236 Locations (IDs:  741000002 -  741037967)
 Adventure                               :   15 Items (IDs:  118000000 -  118000262) |    24 Locations (IDs:  118000004 -  118000210)
 A Hat in Time                           :   58 Items (IDs: 2000300001 - 2000300207) |   455 Locations (IDs: 2000300200 - 2000350075)
 A Link to the Past                      :  146 Items (IDs:          2 -        180) |   286 Locations (IDs:      59758 -    4194341)
 Aquaria                                 :  134 Items (IDs:     698000 -     698133) |   218 Locations (IDs:     698000 -     698217)
 Blasphemous                             :  204 Items (IDs:    1909000 -    1909203) |   306 Locations (IDs:    1909000 -    1909305)
 Bomb Rush Cyberfunk                     :  165 Items (IDs:    2308000 -    2308164) |   247 Locations (IDs:    2308000 -    2308246)
 Bumper Stickers                         :   12 Items (IDs:     595000 -     595011) |   100 Locations (IDs:     595000 -     595099)
 Celeste 64                              :   14 Items (IDs:   13238272 -   13238285) |    46 Locations (IDs:   13238272 -   13239041)
 ChecksFinder                            :    3 Items (IDs:      80000 -      80002) |    25 Locations (IDs:      81000 -      81024)
 Clique                                  :    3 Items (IDs:   69696967 -   69696969) |     2 Locations (IDs:   69696968 -   69696969)
 Castlevania 64                          :   36 Items (IDs:   12992514 -   12992780) |   352 Locations (IDs:   12992513 -   12993153)
 Dark Souls III                          : 1096 Items (IDs:     100000 -     101096) |   890 Locations (IDs:     100000 -     102720)
 Donkey Kong Country 3                   :    8 Items (IDs:   14430208 -   14430215) |   230 Locations (IDs:   14430208 -   14430618)
 DLCQuest                                :   51 Items (IDs:     120000 -     120051) | 18913 Locations (IDs:     120000 - 3829217140)
 DOOM 1993                               :  191 Items (IDs:     350000 -     350190) |   474 Locations (IDs:     351000 -     351473)
 DOOM II                                 :  174 Items (IDs:     360000 -     360495) |   479 Locations (IDs:     361000 -     361478)
 Factorio                                :  227 Items (IDs:     131065 -     131292) |  6993 Locations (IDs:     131072 -     138064)
 Final Fantasy                           :  194 Items (IDs:        256 -        500) |   255 Locations (IDs:        257 -        767)
 Final Fantasy Mystic Quest              :   67 Items (IDs:    4325376 -    4325693) |   266 Locations (IDs:    4325376 -    4325746)
 Heretic                                 :  263 Items (IDs:     370000 -     370534) |  1014 Locations (IDs:     371000 -     372013)
 Hollow Knight                           :  249 Items (IDs:   16777216 -   16777464) |   740 Locations (IDs:   16777216 -   16777955)
 Hylics 2                                :   70 Items (IDs:     200622 -     200692) |   166 Locations (IDs:     200622 -     200787)
 Kirby's Dream Land 3                    :   24 Items (IDs:    7798785 -    7798850) |   876 Locations (IDs:    7798785 -    7800575)
 Kingdom Hearts 2                        :  293 Items (IDs:    1245184 -    1245476) |   724 Locations (IDs:    1245184 -    1245907)
 Links Awakening DX                      :  117 Items (IDs:   10000000 -   10000164) |   255 Locations (IDs:   10000000 -   10003673)
 Landstalker - The Treasures of King Nole:   62 Items (IDs:       4000 -       4070) |   292 Locations (IDs:       4000 -       4346)
 Lingo                                   :  185 Items (IDs:     444400 -     444588) |   872 Locations (IDs:     444400 -     445271)
 Lufia II Ancient Cave                   :  415 Items (IDs:   11272193 -   11304994) |   123 Locations (IDs:   11272192 -   11273124)
 Meritous                                :   23 Items (IDs:     593000 -     593022) |   104 Locations (IDs:     593000 -     593103)
 The Messenger                           :   64 Items (IDs:   11390976 -   11391039) |   136 Locations (IDs:   11390976 -   11391111)
 Minecraft                               :   47 Items (IDs:      45000 -      45100) |   114 Locations (IDs:      42000 -      42113)
 Mario & Luigi Superstar Saga            :  145 Items (IDs:   77771000 -   77771144) |   594 Locations (IDs:    2003971 -    3933858)
 MegaMan Battle Network 3                :  222 Items (IDs:   11735040 -   11735263) |   261 Locations (IDs:   11735040 -   11735309)
 Muse Dash                               :  659 Items (IDs:    2900000 -    2900694) |  1290 Locations (IDs:    2900000 -    2901289)
 Noita                                   :   32 Items (IDs:     110000 -     110031) |   672 Locations (IDs:     110000 -     110671)
 Ocarina of Time                         :  143 Items (IDs:      66001 -      66211) |  1623 Locations (IDs:      67010 -      68705)
 Overcooked! 2                           :   45 Items (IDs:     213701 -     213745) |    43 Locations (IDs:          1 -         44)
 Pokemon Emerald                         :  291 Items (IDs:    3860001 -    3860376) |  1338 Locations (IDs:    3860094 -    3870386)
 Pokemon Red and Blue                    :  207 Items (IDs:  172000001 -  172000506) |   709 Locations (IDs:  172000000 -  172000708)
 Raft                                    :  325 Items (IDs:      47001 -      47325) |   154 Locations (IDs:      48001 -      48155)
 Rogue Legacy                            :   60 Items (IDs:      90000 -      90097) |   584 Locations (IDs:      91000 -      92259)
 Risk of Rain 2                          :   51 Items (IDs:      37001 -      37747) |   954 Locations (IDs:      38000 -      40361)
 Sonic Adventure 2 Battle                :  168 Items (IDs:   16711680 -   16712984) |  2024 Locations (IDs:   16711680 -   16716608)
 Starcraft 2                             :  595 Items (IDs:       1000 -       3812) |   663 Locations (IDs:       1100 -   20005401)
 Shivers                                 :   85 Items (IDs:      27000 -      27112) |   114 Locations (IDs:      27000 -      27113)
 A Short Hike                            :   37 Items (IDs:      82001 -      82037) |   131 Locations (IDs:      83001 -      83132)
 Super Metroid                           :   24 Items (IDs:      83000 -      83023) |   101 Locations (IDs:      82000 -      82170)
 Super Mario 64                          :   29 Items (IDs:    3626000 -    3626214) |   164 Locations (IDs:    3626000 -    3626243)
 Super Mario World                       :   29 Items (IDs:   12320768 -   12320797) |   765 Locations (IDs:   12320768 -   12322885)
 SMZ3                                    :  151 Items (IDs:      84000 -      84223) |   316 Locations (IDs:      85000 -      85510)
 Secret of Evermore                      :  165 Items (IDs:      64000 -      65533) |   913 Locations (IDs:      64000 -      65592)
 Slay the Spire                          :    4 Items (IDs:       8000 -       8003) |    29 Locations (IDs:      19001 -      22002)
 Stardew Valley                          :  858 Items (IDs:     717000 -     727716) |  2937 Locations (IDs:     717001 -     725237)
 Subnautica                              :  104 Items (IDs:      35000 -      35213) |   181 Locations (IDs:      33000 -      34049)
 Terraria                                :  190 Items (IDs:    8257536 -    8257725) |   155 Locations (IDs:    8257726 -    8257880)
 Timespinner                             :  189 Items (IDs:    1337000 -    1337249) |   212 Locations (IDs:    1337000 -    1337249)
 The Legend of Zelda                     :   33 Items (IDs:       7100 -       7132) |   155 Locations (IDs:       7000 -       7154)
 TUNIC                                   :  151 Items (IDs:  509342400 -  509342550) |   302 Locations (IDs:  509342400 -  509342701)
 Undertale                               :   85 Items (IDs:      77000 -      77999) |   122 Locations (IDs:      79001 -      79920)
 VVVVVV                                  :   20 Items (IDs:    2515000 -    2515019) |    20 Locations (IDs:    2515000 -    2515019)
 Wargroove                               :   31 Items (IDs:      52000 -      52030) |    38 Locations (IDs:      53001 -      53038)
 The Witness                             :  261 Items (IDs:     158000 -     160205) |   764 Locations (IDs:     158000 -     159802)
 Yoshi's Island                          :   69 Items (IDs:    3154000 -    3154069) |   235 Locations (IDs:    3166240 -    3166475)
 Yu-Gi-Oh! 2006                          :  172 Items (IDs:    5730001 -    5730255) |   165 Locations (IDs:    5730001 -    5730169)
 Zillion                                 :   12 Items (IDs:    8675309 -    8675320) |  1555 Locations (IDs:    8675309 -    8676863)
 Zork Grand Inquisitor                   :  123 Items (IDs: 9758067000 - 9758067704) |   150 Locations (IDs: 9758067000 - 9758067215)

Creating MultiWorld.
Creating Items.
Calculating Access Rules.
Running Item Plando.
Running Pre Main Fill.
Filling the multiworld with 436 items.
Uncaught exception
Traceback (most recent call last):
  File "__startup__.py", line 138, in run
  File "console.py", line 17, in run
  File "Generate.py", line 551, in <module>
  File "Main.py", line 275, in main
  File "Fill.py", line 484, in distribute_items_restrictive
  File "Fill.py", line 73, in fill_restrictive
  File "BaseClasses.py", line 457, in has_beaten_game
  File "BaseClasses.py", line 457, in <genexpr>
  File "BaseClasses.py", line 455, in has_beaten_game
  File "Utils.py", line 849, in __getitem__
KeyError: 2
Traceback (most recent call last):
  File "__startup__.py", line 138, in run
  File "console.py", line 17, in run
  File "Generate.py", line 551, in <module>
  File "Main.py", line 275, in main
  File "Fill.py", line 484, in distribute_items_restrictive
  File "Fill.py", line 73, in fill_restrictive
  File "BaseClasses.py", line 457, in has_beaten_game
  File "BaseClasses.py", line 457, in <genexpr>
  File "BaseClasses.py", line 455, in has_beaten_game
  File "Utils.py", line 849, in __getitem__
KeyError: 2
Press enter to close.

Jak1_test.yaml:

# 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: "Jak1"

# Used to describe your yaml. Useful if you have multiple files.
description: Default Jak and Daxter The Precursor Legacy Template

game: Jak and Daxter The Precursor Legacy
requires:
  version: 0.5.0 # Version of Archipelago required for this yaml to work as expected.

Jak and Daxter The Precursor Legacy:
  # 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-high: 0
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # - **Locations:** ensure everything can be reached and acquired.
    # - **Items:** ensure all logically relevant items can be acquired.
    # - **Minimal:** ensure what is needed to reach your goal can be acquired.
    locations: 0
    items: 50
    minimal: 0

  enable_move_randomizer:
    # Enable to include movement options as items in the randomizer. Jak is only able to run, swim, and single jump,
    # until you find his other moves. This adds 11 items to the pool.
    'false': 0
    'true': 50

  enable_orbsanity:
    # Enable to include bundles of Precursor Orbs as an ordered list of progressive checks. Every time you collect
    # the chosen number of orbs, you will trigger the next release in the list. "Per Level" means these lists are
    # generated and populated for each level in the game (Geyser Rock, Sandover Village, etc.). "Global" means there is
    # only one list for the entire game.
    # 
    # This adds a number of Items and Locations to the pool inversely proportional to the size of the bundle.
    # For example, if your bundle size is 20 orbs, you will add 100 items to the pool. If your bundle size is 250 orbs,
    # you will add 8 items to the pool.
    'off': 0
    per_level: 50
    global: 0

  global_orbsanity_bundle_size:
    # Set the size of the bundle for Global Orbsanity.
    # This only applies if "Enable Orbsanity" is set to "Global."
    # There are 2000 orbs in the game, so your bundle size must be a factor of 2000.
    1_orb: 00
    2_orbs: 0
    4_orbs: 0
    5_orbs: 0
    8_orbs: 0
    10_orbs: 50
    16_orbs: 0
    20_orbs: 0
    25_orbs: 0
    40_orbs: 0
    50_orbs: 0
    80_orbs: 0
    100_orbs: 0
    125_orbs: 0
    200_orbs: 0
    250_orbs: 0
    400_orbs: 0
    500_orbs: 0
    1000_orbs: 0
    2000_orbs: 0

  level_orbsanity_bundle_size:
    # Set the size of the bundle for Per Level Orbsanity.
    # This only applies if "Enable Orbsanity" is set to "Per Level."
    # There are 50, 150, or 200 orbs per level, so your bundle size must be a factor of 50.
    1_orb: 0
    2_orbs: 0
    5_orbs: 0
    10_orbs: 50
    25_orbs: 0
    50_orbs: 0

  fire_canyon_cell_count:
    # Set the number of orbs you need to cross Fire Canyon.
    #
    # 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-high: 0

  mountain_pass_cell_count:
    # Set the number of orbs you need to reach Klaww and cross Mountain Pass.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    45: 50
    random: 0
    random-low: 0
    random-high: 0

  lava_tube_cell_count:
    # Set the number of orbs you need to cross Lava Tube.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    72: 50
    random: 0
    random-low: 0
    random-high: 0

  completion_condition:
    # Set the goal for completing the game.
    cross_fire_canyon: 0
    cross_mountain_pass: 0
    cross_lava_tube: 0
    defeat_dark_eco_plant: 0
    defeat_klaww: 0
    defeat_gol_and_maia: 50
    open_100_cell_door: 0

  # 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 these items.
    {}

  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.
    []
alwaysintreble commented 2 months ago

ok yeah that broke so it's an issue with that world

alwaysintreble commented 2 months ago

it's because the world has a completion_condition option which is forcefully overriding the normal completion_condition dict due to the old options system. this is fine to exist after the old system gets completely removed, so i don't really think core should do anything about it tbh.

Exempt-Medic commented 2 months ago

This is a problem with the J&D world, not AP.