Skip to content

Commit

Permalink
Merge branch 'main' into chatJailbreak
Browse files Browse the repository at this point in the history
  • Loading branch information
scp222thj authored Sep 3, 2024
2 parents 3c4e757 + 9de3f53 commit 4f39aa2
Show file tree
Hide file tree
Showing 11 changed files with 189 additions and 51 deletions.
6 changes: 4 additions & 2 deletions FEATURES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@

| Cheat | Description | Type | Default|
|------------|-------------|------|--------|
| Murder Player | Select a player to kill them immediatly | Menu |
| Murder All | Kill all players immediatly | Toggle | Off |
| Kill Player | Select a player to kill them immediatly | Menu |
| Kill All Crewmates | Kill all crewmates immediatly | Button |
| Kill All Impostors | Kill all impostors immediatly | Button |
| Kill All | Kill all players immediatly | Button |

#### Teleport

Expand Down
31 changes: 21 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
# 🎁 Releases
| Mod Version| Among Us - Version | Link |
|----------|-------------|-----------------|
| v2.4.1 | 2024.8.13 | [Download](https://github.com/scp222thj/MalumMenu/releases/download/v2.4.1/MalumMenu-2.4.1.zip) |
| v2.4.0 | 2024.6.18 | [Download](https://github.com/scp222thj/MalumMenu/releases/download/v2.4.0/MalumMenu-2.4.0.zip) |
| v2.3.1 | 2024.6.18 | [Download](https://github.com/scp222thj/MalumMenu/releases/download/v2.3.1/MalumMenu-2.3.1.zip) |
| v2.3.0 | 2024.6.4 | [Download](https://github.com/scp222thj/MalumMenu/releases/download/v2.3.0/MalumMenu-2.3.0.zip) |
Expand All @@ -47,18 +48,24 @@
# ⬇️ Installation

1. Download the latest **MalumMenu zip pack** from [here](https://github.com/scp222thj/MalumMenu/releases/latest).

- **For Steam, Epic Launcher, and Itch.io:** Download `MalumMenu-VERSION.zip`.
- **For Microsoft Store:** Download `MalumMenu-VERSION-Microsoft.zip`.

2. Open the zip file you have just downloaded and copy all its contents.

3. Paste these files directly into your Among Us game folder.
- Steam: Right-click Among Us in your Library → Click `Manage` → Click `Browse local files`.
- Epic Launcher: Right-click Among Us in your Library → Click `Manage` → Click the folder icon in the `Installation` box.

3. Paste these files directly into your Among Us game folder:
- **Steam:** Right-click Among Us in your Library → Click `Manage` → Click `Browse local files`.
- **Epic Launcher:** Right-click Among Us in your Library → Click `Manage` → Click the folder icon in the `Installation` box.
- **Itch.io:** Open the Itch.io app → Right-click Among Us in your Library → Click `Manage` → Click `Open folder in Explorer`.
- **Microsoft Store:** Open the location where Among Us is installed (usually under `C:\Program Files\WindowsApps\` or another default path depending on your installation).

4. Launch Among Us as you normally would. You should see a console window appear, installing the mod's requirements.

5. Wait for the console window to finish the installation.

6. After installation, Among Us will automatically open with MalumMenu successfully installed.
- By default, you can toggle the cheat gui on by pressing **DELETE** on your keyboard.
- By default, you can toggle the cheat GUI on by pressing **DELETE** on your keyboard.

7. If the installation doesn't work, check out our [FAQ](#-faq).

# 📋 Features
Expand All @@ -83,25 +90,29 @@ Click to expand each topic
<details>
<summary><h2>❗ I'm having issues installing MalumMenu</h2></summary>

First of all, make sure you are running the most recent version of Among Us (`2024.6.18`) with the most recent version of MalumMenu (`v2.4.0`)
First of all, make sure you are running the most recent version of Among Us (`2024.8.13`) with the most recent version of MalumMenu (`v2.4.1`).

Also, check if your platform is officially supported:

- ✅ Steam
- ✅ Itch.io
- ✅ Epic Games Launcher
- ✅ Microsoft Store
- ❔ Cracked (rarely works)
- ❌ Microsoft Store
- ❌ iOS App Store & Google Play
- ❌ PS & Switch & Xbox

Now ensure that you have downloaded the correct zip file for your platform:
- For Steam, Epic Games Launcher, and Itch.io, use `MalumMenu-VERSION.zip`
- For the Microsoft Store edition, use `MalumMenu-VERSION-Microsoft.zip`

Make sure you followed the installation guide precisely. This is what your `Among Us` folder should look like after a successful installation:

<img src="https://scp222thj.dev/static/images/amongUsFolder.png" alt="drawing" width="550"/>

<br>Some antiviruses might cause issues when installing the mod, so consider temporarily deactivating your antivirus if the game isn't booting after installation.

When installing MalumMenu for the first time, it will take **MUCH** longer than usual for the game to load. This is completly normal and expected behaviour, so don't be alarmed if you have to wait a while. You can keep track of the installation progress through this useful BepInEx console window that pops up when you start the game:
When installing MalumMenu for the first time, it will take **MUCH** longer than usual for the game to load. This is completely normal and expected behavior, so don't be alarmed if you have to wait a while. You can keep track of the installation progress through this useful BepInEx console window that pops up when you start the game:

<img src="https://scp222thj.dev/static/images/bepinexConsole.png" alt="drawing" width="550"/>

Expand Down
76 changes: 67 additions & 9 deletions src/Cheats/MalumCheats.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using Sentry.Internal.Extensions;
using UnityEngine;

namespace MalumMenu;
Expand All @@ -14,9 +15,12 @@ public static void closeMeetingCheat()
Object.Destroy(MeetingHud.Instance.gameObject);

// Gameplay must be reenabled
ExileController exileController = Object.Instantiate(ShipStatus.Instance.ExileCutscenePrefab);
exileController.ReEnableGameplay();
exileController.WrapUp();
DestroyableSingleton<HudManager>.Instance.StartCoroutine(DestroyableSingleton<HudManager>.Instance.CoFadeFullScreen(Color.black, Color.clear, 0.2f, false));
PlayerControl.LocalPlayer.SetKillTimer(GameManager.Instance.LogicOptions.GetKillCooldown());
ShipStatus.Instance.EmergencyCooldown = GameManager.Instance.LogicOptions.GetEmergencyCooldown();
Camera.main.GetComponent<FollowerCamera>().Locked = false;
DestroyableSingleton<HudManager>.Instance.SetHudActive(true);
ControllerManager.Instance.CloseAndResetAll();

}else if (ExileController.Instance != null){ // Ends exile cutscene if it's playing
ExileController.Instance.ReEnableGameplay();
Expand Down Expand Up @@ -59,10 +63,14 @@ public static void engineerCheats(EngineerRole engineerRole)

if (CheatToggles.noVentCooldown){

engineerRole.cooldownSecondsRemaining = 0f;
if (engineerRole.cooldownSecondsRemaining > 0f){

DestroyableSingleton<HudManager>.Instance.AbilityButton.ResetCoolDown();
DestroyableSingleton<HudManager>.Instance.AbilityButton.SetCooldownFill(0f);
engineerRole.cooldownSecondsRemaining = 0f;

DestroyableSingleton<HudManager>.Instance.AbilityButton.ResetCoolDown();
DestroyableSingleton<HudManager>.Instance.AbilityButton.SetCooldownFill(0f);

}

}
}
Expand Down Expand Up @@ -191,9 +199,9 @@ public static void kickVentsCheat()
}
}

public static void murderAllCheat()
public static void killAllCheat()
{
if (CheatToggles.murderAll){
if (CheatToggles.killAll){

if (Utils.isLobby){

Expand All @@ -209,7 +217,57 @@ public static void murderAllCheat()

}

CheatToggles.murderAll = false;
CheatToggles.killAll = false;

}
}

public static void killAllCrewCheat()
{
if (CheatToggles.killAllCrew){

if (Utils.isLobby){

HudManager.Instance.Notifier.AddDisconnectMessage("Killing in lobby disabled for being too buggy");

}else{

// Kill all players by sending a successful MurderPlayer RPC call
foreach (var player in PlayerControl.AllPlayerControls)
{
if (player.Data.Role.TeamType == RoleTeamTypes.Crewmate){
Utils.murderPlayer(player, MurderResultFlags.Succeeded);
}
}

}

CheatToggles.killAllCrew = false;

}
}

public static void killAllImpsCheat()
{
if (CheatToggles.killAllImps){

if (Utils.isLobby){

HudManager.Instance.Notifier.AddDisconnectMessage("Killing in lobby disabled for being too buggy");

}else{

// Kill all players by sending a successful MurderPlayer RPC call
foreach (var player in PlayerControl.AllPlayerControls)
{
if (player.Data.Role.TeamType == RoleTeamTypes.Impostor){
Utils.murderPlayer(player, MurderResultFlags.Succeeded);
}
}

}

CheatToggles.killAllImps = false;

}
}
Expand Down
74 changes: 63 additions & 11 deletions src/Cheats/MalumPPMCheats.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@
namespace MalumMenu;
public static class MalumPPMCheats
{
public static bool murderPlayerActive;
public static bool telekillPlayerActive;
public static bool killPlayerActive;
public static bool spectateActive;
public static bool teleportPlayerActive;
public static bool reportBodyActive;
public static bool changeRoleActive;
public static float teleKillWaitFrames = -1;
public static Vector2 teleKillPosition;
public static RoleTypes? oldRole = null;

public static void reportBodyPPM(){
Expand Down Expand Up @@ -54,22 +57,22 @@ public static void reportBodyPPM(){
}
}

public static void murderPlayerPPM()
public static void killPlayerPPM()
{
if (CheatToggles.murderPlayer)
if (CheatToggles.killPlayer)
{
if (!murderPlayerActive)
if (!killPlayerActive)
{
// Close any player pick menus already open & their cheats
if (PlayerPickMenu.playerpickMenu != null)
{
PlayerPickMenu.playerpickMenu.Close();
CheatToggles.DisablePPMCheats("murderPlayer");
CheatToggles.DisablePPMCheats("killPlayer");
}

if (Utils.isLobby){
HudManager.Instance.Notifier.AddDisconnectMessage("Killing in lobby disabled for being too buggy");
CheatToggles.murderPlayer = false;
CheatToggles.killPlayer = false;
return;
}

Expand All @@ -87,17 +90,66 @@ public static void murderPlayerPPM()
Utils.murderPlayer(PlayerPickMenu.targetPlayerData.Object, MurderResultFlags.Succeeded);
}));

murderPlayerActive = true;
killPlayerActive = true;
}

// Deactivate cheat if menu is closed
if (PlayerPickMenu.playerpickMenu == null){
CheatToggles.murderPlayer = false;
CheatToggles.killPlayer = false;
}
}
else if (murderPlayerActive)
else if (killPlayerActive)
{
murderPlayerActive = false;
killPlayerActive = false;
}
}

public static void telekillPlayerPPM()
{
if (CheatToggles.telekillPlayer)
{
if (!telekillPlayerActive)
{
// Close any player pick menus already open & their cheats
if (PlayerPickMenu.playerpickMenu != null)
{
PlayerPickMenu.playerpickMenu.Close();
CheatToggles.DisablePPMCheats("telekillPlayer");
}

if (Utils.isLobby){
HudManager.Instance.Notifier.AddDisconnectMessage("Killing in lobby disabled for being too buggy");
CheatToggles.telekillPlayer = false;
return;
}

List<NetworkedPlayerInfo> playerDataList = new List<NetworkedPlayerInfo>();

// All players are saved to playerList
foreach (var player in PlayerControl.AllPlayerControls)
{
playerDataList.Add(player.Data);
}

// Player pick menu made for killing any player by sending a successful MurderPlayer RPC call
PlayerPickMenu.openPlayerPickMenu(playerDataList, (Action)(() =>
{
teleKillPosition = PlayerControl.LocalPlayer.GetTruePosition();
Utils.murderPlayer(PlayerPickMenu.targetPlayerData.Object, MurderResultFlags.Succeeded);
teleKillWaitFrames = 40;
}));

telekillPlayerActive = true;
}

// Deactivate cheat if menu is closed
if (PlayerPickMenu.playerpickMenu == null){
CheatToggles.telekillPlayer = false;
}
}
else if (telekillPlayerActive)
{
telekillPlayerActive = false;
}
}

Expand Down Expand Up @@ -247,7 +299,7 @@ public static void changeRolePPM()
{
// Log the originally assigned role before it gets changed by changeRole cheat
if (!Utils.isLobby && oldRole == null){
if (!Utils.isLobby && !Utils.isFreePlay && oldRole == null){
oldRole = PlayerControl.LocalPlayer.Data.RoleType;
}
Expand Down
4 changes: 2 additions & 2 deletions src/MalumMenu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ namespace MalumMenu;
public partial class MalumMenu : BasePlugin
{
public Harmony Harmony { get; } = new(Id);
public static string malumVersion = "2.4.0";
public static List<string> supportedAU = new List<string> { "2024.6.18" };
public static string malumVersion = "2.4.1";
public static List<string> supportedAU = new List<string> { "2024.6.18", "2024.8.13" };
public static MenuUI menuUI;
// public static ConsoleUI consoleUI;
public static ConfigEntry<string> menuKeybind;
Expand Down
4 changes: 2 additions & 2 deletions src/MalumMenu.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<LangVersion>latest</LangVersion>
<DebugType>embedded</DebugType>

<VersionPrefix>2.4.0</VersionPrefix>
<VersionPrefix>2.4.1</VersionPrefix>
<Description>all play and no cheats makes among us a dull game</Description>
<Authors>scp222thj</Authors>
</PropertyGroup>
Expand All @@ -15,7 +15,7 @@

<ItemGroup>
<PackageReference Include="BepInEx.Unity.IL2CPP" Version="6.0.0-be.662" Private="false" ExcludeAssets="runtime;native" />
<PackageReference Include="AmongUs.GameLibs.Steam" Version="2024.6.18" PrivateAssets="all" />
<PackageReference Include="AmongUs.GameLibs.Steam" Version="2024.8.13" PrivateAssets="all" />

<PackageReference Include="BepInEx.AutoPlugin" Version="1.1.0" PrivateAssets="all" />
<PackageReference Include="BepInEx.IL2CPP.MSBuild" Version="2.0.1" PrivateAssets="all" ExcludeAssets="runtime" />
Expand Down
4 changes: 2 additions & 2 deletions src/Patches/PlayerControlPatches.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public static bool Prefix(PlayerControl __instance, PlayerControl target){
}

// Direct kill RPC should only be used when absolutely necessary as to avoid detection from anticheat mods
if (CheatToggles.killAnyone || Utils.isVanished(__instance.Data) || Utils.isMeeting || (MalumPPMCheats.oldRole != null && !Utils.getBehaviourByRoleType((AmongUs.GameOptions.RoleTypes)MalumPPMCheats.oldRole).IsImpostor)){
if (CheatToggles.killAnyone || CheatToggles.zeroKillCd || Utils.isVanished(__instance.Data) || Utils.isMeeting || (MalumPPMCheats.oldRole != null && !Utils.getBehaviourByRoleType((AmongUs.GameOptions.RoleTypes)MalumPPMCheats.oldRole).IsImpostor)){
if (!__instance.Data.Role.IsValidTarget(target.Data))
{
return true;
Expand Down Expand Up @@ -79,4 +79,4 @@ public static void Prefix(ref bool shouldAnimate){
shouldAnimate = false;
}
}
}
}
14 changes: 12 additions & 2 deletions src/Patches/PlayerPhysicsPatches.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,25 @@ public static void Postfix(PlayerPhysics __instance)

MalumCheats.noClipCheat();
MalumCheats.speedBoostCheat();
MalumCheats.murderAllCheat();
MalumCheats.killAllCheat();
MalumCheats.killAllCrewCheat();
MalumCheats.killAllImpsCheat();
MalumCheats.teleportCursorCheat();
MalumCheats.completeMyTasksCheat();

MalumPPMCheats.spectatePPM();
MalumPPMCheats.murderPlayerPPM();
MalumPPMCheats.killPlayerPPM();
//MalumPPMCheats.telekillPlayerPPM();
MalumPPMCheats.teleportPlayerPPM();
MalumPPMCheats.changeRolePPM();

//if (MalumPPMCheats.teleKillWaitFrames == 0){
// KillAnimation.SetMovement(PlayerControl.LocalPlayer, true);
// PlayerControl.LocalPlayer.NetTransform.RpcSnapTo(MalumPPMCheats.teleKillPosition);
//}

//MalumPPMCheats.teleKillWaitFrames--;

TracersHandler.drawPlayerTracer(__instance);

GameObject[] bodyObjects = GameObject.FindGameObjectsWithTag("DeadBody");
Expand Down
Loading

0 comments on commit 4f39aa2

Please sign in to comment.