Ping on Join

Notify a person or a role the moment someone joins, without the visible ping.

Ping on Join

Also called a ghost ping: the member is notified, and the message is then removed or emptied so the channel looks untouched. Use it to wake your staff team on a suspicious join without spilling a public message.

Every command needs Manage Server (real or fake), except reset and bypass, which need Administrator.

Aliases for the group: poj, ghostping, gp.

Turning it on

,pingonjoin on
,pingonjoin channel #staff-alerts
,pingonjoin add @Moderator

That is the minimum working setup. Without a channel, bore picks the server's system channel, or the first channel it can post in.

,pingonjoin off

Choosing who gets pinged

CommandPings
,pingonjoin add @ModeratorEveryone in that role
,pingonjoin add @memberThat one member
,pingonjoin add 123456789012345678A member or role by ID
,pingonjoin add allEvery new member
,pingonjoin remove @ModeratorStops them
,pingonjoin listShows what is configured

Targets are combined into a single line, and duplicates are dropped. @everyone, Discord-managed roles and bot roles are never pinged.

The message

,pingonjoin message {mention} joined. Check {user.created_at}.

Alias: msg. Four words are replaced: {user}, {member}, {guild} and {mention}. Anything longer than 500 characters is cut. You can send an embed script here too, by starting the message with {embed}.

,pingonjoin message view

Shows the current text, which defaults to just {mention}.

How it disappears

,pingonjoin method delete
MethodWhat you see afterwards
deleteNothing, the message is removed. Default
editAn empty bubble left in place
timeoutNothing, same as delete
,pingonjoin delay 2s

Alias: time. How long the message stays before it goes. Between half a second and sixty, one second by default. 500ms, 2s and 1m all work.

,pingonjoin cooldown 30s

Alias: cd. The shortest gap between two ghost pings, ten seconds by default. Set 0 to turn it off. There is also a hard ceiling of thirty per minute, which exists so a join flood cannot fill your channel.

Logging and testing

,pingonjoin log #staff-alerts
,pingonjoin test @member
,pingonjoin stats

The log channel records every ping with who joined, which method was used and who was targeted. test runs the whole thing for one member so you can see it work. stats shows the server's total.

Skipping people

,pingonjoin blacklist @member
,pingonjoin blacklist list
,pingonjoin bypass @Staff

Aliases: bl, ignore, and whitelist. A blacklisted target is never pinged. A bypass role is stronger: members of it are neither pinged nor able to trigger a ping.

There is no command to remove a single blacklist entry or bypass role. ,pingonjoin reset clears the whole feature: settings, targets, blacklist and bypass.

Checking the setup

,pingonjoin config

Aliases: settings, view. Running ,pingonjoin with nothing after it shows the same thing.

If it stops working

bore turns this feature off by itself when it cannot deliver, for example if the channel is deleted or it loses permission to manage messages, and sends the server owner one direct message explaining why. Fix the channel, then run ,pingonjoin on again.

Last updated November 4, 2026