Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
231 commits
Select commit Hold shift + click to select a range
4f1bb04
Update .gitignore
Rurusachi Dec 12, 2024
5367951
Basic structure for FFX
Rurusachi Dec 17, 2024
6ecde33
Treasures identified + other progress
Rurusachi Jan 16, 2025
8b1afdb
Boss locations
Rurusachi Jan 22, 2025
5868b00
Update regions.py
Rurusachi Jan 22, 2025
f63c3ac
Experimenting with regions/logic + yaml output
Rurusachi Jun 4, 2025
a138e9e
Miscellaneous
Rurusachi Aug 1, 2025
e907980
MultiServer: slight optimizations (#5527)
black-sliver Oct 8, 2025
28ea244
kvui: re-enable settings menu (#4823)
Berserker66 Oct 8, 2025
e355d20
WebHost: Don't show e.__cause__ on the generation error page #5521
NewSoupVi Oct 8, 2025
ff59b86
Docs: More apworld manifest documentation (#5477)
NewSoupVi Oct 9, 2025
30ce74d
core: Add host.yaml setting to make !countdown configurable (#5465)
silasary Oct 10, 2025
d3588a0
Tests: gc.freeze() by default in the test\benchmark\locations.py (#5055)
Mysteryem Oct 10, 2025
6276ccf
LADX: move client out of root (#4226)
Oct 10, 2025
bb457b0
SNI Client: fix that it isnt using host.yaml settings (#5533)
Oct 11, 2025
5390561
MultiServer: Fix breaking weakrefs for SetNotify (#5539)
black-sliver Oct 12, 2025
0c1ecf7
Terraria: Remove `/apstart` from docs (#5537)
Seldom-SE Oct 13, 2025
30cedb1
Core: Limit ItemLink Name to 16 Characters (#4318)
Exempt-Medic Oct 13, 2025
aff98a5
CommonClient: Fix manually connecting to a url when the username or p…
NewSoupVi Oct 13, 2025
5ce71db
LADX: use start_inventory_from_pool (#4641)
Oct 13, 2025
fc404d0
MM2: fix Heat Man always being invulnerable to Atomic Fire #5546
Silvris Oct 14, 2025
bdae7cd
MultiServer: Fix hinting multi-copy items bleeding found status (#5547)
NewSoupVi Oct 14, 2025
28c7a21
Core: Use Better Practices Accessing Manifests (#5543)
nicholassaylor Oct 14, 2025
123acde
Docs: warn HK users not to use BepInEx #5550
BadMagic100 Oct 15, 2025
f6d696e
KH2: Manifest File (#5553)
JaredWeakStrike Oct 15, 2025
cf02e1a
shapez: Fix floating layers logic error #5263
BlastSlimey Oct 15, 2025
03bd59b
Ocarina of Time: Create manifest (#5536)
Rooby-Roo Oct 16, 2025
91439e0
KH2: Manifest eletric boogaloo (#5556)
JaredWeakStrike Oct 16, 2025
406b905
Stardew Valley: Add archipelago.json (#5535)
Jouramie Oct 16, 2025
f756919
CI: Add worlds manifests to build action trigger (#5555)
duckboycool Oct 16, 2025
0718ada
Core: Allow PlandoItems to be pickled (#5335)
duckboycool Oct 17, 2025
da519e7
SC2: fix incorrect preset option (#5551)
Snarkie Oct 17, 2025
3f2942c
Super Mario Land 2: Logic fixes #5258
Alchav Oct 17, 2025
f5f554c
[FF1] Client fix and improvement (#5390)
Rosalie-A Oct 17, 2025
7ead8fd
Civ 6: Add era requirements for boosts and update boost prereqs (#5296)
hesto2 Oct 17, 2025
946f227
[FF1] Added Deep Dungeon locations to locations.json so they exist in…
Rosalie-A Oct 17, 2025
2569c9e
DLC Quest: Enable multi-classification items (#5552)
benny-dreamly Oct 19, 2025
2ac9ab5
Docs: add warning about BepInEx to HK translated setup guides (#5554)
Fafale Oct 19, 2025
00acfe6
WebHost: Update publish_parts parameters (#5544)
nicholassaylor Oct 19, 2025
11d18db
Docs: APWorld documentation, make a distinction between APWorld and .…
NewSoupVi Oct 19, 2025
268c96e
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
Rurusachi Oct 19, 2025
914a534
WebHost: fix gen timeout/exception resource handling (#5540)
black-sliver Oct 20, 2025
708df4d
WebHost: Fix flask-compress to 1.18 for Python 3.11 (to get CI to pas…
NewSoupVi Oct 20, 2025
7cd73e2
WebHost: Fix generate argparse with --config-override + add autogen u…
NewSoupVi Oct 20, 2025
621ec27
Yugioh: Fix likely unintended concatenations (#5567)
duckboycool Oct 20, 2025
d2bf7fd
AHiT: Fix likely unintended concatenation #5565
duckboycool Oct 20, 2025
c199775
Pokemon RB: Fix likely unintended concatenation #5566
duckboycool Oct 20, 2025
e8c8b0d
MM2: fix Proteus reading #5575
Silvris Oct 21, 2025
3105320
Test: check fields in world source manifest (#5558)
black-sliver Oct 21, 2025
4847be9
AHIT: Fix death link timestamps being incorrect (#5404)
CookieCat45 Oct 23, 2025
1983939
LADX: stealing logic option (#3965)
Oct 23, 2025
d68c184
Basic logic and options
Rurusachi Oct 23, 2025
80a91c6
Remove leftover FFXProcedurePatch code
Rurusachi Oct 23, 2025
df3c6b7
KH1: Add specified encoding to file output from Client to avoid crash…
gaithern Oct 23, 2025
966c083
Add APWorld manifest
Rurusachi Oct 23, 2025
4f7f092
setup: check if the sign host is on a local network (#5501)
black-sliver Oct 23, 2025
6b91ffe
WebHost: add missing docutils requirement ... (#5583)
black-sliver Oct 23, 2025
643f61e
Core: Add a ruff.toml to the root directory (#5259)
NewSoupVi Oct 24, 2025
04fe43d
kvui: Fix audio being completely non-functional on Linux (#5588)
NewSoupVi Oct 25, 2025
2bf410f
CI: update appimagetool to 2025-10-19 (#5578)
black-sliver Oct 25, 2025
8837e61
WebHost, Multiple Worlds: fix images not showing in guides (#5576)
black-sliver Oct 25, 2025
41a62a1
SC2: added MindHawk to credits (#5549)
Subsourian Oct 26, 2025
3f139f2
CV64: Fix Explosive DeathLink not working with Increase Shimmy Speed …
LiquidCat64 Oct 26, 2025
4b03061
WebHost: Pin Flask-Compress to 1.18 for all versions of Python (#5590)
NewSoupVi Oct 26, 2025
7cd7111
CI: use rehosted appimage runtime and appimagetool (#5595)
black-sliver Oct 31, 2025
82d675b
Basic logic
Rurusachi Oct 31, 2025
f4f8d40
Remove Airship Secret Destinations
Rurusachi Oct 31, 2025
56466ff
Merge pull request #13 from Rurusachi/ffx
Omnises Oct 31, 2025
d16fb04
Move Djose after Mushroom Rock Road
Rurusachi Nov 2, 2025
8960bf8
Update archipelago.json
Rurusachi Nov 2, 2025
4c852c0
Name celestial weapons
Rurusachi Nov 2, 2025
e0742f2
Update archipelago.json
Rurusachi Nov 2, 2025
898b4fa
Add missing location
Rurusachi Nov 2, 2025
508545c
Update archipelago.json
Rurusachi Nov 2, 2025
27be954
Merge pull request #14 from Rurusachi/ffx
Omnises Nov 3, 2025
db77817
weapon names
Omnises Nov 3, 2025
b603a52
c/p fix
Omnises Nov 3, 2025
97c07e9
CVCotM: Fix determinism with Halve DSS Cards Placed (#5601)
LiquidCat64 Nov 3, 2025
36c09eb
numbering dupilicates
Omnises Nov 5, 2025
5a792ca
armor/weapon differentiation
Omnises Nov 5, 2025
4be2f12
Miscellaneous fixes
Rurusachi Nov 5, 2025
880b8e1
Merge pull request #1 from Omnises/ffx
Rurusachi Nov 5, 2025
5b6714d
chore(documentation): Update deployment example config (#5476)
a-priestley Nov 8, 2025
37b87e3
[Docs] Update docs/network protocol.md/NetworkVersion to include clas…
Quasky Nov 8, 2025
96ae223
CCCharles: Fix editorial issues in documentations (#5611)
lgbarrere Nov 8, 2025
360ad71
CI: downgrade pytest to 8.4.2 (#5613)
black-sliver Nov 8, 2025
ecadb30
Core: Allows Meta.yaml to add triggers to individual yaml's categorie…
Vertraic Nov 8, 2025
b2b0d15
Core: add export_datapackage tool (#5609)
Berserker66 Nov 9, 2025
77808d3
Core: Bump version from 0.6.4 to 0.6.5 (#5607)
Berserker66 Nov 9, 2025
19db589
Game Docs: Fix main setup guide links (#5603)
duckboycool Nov 9, 2025
bec6256
SC2 Tracker: Fix bundled Protoss W/A upgrade display (#5612)
Ziktofel Nov 9, 2025
14f261b
Launcher: add skip_open_folder arg to Generate Template Options (#5302)
gurglemurgle5 Nov 9, 2025
0bf48d7
fix(workflows): Update branch filter in Docker workflow (#5616)
a-priestley Nov 9, 2025
ea40156
Jak 1: Remove PAL-only instructions, no longer needed. (#5598)
massimilianodelliubaldini Nov 11, 2025
088f2cc
SC2: Remove dependency on s2clientprotocol and update protobuf versio…
GreenestBeen Nov 11, 2025
283badf
SoE: add apworld manifest (#5557)
black-sliver Nov 11, 2025
4b2298e
SC2: make worlds._sc2common.bot.proto a regular package (#5626)
black-sliver Nov 11, 2025
dba03e3
Choo Choo Charles: Raise InvalidItemError instead of bare Exception (…
NewSoupVi Nov 12, 2025
e4fd064
Core: don't use union type just to reuse a name (#5246)
beauxq Nov 12, 2025
f62c458
Miscellaneous
Rurusachi Nov 13, 2025
87d3d05
just a pr that can be merged whenever (#2)
Omnises Nov 13, 2025
4a41550
CI: update pytest to 9.0.1 (#5637)
black-sliver Nov 14, 2025
d597bc4
Docs: Add troubleshooting section to kh1_en.md, typo fix in kh1/Optio…
Omnises Nov 14, 2025
5779dda
Core: Deprecate Utils.get_options by July 31st, 2025 (#4811)
NewSoupVi Nov 14, 2025
a2f8877
Core: Fix #5605 - Trigger values being shared by weights.yaml slots (…
Mysteryem Nov 14, 2025
d7eb95a
SC2: Allowing unexcluded_items to affect items excluded by vanilla_it…
MatthewMarinets Nov 15, 2025
cde73c5
SC2: Move race_swap pick_one functionality to mission picking (#5538)
Salzkorn Nov 15, 2025
c408c53
LADX: create manifest (#5563)
Nov 15, 2025
98273dd
SC2: Add Manifest (#5559)
Snarkie Nov 15, 2025
93d3d8b
SC2: Fixing a gap in the ascendant upgrades in the tracker (#5570)
MatthewMarinets Nov 15, 2025
7e8746c
Pokémon R/B: Specify encounter types for Dexsanity hint data (#5574)
snowflav-goob Nov 15, 2025
d098372
Wargroove 1: added archipelago.json (#5591)
FlySniper Nov 15, 2025
34e13c5
SC2: Adjusting and slightly simplifying mission difficulty pool adjus…
MatthewMarinets Nov 15, 2025
75eb266
CV64: Fix not having Clocktower Key3 when placed in a start_inventory…
LiquidCat64 Nov 15, 2025
557a284
SC2: Fix custom mission order if used in weights.yaml (#5604)
Ziktofel Nov 15, 2025
e4b5591
CV64: Fix not having Clocktower Key3 when placed in a start_inventory…
Nov 15, 2025
7422b10
SC2: Fix the goal mission tooltip depending on goal missions' status …
Ziktofel Nov 15, 2025
494381b
Factorio: Add no-enemies mode to worldgen schema (#5542)
silasary Nov 15, 2025
8fbd356
Core: add a local yaml creator GUI (#4900)
Silvris Nov 15, 2025
b828781
Core: add random range and additional random descriptions to template…
Silvris Nov 15, 2025
c2094a9
Muse Dash: Update Song list to Medium5 Echoes (#5597)
DeamonHunter Nov 15, 2025
3bb43b2
Landstalker: Add manifest file (#5629)
Dinopony Nov 15, 2025
5055f87
The Witness: Add archipelago.json (#5481)
NewSoupVi Nov 15, 2025
3ec1e91
Core: Only error in playthrough generation if game is not beatable (#…
NewSoupVi Nov 15, 2025
d6e035b
Update version to 0.1.5
Rurusachi Nov 15, 2025
b3c323e
The Witness: Fix CreateHints spoiling vague hints (#5359)
NewSoupVi Nov 15, 2025
24aa4af
WebHost: Validation for webworld themes (#5083)
josephwhite Nov 15, 2025
5e08c8b
Celeste (Open World): fix tutorial link on game page (#5627)
black-sliver Nov 15, 2025
01e64a2
Doc: Update Mac instructions to instruct the user to make a frozen bu…
silasary Nov 16, 2025
3c819ec
LttP: logic fixes and missing bombs (#5645)
Silvris Nov 16, 2025
595684b
Add missing Al Bhed Primer + some rules
Rurusachi Nov 16, 2025
8dc0a78
Update regions.py
Rurusachi Nov 16, 2025
f32c4ba
Fixed typo + minigame list adjustment
Rurusachi Nov 16, 2025
ca98f8f
Fix Celestial upgrades logic (again)
Rurusachi Nov 20, 2025
32a0210
Factorio: Add connection change filtering functionality (#4997)
af-chacon Nov 21, 2025
fd968d7
Yacht Dice: Add archipelago.json manifest #5658
spinerak Nov 21, 2025
8b737ca
Core: Better error message for invalid range values (#4038)
Zannick Nov 22, 2025
c2f76d8
TWW: Fix client sending duplicate magic meter (#5664)
tanjo3 Nov 23, 2025
2d15c23
SC2: Fix missing brackets in Zerg The Host logic (#5657)
Ziktofel Nov 23, 2025
e60ea17
SC2: Migrate external resources from user repos to sc2 organization (…
Ziktofel Nov 24, 2025
447f8fb
LADX: switch to asyncio.get_running_loop() (#5666)
Nov 24, 2025
e0cbf77
APQuest: Implement New Game (#5393)
NewSoupVi Nov 24, 2025
f9630fa
Core: Add a bunch of validation to AutoPatchRegister (#5431)
NewSoupVi Nov 24, 2025
aa2774a
Tests: Move world dependencies in tests to APQuest #5668
qwint Nov 25, 2025
f3000a8
LADX: Give better feedback during patching (#5401)
Nov 25, 2025
d834ece
SC2: Fix bugs and issues around excluded/unexcluded (#5644)
MatthewMarinets Nov 25, 2025
8ea49e7
Core: updates of requirements (#5672)
Berserker66 Nov 25, 2025
c2c4884
Core: Fix typo in docstring for hint_points in commonclient (#5673)
Berserker66 Nov 25, 2025
23d3192
APQuest: Fix import of Protocol from bokeh instead of typing (#5674)
NewSoupVi Nov 25, 2025
ec2c39e
Docs: Improve the documentation for priority locations to mention de-…
Emerassi Nov 26, 2025
3e16c20
PyCharm: fix the apworld builder run config (#5678)
benny-dreamly Nov 26, 2025
3b721e0
Tests: Move hosting test to APQuest #5671
NewSoupVi Nov 26, 2025
60a192b
ALttP/Factorio: Add spaces in concatenated strings (#5564)
duckboycool Nov 27, 2025
59138d1
Various
Rurusachi Nov 28, 2025
8a1a715
SC2: logic fixes minor bugs (#5660)
MatthewMarinets Nov 29, 2025
a07faca
LADX: catch exception after closing magpie #5687
Nov 29, 2025
b75cce5
TLOZ: Add space in concatenated string #5690
duckboycool Nov 29, 2025
34d362a
CV64/CVCotM: Add spaces in concatenated strings (#5691)
duckboycool Nov 29, 2025
9a755e6
Jak and Daxter: Add space in concatenated string #5692
duckboycool Nov 29, 2025
df48c3e
KH1: Add space in concatenated string #5693
duckboycool Nov 29, 2025
7631242
MLSS: Add space in concatenated string #5694
duckboycool Nov 29, 2025
c05a2ad
Wargroove: Add space in concatenated string #5696
duckboycool Nov 29, 2025
d089b00
Core: Add spaces in concatenated strings #5697
duckboycool Nov 29, 2025
360a138
Civ6: Fix issue with names including civ-breaking characters (#5204)
hesto2 Nov 29, 2025
d88fe99
DS3: Update/Fix Excluded Locations Logging (#5220)
Exempt-Medic Nov 29, 2025
f1aca0f
CVCotM: Add a client safeguard in case the player doesn't have Dash B…
LiquidCat64 Nov 29, 2025
b81be6b
Jak and Daxter: Second attempt at fixing trade tests. #5599
massimilianodelliubaldini Nov 29, 2025
08ea3fe
ALTTP: Fix setting `Beat Agahnim 1` event twice (#5617)
Mysteryem Nov 29, 2025
8ae1a7d
TUNIC: Fix fuse rule in lower zig #5621
ScipioWright Nov 29, 2025
9f9765b
shapez: Fix logic bug with vanilla shapes and floating layers #5623
BlastSlimey Nov 29, 2025
f7e3f4e
[FFMQ] Bugfix: Fix missing logic rule for Frozen Fields > Aquaria access
wildham0 Nov 29, 2025
18cf1bc
sc2: Item group fixes and new item groups (#5679)
MatthewMarinets Nov 29, 2025
146a314
SC2: Update Infested Banshee description to be more clear when the B…
Ziktofel Nov 29, 2025
886cc68
Timespinner: Exclude Removed Location from Web Tracker (#5701)
TriumphantBass Nov 29, 2025
4e608b1
Docs: fix name of "Build APWorlds" component (#5703)
beauxq Nov 30, 2025
7750657
SNIClient: new `SnesReader` interface (#5155)
beauxq Nov 30, 2025
3fa2745
OptionCreator: pre-RC1 fixes (#5680)
Silvris Nov 30, 2025
e8a63ab
weights: Fixing negatives and zeroes disappearing from option dicts u…
MatthewMarinets Nov 30, 2025
ac84b27
CI: update appimage runtime to fix problems with sleep (#5706)
black-sliver Dec 1, 2025
0905e3c
WebHost/Game Guides: Change links to stay on current instance (#5699)
duckboycool Dec 1, 2025
778abc0
UT map page support
Rurusachi Dec 3, 2025
d25abfc
Docs: update apsudoku docs / add links to web build (#5720)
EmilyV99 Dec 5, 2025
58395b5
More UT support
Rurusachi Dec 5, 2025
57a111a
Formatting
Rurusachi Dec 5, 2025
7ca5dab
Slight region level change
Rurusachi Dec 5, 2025
90bbc3a
Update ut.py
Rurusachi Dec 5, 2025
4a0a65d
WebHost: add played game to static tracker (#5731)
Berserker66 Dec 8, 2025
5a6a0b3
sc2: Fixing typos in item descriptions (#5739)
MatthewMarinets Dec 11, 2025
d65fcf2
Launcher: Add workaround for kivy bug for linux touchpad devices (#5737)
BeeFox-sys Dec 12, 2025
646be01
Fix generation on logic 1 (#3)
Andrewki44 Dec 12, 2025
e3f04e3
Merge branch 'ffx' of https://github.com/Rurusachi/Archipelago into ffx
Rurusachi Dec 12, 2025
ce38d8c
Docs: Add 'silasary' to Mac tutorial contributors (#5745)
benny-dreamly Dec 14, 2025
577b958
SC2: Fix Kerrigan logic for active spells (#5746)
Ziktofel Dec 14, 2025
51d5e1a
Launcher: fix shortcuts on the AppImage (#5726)
Silvris Dec 15, 2025
45994e3
Tests: test that every option in a preset is visible in either simple…
Silvris Dec 16, 2025
4477dc7
Core: Bump version from 0.6.5 to 0.6.6 (#5753)
Berserker66 Dec 17, 2025
01e1e1f
WebHost: increase form upload limit (#5756)
Berserker66 Dec 17, 2025
56363ea
OptionsCreator: Respect World.hidden flag (#5754)
silasary Dec 17, 2025
a906f13
APQuest: Fix ValueError on typing numbers/backspace #5757
duckboycool Dec 17, 2025
5fa7191
TLOZ: Add manifest file (#5755)
Rosalie-A Dec 17, 2025
5a8e166
SC2: New maintainership (#5752)
Ziktofel Dec 17, 2025
b42fb77
Factorio: Craftsanity (#5529)
Alchav Dec 18, 2025
0002bb8
TUNIC: Make UT care about hex goal amount #5762
ScipioWright Dec 19, 2025
9305ecb
TUNIC: Update world version to 4.2.7 #5761
silent-destroyer Dec 19, 2025
863f161
TUNIC: Update wording on Mask and Lantern option descriptions #5760
silent-destroyer Dec 19, 2025
ebbdd7b
Satisfactory: Add New Game (#5190)
Jarno458 Dec 19, 2025
55c70a5
EarthBound: Implement New Game (#5159)
PinkSwitch Dec 19, 2025
53e8130
Yugioh: Add space in concatenated string (#5695)
duckboycool Dec 19, 2025
d78b9de
Core: Add datapackage exports to gitignore (#5719)
duckboycool Dec 19, 2025
e54a159
Celeste Open World: speedup module load (#5448)
Silvris Dec 19, 2025
efd8528
MultiServer: Safe DataStorage .pop (#5060)
Jarno458 Dec 19, 2025
ad1b41e
Satisfactory/Timespinner: Added Manifesto (#5764)
Jarno458 Dec 19, 2025
8178ee4
Satisfactory: Fix nondeterministic creation of trap filler items (#5766)
Mysteryem Dec 19, 2025
dd5b253
Yoshi's Island - Fix some small logic issues that were reported, add …
PinkSwitch Dec 20, 2025
dbf2325
KH2: Fix placing single items onto multiple locations in pre_fill (#5…
Mysteryem Dec 20, 2025
c6400b6
Core: Process all player files before reporting errors (#4039)
Zannick Dec 20, 2025
1df38cb
Docs: explicitly document why 2^53-1 is the max size, not ^31 or ^63 …
Ixrec Dec 20, 2025
b8436ed
Party Member Locations & Pilgrimage Goal Change (#4)
Andrewki44 Dec 21, 2025
e950a2f
Paint: Add manifest (#5778)
MarioManTAW Dec 22, 2025
d594d5d
APQuest: Fix import shadowing issue (#5769)
NewSoupVi Dec 22, 2025
16559e7
Core: allow abstract world classes (#5468)
drtchops Dec 24, 2025
5a88641
Docs: Make image path in contributing absolute (#5790)
duckboycool Dec 25, 2025
0229e2d
RecruitSanity (#5)
Andrewki44 Dec 25, 2025
3d3329a
RecruitSanity Slot Data (#6)
Andrewki44 Dec 27, 2025
2dc9de5
Fix typos + Remove basic spheres
Rurusachi Dec 27, 2025
b2fbef8
Temporarily disable S.S. Liki Clasko location
Rurusachi Dec 27, 2025
5e3df20
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
Rurusachi Dec 27, 2025
7844d23
Update credits in docs
Rurusachi Dec 27, 2025
6605126
Fix region order to match client changes
Rurusachi Dec 28, 2025
f742028
Pass recruit_sanity option to UT
Rurusachi Dec 28, 2025
cb3224c
Update version to 0.1.10
Rurusachi Dec 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
15 changes: 9 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,25 @@ on:
- 'setup.py'
- 'requirements.txt'
- '*.iss'
- 'worlds/*/archipelago.json'
pull_request:
paths:
- '.github/workflows/build.yml'
- 'setup.py'
- 'requirements.txt'
- '*.iss'
- 'worlds/*/archipelago.json'
workflow_dispatch:

env:
ENEMIZER_VERSION: 7.1
# NOTE: since appimage/appimagetool and appimage/type2-runtime does not have tags anymore,
# we check the sha256 and require manual intervention if it was updated.
APPIMAGETOOL_VERSION: continuous
APPIMAGETOOL_X86_64_HASH: '29348a20b80827cd261c28e95172ff828b69d43d4e4e18e3fd069e2c8693c94e'
APPIMAGE_RUNTIME_VERSION: continuous
APPIMAGE_RUNTIME_X86_64_HASH: 'e70ffa9b69b211574d0917adc482dd66f25a0083427b5945783965d55b0b0a8b'
APPIMAGE_FORK: 'PopTracker'
APPIMAGETOOL_VERSION: 'r-2025-11-18'
APPIMAGETOOL_X86_64_HASH: '4577a452b30af2337123fbb383aea154b618e51ad5448c3b62085cbbbfbfd9a2'
APPIMAGE_RUNTIME_VERSION: 'r-2025-11-07'
APPIMAGE_RUNTIME_X86_64_HASH: '27ddd3f78e483fc5f7856e413d7c17092917f8c35bfe3318a0d378aa9435ad17'

permissions: # permissions required for attestation
id-token: 'write'
Expand Down Expand Up @@ -139,9 +142,9 @@ jobs:
- name: Install build-time dependencies
run: |
echo "PYTHON=python3.12" >> $GITHUB_ENV
wget -nv https://github.com/AppImage/appimagetool/releases/download/$APPIMAGETOOL_VERSION/appimagetool-x86_64.AppImage
wget -nv https://github.com/$APPIMAGE_FORK/appimagetool/releases/download/$APPIMAGETOOL_VERSION/appimagetool-x86_64.AppImage
echo "$APPIMAGETOOL_X86_64_HASH appimagetool-x86_64.AppImage" | sha256sum -c
wget -nv https://github.com/AppImage/type2-runtime/releases/download/$APPIMAGE_RUNTIME_VERSION/runtime-x86_64
wget -nv https://github.com/$APPIMAGE_FORK/type2-runtime/releases/download/$APPIMAGE_RUNTIME_VERSION/runtime-x86_64
echo "$APPIMAGE_RUNTIME_X86_64_HASH runtime-x86_64" | sha256sum -c
chmod a+rx appimagetool-x86_64.AppImage
./appimagetool-x86_64.AppImage --appimage-extract
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
- "!.github/workflows/**"
- ".github/workflows/docker.yml"
branches:
- "*"
- "main"
tags:
- "v?[0-9]+.[0-9]+.[0-9]*"
workflow_dispatch:
Expand Down
13 changes: 7 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ env:
ENEMIZER_VERSION: 7.1
# NOTE: since appimage/appimagetool and appimage/type2-runtime does not have tags anymore,
# we check the sha256 and require manual intervention if it was updated.
APPIMAGETOOL_VERSION: continuous
APPIMAGETOOL_X86_64_HASH: '29348a20b80827cd261c28e95172ff828b69d43d4e4e18e3fd069e2c8693c94e'
APPIMAGE_RUNTIME_VERSION: continuous
APPIMAGE_RUNTIME_X86_64_HASH: 'e70ffa9b69b211574d0917adc482dd66f25a0083427b5945783965d55b0b0a8b'
APPIMAGE_FORK: 'PopTracker'
APPIMAGETOOL_VERSION: 'r-2025-11-18'
APPIMAGETOOL_X86_64_HASH: '4577a452b30af2337123fbb383aea154b618e51ad5448c3b62085cbbbfbfd9a2'
APPIMAGE_RUNTIME_VERSION: 'r-2025-11-07'
APPIMAGE_RUNTIME_X86_64_HASH: '27ddd3f78e483fc5f7856e413d7c17092917f8c35bfe3318a0d378aa9435ad17'

permissions: # permissions required for attestation
id-token: 'write'
Expand Down Expand Up @@ -127,9 +128,9 @@ jobs:
- name: Install build-time dependencies
run: |
echo "PYTHON=python3.12" >> $GITHUB_ENV
wget -nv https://github.com/AppImage/appimagetool/releases/download/$APPIMAGETOOL_VERSION/appimagetool-x86_64.AppImage
wget -nv https://github.com/$APPIMAGE_FORK/appimagetool/releases/download/$APPIMAGETOOL_VERSION/appimagetool-x86_64.AppImage
echo "$APPIMAGETOOL_X86_64_HASH appimagetool-x86_64.AppImage" | sha256sum -c
wget -nv https://github.com/AppImage/type2-runtime/releases/download/$APPIMAGE_RUNTIME_VERSION/runtime-x86_64
wget -nv https://github.com/$APPIMAGE_FORK/type2-runtime/releases/download/$APPIMAGE_RUNTIME_VERSION/runtime-x86_64
echo "$APPIMAGE_RUNTIME_X86_64_HASH runtime-x86_64" | sha256sum -c
chmod a+rx appimagetool-x86_64.AppImage
./appimagetool-x86_64.AppImage --appimage-extract
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/unittests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest pytest-subtests pytest-xdist
pip install -r ci-requirements.txt
python ModuleUpdate.py --yes --force --append "WebHostLib/requirements.txt"
python Launcher.py --update_settings # make sure host.yaml exists for tests
- name: Unittests
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
*.gb
*.gbc
*.gba
*.nds
*.wixobj
*.lck
*.db3
Expand Down Expand Up @@ -63,6 +64,7 @@ Output Logs/
/installdelete.iss
/data/user.kv
/datapackage
/datapackage_export.json
/custom_worlds

# Byte-compiled / optimized / DLL files
Expand Down
4 changes: 2 additions & 2 deletions .run/Build APWorld.run.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="$ContentRoot$/Launcher.py" />
<option name="PARAMETERS" value="\&quot;Build APWorlds\&quot;" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/Launcher.py" />
<option name="PARAMETERS" value="&quot;Build APWorlds&quot;" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
Expand Down
7 changes: 4 additions & 3 deletions BaseClasses.py
Original file line number Diff line number Diff line change
Expand Up @@ -1721,9 +1721,10 @@ def create_playthrough(self, create_paths: bool = True) -> None:
logging.debug('The following items could not be reached: %s', ['%s (Player %d) at %s (Player %d)' % (
location.item.name, location.item.player, location.name, location.player) for location in
sphere_candidates])
if any([multiworld.worlds[location.item.player].options.accessibility != 'minimal' for location in sphere_candidates]):
raise RuntimeError(f'Not all progression items reachable ({sphere_candidates}). '
f'Something went terribly wrong here.')
if not multiworld.has_beaten_game(state):
raise RuntimeError("During playthrough generation, the game was determined to be unbeatable. "
"Something went terribly wrong here. "
f"Unreachable progression items: {sphere_candidates}")
else:
self.unreachables = sphere_candidates
break
Expand Down
10 changes: 7 additions & 3 deletions CommonClient.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ def update_game(self, game: str, name_to_id_lookup_table: typing.Dict[str, int])
hint_cost: int | None
"""Current Hint Cost per Hint from the server"""
hint_points: int | None
"""Current avaliable Hint Points from the server"""
"""Current available Hint Points from the server"""
player_names: dict[int, str]
"""Current lookup of slot number to player display name from server (includes aliases)"""

Expand Down Expand Up @@ -572,6 +572,10 @@ def is_uninteresting_item_send(self, print_json_packet: dict) -> bool:
return print_json_packet.get("type", "") == "ItemSend" \
and not self.slot_concerns_self(print_json_packet["receiving"]) \
and not self.slot_concerns_self(print_json_packet["item"].player)

def is_connection_change(self, print_json_packet: dict) -> bool:
"""Helper function for filtering out connection changes."""
return print_json_packet.get("type", "") in ["Join","Part"]

def on_print(self, args: dict):
logger.info(args["text"])
Expand Down Expand Up @@ -856,9 +860,9 @@ async def server_loop(ctx: CommonContext, address: typing.Optional[str] = None)

server_url = urllib.parse.urlparse(address)
if server_url.username:
ctx.username = server_url.username
ctx.username = urllib.parse.unquote(server_url.username)
if server_url.password:
ctx.password = server_url.password
ctx.password = urllib.parse.unquote(server_url.password)

def reconnect_hint() -> str:
return ", type /connect to reconnect" if ctx.server_address else ""
Expand Down
Loading
Loading