PModeration
Get Personal, The block button is enough!
| Date uploaded | a week ago |
| Version | 1.1.4 |
| Download link | s0apysfederati0n-PModeration-1.1.4.zip |
| Downloads | 276 |
| Dependency string | s0apysfederati0n-PModeration-1.1.4 |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100Nessie-EasySettings
A mod API for easily adding options to the settings menu.
Preferred version: 1.1.8Soggy_Pancake-AtlyssCommandLib
[BETA] A library to easily create chat commands for Atlyss
Preferred version: 0.0.7README
PModeration
Personal client-side player hiding & blocking for Atlyss
Hide annoying players (oversized models, distracting RP titles, floating names, audio spam) without muting chat or affecting anyone else.
Features
- Silent local hiding — Completely removes a player's visuals, nameplate (@global + RPNames title), model, attached effects, and audio locally.
- SteamID-based — Blocks persist across character swaps, logouts, and re-joins.
- Separate from mute — Hide visuals while still chatting (perfect for oversized/obstructing characters you still want to talk to).
- Optional chat censor — Replace blocked players' messages with "------" (or custom text) if you want full silence.
- Easy controls — In-game commands:
/block <name>,/unblock <name-or-ID>,/blocklist,/blockexport,/blockimport. - Configurable — Toggle hard block (full GameObject disable) vs soft block (safer for parties), debug mode, and more via EasySettings UI.
- Public API — Other mods can check/add/remove blocks or listen to events (
PModeration.PModerationAPI).
Purely client-side — no host involvement, no mutual visibility, no drama. Just personal boundary control.
Installation
- Install via Thunderstore Mod Manager or manually.
- Requires:
- BepInEx
- Nessie.ATLYSS.EasySettings
- Soggy_Pancake.AtlyssCommandLib
- CodeTalker
- Launch game → configure via Mod Settings menu or edit
BepInEx/config/PModeration.cfg
Commands (all client-side)
/block <name>— Hide a player/unblock <name-or-SteamID>— Unhide/blocklist— Show blocked IDs/blockexport— Save blocklist to file/blockimport <path>— Load blocklist from file/blockhelp— Shows command lists/hideglobal <name>— hides only the @GlobalName text for that player (model, RP title, location, etc. stay visible)/unhideglobal <name-or-ID>— shows the @GlobalName again
Configuration (via Mod Settings or .cfg)
- Enabled — Master switch (default: true)
- Hard Block (Advanced) — Disable entire GameObject (default: false – soft block recommended for party stability)
- Censor Chat — Replace blocked messages (default: false – Atlyss mute already exists)
- Replacement Text — What blocked chat shows (default: "[BLOCKED]")
- Debug Mode — Log actions (default: false)
Developer API
Other mods can reference PModeration.PModerationAPI for integration:
using PModeration;
bool isBlocked = PModerationAPI.IsPlayerBlocked(steamID);
PModerationAPI.BlockPlayer(steamID);
PModerationAPI.UnblockPlayer(steamID);
var blockedList = PModerationAPI.GetBlockedSteamIDs();
PModerationAPI.OnPlayerBlocked += id => { /* react */ };
PModerationAPI.OnPlayerUnblocked += id => { /* react */ };
See PModerationAPI.cs for full docs.
Credits
- s0apy — Author
- Community feedback from Atlyss Discord (Sparky, Destiny, etc.)
Notes
- Purely client-side – no host enforcement, no mutual visibility
- Designed to separate visual hiding from Atlyss built-in mute (as requested)
- Tested in lobbies with oversized characters, RP titles, and chat spam
Known Limitations
- Hiding only works when blocked player is in the same scene/lobby
- Hard block may cause rare party desync – keep disabled by default
- Chat censor optional (redundant with Atlyss mute in most cases)
Enjoy your cleaner lobbies. No babysitting, just personal peace. 🐼
CHANGELOG
Changelog
All notable changes to PModeration will be documented here.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[1.1.4] - 2026-03-09
Fixed
- Weird bug that was found.. i dont know it has nothing to do with PModeration fully lol.
ChatColors
im looking at you but its not of you issue at all.
DiceAndColor..
your CROLL patch needs a 1-line fix pls apply this when u see this
- "text3 == "/croll" after splitting on space and lowercasing array[0]. When ChatColors wraps it first, array[0] becomes <color=#HEX>/croll</color> so the comparison fails completely."
heres ur fix, strip yo thang b4 applying thx.
string text3 = Regex.Replace(text2, "<.*?>", "");
[1.1.3] - 2026-03-08
Fixed
- Audio Bug from Release.
[1.1.2] - 2026-02-22
Fixed
- UI Bug from Release to 1.1.1.
[1.1.1] - 2026-02-22
Fixed
- Made public API extensions avaliable:
HideGlobalName,UnhideGlobalName,IsGlobalNameHidden
[1.1.0] - 2026-02-22
Added
-
New feature: Hide only @global name (
_text_playerGlobalName) without hiding the full player model, RP title, location, or audio- Separate UI button in who-list entries (next to main Block button)
- Dedicated commands:
/hideglobal <name>and/unhideglobal <name-or-ID> - Persistent per SteamID (saved to
PModeration_GlobalNameHides.json) - Works independently of full blocking (can hide @name on visible players)
-
Enhanced UI button injection:
- More robust reference button detection (multiple paths + fallback to any Button/Image)
- Reduced console spam (warnings only once per entry type)
- Delayed injection timing (WaitForEndOfFrame) for better UI stability
-
New help command:
/blockhelp— displays all commands with descriptions and tips in a clean, colored list -
Public API extensions:
HideGlobalName,UnhideGlobalName,IsGlobalNameHidden
Changed
- Reordered and clarified
/blockhelpoutput for better in-game usability
Fixed
- Global name hide logic now survives soft-block restore loops (applied after children
SetActive(true)) - Hard-block restore path correctly re-applies @name hide state
- Button icon logic corrected (shows "show" icon when name is hidden, "hide" when visible)
Notes
- UI buttons now appear more reliably in who-list entries
- All changes remain purely client-side — no server/host impact
[1.0.0] - 2026-02-19
Added
- Initial release: client-side player visual & audio hiding
- SteamID-based persistent blocking (survives character swaps)
- Soft block (default – disable renderers/canvases/audio) & optional hard block (full GameObject disable)
- Optional chat message censor ("------" or custom)
- Console commands:
/block,/unblock,/blocklist,/blockexport,/blockimport - EasySettings UI integration for config
- Public API (
PModerationAPI) for other mods to check/add/remove blocks and listen to events - Periodic scene refresh + force refresh on changes
- Debug logging toggle