changelogs & fixes

This commit is contained in:
Gurge44 committed 2026-04-02 14:55:26 +02:00
1 parent f11f550868
commit 91ba800d11
5 files changed
+43 -17

No files matched your search

+37 -10
View File
@@ -1,17 +1,44 @@
# Thank you so much for finding and using EHR!
> [!CAUTION]
> [!INFO]
> Updated to Among Us v2026.3.31 (v17.3)
> [!WARNING]
> **Use commands with a `/cmd ` prefix, otherwise your message gets leaked.** So if you were to type `/bt 4 snitch`, you would now type `/cmd bt 4 snitch`. The system will NOT spam the chat after command usage even if it would be required.
- Clarified role descriptions
- Attempted to fix meeting glitches for vanilla clients
- cmd prefix usage warning no longer sends on meeting shapeshift
- Fixed duplicate option IDs
- Fixed Jailor target not resetting after the meeting ends
- Added `Kill Cooldown` setting for Kidnapper, Centralizer, Framer, and Freezer
- Penguin/Goose stops dragging their victim when eaten by Pelican
- Other internal changes
## Bug Fixes
- Fixed Custom Hide And Seek errors when the host uses /setrole with an unavailable role
- Fixed Mingle ending during killing process
- Fixed disasters spawning while some players still see the ejection screen in Natural Disasters
- Fixed sinkholes not being despawned properly in Natural Disasters when the disaster limit specified in settings is reached
- Fixed players getting stuck inside collapsed buildings in Natural Disasters
- Fixed Sprayer, Catcher CNOs not disappearing after meetings
- Fixed Skeld/Dleks Electrical bounds overlapping Storage's colliders
- Fixed after-death actions not being triggered after guesses if the game instantly ends due to it
- Fixed shapeshift-related issues (by TommyXL)
- Fixed april fools stuff (by TommyXL)
- Fixed host's messages not being logged (for chat spam & chat during game notifies)
- GM and Specators cannot be summoned by Summoner
- Fixed Hacker consuming ability uses when looking at physical admin map
- Fixed memory leak
- Medic's tasks don't reset if it uses the pet button as the kill button (by Hyper)
- Time Master & Stasis now reset player speeds to their original values instead of the global value
- Bloodmoon now always gives Loss Of Blood as the death reason
### See changes from v7.3.0 on [the v7.3.1 release page](https://github.com/Gurge44/EndlessHostRoles/releases/tag/v7.3.1)
## Changes
- **More compatibility with Starlight** (should be stable at this point)
- Player points are counted individually in King Of The Zones (by Zypherus)
- Optimized Natural Disasters: Suffix cache & saved about 3/4 of all RPCs sent
- Reduced Snowdown vanish cooldown from 2s to 1s
- Reduced network pressure in Solo PVP
- Missing 'Notification' template no longer sends an error message
- Snowdown auto enables pet use, just like Bed Wars
- Many more small improvements
## Additions
- New setting for Capture The Flag: `Spawn Protection Time` (by Zypherus)
- New setting for Natural Disasters: `Disaster Spawn Mode` (`All On Players`/`All On Random Places`/`On Players & Random Places`)
- Death messages for others in Natural Disasters
- New client option: `Classic Mode` (by TommyXL)
---
+3 -3
View File
@@ -41,8 +41,8 @@ public class Main : BasePlugin
private const string DebugKeyHash = "c0fd562955ba56af3ae20d7ec9e64c664f0facecef4b3e366e109306adeae29d";
private const string DebugKeySalt = "59687b";
private const string PluginGuid = "com.gurge44.endlesshostroles";
public const string PluginVersion = "7.3.5";
public const string PluginDisplayVersion = "7.3.5";
public const string PluginVersion = "7.4.0";
public const string PluginDisplayVersion = "7.4.0";
public const bool TestBuild = false;
public const string NeutralColor = "#ffab1b";
@@ -155,7 +155,7 @@ public class Main : BasePlugin
public static Dictionary<byte, int> NumEmergencyMeetingsUsed = [];
public static int MadmateNum;
public static Stopwatch GameTimer = new();
public static readonly Stopwatch GameTimer = new();
public static bool GameEndDueToTimer;
public static bool ShowResult = true;
+1 -1
View File
@@ -1165,7 +1165,7 @@ internal static class CustomRolesHelper
CustomRoles.Tiebreaker when pc.Is(CustomRoles.Dictator) => false,
CustomRoles.Stressed when !pc.IsCrewmate() || pc.GetCustomRole().IsTasklessCrewmate() => false,
CustomRoles.Stealer or CustomRoles.Swift or CustomRoles.DeadlyQuota or CustomRoles.Damocles or CustomRoles.Mare when pc.Is(CustomRoles.Bomber) || pc.Is(CustomRoles.Nuker) || pc.Is(CustomRoles.Trapster) || pc.Is(CustomRoles.Capitalist) => false,
CustomRoles.Torch when !pc.IsCrewmate() || pc.Is(CustomRoles.Bewilder) || pc.Is(CustomRoles.Sunglasses) || pc.Is(CustomRoles.GuardianAngelEHR) => false,
CustomRoles.Torch when pc.Is(CustomRoles.Bewilder) || pc.Is(CustomRoles.Sunglasses) || pc.Is(CustomRoles.GuardianAngelEHR) => false,
CustomRoles.Bewilder when pc.Is(CustomRoles.Torch) || pc.Is(CustomRoles.GuardianAngelEHR) || pc.Is(CustomRoles.Sunglasses) => false,
CustomRoles.Dynamo when pc.Is(CustomRoles.Spurt) || pc.GetCustomRole() is CustomRoles.Tank or CustomRoles.Ankylosaurus => false,
CustomRoles.Spurt when pc.GetCustomSubRoles().Any(x => x is CustomRoles.Dynamo or CustomRoles.Swiftclaw or CustomRoles.Giant or CustomRoles.Flash) || pc.Is(CustomRoles.Ankylosaurus) => false,
+1 -2
View File
@@ -1139,8 +1139,7 @@ internal static class IntroCutsceneDestroyPatch
if (AmongUsClient.Instance.AmHost)
{
apc.DoIf(x => x.Is(CustomRoles.NotAssigned) && ((x.AmOwner && Main.GM.Value) || ChatCommands.Spectators.Contains(x.PlayerId)), x => x.RpcSetCustomRole(CustomRoles.GM));
LateTask.New(() => apc.DoIf(x => x && x.Is(CustomRoles.NotAssigned) && ((x.AmOwner && Main.GM.Value) || ChatCommands.Spectators.Contains(x.PlayerId)), x => x.RpcSetCustomRole(CustomRoles.GM)), 8f);
LateTask.New(() => apc.DoIf(x => x && ((x.AmOwner && Main.GM.Value) || ChatCommands.Spectators.Contains(x.PlayerId)), x => x.RpcSetCustomRole(CustomRoles.GM)), 8f);
var aapc = Main.AllAlivePlayerControls;
+1 -1
View File
@@ -110,7 +110,7 @@ public class Vigilante : RoleBase
SendRPC(killer.PlayerId);
Killed.Add(killer.PlayerId);
SetKillCooldown(killer.PlayerId);
if (UsePet.GetBool()) return;
if (Options.UsePets.GetBool() && UsePet.GetBool()) return;
killer.RpcChangeRoleBasis(CustomRoles.CrewmateEHR);
killer.RpcResetTasks();
Utils.NotifyRoles(SpecifySeer: killer, SpecifyTarget: killer);