From 9f65a5ce4419088a3ee3b1ace465bb92f561c792 Mon Sep 17 00:00:00 2001 From: TechDev <89547375+TechDevOfficial@users.noreply.github.com> Date: Mon, 29 Dec 2025 12:23:36 +0100 Subject: [PATCH 1/6] 1.5.4 Introduces the Medic (revive ability) and Jester (win by being voted out) roles, including their options, abilities, and RPC synchronization. Updates documentation (README, DESCRIPTION, CHANGELOG) for v1.5.4, bumps dependencies, and updates mod version to 1.5.4. --- CHANGELOG.md | 38 +++++++++++ DESCRIPTION.md | 75 ++++++++++++++++++++ README.md | 46 ++++++++++++- TrollMod17/Buttons/MedicReviveButton.cs | 91 +++++++++++++++++++++++++ TrollMod17/Options/JesterOptions.cs | 12 ++++ TrollMod17/Options/MedicOptions.cs | 15 ++++ TrollMod17/Roles/JesterRole.cs | 26 +++++++ TrollMod17/Roles/MedicRole.cs | 25 +++++++ TrollMod17/TrollMod17.csproj | 6 +- TrollMod17/TrollMod17Plugin.cs | 2 +- 10 files changed, 331 insertions(+), 5 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 DESCRIPTION.md create mode 100644 TrollMod17/Buttons/MedicReviveButton.cs create mode 100644 TrollMod17/Options/JesterOptions.cs create mode 100644 TrollMod17/Options/MedicOptions.cs create mode 100644 TrollMod17/Roles/JesterRole.cs create mode 100644 TrollMod17/Roles/MedicRole.cs diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..7abdd00 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,38 @@ +# TrollMod Changelog + +## v1.5.4 - Among Us 2025.1.17 (v17.1.0) + +**Updated for Among Us v17.1.0** - Full compatibility with the latest game version. + +### New Roles +- **Medic** (Crewmate) - Revive dead crewmates with synchronized RPC abilities +- **Jester** (Neutral) - Win by getting voted out during meetings + +### New Abilities +- **Medic Revive Button** - Synchronized revive system (30s cooldown, 2 uses max) +- Target validation with visual outline feedback +- Full RPC synchronization across all clients + +### All Roles (9 Total) +**Crewmate Roles:** +- Guardian - Protects allies with timely shields +- Medic - Revives dead crewmates (NEW) + +**Neutral Roles:** +- Troll - Win when someone kills you +- Jester - Win by getting voted out (NEW) +- Trickster - Sow chaos with smoke abilities +- Bard - Musical manipulation abilities +- Illusionist - Create visual illusions + +**Impostor Roles:** +- Shadow - Strike from darkness with stealth +- Warden - Lock doors to control the battlefield + +### Technical Features +- Full RPC synchronization for all abilities +- Android compatibility through MiraAPI IL2CPP support +- Custom action buttons with cooldown management +- Visual feedback with target highlighting + +Built with MiraAPI and Reactor frameworks. diff --git a/DESCRIPTION.md b/DESCRIPTION.md new file mode 100644 index 0000000..d88e0cb --- /dev/null +++ b/DESCRIPTION.md @@ -0,0 +1,75 @@ +# TrollMod - Mod Description + +## Short Description + +TrollMod adds 9 unique custom roles to Among Us with synchronized abilities and full RPC support. Features crewmates like Guardian and Medic with revive capabilities, neutral roles like Troll and Jester with unique win conditions, and impostors like Shadow and Warden. Compatible with Among Us v17.0.0. + +--- + +## Long Description + +**TrollMod** is a comprehensive Among Us mod that introduces 9 custom roles with unique synchronized abilities, custom action buttons, and diverse win conditions, bringing fresh gameplay mechanics and strategic depth to your Among Us sessions. + +### Custom Roles + +**Crewmate Roles:** +- **Guardian** - Protect your fellow crewmates with timely shields, keeping them safe from impostor attacks. +- **Medic** - Revive dead crewmates with synchronized RPC abilities. Bring fallen allies back to life with limited uses for strategic gameplay. + +**Neutral Roles:** +- **Troll** - A unique neutral role that wins when killed by an impostor. Play mind games and try to get yourself eliminated! +- **Jester** - Win by getting voted out during meetings. Act suspicious without getting killed to achieve victory. +- **Trickster** - Sow chaos with smoke abilities and manipulate situations for personal gain. +- **Bard** - Use musical manipulation abilities to influence the game state and player actions. +- **Illusionist** - Create visual illusions to confuse and mislead other players. + +**Impostor Roles:** +- **Shadow** - Strike from the darkness with enhanced stealth capabilities and precision kills. +- **Warden** - Control the battlefield by locking doors. Create safe zones or trap suspects with strategic door control. + +### Custom Abilities & Buttons + +**Synchronized Abilities:** +- **Medic Revive** - RPC-synchronized revive system (30s cooldown, 2 uses max) +- **Guardian Shield** - Protective barriers with duration management +- **Shadow Cloak** - Enhanced stealth abilities with visual effects +- **Warden Lock** - Strategic door control for map dominance +- **Trickster Smoke** - Chaos creation with area effects +- **Bard Tune** - Musical manipulation of game state +- **Illusionist Glimmer** - Visual illusion creation + +### Features + +**Advanced Synchronization:** +- Full RPC synchronization across all clients +- Android compatibility through MiraAPI IL2CPP support +- Real-time ability synchronization for multiplayer + +**Technical Excellence:** +- Built with MiraAPI and Reactor frameworks +- Custom action button system with visual feedback +- Target validation with outline highlighting +- Cooldown management and limited uses system +- Effect duration with automatic cleanup + +**Balanced Gameplay:** +- Each role carefully designed with unique strengths +- Multiple win conditions for strategic variety +- Seamless integration with vanilla Among Us mechanics +- Configurable role counts and ability parameters + +**Technical Details:** +- Compatible with Among Us v17.0.0 (2025.1.17) +- Requires BepInEx 6.0.0+ +- Optimized for both PC and Android platforms +- Full multiplayer synchronization support + +### Perfect For + +- Players seeking advanced Among Us experiences +- Communities wanting synchronized multiplayer gameplay +- Streamers needing engaging content with visual effects +- Competitive players looking for strategic depth +- Anyone wanting to elevate Among Us beyond vanilla + +Transform your Among Us games with TrollMod - where every round brings synchronized abilities, strategic decisions, and unforgettable moments! diff --git a/README.md b/README.md index 0300669..cc5dfea 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,51 @@ TrollMod is an Among Us Mod Bundle built with MiraAPI and Reactor | AU Version | TM Version | Link | |---|---|---| +| 17.0.0 | 1.5.4 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.5.4) | | 17.0.0 | 1.5.1 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.5.1) | | 17.0.0 | 1.5.0 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.5.0) | | 17.0.0 | 1.4.9 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.4.9) | -| 17.0.0 | 1.4.6 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.4.6) | \ No newline at end of file +| 17.0.0 | 1.4.6 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.4.6) | + +## Roles (9 Total) + +**Crewmate Roles:** +- **Guardian** - Protects allies with timely shields +- **Medic** - Revives dead crewmates with synchronized abilities + +**Neutral Roles:** +- **Troll** - Win when someone kills you +- **Jester** - Win by getting voted out during meetings +- **Trickster** - Sow chaos with smoke abilities +- **Bard** - Musical manipulation abilities +- **Illusionist** - Create visual illusions + +**Impostor Roles:** +- **Shadow** - Strike from darkness with stealth +- **Warden** - Lock doors to control the battlefield + +## Features + +- **Custom Action Buttons** - Each role has unique abilities +- **RPC Synchronization** - All abilities work correctly on all clients +- **Android Compatibility** - Full IL2CPP support +- **Visual Feedback** - Outline highlighting for targets +- **Configurable Options** - Customize role counts and abilities + +## Documentation + +- [**Changelog**](CHANGELOG.md) - Version history and updates +- [**Description**](DESCRIPTION.md) - Detailed mod description and features + +## Installation + +1. Download TrollMod v1.5.4 from the releases page +2. Install BepInEx for Among Us +3. Place the mod DLL in `BepInEx/plugins/` +4. Launch Among Us and enjoy! + +## Requirements + +- Among Us v17.0.0 (2025.1.17) +- BepInEx 6.0.0+ +- MiraAPI and Reactor dependencies (included) \ No newline at end of file diff --git a/TrollMod17/Buttons/MedicReviveButton.cs b/TrollMod17/Buttons/MedicReviveButton.cs new file mode 100644 index 0000000..598a192 --- /dev/null +++ b/TrollMod17/Buttons/MedicReviveButton.cs @@ -0,0 +1,91 @@ +using MiraAPI.Hud; +using MiraAPI.Utilities.Assets; +using TrollMod17.Roles; +using UnityEngine; +using Reactor.Networking.Attributes; +using System.Linq; + +namespace TrollMod17.Buttons; + +public class MedicReviveButton : CustomActionButton +{ + public override string Name => "Revive"; + public override float Cooldown => 30f; + public override float EffectDuration => 0f; + public override int MaxUses => 2; + public override LoadableAsset Sprite => null!; + + public override bool IsTargetValid(DeadBody? target) + { + return target != null; + } + + public override DeadBody? GetTarget() + { + DeadBody? closestBody = null; + float closestDistance = float.MaxValue; + + foreach (var body in Object.FindObjectsOfType()) + { + if (body == null) continue; + + float distance = Vector2.Distance(PlayerControl.LocalPlayer.GetTruePosition(), body.TruePosition); + if (distance < 2f && distance < closestDistance) + { + closestDistance = distance; + closestBody = body; + } + } + + return closestBody; + } + + protected override void OnClick() + { + if (Target == null) return; + RpcRevivePlayer(Target.ParentId); + } + + [MethodRpc((uint)RpcCalls.SetName)] + public void RpcRevivePlayer(byte playerId) + { + var playerInfo = GameData.Instance.GetPlayerById(playerId); + + if (playerInfo != null && playerInfo.IsDead) + { + playerInfo.IsDead = false; + playerInfo.Disconnected = false; + + if (playerInfo.Object != null) + { + playerInfo.Object.Revive(); + } + + var body = Object.FindObjectsOfType().FirstOrDefault(b => b.ParentId == playerId); + if (body != null) + { + Object.Destroy(body.gameObject); + } + } + } + + public override void SetOutline(bool active) + { + if (Target != null) + { + foreach (var renderer in Target.bodyRenderers) + { + renderer.material.SetFloat("_Outline", active ? 1f : 0f); + if (active) + { + renderer.material.SetColor("_OutlineColor", Color.green); + } + } + } + } + + public override bool Enabled(RoleBehaviour? role) + { + return role is MedicRole; + } +} diff --git a/TrollMod17/Options/JesterOptions.cs b/TrollMod17/Options/JesterOptions.cs new file mode 100644 index 0000000..7bbf8f8 --- /dev/null +++ b/TrollMod17/Options/JesterOptions.cs @@ -0,0 +1,12 @@ +using MiraAPI.GameOptions; +using MiraAPI.GameOptions.Attributes; +using MiraAPI.Utilities; +using UnityEngine; + +namespace TrollMod17.Options; + +public class JesterOptions : AbstractOptionGroup +{ + public override string GroupName => "Jester Options"; + public override Color GroupColor => new Color32(140, 30, 200, 255); +} diff --git a/TrollMod17/Options/MedicOptions.cs b/TrollMod17/Options/MedicOptions.cs new file mode 100644 index 0000000..4d2110d --- /dev/null +++ b/TrollMod17/Options/MedicOptions.cs @@ -0,0 +1,15 @@ +using MiraAPI.GameOptions; +using MiraAPI.GameOptions.Attributes; +using MiraAPI.Utilities; +using UnityEngine; + +namespace TrollMod17.Options; + +public class MedicOptions : AbstractOptionGroup +{ + public override string GroupName => "Medic Options"; + public override Color GroupColor => new Color32(200, 30, 30, 255); + + [ModdedEnumOption("Medic Max Uses", typeof(MaxUses), new[] { "1", "2", "3", "4", "5", "Infinite" })] + public MaxUses MedicMaxUses { get; set; } = MaxUses.Two; +} diff --git a/TrollMod17/Roles/JesterRole.cs b/TrollMod17/Roles/JesterRole.cs new file mode 100644 index 0000000..f002faa --- /dev/null +++ b/TrollMod17/Roles/JesterRole.cs @@ -0,0 +1,26 @@ +using MiraAPI.Roles; +using MiraAPI.GameOptions; +using TrollMod17.Options; +using UnityEngine; +using Il2CppInterop.Runtime.Attributes; + +namespace TrollMod17.Roles; + +public class JesterRole : CrewmateRole, ICustomRole +{ + public string RoleName => "Jester"; + public string RoleLongDescription => "Wins by getting voted out during meetings."; + public string RoleDescription => RoleLongDescription; + public Color RoleColor => new Color32(140, 30, 200, 255); + public ModdedRoleTeams Team => ModdedRoleTeams.Custom; + + public CustomRoleConfiguration Configuration => new(this) + { + CanUseSabotage = false, + MaxRoleCount = 1, + UseVanillaKillButton = false, + CanUseVent = false, + TasksCountForProgress = false, + CanGetKilled = true, + }; +} diff --git a/TrollMod17/Roles/MedicRole.cs b/TrollMod17/Roles/MedicRole.cs new file mode 100644 index 0000000..bc7fb3f --- /dev/null +++ b/TrollMod17/Roles/MedicRole.cs @@ -0,0 +1,25 @@ +using MiraAPI.Roles; +using MiraAPI.GameOptions; +using TrollMod17.Options; +using UnityEngine; +using Il2CppInterop.Runtime.Attributes; + +namespace TrollMod17.Roles; + +public class MedicRole : CrewmateRole, ICustomRole +{ + public string RoleName => "Medic"; + public string RoleLongDescription => "Revives dead crewmates with synchronized abilities."; + public string RoleDescription => RoleLongDescription; + public Color RoleColor => new Color32(200, 30, 30, 255); + public ModdedRoleTeams Team => ModdedRoleTeams.Crewmate; + + public CustomRoleConfiguration Configuration => new(this) + { + CanUseSabotage = false, + MaxRoleCount = 1, + UseVanillaKillButton = false, + CanUseVent = false, + TasksCountForProgress = true, + }; +} diff --git a/TrollMod17/TrollMod17.csproj b/TrollMod17/TrollMod17.csproj index 50d43ab..0a5effa 100644 --- a/TrollMod17/TrollMod17.csproj +++ b/TrollMod17/TrollMod17.csproj @@ -4,17 +4,17 @@ latest embedded - 1.5.1 + 1.5.4 dev TrollMod AUMods_IT, Manu - + - + diff --git a/TrollMod17/TrollMod17Plugin.cs b/TrollMod17/TrollMod17Plugin.cs index 882e205..fe640f6 100644 --- a/TrollMod17/TrollMod17Plugin.cs +++ b/TrollMod17/TrollMod17Plugin.cs @@ -26,7 +26,7 @@ public partial class TrollModPlugin : BasePlugin, IMiraPlugin public Harmony Harmony { get; } = new(Id); public string OptionsTitleText => "Troll\nMod"; public ConfigFile GetConfigFile() => Config; - public static string ModVersion = "1.5.1"; + public static string ModVersion = "1.5.4"; public override void Load() { From 330ebc70ba7ca66f7a21921acfd90944d411f092 Mon Sep 17 00:00:00 2001 From: Manuu <89547375+TechDevOfficial@users.noreply.github.com> Date: Mon, 29 Dec 2025 12:24:42 +0100 Subject: [PATCH 2/6] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cc5dfea..7d8b84c 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ TrollMod is an Among Us Mod Bundle built with MiraAPI and Reactor | AU Version | TM Version | Link | |---|---|---| -| 17.0.0 | 1.5.4 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.5.4) | +| 17.1.0+ | 1.5.4 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.5.4) | | 17.0.0 | 1.5.1 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.5.1) | | 17.0.0 | 1.5.0 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.5.0) | | 17.0.0 | 1.4.9 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.4.9) | @@ -52,4 +52,4 @@ TrollMod is an Among Us Mod Bundle built with MiraAPI and Reactor - Among Us v17.0.0 (2025.1.17) - BepInEx 6.0.0+ -- MiraAPI and Reactor dependencies (included) \ No newline at end of file +- MiraAPI and Reactor dependencies (included) From 70c93d9d5ea528bdf13417af50f72939ea042039 Mon Sep 17 00:00:00 2001 From: Manuu <89547375+TechDevOfficial@users.noreply.github.com> Date: Mon, 29 Dec 2025 12:26:53 +0100 Subject: [PATCH 3/6] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7abdd00..0bad115 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # TrollMod Changelog -## v1.5.4 - Among Us 2025.1.17 (v17.1.0) +## v1.5.4 - Among Us 2025.11.18 (v17.1.0) **Updated for Among Us v17.1.0** - Full compatibility with the latest game version. From e41b8bb4b797a5dd42b84b437491bbb58ed073b7 Mon Sep 17 00:00:00 2001 From: Manuu <89547375+TechDevOfficial@users.noreply.github.com> Date: Mon, 29 Dec 2025 12:27:15 +0100 Subject: [PATCH 4/6] Update compatibility version to Among Us v17.1.0 --- DESCRIPTION.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION.md b/DESCRIPTION.md index d88e0cb..9e6c8db 100644 --- a/DESCRIPTION.md +++ b/DESCRIPTION.md @@ -2,7 +2,7 @@ ## Short Description -TrollMod adds 9 unique custom roles to Among Us with synchronized abilities and full RPC support. Features crewmates like Guardian and Medic with revive capabilities, neutral roles like Troll and Jester with unique win conditions, and impostors like Shadow and Warden. Compatible with Among Us v17.0.0. +TrollMod adds 9 unique custom roles to Among Us with synchronized abilities and full RPC support. Features crewmates like Guardian and Medic with revive capabilities, neutral roles like Troll and Jester with unique win conditions, and impostors like Shadow and Warden. Compatible with Among Us v17.1.0. --- @@ -59,7 +59,7 @@ TrollMod adds 9 unique custom roles to Among Us with synchronized abilities and - Configurable role counts and ability parameters **Technical Details:** -- Compatible with Among Us v17.0.0 (2025.1.17) +- Compatible with Among Us v17.1.0 (2025.11.18) - Requires BepInEx 6.0.0+ - Optimized for both PC and Android platforms - Full multiplayer synchronization support From 6e5476a038cce26fbf74c69f066ebca5df9c9d5d Mon Sep 17 00:00:00 2001 From: Manuu <89547375+TechDevOfficial@users.noreply.github.com> Date: Mon, 29 Dec 2025 12:31:47 +0100 Subject: [PATCH 5/6] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7d8b84c..c208e02 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,8 @@ TrollMod is an Among Us Mod Bundle built with MiraAPI and Reactor | 17.0.0 | 1.4.9 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.4.9) | | 17.0.0 | 1.4.6 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.4.6) | +### Now available on Starlight Android Launcher: [Starlight Web Page](https://starlight.yanplahosting.com/mods/manu.trollmod) download now on Google Play [Download](https://play.google.com/store/apps/details?id=dev.allofus.starlight) + ## Roles (9 Total) **Crewmate Roles:** From c67780ed5e79d1022043af54cd491ba274f58f53 Mon Sep 17 00:00:00 2001 From: Manuu <89547375+TechDevOfficial@users.noreply.github.com> Date: Mon, 29 Dec 2025 12:32:19 +0100 Subject: [PATCH 6/6] Update README with Starlight Android Launcher info Added information about Starlight Android Launcher and download links. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c208e02..285cc6c 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,8 @@ TrollMod is an Among Us Mod Bundle built with MiraAPI and Reactor | 17.0.0 | 1.4.9 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.4.9) | | 17.0.0 | 1.4.6 | [Download](https://github.com/TechDevOfficial/TrollMod17/releases/tag/1.4.6) | +image + ### Now available on Starlight Android Launcher: [Starlight Web Page](https://starlight.yanplahosting.com/mods/manu.trollmod) download now on Google Play [Download](https://play.google.com/store/apps/details?id=dev.allofus.starlight) ## Roles (9 Total)