Advanced, professional-grade cogs for Red-DiscordBot. Currently featuring Wormhole — the most advanced cross-server relay system.
Find a file
Rosie Val 93e759794f Fix NewHelpMenu: restore [p]help, close memory leak, parallelize perm checks
Loading this cog called bot.remove_command("help") with no replacement
command ever defined and no restore on unload — simply loading it broke
[p]help bot-wide, permanently, until process restart. Traced through Red's
own source (redbot/core/commands/help.py) and confirmed the default help
command already routes through bot.send_help_for(), which is exactly what
this cog hooks to render CV2 output — so the fix is to just not remove the
command at all; the CV2 conversion now actually works as intended too,
since its hook point is reachable again.

_active_views leaked one permanent dict entry (holding the whole rendered
page/embed list) per help/menu invocation — every on_timeout and "close"
button already called view.stop(), but nothing was popping the matching
entry except one specific code path. Added a single _track_view() helper
that wraps stop() for automatic eviction and applied it at all 5 insertion
points instead of just the one.

Parallelized the per-command can_run() permission checks in
gather_bot_help_data/gather_cog_help_data (previously one await at a time
for every bot/cog command on every single [p]help call). Also added the
admin_or_permissions check to `cv2 version`, the one subcommand missing it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 00:13:26 +01:00
affiliates Remove redundant manual send_help from command groups 2026-07-28 23:34:04 +01:00
dashboard Fix dashboard security issues: path traversal, OAuth CSRF, exposed bind, stale cache 2026-07-29 00:08:12 +01:00
ghostwipe Remove redundant manual send_help from command groups 2026-07-28 23:34:04 +01:00
imagevault Remove redundant manual send_help from command groups 2026-07-28 23:34:04 +01:00
newhelpmenu Fix NewHelpMenu: restore [p]help, close memory leak, parallelize perm checks 2026-07-29 00:13:26 +01:00
nexuscore Fix: add missing _scheduled_embed_loop method to EmbedBuilderMixin 2026-05-08 03:04:13 +00:00
rubylogging Fix RubyLogging crashes: __slots__ attribute injection and dead config key 2026-07-28 23:50:10 +01:00
selfbotguard fix: remove heuristic 10 (presence anomalies) per request 2026-05-08 13:20:21 +00:00
serverwhitelist fix(serverwhitelist): convert hybrid_group to group — exceeds 25-subcommand limit 2026-05-14 20:34:04 +00:00
support fix(support): remove core commands in setup before cog loads 2026-06-12 17:49:07 +01:00
userslash feat: comprehensive audits + fixes for UserSlash & NewHelpMenu, new RubyLogging cog 2026-05-22 21:15:16 +00:00
voicemeister fix: Critical bugfixes for VoiceMeister 2026-05-08 14:48:42 +00:00
wormhole Re-enable Report/Delete/Profile context menus, remove Bookmark, fix reports 2026-07-29 00:02:49 +01:00
.gitignore NexusCore v2.0.0 — 10 modules, 100+ commands, 8,132 lines 2026-05-08 02:38:34 +00:00
info.json Add Affiliates cog: Ping on Join, affiliate board, and DM affiliates 2026-07-28 23:21:19 +01:00
LICENSE Initial commit — Wormhole v3.0.0: advanced cross-server relay cog 2026-05-07 21:53:21 +00:00
README.md Add Affiliates cog: Ping on Join, affiliate board, and DM affiliates 2026-07-28 23:21:19 +01:00

EveCogs

A premium cog repository for Red-DiscordBot.

Installation

[p]repo add EveCogs https://github.com/everestmcarthur/EveCogs
[p]cog install EveCogs wormhole
[p]load wormhole

Wormhole v3.4.0

The ultimate cross-server message relay for Red-DiscordBot.

Connect Discord channels across unlimited servers into named networks. All commands work as both slash commands and prefix commands (hybrid). Messages, edits, deletes, reactions, replies, stickers, pins, typing indicators, and files are all relayed in real-time.

What's New in v3.4.0

  • Hybrid Commands — every command works as both /wh and [p]wh
  • Context Menu Actions — right-click messages/users for Report, Bookmark, Delete, Profile
  • Granular Mention Policy — control @user, @role, @everyone, @here per-network AND per-server, with per-user exemptions
  • Terms of Service Gate — require users to accept legal ToS before messaging, with built-in prosecution-ready legal template
  • Mod Edit/Delete Across Network — staff can edit or delete a message from every server at once
  • Report System — users can report messages (prefix command or right-click), staff review/action/resolve, with DM warnings and auto-ban/mute

Feature Highlights

Category Features
Relay Webhook / embed / compact modes, edit & delete sync, reply threading, sticker forwarding, pin sync, typing indicators, file relay
DM Relay Bidirectional DM ↔ network messaging, quiet hours, personal ignore lists
Moderation Ban/mute users & servers, word + regex filters, attachment filters, global blocklist, purge, network-wide edit & delete
Auto-Mod Anti-spam, anti-raid, anti-caps, anti-invite, anti-link, anti-zalgo, anti-spoiler, anti-emote-spam, anti-newlines
Mentions Per-network + per-server policy for @user, @role, @everyone, @here with exemptions
ToS/Rules Acceptance gate, legal template, consent tracking with timestamps, force re-accept
Reports Report via command or context menu, staff review, resolve, action (ban/mute/warn/dismiss)
Staff Staff system, ownership transfer, audit log, announcements
Invites Invite codes, vanity URLs, expiry, max uses, allowlists
Social Karma/reputation, starboard, user profiles, keyword highlights
Scheduling Scheduled messages, blackout windows, relay delay, slowmode
Phase 4 Anonymous mode, mirror channels, polls, AFK, auto-responses, ephemeral messages, media-only, analytics, health monitor, bookmarks, user colours, quiet hours, network bridging
Context Menus Report to Wormhole, Wormhole Bookmark, Wormhole Delete (staff), Wormhole Profile

Command Reference (85+ commands)

Core

Command Description
[p]wh create <name> Create a new network
[p]wh delete <name> Delete a network
[p]wh open <name> Link current channel
[p]wh close Unlink current channel
[p]wh list List all networks
[p]wh info <name> Network info & stats
[p]wh portal [name] Create/refresh portal embed

Settings ([p]wh set)

Command Description
set mode Relay mode (webhook/embed/compact)
set colour/icon/description Network identity
set freeze/silent/nsfw-gate Toggles
set ratelimit/slowmode/relay-delay Flow control
set anonymous/ephemeral/media-only Special modes
set sync-* Toggle edit/delete/reaction/reply/sticker/thread/pin/typing sync
set strip-everyone/roles/users Legacy mention stripping
set channel-override Per-channel setting overrides

Mention Policy ([p]wh mentions) — NEW

Command Description
mentions set <name> <type> <bool> Network-wide policy (users/roles/everyone/here)
mentions server-set <name> <type> <bool> Per-server override
mentions exempt <name> @user Allow user to bypass policy
mentions unexempt <name> @user Remove exemption
mentions status <name> View current policy

Terms of Service ([p]wh tos) — NEW

Command Description
tos enable <name> Require acceptance before messaging
tos disable <name> Remove requirement
tos set <name> <text> Custom ToS text
tos template <name> Reset to legal template
tos accepted <name> View who accepted
tos reset <name> Force everyone to re-accept
[p]wh accept <name> View the ToS
[p]wh agree <name> Accept the ToS

Reports ([p]wh report) — NEW

Command Description
report message [msg_id] [reason] Report a message (or reply to one)
report list <name> [show_resolved] View reports (staff)
report resolve <name> <id> Mark as resolved
report action <name> <id> <action> Take action: ban, mute, warn, dismiss

Mod Tools ([p]wh mod)

Command Description
mod ban/unban/mute/unmute User moderation
mod ban-server/unban-server/mute-server/unmute-server Server moderation
mod edit <name> <msg_id> <new_text> Edit across entire network — NEW
mod nuke <name> <msg_id> Delete from entire network — NEW
mod purge <name> [count] Purge relayed messages

Context Menus (right-click) — NEW

Action Description
Report to Wormhole Right-click any message → opens report modal
Wormhole Bookmark Right-click any message → saves to DM
Wormhole Delete Right-click any message → deletes from all servers (staff)
Wormhole Profile Right-click any user → view their network stats

DM Relay / Invites / Staff / Filters / AutoMod / Starboard / Karma / Highlights / Blackout / Backup / Global

See [p]wh help for the full interactive reference (4 pages).

Phase 4 Features

Command Description
mirror add/remove/list One-way receive-only channels
poll create/close/list Network-wide polls with voting
afk <name> [reason] Set AFK status
ignore add/remove/list Personal ignore list (DM relay)
autoreply add/add-regex/remove/list Staff auto-responses
bookmark save/list/clear Save messages for later
colour <name> <hex> Personal embed colour
quiet/quiet-off Quiet hours (DM mute)
analytics <name> Activity dashboard
health <name> Channel permission audit
bridge add/remove/list Network-to-network bridging

GhostWipe

Auto-deletes a departing member's messages server-wide, with a full HTML audit-log viewer.

Fires only on on_member_remove — covering voluntary leaves, kicks, and bans alike (Discord delivers all three through that single event). GhostWipe then classifies why the member left via the audit log, purges every message they ever sent across text channels, voice-channel chats, and threads (including archived ones), and produces a complete audit trail: a summary embed plus a self-contained, dark/light-themed HTML report with sidebar channel switching, search, and attachment previews.

Feature Highlights

Category Features
Deletion Server-wide purge across text channels, voice chats, active + archived threads
Triggers Independently toggle leave / kick / ban as purge triggers
Exemptions Whitelist specific users, ignore specific roles or channels
Safety Dry-run/simulation mode, grace-period delay that auto-cancels on rejoin, rate-limited scanning
Reporting Self-contained HTML viewer (channel switching, search, attachment previews), per-channel breakdown embed, content redaction for privacy, configurable retention
Review history and viewreport to revisit and re-send past purge events, lifetime stats
Manual purge command to backfill a departure GhostWipe missed

Command Reference ([p]ghostwipe, aliases gw/wipe)

Command Description
enable / disable Toggle GhostWipe for this server
logchannel [#channel] Set/clear where purge reports are posted
trigger <leave|kick|ban> <bool> Toggle which departure types trigger a purge
whitelist add/remove/list Users who are never purged
ignorerole add/remove/list Roles that exempt a member from being purged
ignorechannel add/remove/list Channels/threads never scanned
scanlimit <messages|none> Per-channel scan depth (or unlimited)
threads / archivedthreads Toggle scanning active/archived threads
dryrun <bool> Simulate and report without deleting
delay <seconds> Grace period before purging (cancelled if the member rejoins)
report content/attach <bool> Redact report content / attach the HTML file
retention <days> Auto-delete saved reports after N days (0 = forever)
settings Full configuration summary
history [page] Recent purge events
viewreport <event_id> Re-send a past report
stats Lifetime purge counters
purge <user> [confirm] Manually trigger a purge

Affiliates

Ping-on-Join, a persistent affiliate-server board, and a separate DM-affiliates list — all in one cog.

POJ (Ping on Join) mentions new human members in configured channels, then auto-deletes the ping after a few seconds — enough to trigger a push notification without leaving clutter behind. Affiliates is a staff-configured channel holding a persistent, auto-updating plain-text board listing partner servers (name + invite), 10 per message and numbered 1..x, managed entirely through Discord UI — no raw IDs to remember, no manual message editing. DM Affiliates mirrors the same add/remove/list management on a completely separate list that isn't posted anywhere; instead every new member gets it as a DM the moment they join.

Feature Highlights

Category Features
POJ Multiple configurable ping channels, configurable delay (1–60s), configurable {member} message template
Affiliate Board Modal-based add (Server Name + Server Invite), select-menu + confirmation removal, always-contiguous 1..x numbering, 10 entries per plain-text message (a new message per additional 10, up to 100 total)
Persistence Each board page is stored by message ID and automatically recreated if deleted — survives every bot restart
DM Affiliates Identical add/remove/list management on a fully separate list, sent as a DM on join, independently toggleable
Access Management commands are admin-only; list previews are open to any member

Command Reference

Command Description
[p]poj enable / disable Toggle Ping on Join
[p]poj channel add/remove/list Channels that ping new members
[p]poj delay <seconds> Delete-delay for the ping
[p]poj message <template> Ping message template (must include {member})
[p]aff channel #channel Set the affiliate board channel
[p]aff add Add an affiliate (button → modal)
[p]aff remove Remove an affiliate (select → confirm)
[p]aff list Preview the current board
[p]aff refresh Force-recreate the persistent message
[p]aff dm add/remove/list Same management, separate DM-only list
[p]aff dm enable/disable Toggle DMing new members the list

ImageVault

Auto-deletes posted images and re-hosts them in a private vault channel so they can be retrieved on request.

Watches configured channels for image attachments, silently reposts each image (plus the message's text and full attribution) into a staff-only vault channel, then deletes the original — keeping channels clean without anything actually being lost. Because images are re-hosted on Discord rather than linked directly, there's no link-expiry problem: retrieval always fetches a fresh copy straight from the vault message. Spoilered images stay spoilered when they're sent back.

Feature Highlights

Category Features
Archiving Re-uploads images into a private vault channel before deleting the original; preserves spoiler tags round-trip
Scope Watch specific channels (or everything), ignore specific channels, ignore bots/webhooks, max file size
Behavior Archive-only mode (skip deletion), optional text-content repost after removal
Retrieval show/get <id> re-sends the image; permission modes: anyone / original poster / staff only
Browsing list and mine to browse the archive, forget to drop an index entry

Command Reference ([p]imagevault, aliases iv/vault)

Command Description
enable / disable Toggle ImageVault (requires a vault channel first)
vaultchannel #channel Set the private channel images get archived into
watchchannel add/remove/list Channels to watch (empty = all channels)
ignorechannel add/remove/list Channels to never touch
deleteoriginal <bool> Toggle actually deleting the original vs. archive-only
repost <bool> Toggle reposting text content after an image is removed
ignorebots <bool> Toggle processing bot/webhook messages
maxsize <mb> Max image size to archive
retrieve <anyone|author|staff> Who can retrieve archived images
settings Full configuration summary
show/get <id> Retrieve an archived image
list [page] / mine [page] Browse the archive
forget <id> Drop an index entry (staff only)
stats Lifetime archive count

Architecture

EveCogs/
├── README.md
├── LICENSE (MIT)
├── info.json
└── wormhole/
    ├── __init__.py
    ├── info.json
    ├── utils.py       (419 lines — embeds, filters, automod, mention policy, helpers)
    └── wormhole.py    (4,196 lines — main cog, 85+ commands, relay engine, context menus)

License

MIT — see LICENSE.