Commit Graph
8494 Commits
Author SHA1 Message Date
James White 21e728c38d CommonClient: reset session state when connecting to a different room or slot (#6231) 2026-08-16 10:24:28 +02:00
Bryce Wilson c6d9411814 BizHawkClient: Fix compatibility for Lua 5.5+ (#6200) 2026-08-16 10:22:31 +02:00
qwint a0ca21b8d9 HK: Various silly fixes (#6276) 2026-08-16 09:42:13 +02:00
qwint 5b155bcc48 CommonClient: Match ServerLabel's team to other UIs (#5875) 2026-08-16 09:38:37 +02:00
massimilianodelliubaldini e3a60683e5 Jak and Daxter: Update client to use PME 2.0.x. (#6393) 2026-08-15 21:45:54 +02:00
qwint ce8186010d Core: Add helper for unescape kivy strings + cleanup its usages (#6023) 2026-08-14 23:39:55 +02:00
black-sliver fe5b49e189 Core: limit depth of received JSON to 16 (#6378)
* Core: limit depth of received JSON to 16

This applies to both MultiServer and CommonClient.

This means DataStorage default is limited to 14 levels,
DataStorage op arg is limited to 13 levels.

* Core: fix JSON depth limit check for escape codes

* Core: cythonize JSON depth limit check
2026-08-10 11:03:01 +02:00
Colin 3359cacedd CommonClient: Ignore invalid deathlink packets (#6376) 2026-08-08 00:39:41 +02:00
Alchav 0f76d35a8c ALttP: Fix Randomzie Enemy Damage (#6296) 2026-08-06 07:14:01 +02:00
Ishigh1 d62772abc6 Core: Fix Open Patch (#6356) 2026-08-05 07:59:08 +02:00
CosmicWolf 408954c60b Factorio: Locale fixes (#6237) 2026-08-05 02:56:52 +02:00
qwintandJérémie Bolduc f328ce7e7d Options: add typing and remove unnecessary deepcopy call in OptionCounter (#6321)
Co-authored-by: Jérémie Bolduc <[email protected]>
2026-08-05 00:26:55 +02:00
Jérémie Bolduc 8b3557cd6c The Messenger: Various small logic fix (#6337) 2026-08-05 00:24:35 +02:00
qwint e759562506 Setup: bump cx-Freeze to fix frozen linux shortcuts (#6365) 2026-08-05 00:18:52 +02:00
Duck 838d55327e MultiServer: Update hint_points when hint cost or check points is changed (#6219) 2026-08-05 00:12:23 +02:00
Jacob Lewis 26e4574252 ALTTP: Reflowed headers in docs and explicitly added what client is used. (#5758) 2026-08-04 08:10:43 +02:00
Fabian Dill 53bc3754c0 Core: remove per_slot_randoms and DeprecateDict (#6186) 2026-08-03 17:16:25 +02:00
Phaneros 18c3b19cfa Starcraft 2: Moving pool filter to use a counter instead of a dict (#6366) 2026-07-30 23:39:51 +02:00
Severencir b34b84aa8f Starcraft 2: item pool reduction overcounting fix (#6318) 2026-07-30 15:25:11 +02:00
Jérémie Bolduc 26792ef113 The Messenger: Fix shop price not correctly handled by UT (#6340) 2026-07-30 15:19:06 +02:00
Fabian Dill a7abc86eb1 Core: update platformdirs (#6328) 2026-07-30 15:18:21 +02:00
CodeGorilla abb6f2647e Tests: Force race mode off in test_generate_yaml (#6349) 2026-07-30 15:17:49 +02:00
Phaneros 72dbfcc1d3 SC2: Disabling UT as it doesn't work (#6346) 2026-07-20 11:49:12 +02:00
qwint 318a4ffa5e Build APWorlds: fix moved import (#6343) 2026-07-19 22:48:14 +02:00
Silvris 2cde25ffd0 Unittests: allow running unittests for specific worlds when using unittest runner (#6338) 2026-07-18 21:53:35 +02:00
Ishigh1 6875f9da90 RuleBuilder: Optimize Has("Item", 0) (#6228) 2026-07-18 12:32:54 +02:00
Katelyn Gigante bbd5fc3822 Launcher: Delete unused functions (#6332)
These were moved to LauncherComponents in #6115,  but due to a bad merge resolution, the originals were left behind.
2026-07-18 11:28:22 +02:00
Berserker ae7c5609cd Launcher: fix world import ordering conflict between #6115 and #6058 2026-07-18 04:53:04 +02:00
Fabian Dill c8cf2c4112 Launcher: Loading Screen (#6115) 2026-07-18 02:38:34 +02:00
Katelyn GiganteandNicholas Saylor feab54daec Core: Add parameter to visualize_regions to display Rule Builder explanations on exits (#6184)
Co-authored-by: Nicholas Saylor <[email protected]>
2026-07-17 20:08:20 +02:00
g0goTAS 13f1929286 Core: Pre Output Steps Log (#6047) 2026-07-17 20:07:07 +02:00
Patrick Wehbe c6a7c0c193 Docs: add guidance for choosing minimum/maximum_ap_version (#6265) 2026-07-17 20:06:10 +02:00
James White 4efce428a4 Core: Adjust YAML error message to clarify the name is not the cause of the error (#6267) 2026-07-17 20:03:52 +02:00
Doug Hoskisson 6907d89968 Core: fix Set import (#6235)
mistake made in pr #5048
https://github.com/ArchipelagoMW/Archipelago/pull/5048#discussion_r3328989050
2026-07-17 20:03:20 +02:00
James White 9c80dc6257 Core: Allow running unit tests scoped to specific worlds (#6290)
This allows the unit tests to be run on specific worlds only, it works by using an environment variable AP_TEST_WORLDS which is a comma separated list of world directories.
2026-07-17 20:01:28 +02:00
dependabot[bot] c311685064 WebHost: Bump mistune from 3.2.1 to 3.3.0 in /WebHostLib #6324 2026-07-16 00:04:19 +02:00
f110a7efbc Gauntlet Legends: Implement New Game (#3499)
* Update GauntletLegendsClient.py

* Continuation of obelisk update

* APPP Implementation Groundwork.

* Continuation of APPP Implementation

* Create Pain.asm

* ROM verification modified since crc32 hash can no longer be calculated.

* Initial upload of barrel/chest locations.

* Finished adding and naming all chests/barrels.

* Continued locations.

* Added new yaml options

* Work on mirror shards

* Python 3.8 compatibility

* Finalized location names. Fixed lambda bug.

* v1.0

* Removed excess Docs and Changed item counts.

* Update Archipelago Unittests.run.xml

* Started working on Docs.

* Updated item arrays for client

* Fix client bugs

* Flake8 fixes + Yaml fix

* Update speed boots

* v1.1

* Update GauntletLegendsClient.py

* Update GauntletLegendsClient.py

* Update GauntletLegendsClient.py

* Update GauntletLegendsClient.py

* v1.0.4

* Initial Ruff format

* Formatting part-2

* More formatting + Doc changes

* Updated Docs

* Move client to root

* Update Client Name

* Make Imports Relative

* Add new yaml options + rename obelisks

* v1.1 Initial Upload

* v1.1.0 + some additions

* Client Update

* Client Updates

* pre-v1.1.1

* Update GauntletLegendsClient.py

* pre-1.2

* 1.2.0

* v1.2.1

* Client fixes

* v1.3.0

* v1.4.0

* v1.4.1

* Merged Changes

* Experimental

* pre-v1.5.0

* Changes

* v1.5.0

* Update GauntletLegendsClient.py

* Death Update

* pre v1.5.1

* Obelisk rule changes

* pre-v1.5.1

* Update GauntletLegendsClient.py

* v1.5.1

* v1.5.1

* Update GauntletLegendsClient.py

* Small fix

* Update GauntletLegendsClient.py

* v1.5.2

* pre-v1.6.0

* pre-v1.6.0

* v1.6.0

* Update

* Update GauntletLegendsClient.py

* Test

* pre-v1.6.0

* Client Updtaes

* Update GauntletLegendsClient.py

* Update GauntletLegendsClient.py

* Update GauntletLegendsClient.py

* Update Rom.py

* Update GauntletLegendsClient.py

* Update Rom.py

* Added Logging on stage enter

* v1.6.2

* v1.6.2

* Update Rom.py

* Update GauntletLegendsClient.py

* v1.6.3

* Small Update

* Update GauntletLegendsClient.py

* Update GauntletLegendsClient.py

* Update GauntletLegendsClient.py

* Changes ready for review

* Update Rom.py

* Remove root client

* Update inno_setup.iss

* Update client

* Initial Review Refactor

* Update Arrays.py

* Review refactor

* Update __init__.py

* Small tweaks after test generations

* Update GauntletLegendsClient.py

* Implement new check_locations() function

* Add name for Skorn to level_names Dict

* Fix for #4671

* Update __init__.py

* Adjust item frequency + Place 50% of filler as local

* Oops I modified the itempool after create_items teehee

* Update __init__.py

* Check MD5 hash before patching ROM

* Update __init__.py

* Fix get_filler_item_name()

* Update MD5 check to built in method in FilePath

* Update Rom.py

* Update worlds/gl/Rom.py

Co-authored-by: qwint <[email protected]>

* WIP Generation fixes

* v1.7.1

* Update Archipelago Unittests.run.xml

* 0.7.2

* Update GauntletLegendsClient.py

* Review Edits

* Update World description

* Fuzz fixes

* Update GauntletLegendsClient.py

* Make static data immutable

* Update option comparisons since no longer a Choice

* Update worlds/gl/Rom.py

Co-authored-by: Doug Hoskisson <[email protected]>

* Update __init__.py

* Initial Update commit

* Progress

* Remove un-used import + Add manifest

* Add missing docstring for client command

* Progress

* pre-v2.0.0-BETA

* Updates

* Progress

* Working Generations

* Working IN-Game

* v2.0.0-BETA

* Create archipelago.json

* v2.0.1

* v2.0.1 FINAL

* pre v2.0.2

* Delete report.json

* Cleanup

* pre v2.0.2

* v2.0.2

* PR Ready

* Update Items.py

* Delete fuzz.py

* Update Items.py

* Update GauntletLegendsClient.py

* Fix scouting disabled locations

* Client Updates

* v2.0.3

* Increment World Version

* Docstring + slot_data updates

* Option name update + Remove redundant option

* Code Cleanup

* Trenches is level 24

* Frequencies

* More cleanup and removal of stale code. MISSING BASEPATCH

* v2.1.0

* Minor enemy changes

* Small fix

* Update Rom.py

* v2.1.1

* Small fixes

* Update basepatch.bsdiff4

* Update GauntletLegendsClient.py

* Socket error clarity

* Delete settings.local.json

* Update GauntletLegendsClient.py

* v2.1.2 fixes

* Boss portal fix

* Small client fix + Item Frequencies

* Update archipelago.json

* Fix for games playing with max difficulty lower than 4 not sending locations

* Update archipelago.json

* v2.1.5

* Fix for Chimera's lair mirror shard

* Update archipelago.json

* Mod Re-Base + Queue limits + Item Receiving fixes

* Options cleanup and newlines for some files

* Include v2.x features in docs

* Make sure players has at least 1 item

* v2.1.6

* Update archipelago.json

* Review Edits + Client Tweaks

---------

Co-authored-by: qwint <[email protected]>
Co-authored-by: Doug Hoskisson <[email protected]>
Co-authored-by: Fabian Dill <[email protected]>
Co-authored-by: NewSoupVi <[email protected]>
2026-07-11 19:26:27 +02:00
qwint f9c5868f7b ModuleUpdate: Add core requirements.txt as a constraint file to pip calls (#6309)
* Add core requirements.txt as a constraint file to pip calls

* remove --upgrade as requested

* Update ModuleUpdate.py
2026-07-11 18:27:58 +02:00
Doug Hoskisson fde71f66f3 Core: typing and cleaning, mostly in Fill.py (#4459)
* Core: typing and cleaning, mostly in `Fill.py`

* fix typing of things we get out of plando blocks

* clean getting multiworld from kwargs
add a list type
clean indentation

* fix issues with merge conflict resolution

* some things found after merge
2026-07-11 13:26:19 +02:00
e6e0bc3042 WebHost: Config option for custom port ranges v2 (#6009)
* Added ability to define custom port ranges the WebHost will use for game servers, instead of pure random.

* - Added better fallback to default port range when a custom range fails
- Updated config to be clearer

* Added ability to define custom port ranges the WebHost will use for game servers, instead of pure random.

* - Added better fallback to default port range when a custom range fails
- Updated config to be clearer

* Updated soft-fail message

* Removed dead import from customserver.py

* Update requirements.txt

Settings requirements to main core branch

* fix what reviewers said and add some improvements

* remove unused argument

* try fixing test with try

* use yaml lists instead of string for config

* fix value type bug on ephemeral type

* reuse sockets with websockets api instead of opening and closing them

* add used ports cache and filter used ports when looking for ports

* fix port randomizer

* Apply suggestions from code review

Co-authored-by: Duck <[email protected]>

* fix some reviews

* use weights for random port and remove more-itertools

* fix net_connections not working on macOS

* rename variables and functions

* lazy init `get_used_ports`

* change `game_ports` to be `tuple`

* fix last_used_ports not being updated locally

* fix random choices and move game_port conversion into tuple

* Apply suggestions from code review

Co-authored-by: Duck <[email protected]>

* use a named tuple on parse_game_ports

* only use ranges

* do it the duck way

* this should check all usable ports before failing

* fix while loop

* add return type to weighted random

* Update WebHostLib/customserver.py

Co-authored-by: black-sliver <[email protected]>

* simplify tuple conversion check

* add tests

* reformat file and change `create_random_port_socket` test

* add more test cases for parse_game_ports

* try to prevent busy-looping on create random port socket when doing test

* simplify parse game port tests to one assertListEqual

* make the range lesser for port test

* reduce range on macOS

* Apply suggestions from code review

Co-authored-by: black-sliver <[email protected]>

* Update WebHostLib/customserver.py

Co-authored-by: black-sliver <[email protected]>

* Apply suggestions from code review

Co-authored-by: Doug Hoskisson <[email protected]>

* remove unused import

* Update WebHostLib/customserver.py

Co-authored-by: Doug Hoskisson <[email protected]>

* use generator expressions

* check for 0-tuple

* use some kind of shuffled queue

* update tests

* refactor new port handling into a class (#1)

* change time to monotonic

* Update docs/webhost configuration sample.yaml

Co-authored-by: black-sliver <[email protected]>

* add psutil 7.2.2 as requirement

* Update WebHostLib/requirements.txt

Co-authored-by: black-sliver <[email protected]>

---------

Co-authored-by: Lexipherous <[email protected]>
Co-authored-by: Duck <[email protected]>
Co-authored-by: black-sliver <[email protected]>
Co-authored-by: Doug Hoskisson <[email protected]>
2026-06-20 17:36:18 +02:00
Emily 5ccef9802a WebHost: fix Authors on supported game page (#6218) 2026-06-07 18:21:30 +02:00
CosmicWolf 09aba95c03 Factorio: Fixed a needlessly small bug that does not affect gameplay (#6147) 2026-06-03 17:53:37 +02:00
Ishigh1 2a8ebe2399 Core+RB: Make has_from_list, has_from_list_unique, has_group and has_group_unique return True if count <= 0 and list is empty (#6240) 2026-06-03 08:20:04 +02:00
Ishigh1 ad0af18f51 Rule Builder: Resolve empty and() to True_() instead of False_()(#6239) 2026-06-02 09:10:43 +02:00
Justus Lind 65277a50ce Muse Dash: Update to Touhou Mugakudan -V- (#6234) 2026-06-01 22:38:23 +02:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> d241829585 Bump mistune from 3.2.0 to 3.2.1 in /WebHostLib (#6185)
Bumps [mistune](https://github.com/lepture/mistune) from 3.2.0 to 3.2.1.
- [Release notes](https://github.com/lepture/mistune/releases)
- [Changelog](https://github.com/lepture/mistune/blob/main/docs/changes.rst)
- [Commits](https://github.com/lepture/mistune/compare/v3.2.0...v3.2.1)

---
updated-dependencies:
- dependency-name: mistune
  dependency-version: 3.2.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-31 23:55:57 +02:00
b24b3d10b6 Factorio: Locale changes (#5908)
---------

Co-authored-by: Joris Santen <[email protected]>
Co-authored-by: lepideble <[email protected]>
2026-05-31 01:49:39 +02:00
Fabian Dill 787ddc400c Core: Bump version from 0.6.7 to 0.6.8 (#6114) 2026-05-27 03:26:30 +02:00
qwint 545171f3f4 Core: reset log level when using pyximport (#6212) 2026-05-20 09:12:54 +02:00
Jérémie Bolduc d0abfeb88b The Messenger: Fix portal shuffle logic not using unlocked portals (#6194) 2026-05-18 13:53:48 +02:00