|Tip of the day: The IRCOp guide shows how to do everyday IRCOp tasks and contains tips on fighting spam and drones.|
Message tags communicate additional details in an IRC protocol message, such as the services account a user is using. End-users typically do NOT see the actual raw message tags in their client, but their IRC client can use them to display additional useful information (eg: registered account status, history playback, etc) or make better decisions (eg: if the user is trusted, should be auto-banned, etc).
A JOIN looks like this in regular IRC protocol:
:nick!~user@localhost JOIN #test
If a client has enabled message tags and other capabilities it may look like this instead:
@time=2019-12-31T18:30:50.123Z;msgid=tjtArKOTqfcdY0FmaUGaHI;account=SomeAccount :nick!~user@localhost JOIN #test
Clients need to indicate support for receiving message tags, either by a specific CAP (such as
CAP REQ account-tag) or by indicating support in general for message tags (
CAP REQ message-tags).
The general rules on message tags parsing are described in https://ircv3.net/specs/extensions/message-tags.html
UnrealIRCd supports the following message tags:
|Tag name (specification)||Module (source)||Requirements||Description and example|
||Shows the account name of users who identified to Services.|
||Allows grouping of multiple protocol messages into a batch. Used by labeled-response, history playback, etc.|
||The bot tag is attached to messages/events from users that have user mode +B (users that are identified as bots).|
||Allows IRC clients to easily correlate requests and responses|
|In server notices you see the underlying JSON data. See JSON logging.|
||Attaches an unique (network-wide) message id to messages.|
||Attaches a label with the server date and time on which the message was sent.|
|The real uncloaked user@host - shown to IRC Operators only.|
|The real user@ip - shown to IRC Operators only.|
|The country code - shown to IRC Operators only.|
||Client tag to show that the user is typing a message. Supported by f.e. IRCCloud and KiwiIRC nextclient.
||This tag shows to which message a user is replying to. Often used by bots to refer to the !trigger.
Changes between UnrealIRCd versions (in chronological order):
- label: In UnrealIRCd 5.0.0, 5.0.1 and 5.0.2 the tag was
draft/label, and the capability was
draft/labeled-response. This because the specification was still in draft at that time. Starting with UnrealIRCd 5.0.3 the draft/ prefix was dropped.
- unrealircd.org/userhost: added in UnrealIRCd 5.0.3
- unrealircd.org/userip: added in UnrealIRCd 5.0.3
- +typing: added in UnrealIRCd 5.0.5
- draft/bot: added in UnrealIRCd 5.2.0
- +draft/reply: added in UnrealIRCd 5.2.0
- unrealircd.org/json-log: added in UnrealIRCd 6.0.0
- unrealircd.org/geoip: added in UnrealIRCd 6.0.4
- bot: added in UnrealIRCd 188.8.131.52 (in addition to existing draft/bot, which will be removed at a later point)
In UnrealIRCd every message tag, including client message tags, need to have a message tag handler, usually added via a module. See FAQ: How can I allow other message tags?.