Commit Graph

8435 Commits

Author SHA1 Message Date
Duck 7a5acfeceb Core: Make manifest accessible as a world attribute (#6122) 2026-05-09 16:59:05 +02:00
Bryce Wilson 06dc1b897c Pokemon Emerald: Switch to rule builder (#5923) 2026-05-09 16:58:01 +02:00
Ishigh1 4a28888a66 Rule Builder: Implement AtLeast (#6085)
---------

Co-authored-by: Ian Robinson <ianronrobinson@gmail.com>
2026-05-09 16:56:10 +02:00
Christina d0407a74d6 Docs: Added new documentation for DS3's enemy randomization (random_enemy_preset) (#5738)
---------

Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com>
2026-05-09 16:54:20 +02:00
josephwhite e0810022f8 WebHost: Fix adding weighted text options (#5116) 2026-05-09 16:51:56 +02:00
Mysteryem 29a6f40c2b Blasphemous: Increase logic performance (#4585)
---------

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
2026-05-09 16:50:34 +02:00
josephwhite 2bd572c23d Super Mario 64: Basic testing (#4335)
---------

Co-authored-by: Yussur Mustafa Oraji <N00byKing@hotmail.de>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2026-05-09 16:46:53 +02:00
Scipio Wright b59e52a103 Options: Remove the "" from the start inventory examples (#6165)
---------

Co-authored-by: Emily <35015090+EmilyV99@users.noreply.github.com>
2026-05-05 16:14:19 +02:00
Silvris 6d9d340c71 Launcher: display window for failed world loads if any (#6058) 2026-05-05 07:30:47 +02:00
qwint 4486510fbc Options: make template generation log the failing world if one fails (#6176) 2026-05-02 17:53:37 +02:00
Fabian Dill a68109f5a7 WebHost: Add deletion of old content to cleanup function (#6119)
---------

Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
2026-05-01 22:38:46 +02:00
Alchav 234b0581c9 ALttP: Fix starting mail and shield equipment from start inventory (#6154) 2026-05-01 11:30:35 +02:00
Justus Lind 798eeaad91 Muse Dash: Update to DASH AND SHOOT (#6163) 2026-05-01 11:29:59 +02:00
qwint 1875062099 Undertale: Handle zero arg /auto_patch (#5130) 2026-04-29 22:29:41 +02:00
Seldom 9da3c29990 Terraria: fix failing to generate with Calamity enabled and full accessibility on Mechanical Bosses goal #5787 2026-04-29 21:25:38 +02:00
palex00 90b72c0fa5 Docs: Add missing space to plando doc #6060 2026-04-29 21:25:14 +02:00
Mysteryem fd8f3fcd8b The Messenger: Add missing indirect conditions (#6101) 2026-04-29 21:24:41 +02:00
Jérémie Bolduc d36ba62243 The Messenger: Add missing rules for Key of Strength#6124 2026-04-29 21:24:10 +02:00
Ixrec 8ac335f92d Docs: Rewrite get_filler_item_name's docstring to avoid implying it's for filling all unfilled locations #5956 2026-04-29 21:22:35 +02:00
qwint 74a0cd6022 MultiServer: update help doc on auto_shutdown#5917 2026-04-29 21:21:42 +02:00
Sophia Caspe 31f5a6c4ea Docs: Rule Builder Filtered Example Fix (#6152) 2026-04-29 21:19:32 +02:00
River Buizel be9c7b1728 KH2: Update setup_en.md (#6129) 2026-04-29 21:18:59 +02:00
massimilianodelliubaldini a0236b2d74 Jak1: yamlless UT support (#6066) 2026-04-29 21:18:21 +02:00
threeandthreee af39d7926a LADX: doc update (#6050)
* update gfxmod doc

* romless generation

* Update setup_en.md

Co-authored-by: RoobyRoo <thegreenrobby@gmail.com>

---------

Co-authored-by: RoobyRoo <thegreenrobby@gmail.com>
2026-04-29 21:15:57 +02:00
Ian Robinson a48bf0195f Docs: Make RB OptionFilter docs clearer (#6028)
* add more docs for option filters

* reword the whole things

* style guide
2026-04-29 21:14:34 +02:00
Sophira 73856f63c8 Docs: Mention APQuest as a reference (#6000)
The APQuest implementation of an APWorld is incredibly useful and should
really have a mention here.
2026-04-29 21:12:04 +02:00
CookieCat d5cc201138 AHIT: Update FAQ in setup guide (#5975) 2026-04-29 21:11:36 +02:00
Ixrec 4346191c55 Docs: Add a warning to world api.md#events that you want StatusUpdate, not events, for actually sending the goal (#5957) 2026-04-29 21:10:26 +02:00
Mysteryem 0601494e39 Pokemon RB: Fix mutating global item_groups in get_filler_item_name() (#5947)
The `banned_items` variable was the `"Unique"`list within the
`item_groups` global. `get_filler_item_name()` could then mutate
`banned_items` through `banned_items.append("Poke Doll")` and
`banned_items += item_groups["Vending Machine Drinks"]`, causing
the contents of the `item_groups` global to be mutated.

This has been fixed by making `banned_items` a shallow copy of
`item_groups["Unique"]`.
2026-04-29 21:08:16 +02:00
Yussur Mustafa Oraji 78937054de sm64ex: Recommend Flatpak for Linux users (#5897) 2026-04-29 21:07:52 +02:00
UCSA 59674926ed Docs: added an italian translation of the setup guide for Muse Dash (#5834)
* Create setup_it.md

Created an italian translation of the setup for muse dash. I could not find direct references to translating a setup so I am assuming this is the correct way to submit a translation.
While I am a native in italian and I would consider myself fluent in english, I am not a translator so mistakes could have been made.

* Update __init__.py
2026-04-29 21:07:32 +02:00
Oshroth b716096a4b SML2: Send logic affecting randomiser options as slot_data (#5751)
* Send logic affecting randomiser options as slot_data

* SML2 - Universal Tracker support

* Remove debug logs

* Only check generation_is_fake once

---------

Co-authored-by: alchav <alchav@jalchavware.com>
2026-04-29 21:01:23 +02:00
el-u c851eff521 lufia2ac/docs: fix some errors (#5618)
Co-authored-by: Ludwig <80899010+wordfcuk@users.noreply.github.com>
2026-04-29 20:56:11 +02:00
Duck 01033940d6 MMBN3: Add spaces in concatenated string#5689 2026-04-29 20:55:32 +02:00
Mrks 15561e1e2d Generate: Added "quantity" option for player yamls to use multiple times a single yaml (#4948)
* Added  option for player yamls.

* Extended documentation

* Minimized value extraction.

* Added allow_quantity option to host.yaml

* Added  option for player yamls.

* Extended documentation

* Minimized value extraction.

* Added allow_quantity option to host.yaml

* Update settings.py

Co-authored-by: qwint <qwint.42@gmail.com>

* Update Generate.py

Co-authored-by: qwint <qwint.42@gmail.com>

* Added allow_quantity as application argument.

* Quantity > 1, allow_quantity = false -> error instead of silent 1

* Added check for quantity <= 0; reverted settings import change

* Update Generate.py

---------

Co-authored-by: qwint <qwint.42@gmail.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
2026-04-29 20:49:19 +02:00
Ian Robinson 9c78edc764 Rule Builder: Fix rule hash collisions (#6169)
* fix rule hash collisions

* just let the dict do the work
2026-04-29 08:21:09 +02:00
lepideble d2395de9fa Factorio: move communication savegame to user dir (#5646) 2026-04-27 14:06:19 +02:00
black-sliver d41cec6494 CI: update softprops/action-gh-release to v3.0.0 (#6162)
The update will be required once GH drops support for Node 20.

Also enables new options the action has now.
2026-04-26 00:44:48 +02:00
NewSoupVi dc911399fb The Witness: More control over progressive symbols (#3961)
* More control over progressive symbols!

* Cleanup crew

* lol

* Make it configurable how second stage items act on their own

* only let independent symbols work if they're not progressive

* revert defaults

* Better description

* comment for reviewers

* A complicated docstring for a complicated function

* More accurate

* This probably works more generically

* Actually, this would cause other issues anyway, so no need to make this generic yet

* :/

* oops

* Change the system to use collect/remove override so that plando and start inventory work correctly

* Vi stop doing that thing challenge

* Make SecondStateSymbolsActIndependently an OptionSet

* jank

* oop

* this is why we make unit tests I guess

* More unit tests

* More unit tests

* Add note about the absence of Rotated Shapers from the independent symbols optionset

* More verbose description

* More verbose description

* slight reword

* Ruff ruff :3 I am a good puppy <3

* Remove invis dots

* oops

* Remove some unused symbols

* display name

* linecounting -> discard

* Make all progressive chains always work

* Unfortunately, this optimisation is now unsafe with plando :(

* oops

* This is now a possible optimisation

* optimise optimise optimise

* optimise optimise optimise

* fix

* ruff

* oh

* fixed frfr

* mypy

* Clean up the tests a bit

* oop

* I actually like this better now, so I'm doing it as default

* Put stuff on the actual item class for faster collect/remove

* giga oops

* Make proguseful work

* None item left beef

* unnecessary change

* formatting

* add proguseful test to progressive symbols tests

* add proguseful test to progressive symbols tests

* clean up collect/remove a bit more

* giga lmfao

* Put stuff in option groups

* Add the new symbol items to hint system

* bump req client version

* fix soft conflict in unit tests

* fix more merge errors
2026-04-18 18:07:23 +02:00
NewSoupVi 0b38065123 APQuest: Fix Easy Mode boss having too much health to beat (#6146)
* Change the boss' health to 2 in easy mode, adjust boss graphics to reflect this behavior

* graphics formatting
2026-04-18 17:08:21 +02:00
NewSoupVi a6c1347102 The Witness: Make "Early Good Item" an OptionSet allowing Symbols, Doors and Obelisk Keys (#3804)
* New solution to that plando issue

* better

* Another warning

* better comment

* Best of both worlds I guess?

* oops

* Smarter code reuse

* better comment

* oop

* lint

* mypy

* player_name

* add unit test

* oh

* Rebrand time baby

* This fits on one line

* oop

* Update worlds/witness/__init__.py

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>

* mypy

* Reorganize some doors according to medic's suggestions

* This should make it much faster (Thanks Medic)

* Town Doors works because of Church being a check always, Church Entry feels really bad tho

* Only add Desert Entry if there are no control panels stopping you

* No overlap here, so why is it a set

* Idk everything's kinda good without symbol shuffle

* Just make sure, I guess

* This makes way more sense doesn't it

* Oh, this is probably important

* oop

* loc

* oops 2

* ruff

* that was already in there

* Change the door picking a bit further

* some renaming

* slight wording change

* Fix

* Move it all to a new file

* ruff

* mypy

* .

* Make sure we're only adding as many tutorial checks as necessary

* ruff

* These checks aren't necessary, as the final list gets culled to only existing items anyway. It saves CPU cycles, but this is nicer for future compatibility

* Special handling for caves shortcuts

* 120 chars

* Update worlds/witness/place_early_item.py

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>

* Clean up Windmill & Theater cases

* Make early_symbol_item removed instead

* Add early_good_item to presets

* replace double None checks with casts

* That doesn't exist anymore

* Mypy thing

* Update the doors again a bit

* Pycharm pls

* ruff

* forgot one

* oop

* Is it finally right?

* Update options.py

* Fix with new Panel Keys

* Hopefully fix crash when one of the types runs out when the others haven't yet

* oops

* Medic suggestion

* unused import

* Update place_early_item.py

* Update __init__.py

* Update __init__.py

* Update options.py

* Add possible types to option desc

* Make that include all Tutorial (Inside) checks

* Update __init__.py

* Update test_early_good_item.py

* Update test_early_good_item.py

* Slight cleanup

* fix no tutorial locations being picked up by tutorial location size check

---------

Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
2026-04-18 13:52:38 +02:00
NewSoupVi 0a742b6c98 Options: Add more Option unit tests, add generic Option.__eq__, make cull_zeroes available to all OptionCounters #5905 2026-04-18 13:49:19 +02:00
NewSoupVi 66712bbd87 APQuest: Switch to Rule Builder (#5906)
* CachedRuleBuilderWorld

* CachedRuleBuilderWorld

* APQuest Rule Builder finished

* Added comment

Add a rule to check if the player has a Sword to destroy bushes.

* Bump version + typo fix

* Update worlds/apquest/rules.py

Co-authored-by: Ian Robinson <drtchops@users.noreply.github.com>

* Address Tchops' review comments

---------

Co-authored-by: Ian Robinson <drtchops@users.noreply.github.com>
2026-04-18 13:48:32 +02:00
black-sliver 5f9e38b783 Test: add test for unpickling NetUtils enums (#5326)
* Test: add test for unpickling NetUtils enums

This verifies that Utils.ByValue either works or is not required,
and once we drop ByValue, this validates that future Python
versions do not break our Enums again.

* Test: NetUtils enum switch to more direct pickle.dumps

It's probably better to use the direct interface in case
restricted_dumps does some funky stuff in the future.

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>

* Test: NetUtils enum fix import for change

---------

Co-authored-by: Duck <31627079+duckboycool@users.noreply.github.com>
2026-04-18 02:15:37 +02:00
Duck bdde2140b3 Core: Remove worlds.generic.PlandoItem (#6035) 2026-04-18 01:24:25 +02:00
qwint 42d24b4869 HK: add manifest (#6057) 2026-04-18 01:23:19 +02:00
black-sliver 14aa6571de WebHost: Fix: strict suuid converter (#6130)
* WebHost: disallow '=' and whitespace in SUUID and append the correct number of '='

This makes Room IDs unambiguous and avoids breaking if b64decode ever becomes strict.

* Tests, WebHost: add SUUID tests

* Tests, WebHost: add edge cases to SUUID tests
2026-04-13 20:17:27 +00:00
sudo-nano 37d32a10b1 Factorio: Improve English instructions (#5306) 2026-04-13 11:19:23 +02:00
Silvris 0ef2ed5b81 Docs: fix misinformation in tests.md (#6125) 2026-04-09 21:27:39 +02:00
PoryGone b7c4fcb4c6 DKC3: Delete DKC3 (#6097) 2026-04-08 21:35:43 +02:00