Commit Graph
846 Commits
Author SHA1 Message Date
miniduikboot a161aa7045 Add basic implementation of judge overruling 2026-08-30 18:48:37 +02:00
miniduikboot caab877c80 Add support for RoleOptions v11
This is bare minimum bringup for AU v18
2026-08-30 18:48:37 +02:00
miniduikboot 202b955db1 Deserialize gamecode as packed in PackedGameDataTo (#738)
* Deserialize gamecode as packed in PackedGameDataTo

Most packets use a normal 32 bit int but not PackedGameDataTo. Instead,
Innersloth decided to waste a byte by using WritePacked. As v2 game
codes are always negative, this is less efficient, but alas.

It was documented in the pseudocode and I didn't spot the difference
when reviewing the implementation, so I made this mistake when
deduplicating this code.

Test plan:
- Start EHR on at least 2 clients
- Use the game mode "Natural Disasters"
- Observe that pixelated blobs are visible for all players, not just the host

* uopt: stop parsing code to string

* Address review comments
v1.10.7
2026-08-14 19:47:39 +02:00
NikoCat233andminiduikboot 1cd298608a Support new http matchmaking (#685)
* Add GameFilters interface

* Add Newtonsoft.Json

Used by InnerSloth

* Port 2025.3.25 Data

* Generate OptionNames

* Fix missing CategorizedOptionNames

* Remove Newtonsoft.Json

* Add missing GameFilterList

* Basic support for new filters

* Add FiltersController

Server need to tell clients its filters

* Add Tag filter in filtergames

* Add GameTags in legacy game options

* Correctly deserialize Filters

* Minor text fixes

---------

Co-authored-by: miniduikboot <mini@duikbo.at>
2026-08-13 22:03:04 +02:00
miniduikboot f0689ac2e2 Bump Hazel to 1.0.1 (#735)
This pulls in https://github.com/Impostor/Impostor.Hazel/pull/4
2026-07-01 19:02:24 +02:00
2cad4ffa14 Added an RPC packet size anti-cheat check with config (#731)
* Added an RPC packet size anti-cheat

* Support PackedGameDataTo

* Move packet size check to HazelConnection

* Update PacketSizeLimit to 1153 and add anti-cheat docs

* Change default to value determined on officials

Thanks Niko for doing the research
---------

Co-authored-by: miniduikboot <mini@duikbo.at>
Co-authored-by: NikoCat233 <139348239+NikoCat233@users.noreply.github.com>
2026-06-21 11:17:05 +02:00
miniduikboot e9437e781b Add compat versions for 17.4
Mobile has a different version than PC for reasons unknown at the
moment, probably related to ads.
2026-06-16 06:05:34 +02:00
miniduikboot 06f4f8bf00 Gate PackedGameDataTo behind AC check v1.10.6 2026-05-24 20:36:02 +02:00
NikoCat233 2cb9c648f3 Add support for PackedGameDataTo 2026-05-24 20:36:02 +02:00
miniduikboot b30775c2fc Add compat version for 17.3 (#724)
* Add compat version for 17.3

* Add compat version for 17.3.1
2026-04-20 22:00:32 +02:00
miniduikboot 764c42eae3 Merge pull request #723 from miniduikboot/fix/aof-concdict
Fix race conditions in Game.Data
2026-03-30 22:30:37 +02:00
miniduikboot 4244f39640 Rename _allObjectsFast to _allObjects
Done because there is no second datastructure anymore
2026-03-27 23:32:57 +01:00
miniduikboot 069ec446cd Switch to concurrent dictionary
PR proposed in #722 doesn't solve all issues, now Nullrefs show up.

Also drop _allObjects as it's never read.
2026-03-26 23:58:45 +01:00
miniduikboot 98783e5b42 Merge pull request #717 from Impostor/feature/17.2.2
Add 17.2.2 version
2026-03-22 23:06:45 +01:00
miniduikboot fd12cd1a39 Add 17.2.2 version
Only changes are ad related, and officials allow crossplay
2026-03-17 20:18:25 +01:00
miniduikboot 139f2334a2 Merge pull request #716 from Impostor/feature/17.2-hotfix
Add 17.2 hotfix version
2026-03-04 20:31:58 +01:00
miniduikboot 60371d538c Add 17.2 hotfix version 2026-02-19 21:34:54 +01:00
miniduikboot 6e68747fe0 Merge pull request #715 from Impostor/feature/17.2
Add 17.2 version
2026-02-18 07:24:47 +01:00
miniduikboot 3736b37831 Add 17.2 version
https://www.innersloth.com/announcing-among-us-x-ace-attorney-again/
2026-02-18 07:19:36 +01:00
miniduikboot eeb85e4abc Merge pull request #712 from miniduikboot/feature/aumi-host-chat-cmds
Add support for host chat cmds
2026-02-18 07:17:58 +01:00
miniduikboot fd33a892cd Reduce warnings about +25
As Innersloth documented it in their mod info document, assume it's here
to stay, so warn about it less heavily
2026-01-27 22:41:42 +01:00
miniduikboot fbdb708941 Implement host chat commands
On January 21 Innersloth released a document that details a few new
features. One of these are host chat commands: any chat message that
starts with "/cmd" is forwarded to the host and to the host only.

Implement this feature in Impostor too for implementation parity.

For more info, see their GitHub page:
https://github.com/Innersloth-LLC/AmongUsModdingInformation
2026-01-27 22:17:03 +01:00
miniduikboot 9a60ce3d56 Merge pull request #708 from Impostor/feature/17.1
Bump compatversion to support 17.1
2026-01-27 20:38:36 +01:00
miniduikboot d7601e8057 Add another mobile-only hotfix
From their Discord:

Admin has pushed hotfix v17.1.2 for mobile players! minor changes to the ad rewards to the daily cap (subject to future change) and updated the screen to clarify when the daily cap is reset.
2025-12-11 22:20:17 +01:00
miniduikbootandNiko233 0e9454ecdf Bump compatversion to support 17.1.1
https://www.innersloth.com/ad-rewards-v17-1-1/

Thanks to Niko for reminding me about this

Co-Authored-By: Niko233 <139348239+NikoCat233@users.noreply.github.com>
2025-12-07 10:33:23 +01:00
miniduikboot ce5a491cdb Bump compatversion to support 17.1 2025-11-18 20:50:57 +01:00
miniduikboot 16c8acc849 Merge pull request #706 from NikoCat233/patch-1
Add missing comment for game version 16.1.0
2025-11-18 20:50:46 +01:00
NikoCat233 195d31cad1 Add missing comment for game version 16.1.0 2025-11-05 01:35:52 +08:00
miniduikboot 18846d3dd4 Merge pull request #705 from Impostor/feature/17.0.1
Bump to 17.0.1
2025-10-15 20:42:47 +02:00
miniduikboot eb231dc393 Bump to 17.0.1 2025-10-14 20:29:33 +02:00
miniduikboot a00b9e63d8 Merge pull request #702 from Impostor/feature/17.0.0
Add support for 17.0.0
v1.10.4
2025-09-26 20:22:43 +02:00
miniduikboot d7e5594cf6 Run Dumposter on 17.0.0 2025-09-22 21:06:05 +02:00
miniduikboot 8ba89d9844 Add GameOptions V10
Manually added roles to RoleTypes, will clean up later
2025-09-09 20:40:07 +02:00
miniduikboot ebd7f99438 Bump to 1.10.4
No breaking changes expected
2025-09-09 20:39:31 +02:00
miniduikboot 2197434bdc Add version block for 17.0.0 2025-09-09 20:16:31 +02:00
miniduikboot 8f54566245 Add trailing comma
Fixes compile warning
v1.10.3
2025-06-05 22:39:11 +02:00
miniduikboot a70e875a4d Update System.Text.Json 2025-06-05 22:39:11 +02:00
miniduikboot e473e4cdb4 Merge pull request #692 from miniduikboot/doc/https-now-mandatory
Update docs to add that HTTPS is now mandatory
2025-06-05 22:31:25 +02:00
miniduikboot 9169fab67d Update FAQ for AU3D 2025-06-02 22:52:45 +02:00
miniduikboot 565bf26ff8 Clarify startup warning 2025-06-02 22:52:24 +02:00
miniduikboot 8fb996b314 Update documentation for mandatory HTTPS
The new Unity version used by Among Us 16.0.5 disables the
"InsecureHttpOption", which blocks UnityWebRequests via HTTP. Therefore
all Impostor servers should now switch to HTTPS.

https://docs.unity3d.com/2022.3/Documentation/ScriptReference/InsecureHttpOption.html

Thanks to TianMengLucky for reporting this and NikoCat233 for
identifying the cause
2025-06-02 22:49:45 +02:00
miniduikboot 46a6005ba5 Don't clear RoleOptions on update
Among Us always adds a constant amount of roles to this dict, so it
doesn't make sense to clear this dictionary every time.

Furthermore, previously it was possible to trigger a
ConcurrentModificationException when running Deserialize in parallel
with Serialize. This should no longer happen, as new keys are no longer added
2025-05-28 22:34:57 +02:00
miniduikboot 0ac0b1d403 Address review comments 2025-05-22 23:50:28 +02:00
miniduikboot e1bd85313a Remove AllowNull from PlayerControl.PlayerInfo
It is possible to spawn invalid network objects without an attached
PlayerInfo, and Impostor will throw exceptions everywhere if you happen
to spawn one. Officials do allow spawning objects like this, so allow it
in Impostor for compatibility reasons
2025-05-22 23:50:28 +02:00
miniduikboot fff9713697 Add new cheat category for InvalidObject checks
For some network objects, like PlayerControl, we expect that there is an
PlayerInfo object associated to them. If there isn't, throw an exception
in this AC category
2025-05-22 23:50:28 +02:00
miniduikboot be0a0b917c Add Murder/Protect/Exile API without checks
Force(.*)Async will perform the same function as \1Async but without
throwing exceptions. The old API is maintained for backwards
compatibility reasons.

Murder checks are now shared with the main function that handles
CheckMurder, as ProtectPlayerAsync and ExileAsync aren't used in the
code I didn't make a similar change there. Checks were also synced
between both methods
2025-05-22 23:50:28 +02:00
miniduikboot c672e19e99 Always store previous color
Because it's only restored in standard SA networking, the stored value
will be ignored in HA. This is preferred to logging when in HA mode
2025-05-22 23:48:50 +02:00
miniduikboot 104376b43f Record and restore player colors
This prevents situations where a player that requested red has a
different color when rejoining because red is the default color of a
PlayerInfo object. This is most noticeable if the host is late with
rejoining, and a lot of players are alreading in WaitingForHost limbo.

When the host finally rejoins, they will not assign Red immediately to
players that requested Red as it is "in use", and instead assign the
next color.

By recording and restoring this is avoided, and players tend to get
their own colors back in most cases.

This is not something that officials do at the moment, but I don't think
this has an impact on mods, as a normal checkcolor/setcolor cycle will
take place as usual.
2025-05-22 23:48:50 +02:00
miniduikboot 92ca5aa9d7 Merge pull request #690 from Impostor/feature/16.0.5
Add 16.0.5 support
2025-05-22 23:13:49 +02:00
miniduikboot 67e94e8efc Add 16.0.5
Crossplay with the previous version is not supported, so it gets its own
compatibility group.

Further analysis on the changes is still needed
2025-05-20 19:48:57 +02:00