There are many types of errors which occur from mistakes in the logic blocks in regions/locations which can be hard to track down without clues to find their location. however the structure of the capabilities file includes all the information needed to make this pinpointing process much easier than it currently is. if the name field of the object containing the malformed logic was included in the thrown error finding and resolving the issue in the manifest would be very simple. several examples follow
Minimal mod:
APFIssue.zip
Resulting yaml:
AP_Patchy_Palworld.yaml
Occurs on: Generation
Creating MultiWorld.
Creating Items.
Calculating Access Rules.
Running Item Plando.
Traceback (most recent call last):
File "startup.py", line 133, in run
File "console.py", line 25, in run
File "Generate.py", line 594, in
File "Main.py", line 188, in main
File "Fill.py", line 1047, in resolve_early_locations_for_planned
File "BaseClasses.py", line 530, in get_reachable_locations
File "BaseClasses.py", line 1500, in can_reach
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 443, in
File "BaseClasses.py", line 856, in can_reach_region
File "BaseClasses.py", line 422, in get_region
KeyError: 'Flying Fish Coat'
Minimal mod:
APFIssue.zip
Resulting yaml:
AP_Patchy_Palworld.yaml
Occurs on: Generation
Traceback (most recent call last):
File "startup.py", line 133, in run
File "console.py", line 25, in run
File "Generate.py", line 594, in
File "Main.py", line 76, in main
File "worlds\AutoWorld.py", line 195, in call_all
File "worlds\AutoWorld.py", line 185, in call_single
File "worlds\AutoWorld.py", line 178, in call_single
File "worlds\AutoWorld.py", line 164, in timed_call
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init.py", line 145, in generate_early
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init_.py", line 380, in filter_by_logic
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init.py", line 369, in _keep
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 535, in is_always_false
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 496, in parse
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 261, in parse
ValueError: Unexpected token after expression: ('CAN_ACCESS', 'Flying Fish Coast')
Exception in <bound method APFrameworkWorld.generate_early of <worlds.apf.APFrameworkWorld object at 0x000001FFCA16B230>> for player 1, named Patchy_Palworld.
Minimal mod:
APFIssue.zip
Resulting yaml:
AP_Patchy_Palworld.yaml
Occurs on: Generation
Traceback (most recent call last):
File "startup.py", line 133, in run
File "console.py", line 25, in run
File "Generate.py", line 594, in
File "Main.py", line 76, in main
File "worlds\AutoWorld.py", line 195, in call_all
File "worlds\AutoWorld.py", line 185, in call_single
File "worlds\AutoWorld.py", line 178, in call_single
File "worlds\AutoWorld.py", line 164, in timed_call
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init.py", line 145, in generate_early
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init_.py", line 380, in filter_by_logic
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init.py", line 369, in _keep
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 535, in is_always_false
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 496, in parse
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 259, in parse
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 266, in _parse_expression
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 277, in _parse_and_expr
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 316, in _parse_primary
ValueError: Unexpected token: ('OR', None)
Exception in <bound method APFrameworkWorld.generate_early of <worlds.apf.APFrameworkWorld object at 0x000001B35200F800>> for player 1, named Patchy_Palworld.
Minimal mod:
APFIssue.zip
Resulting yaml:
AP_Patchy_Palworld.yaml
Occurs on: Generation
Traceback (most recent call last):
File "startup.py", line 133, in run
File "console.py", line 25, in run
File "Generate.py", line 594, in
File "Main.py", line 76, in main
File "worlds\AutoWorld.py", line 195, in call_all
File "worlds\AutoWorld.py", line 185, in call_single
File "worlds\AutoWorld.py", line 178, in call_single
File "worlds\AutoWorld.py", line 164, in timed_call
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init.py", line 145, in generate_early
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init_.py", line 380, in filter_by_logic
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init.py", line 369, in _keep
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 535, in is_always_false
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 496, in parse
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 259, in parse
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 266, in _parse_expression
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 274, in _parse_and_expr
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 313, in _parse_primary
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 250, in expect
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 245, in consume
IndexError: list index out of range
Exception in <bound method APFrameworkWorld.generate_early of <worlds.apf.APFrameworkWorld object at 0x00000239016239B0>> for player 1, named Patchy_Palworld.
Minimal mod:
APFIssue.zip
Resulting yaml:
AP_Patchy_Palworld.yaml
Occurs on: Generation
Traceback (most recent call last):
File "startup.py", line 133, in run
File "console.py", line 25, in run
File "Generate.py", line 594, in
File "Main.py", line 76, in main
File "worlds\AutoWorld.py", line 195, in call_all
File "worlds\AutoWorld.py", line 185, in call_single
File "worlds\AutoWorld.py", line 178, in call_single
File "worlds\AutoWorld.py", line 164, in timed_call
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init.py", line 145, in generate_early
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init_.py", line 380, in filter_by_logic
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf_init.py", line 369, in _keep
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 535, in is_always_false
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 495, in parse
File "C:\ProgramData\Archipelago\custom_worlds\apf.apworld\apf\LogicParser.py", line 220, in tokenize
ValueError: Unexpected character at position 1: 'c'
in expression: (can Access: Flying Fish Coast)
Exception in <bound method APFrameworkWorld.generate_early of <worlds.apf.APFrameworkWorld object at 0x000002A0C237F080>> for player 1, named Patchy_Palworld.
There are many types of errors which occur from mistakes in the logic blocks in regions/locations which can be hard to track down without clues to find their location. however the structure of the capabilities file includes all the information needed to make this pinpointing process much easier than it currently is. if the name field of the object containing the malformed logic was included in the thrown error finding and resolving the issue in the manifest would be very simple. several examples follow
Minimal mod:
APFIssue.zip
Resulting yaml:
AP_Patchy_Palworld.yaml
Occurs on: Generation
Minimal mod:
APFIssue.zip
Resulting yaml:
AP_Patchy_Palworld.yaml
Occurs on: Generation
Minimal mod:
APFIssue.zip
Resulting yaml:
AP_Patchy_Palworld.yaml
Occurs on: Generation
Minimal mod:
APFIssue.zip
Resulting yaml:
AP_Patchy_Palworld.yaml
Occurs on: Generation
Minimal mod:
APFIssue.zip
Resulting yaml:
AP_Patchy_Palworld.yaml
Occurs on: Generation