You are viewing a potentially older version of this package. View all versions.
s0apysfederati0n-PModeration-1.1.4 icon

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-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100
Nessie-EasySettings-1.1.8 icon
Nessie-EasySettings

A mod API for easily adding options to the settings menu.

Preferred version: 1.1.8
Soggy_Pancake-AtlyssCommandLib-0.0.7 icon
Soggy_Pancake-AtlyssCommandLib

[BETA] A library to easily create chat commands for Atlyss

Preferred version: 0.0.7
Soggy_Pancake-CodeYapper-2.2.2 icon
Soggy_Pancake-CodeYapper

A simple library to abstract away networking

Preferred version: 2.2.2

README

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.

Join the Discord Community

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

  1. Install via Thunderstore Mod Manager or manually.
  2. Requires:
    • BepInEx
    • Nessie.ATLYSS.EasySettings
    • Soggy_Pancake.AtlyssCommandLib
    • CodeTalker
  3. 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 /blockhelp output 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