]> git.deb.at Git - rhonda/impostor.git/log
rhonda/impostor.git
6 days agoFix compile warnings
miniduikboot [Tue, 18 Aug 2026 18:56:50 +0000 (20:56 +0200)]
Fix compile warnings

6 days agoAdd special game version for mobile
miniduikboot [Tue, 18 Aug 2026 18:52:29 +0000 (20:52 +0200)]
Add special game version for mobile

Thanks Niko

6 days agoAdd basic implementation of judge overruling
miniduikboot [Tue, 18 Aug 2026 18:39:50 +0000 (20:39 +0200)]
Add basic implementation of judge overruling

6 days agoAdd support for RoleOptions v11
miniduikboot [Tue, 18 Aug 2026 17:33:03 +0000 (19:33 +0200)]
Add support for RoleOptions v11

This is bare minimum bringup for AU v18

3 weeks agoDeserialize gamecode as packed in PackedGameDataTo (#738) v1.10.7
miniduikboot [Fri, 14 Aug 2026 17:47:39 +0000 (19:47 +0200)]
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

3 weeks agoSupport new http matchmaking (#685)
NikoCat233 [Thu, 13 Aug 2026 20:03:04 +0000 (04:03 +0800)]
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>
2 months agoBump Hazel to 1.0.1 (#735)
miniduikboot [Wed, 1 Jul 2026 17:02:24 +0000 (19:02 +0200)]
Bump Hazel to 1.0.1 (#735)

This pulls in https://github.com/Impostor/Impostor.Hazel/pull/4

2 months agoAdded an RPC packet size anti-cheat check with config (#731)
Christina [Sun, 21 Jun 2026 09:17:05 +0000 (17:17 +0800)]
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>
2 months agoAdd compat versions for 17.4
miniduikboot [Sat, 6 Jun 2026 07:32:05 +0000 (09:32 +0200)]
Add compat versions for 17.4

Mobile has a different version than PC for reasons unknown at the
moment, probably related to ads.

3 months agoGate PackedGameDataTo behind AC check v1.10.6
miniduikboot [Sat, 23 May 2026 10:52:26 +0000 (12:52 +0200)]
Gate PackedGameDataTo behind AC check

3 months agoAdd support for PackedGameDataTo
NikoCat233 [Tue, 12 May 2026 06:52:06 +0000 (14:52 +0800)]
Add support for PackedGameDataTo

4 months agoAdd compat version for 17.3 (#724)
miniduikboot [Mon, 20 Apr 2026 20:00:32 +0000 (22:00 +0200)]
Add compat version for 17.3 (#724)

* Add compat version for 17.3

* Add compat version for 17.3.1

5 months agoMerge pull request #723 from miniduikboot/fix/aof-concdict
miniduikboot [Mon, 30 Mar 2026 20:30:37 +0000 (22:30 +0200)]
Merge pull request #723 from miniduikboot/fix/aof-concdict

Fix race conditions in Game.Data

5 months agoRename _allObjectsFast to _allObjects
miniduikboot [Fri, 27 Mar 2026 22:32:57 +0000 (23:32 +0100)]
Rename _allObjectsFast to _allObjects

Done because there is no second datastructure anymore

5 months agoSwitch to concurrent dictionary
miniduikboot [Thu, 26 Mar 2026 22:58:45 +0000 (23:58 +0100)]
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.

5 months agoMerge pull request #717 from Impostor/feature/17.2.2
miniduikboot [Sun, 22 Mar 2026 22:06:45 +0000 (23:06 +0100)]
Merge pull request #717 from Impostor/feature/17.2.2

Add 17.2.2 version

5 months agoAdd 17.2.2 version
miniduikboot [Tue, 17 Mar 2026 19:18:25 +0000 (20:18 +0100)]
Add 17.2.2 version

Only changes are ad related, and officials allow crossplay

6 months agoMerge pull request #716 from Impostor/feature/17.2-hotfix
miniduikboot [Wed, 4 Mar 2026 19:31:58 +0000 (20:31 +0100)]
Merge pull request #716 from Impostor/feature/17.2-hotfix

Add 17.2 hotfix version

6 months agoAdd 17.2 hotfix version
miniduikboot [Thu, 19 Feb 2026 20:34:29 +0000 (21:34 +0100)]
Add 17.2 hotfix version

6 months agoMerge pull request #715 from Impostor/feature/17.2
miniduikboot [Wed, 18 Feb 2026 06:24:47 +0000 (07:24 +0100)]
Merge pull request #715 from Impostor/feature/17.2

Add 17.2 version

6 months agoAdd 17.2 version
miniduikboot [Wed, 18 Feb 2026 06:19:36 +0000 (07:19 +0100)]
Add 17.2 version

https://www.innersloth.com/announcing-among-us-x-ace-attorney-again/

6 months agoMerge pull request #712 from miniduikboot/feature/aumi-host-chat-cmds
miniduikboot [Wed, 18 Feb 2026 06:17:58 +0000 (07:17 +0100)]
Merge pull request #712 from miniduikboot/feature/aumi-host-chat-cmds

Add support for host chat cmds

7 months agoReduce warnings about +25
miniduikboot [Tue, 27 Jan 2026 21:40:26 +0000 (22:40 +0100)]
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

7 months agoImplement host chat commands
miniduikboot [Tue, 27 Jan 2026 21:17:03 +0000 (22:17 +0100)]
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

7 months agoMerge pull request #708 from Impostor/feature/17.1
miniduikboot [Tue, 27 Jan 2026 19:38:36 +0000 (20:38 +0100)]
Merge pull request #708 from Impostor/feature/17.1

Bump compatversion to support 17.1

8 months agoAdd another mobile-only hotfix
miniduikboot [Thu, 11 Dec 2025 21:20:17 +0000 (22:20 +0100)]
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.

8 months agoBump compatversion to support 17.1.1
miniduikboot [Sun, 7 Dec 2025 09:33:23 +0000 (10:33 +0100)]
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>
9 months agoBump compatversion to support 17.1
miniduikboot [Tue, 18 Nov 2025 19:50:57 +0000 (20:50 +0100)]
Bump compatversion to support 17.1

9 months agoMerge pull request #706 from NikoCat233/patch-1
miniduikboot [Tue, 18 Nov 2025 19:50:46 +0000 (20:50 +0100)]
Merge pull request #706 from NikoCat233/patch-1

Add missing comment for game version 16.1.0

10 months agoAdd missing comment for game version 16.1.0
NikoCat233 [Tue, 4 Nov 2025 17:35:52 +0000 (01:35 +0800)]
Add missing comment for game version 16.1.0

10 months agoMerge pull request #705 from Impostor/feature/17.0.1
miniduikboot [Wed, 15 Oct 2025 18:42:47 +0000 (20:42 +0200)]
Merge pull request #705 from Impostor/feature/17.0.1

Bump to 17.0.1

10 months agoBump to 17.0.1
miniduikboot [Tue, 14 Oct 2025 18:29:33 +0000 (20:29 +0200)]
Bump to 17.0.1

11 months agoMerge pull request #702 from Impostor/feature/17.0.0 v1.10.4
miniduikboot [Fri, 26 Sep 2025 18:22:43 +0000 (20:22 +0200)]
Merge pull request #702 from Impostor/feature/17.0.0

Add support for 17.0.0

11 months agoRun Dumposter on 17.0.0
miniduikboot [Mon, 22 Sep 2025 19:06:05 +0000 (21:06 +0200)]
Run Dumposter on 17.0.0

11 months agoAdd GameOptions V10
miniduikboot [Tue, 9 Sep 2025 18:40:07 +0000 (20:40 +0200)]
Add GameOptions V10

Manually added roles to RoleTypes, will clean up later

11 months agoBump to 1.10.4
miniduikboot [Tue, 9 Sep 2025 18:39:31 +0000 (20:39 +0200)]
Bump to 1.10.4

No breaking changes expected

11 months agoAdd version block for 17.0.0
miniduikboot [Tue, 9 Sep 2025 18:16:31 +0000 (20:16 +0200)]
Add version block for 17.0.0

15 months agoAdd trailing comma v1.10.3
miniduikboot [Thu, 5 Jun 2025 20:38:00 +0000 (22:38 +0200)]
Add trailing comma

Fixes compile warning

15 months agoUpdate System.Text.Json
miniduikboot [Thu, 5 Jun 2025 20:33:14 +0000 (22:33 +0200)]
Update System.Text.Json

15 months agoMerge pull request #692 from miniduikboot/doc/https-now-mandatory
miniduikboot [Thu, 5 Jun 2025 20:31:25 +0000 (22:31 +0200)]
Merge pull request #692 from miniduikboot/doc/https-now-mandatory

Update docs to add that HTTPS is now mandatory

15 months agoUpdate FAQ for AU3D
miniduikboot [Mon, 2 Jun 2025 20:52:45 +0000 (22:52 +0200)]
Update FAQ for AU3D

15 months agoClarify startup warning
miniduikboot [Mon, 2 Jun 2025 20:52:24 +0000 (22:52 +0200)]
Clarify startup warning

15 months agoUpdate documentation for mandatory HTTPS
miniduikboot [Mon, 2 Jun 2025 20:49:45 +0000 (22:49 +0200)]
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

15 months agoDon't clear RoleOptions on update
miniduikboot [Thu, 22 May 2025 23:08:59 +0000 (01:08 +0200)]
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

15 months agoAddress review comments
miniduikboot [Tue, 18 Mar 2025 19:48:16 +0000 (20:48 +0100)]
Address review comments

15 months agoRemove AllowNull from PlayerControl.PlayerInfo
miniduikboot [Thu, 27 Feb 2025 23:00:21 +0000 (00:00 +0100)]
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

15 months agoAdd new cheat category for InvalidObject checks
miniduikboot [Thu, 27 Feb 2025 22:48:00 +0000 (23:48 +0100)]
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

15 months agoAdd Murder/Protect/Exile API without checks
miniduikboot [Thu, 27 Feb 2025 21:34:40 +0000 (22:34 +0100)]
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

15 months agoAlways store previous color
miniduikboot [Sat, 4 Jan 2025 20:10:20 +0000 (21:10 +0100)]
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

15 months agoRecord and restore player colors
miniduikboot [Sun, 17 Nov 2024 15:18:49 +0000 (16:18 +0100)]
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.

15 months agoMerge pull request #690 from Impostor/feature/16.0.5
miniduikboot [Thu, 22 May 2025 21:13:49 +0000 (23:13 +0200)]
Merge pull request #690 from Impostor/feature/16.0.5

Add 16.0.5 support

15 months agoAdd 16.0.5
miniduikboot [Tue, 20 May 2025 17:48:57 +0000 (19:48 +0200)]
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

17 months agoMerge pull request #683 from Impostor/feature/16.0.0
miniduikboot [Thu, 3 Apr 2025 19:31:35 +0000 (21:31 +0200)]
Merge pull request #683 from Impostor/feature/16.0.0

Add support for 16.0.0

17 months agoAdd note to old game methods
miniduikboot [Tue, 1 Apr 2025 21:50:17 +0000 (23:50 +0200)]
Add note to old game methods

These are no longer used, so warn people who do want to edit them.

I don't foresee these getting removed soon though, as we do want to kick
players on old versions for having an old game version

17 months agoAdd GameTags enum
miniduikboot [Tue, 1 Apr 2025 21:49:46 +0000 (23:49 +0200)]
Add GameTags enum

Can't be generated from game files at the moment unfortunately

17 months agoRemove GameListingV2
miniduikboot [Tue, 1 Apr 2025 21:48:32 +0000 (23:48 +0200)]
Remove GameListingV2

The game ignores unknown fields when deserializing, and as only fields
were added it's acceptable to merge the structs together

17 months agoAdd stub for Find Lobby endpoint
miniduikboot [Wed, 26 Mar 2025 20:18:50 +0000 (21:18 +0100)]
Add stub for Find Lobby endpoint

Co-Authored-By: Niko233 <139348239+NikoCat233@users.noreply.github.com>
17 months agoStop hardcoding the GameOptions in GameListingV2
miniduikboot [Wed, 26 Mar 2025 19:52:17 +0000 (20:52 +0100)]
Stop hardcoding the GameOptions in GameListingV2

To prevent needing to pull in Impostor.Hazel, use an extension method
instead.

Thanks Niko for researching this part

Co-Authored-By: Niko233 <139348239+NikoCat233@users.noreply.github.com>
17 months agoBump minor version
miniduikboot [Wed, 26 Mar 2025 19:01:50 +0000 (20:01 +0100)]
Bump minor version

At this point it doesn't seem necessary to drop support for old
Amoguses, so just bump the minor version for support purposes

17 months agoForbid crossplay between 2024.10.29 and 16.0
miniduikboot [Wed, 26 Mar 2025 18:58:32 +0000 (19:58 +0100)]
Forbid crossplay between 2024.10.29 and 16.0

Innersloth also forbids it, and it's likely not possible due to the new
GameOption version

17 months agoAdd endpoint to find games by code
miniduikboot [Tue, 25 Mar 2025 23:50:24 +0000 (00:50 +0100)]
Add endpoint to find games by code

This is used in the new "Enter Code" flow

3 extra fields are added to GameListing, including a Base 64
serialization method for game options

17 months agoUpdate Game Options
miniduikboot [Tue, 25 Mar 2025 18:48:54 +0000 (19:48 +0100)]
Update Game Options

Creating a game is now possible

17 months agoAdd new network version
miniduikboot [Tue, 25 Mar 2025 18:35:53 +0000 (19:35 +0100)]
Add new network version

19 months agoAdd diagnostic http message (#663)
miniduikboot [Sun, 26 Jan 2025 17:00:03 +0000 (18:00 +0100)]
Add diagnostic http message (#663)

* Add diagnostic message to test HTTP server

This makes it possible to diagnose if the reverse proxy setup is working
correctly or if the game configuration is wrong

* Print console log as well

Only print it once to prevent console spam

* Update src/Impostor.Server/Http/HelloController.cs

Co-authored-by: js6pak <me@6pak.dev>
---------

Co-authored-by: js6pak <me@6pak.dev>
19 months agoAdd missing cosmetic methods to IInnerPlayerControl
Chipmunk [Mon, 20 Jan 2025 02:30:40 +0000 (21:30 -0500)]
Add missing cosmetic methods to IInnerPlayerControl

19 months agoPush down AC checks in PlayerPhysics as well
miniduikboot [Sat, 4 Jan 2025 12:54:21 +0000 (13:54 +0100)]
Push down AC checks in PlayerPhysics as well

I've checked Impostor for issues that are similar to #664, and found
this one: if mods add a custom rpc on PlayerPhysics, Impostor will check
ownership of it, which isn't intentional.

19 months agoMove down target AC check in InnerShipStatus
miniduikboot [Sat, 4 Jan 2025 12:46:29 +0000 (13:46 +0100)]
Move down target AC check in InnerShipStatus

Mods may send RPC's on a ShipStatus that aren't broadcasts. Previously
Impostor would forbid that, which doesn't make sense to me. By moving
down the check it'll allow mods to broadcast RPC's on ShipStatus.

Reported-By: xtracube
20 months agoBump version to 1.10.2 v1.10.2
miniduikboot [Sun, 22 Dec 2024 15:59:02 +0000 (16:59 +0100)]
Bump version to 1.10.2

20 months agoCheck for disconnection between handling messages
miniduikboot [Tue, 17 Dec 2024 21:09:19 +0000 (22:09 +0100)]
Check for disconnection between handling messages

Without this, it is possible for clients to get the remainder of their
messages handled in a packet.

Co-Authored-By: js6pak <me@6pak.dev>
20 months agoClean up abandoned games on disconnect
miniduikboot [Tue, 17 Dec 2024 21:08:23 +0000 (22:08 +0100)]
Clean up abandoned games on disconnect

When a client disconnects without ever having joined a game, it leaves
behind an empty game on the server. Remove these when a player
disconnects.

Co-Authored-By: js6pak <me@6pak.dev>
20 months agoPrevent clients from creating a second game
miniduikboot [Tue, 17 Dec 2024 21:05:27 +0000 (22:05 +0100)]
Prevent clients from creating a second game

Legitimate clients will never create a second game using the same
connection.

Co-Authored-By: js6pak <me@6pak.dev>
22 months agoBump to Among Us 2024.10.29 (#656) v1.10.1
miniduikboot [Thu, 24 Oct 2024 17:47:01 +0000 (19:47 +0200)]
Bump to Among Us 2024.10.29 (#656)

Inspected mono, no networking changes found.

Ran dumpostor as well

Bumped Impostor version

23 months agoBugfix/fix outfit RPCs (#653)
danbudworthmead [Sat, 5 Oct 2024 10:44:08 +0000 (11:44 +0100)]
Bugfix/fix outfit RPCs (#653)

* implemented the sequence ID

* implemented the sequence ID for the player outfits

the sequence ID in the set call must be greater than that stored on the client otherwise the client disregards the set call.

* make sequence IDs internal

* added space after closing brace

* make the sequence ID addition +5

23 months agoRemove unused HandleSetInfected
Niko233 [Sun, 29 Sep 2024 01:19:26 +0000 (09:19 +0800)]
Remove unused HandleSetInfected

23 months agoupdated the api call to use the setnamerpc serialise
danbudworthmead [Sat, 28 Sep 2024 15:37:43 +0000 (16:37 +0100)]
updated the api call to use the setnamerpc serialise

the client now expects a byte which is the netid otherwise the setname call wont work

23 months agoFix vanilla venting as Phantom cause a ban v1.10.0
Niko233 [Sat, 7 Sep 2024 03:08:56 +0000 (11:08 +0800)]
Fix vanilla venting as Phantom cause a ban

2 years agoAdd support for 2024.9.4
js6pak [Wed, 4 Sep 2024 22:26:43 +0000 (00:26 +0200)]
Add support for 2024.9.4

2 years agoFix RemovePlayer reason on internal disconnects
js6pak [Fri, 23 Aug 2024 18:57:05 +0000 (20:57 +0200)]
Fix RemovePlayer reason on internal disconnects

2 years agoSend DisconnectReason.Hacking to other players when disconnecting for cheating
js6pak [Fri, 23 Aug 2024 18:28:56 +0000 (20:28 +0200)]
Send DisconnectReason.Hacking to other players when disconnecting for cheating

Base game doesn't have a specific message for it so it results in a generic "left the game due to error" but it's still better than the default "left the game".
This also allows client side mods to fix the message.

2 years agoFix cheating disconnect message
js6pak [Thu, 22 Aug 2024 21:37:51 +0000 (23:37 +0200)]
Fix cheating disconnect message

DisconnectReason.Hacking has been broken in base game for a long time so replace it with a custom message.
Also add a random support code for easier debugging in case of false positives.

2 years agoRefactor SetColor anticheat
miniduikboot [Sun, 7 Jul 2024 21:33:02 +0000 (23:33 +0200)]
Refactor SetColor anticheat

One issue with the ColorLimits checks is that it didn't account for mods
that add extra colors, this is fixed by checking if the route followed
is plausible instead of mimicking client logic and only accepting a
single answer that it expected. A false negative is possible where the
host decides to wrap back to the front but there are still custom colors
available at the end of the list. This is acceptable because Impostor
doesn't currently know the amount of colors available and this issue
isn't major enough to ask all mod authors to declare their custom color
amount to the server.

As extra colors should now be handled by this code, it makes sense to
change the category of the unknown colors check to ProtocolExtensions.
For these mods an exemption of the ColorLimits category is no longer
necessary.

Note that mods that allow duplicate colors that do not use a custom rpc
to set colors can only be supported by disabling the ColorLimits
category, this was already the case and I don't think it can be unified
with the existing check.

2 years ago更新 Game.State.cs
Niko233 [Thu, 22 Aug 2024 03:35:18 +0000 (11:35 +0800)]
更新 Game.State.cs

2 years agoMerge pull request #609 from Impostor/feature/2024.6.18-prepare
miniduikboot [Tue, 20 Aug 2024 19:50:45 +0000 (21:50 +0200)]
Merge pull request #609 from Impostor/feature/2024.6.18-prepare

Prepare for 2024.6.18 update

2 years agoAdd handler for phantom rpcs
Niko233 [Mon, 24 Jun 2024 10:00:09 +0000 (18:00 +0800)]
Add handler for phantom rpcs

2 years agoAdd Phantom Rpcs support
Niko233 [Mon, 24 Jun 2024 08:54:33 +0000 (16:54 +0800)]
Add Phantom Rpcs support

2 years agoAdd Phantom to the list of Impostor roles
miniduikboot [Sun, 21 Jul 2024 21:13:25 +0000 (23:13 +0200)]
Add Phantom to the list of Impostor roles

2 years agoClean up owned playerinfo's when disconnecting
miniduikboot [Thu, 20 Jun 2024 20:26:16 +0000 (22:26 +0200)]
Clean up owned playerinfo's when disconnecting

This commit does what official servers do:
- despawn the PlayerInfo if someone disconnects while in the lobby
- despawn all PlayerInfos at the end of a game when the EndGame screen
is shown. At this point a lot of other netobjects are destroyed as well,
with the PlayerInfos generally done first.

2 years agoSet PlayerLevel in PlayerInfo on RPC SetLevel
miniduikboot [Fri, 2 Aug 2024 09:25:52 +0000 (11:25 +0200)]
Set PlayerLevel in PlayerInfo on RPC SetLevel

Previously this used to be done by the host, but this is now the
server's responsibility.

2 years agoAdd Message24EndGameHostMigration serialization
miniduikboot [Sun, 30 Jun 2024 21:29:53 +0000 (23:29 +0200)]
Add Message24EndGameHostMigration serialization

Looks like Innersloth added this but hasn't actually used this. Weird..

When sent it makes the new host perform a full rejoin, which gums up
Impostor's spawning logic. Fixing that causes the client to gum itself
up. Sigh.

After some testing it seems like host migration still works fine, so
this investigation wasn't needed. Committing for posterity.

Co-Authored-By: js6pak <me@6pak.dev>
2 years agoSwitch PlayerName writes to Outfit
miniduikboot [Sun, 18 Aug 2024 09:16:44 +0000 (11:16 +0200)]
Switch PlayerName writes to Outfit

In 2024.6.18 Innersloth changed the storage location of the PlayerName
from PlayerInfo to PlayerOutfit. If we don't set the PlayerName, we'll
send an incomplete PlayerInfo to new players, so new players are unable
to stay connected as they will not receive complete PlayerInfo objects
before a timeout in the client activates.

Because we publish PlayerName in the API, we can't completely remove
the PlayerName field from PlayerInfo. We also use it internally in a few
places, so I don't this is worth removing.

2 years agoSync over tasks
miniduikboot [Fri, 21 Jun 2024 21:05:07 +0000 (23:05 +0200)]
Sync over tasks

As tasks used to be part of the GameData, 2024.6.18 has moved them to
the PlayerInfo. Because they are now called on the PlayerInfo of the
correct player, the playerId field in the RPC is no longer necessary.

2 years agoBump to 2024.8.13
miniduikboot [Tue, 13 Aug 2024 18:46:02 +0000 (20:46 +0200)]
Bump to 2024.8.13

Network side seems unchanged and officials allow crossplay

2 years agoSpawn PlayerInfo's if host is not authoritive
miniduikboot [Thu, 20 Jun 2024 16:14:02 +0000 (18:14 +0200)]
Spawn PlayerInfo's if host is not authoritive

This PlayerInfo also needs to be synced over if it is server owned

2 years agoAdd NetId to SetName and SetColor
miniduikboot [Thu, 20 Jun 2024 16:37:10 +0000 (18:37 +0200)]
Add NetId to SetName and SetColor

2024.6.18 adds a NetId field *in front* of the existing fields to help link back to the PlayerInfo. We don't actually need this NetId and assume it's called on the correct PlayerControl, so we ignore it.

2 years agoSet RoleWhenAlive when set to a Ghost role
miniduikboot [Sun, 21 Jul 2024 21:16:16 +0000 (23:16 +0200)]
Set RoleWhenAlive when set to a Ghost role

2 years agoSerialize Color -1 as 0 in PlayerOutfit
miniduikboot [Sun, 28 Jul 2024 11:38:03 +0000 (13:38 +0200)]
Serialize Color -1 as 0 in PlayerOutfit

Official servers send 0 instead of -1 when the outfit is still
incomplete to prevent some client issues.

2 years agoDemote InnerGameData, promote InnerPlayerInfo
miniduikboot [Wed, 19 Jun 2024 18:42:18 +0000 (20:42 +0200)]
Demote InnerGameData, promote InnerPlayerInfo

In 2024.6.18 Innersloth promoted PlayerInfo to its own network object, and gave it to the server. InnerGameData is now a container that holds these players. This commit implements the changes necessary to handle these separate PlayerInfo network objects.

2 years agoAdd dirty tracking to PlayerOutfit
miniduikboot [Sun, 21 Jul 2024 20:31:41 +0000 (22:31 +0200)]
Add dirty tracking to PlayerOutfit

To prevent excessive modifications in the codebase, which is prone to
issues if a callsite is missed, automatically do this using properties.

Keep the access modifiers intact for now.

2 years agoAdd sequence id's to playeroutfit
miniduikboot [Wed, 19 Jun 2024 18:33:53 +0000 (20:33 +0200)]
Add sequence id's to playeroutfit

2 years agoAdd canOverrideRole param to SetRole
miniduikboot [Sat, 22 Jun 2024 10:53:02 +0000 (12:53 +0200)]
Add canOverrideRole param to SetRole

This is currently unused by Innersloth