Alot of my time has went into coding for Windower and working to improve the FFXI Community.
If you would like to donate as a way of saying thanks, click below :)
Note: This is NOT “buying” service. Donating does not guarantee you support and future updates or even faster updates. It's solely a thank you only. Do not donate if your expecting better service/faster development on the things I work on.
ChatMon is a replacement of the external program ChatMon. It plays sounds based on chat events in game that pertain to you. It will play a sound anytime someone says your name in linkshell, party, say, emote, or shout. It will play a sound when someone does a normal /emote to you. It will play a sound when someone examines you, and finally, it will play a sound when someone invites you to party.
You can also setup custom strings to play sound files on too.
You can also configure it to not play these sounds when the game is in focus (Only play them if your alt-tabbed). You may configure custom rules to bypass this setting on a specific basis.
ChatMon also blocks RMT spam ads. This list is automatically updated, but you can create a custom file too.
Settings has 6 attributes that can be set to configure ChatMon. The 5 sound settings are the default sounds to play on those events, if not set or set to none, those events will only be usable with triggers.
DisableOnFocus: If this setting is true, ChatMon will not any sounds while the game is in focus, and only play them out of focus (when you are alt-tabbed to another window). This setting may be overrode with Triggers.
TellSound: Sound to play when someone sends you a tell. Valid Entries described below.
ExamineSound: Sound to play when someone examines you. Valid Entries described below.
EmoteSound: Sound to play when someone does an emote to you. Valid Entries described below.
TalkSound: Sound to play when someone says your name in chat. Valid Entries described below.
InviteSound: Sound to play when someone invites you to join a party. Valid Entries described below.
SoundInterval: Time in seconds minimum between playing sound files to reduce spam.
Triggers are custom rules for playing sound files also. This can commonly be used for triggering sounds on commonly used nicknames for yourself.
Trigger has 1 reqiured attribute or text value:
Additional Attributes, Anything specified here must match true to parse the trigger:
Match: Wildcard format for matching the message coming in. <trigger match=“*mynickname*”>Talk</trigger>
1)
NotMatch: Wildcard format to make sure it does NOT match this format. <trigger match=“*dre*” notmatch=“*dream*”>Talk</trigger>
From: Where the incoming message is coming from.
2) <trigger from=“Party|Linkshell|Say|Shout” match=“*dre*” notmatch=“*dream*”>Talk</trigger>
Valid Entries are: Say, Shout, Party, Linkshell, Tell, Invite, Emote, Examine, All
NotFrom: Checks that the incoming message is not from these types. <trigger from=“Party|Linkshell|Say|Shout” NotFrom=“ALL” match=“*dre*” notmatch=“*dream*”>Talk</trigger>.
There are 5 default sound files embedded into the plugin that you may use without having the file on your PC. They are listed below. If you do not want a sound to play, you may specify 'None' or delete the configuration line.
| Sound Name | Description |
| Talk | A female voice that says You are being talked about. |
| Tell | A female voice that says Incoming Tell. |
| Examine | A female voice that says You've been examined. |
| Invite | A female voice that says Party Invitation. |
| Emote | A female voice that says Incoming Emote. |
Additionally, you may specify a FULL File path to a .WAV file to play instead of the defaults. YOU MAY NOT USE ANYTHING BESIDES .WAV. MP3 Support will NOT be added. There are plenty of MP3 to WAV converters.
This file is automatically created upon plugin load if it does not exists. You can delete the file to restore it to this default.
<?xml version="1.0" ?>
<ChatMon>
<settings
DisableOnFocus="false"
TellSound="Tell"
ExamineSound="Examine"
EmoteSound="Emote"
TalkSound="Talk"
InviteSound="Invite"
/>
<!-- Add Triggers below. The line below is a comment for an example -->
<!-- Valid From entries: Say, Shout, Party, Linkshell, Tell, Invite, Emote, Examine, All -->
<!-- match should not be used for Emote. Examine matches to Examiners name, Invite matches to Inviters name. -->
<!-- <trigger match="*YourNickNameHere*" notmatch="*SomecommonMatch*" notfrom="Tell" from="Party|Linkshell" sound="IncomingTalk" /> -->
</ChatMon>
ChatMon will auto update its main spam filter list, so you can not edit spamfilter.txt located in your plugins folder.
However, you may create a spamfilter_custom.txt and add entries to it.
1 per line, using the Windower Plugin Wild Card & Regex Parser matching system. REGEX IS USEABLE.
Example
*spam*
(regex).*spam.*(/regex)
*trash text??.*
Submit RMT tells or virus links that was missed to Aikar by PM on forums.
Use the //chatmon reload command to reload your custom spam filter.
Load the plugin for the first time and the Default configuration file will be created. You may edit settings in \Windower\Plugins\ChatMon.xml. Once you have saved the file issue //chatmon reload to reload the file.
You may use the //chatmon play command to play a custom sound file like so:
//chatmon play C:/page.wav
Note: 2 Sound files may not play on the same event unless triggered by ALL Trigger. If you have a trigger set for Tells and the default IncomingTell triggers, your trigger rules will not be parsed, and the sound file set in TellSound will be used. If TellSound is not set, Triggers are parsed for the incoming type of Tell.
Warning: ALL breaks this rule. All WILL trigger 2x sounds if 2 things match, so be careful when using ALL. ALL will also trigger if you make it match your characters in game name every time you send a message! IF your name is Aikar, making a <Trigger match=“*aikar*”> is not a good thing to do.
Suggestion: Highly recommended you use NotFrom=“ALL” on ALL triggers based on chat messages. ALL should only be used for non chat related messages such as other chat log entries (Spell/ability casting etc.)
Discussion
My name is PrinceofPursia, but most of the time people call me Prince. So i would like to alter Chatmon to notify me if someone is calling me by my nickname. therefor is this correct?
<trigger match=“*Prince*”>Talk</trigger>
Yes but you want to add NotFrom=“ALL” to that or else your going to trigger a sound every time you say something.
I made a trigger for a match of the word “Ion”. Thing is, any time 'ion' appears in a word, the trigger hits (i.e. situation, combination, salutations). How can i avoid this?