Filtration Station

== Filtration Station ==
Whether it's your first day in Vana'diel, or you're a returnee from another decade, you've undoubtedly encountered something like this: 
 
This is either real players or RMT spamming the /yell channel with their mercenary services. Be it levels, gear, content progress, you name it, everything is for sale at a certain price. Although the issue is most prevalent on Asura, no server may be safe from this type of service advertisement. Even worse, /yell encompasses most major city zones, so your only escape from the constant stream of ads is to step out into the field. Fortunately, there are several options for managing the spam. Utilizing just one tool can substantially lessen visible /yell spam, but it's generally recommended to use more than one method to weed out unwanted advertising. 
At risk of sounding preachy, it should be made clear that purchasing any of these services always comes with an inherent risk of paying gil and not necessarily receiving the desired outcome. While many sellers are legitimate, others are out to scam players, or simply end up not being able to provide the full service paid for. Also of importance to note is that in no way, shape, or form is buying content, levels, gear, progression, etc. a requirement to play this game. Everything can be done under one's own ability either solo or with a group, content depending.
=== Vanilla Tools ===
==== Blacklist ====
/blist add namegoeshere
 
Blacklist is the most tedious means of filtration. You'll have to manually type the command for every single person yelling stuff that you don't want to see. There is a maximum limit of 300 character names that can fit in your blacklist, meaning you'll eventually have to go in and manually delete names on occasion. Repeat offenders tend to make new, similarly named characters relatively frequently, so as soon as you whack one mole, another pops its head up to try to sell you something. Messages from blacklisted characters can also slip through while you are transitioning between zones, as it takes the game a few moments to load your blacklist.
==== Turn Off /yell Entirely ====
Menu > Config > Chat Filters > Yell (ON)
 
The only method to 100% eliminate any chance of seeing any sort of /yell spam is to use the in-game chat filters to turn off /yells. This scorched-earth approach will prevent you from seeing any /yells made by any players for any reason, but does not prevent you from sending messages out into /yell yourself. So if you are adamant about removing merc spam, but still want to use /yell to make parties or ask for help with a particular problem, this is a viable solution for you.
==== Separate Chat Windows ====
Menu > Config > Log > Window 1 (or Window 2 as desired) > Chat > Yell (ON)
Alternatively, you can opt to segregate all yell chat to a separate chat window of its own, along with any other desired text. A common complaint is that players can't follow NPC dialogue or cutscenes because chat text will fill their log, flushing the story away. By moving player chat to another window, you can cleanly separate desired text from undesired text at any given time. By turning yells ON in Window 1, they will appear only in this Window. If you choose to move them to only Window 2, turn them OFF in Window 1 and ON in Window 2.
==== Official Term Filter ====
https://forum.square-enix.com/ffxi/threads/60429-February-10-2023-%28JST%29-Version-Update?p=651218&viewfull=1#post651218
https://forum.square-enix.com/ffxi/threads/60553?p=651970&viewfull=1#post651970
https://forum.square-enix.com/ffxi/threads/60615?p=652540&viewfull=1#post652540
The Term Filter is a very powerful tool which has been recently provided to us by Square Enix to mitigate /yell spam. Its filters only apply to /yell, /shout (wide area chat, not necessarily zone-wide), Assist and AssistE (basically new player help chat). It will not interfere with any chat from Party members, Linkshell(s), Unity, /tell, /say, or others. Setup of the Term Filter requires that the player create allowed.txt and prohibited.txt files within their ffxiuser folder. These files will act as a whitelist and a blacklist for given text respectively. Apt use of the prohibited function will substantially reduce /yell spam, however the user will need to occasionally update their list of blocked terms. As of now, this guide will not attempt to teach every potential use of the Term Filter, but the above links are to official posts detailing specific use of commands and expressions.
With the Term Filter, terms will be blocked regardless of character name changes, however the RMT have adapted their yells to use varying font types to circumvent filtering. The new "Copy to Clipboard" option will help with selecting a particular key word you wish to filter, which you can then simply paste into your prohibited.txt. If you prefer to stay as Vanilla as possible, this is the choice for you. Additionally, adding an (i) expression will filter text regardless of case sensitivity, and an (s) expression will filter text regardless of spacing. An example list of recommended blocked terms is as follows:
(is)500p/5m
(is)500p
(is)2100p/20m
(is)2100p
(is)master0-20/15m
(is)master0-20
(is)20-30/30m
(is)30-40/90
(is)Buy?
Values or words may be adjusted based on current market prices and advertising phrases. The onus is on you to tune the prohibited Terms to your needs. Once your prohibited.txt file is situated the way you like, be sure to enable the Term Filter by turning it ON at:
Menu > Config > Misc. 4
Selecting "Display Name Only" will still cycle filtered messages through your log, but with a deleted message instead of the intended text. All you will see is the player's name who is /yelling.
=== Windower Add-ons ===
At this point, we have exhausted our means of filtering yells using purely vanilla methods. Going forward will provide more complexity in selectively filtering unwanted text. Using one or more of these tools plus the Term Filter is highly recommended for players who want to never see a merc/RMT /yell again but still want to leave /yell open for other reasons. Two of our best options are third-party add-ons for Windower, so if you are averse to using third-party tools, refer back up to the Term Filter for your best bet. Be aware that while any use of third party programs is technically against Terms of Service, using tools to filter spam presents an infinitesimally small chance of repercussion. Put frankly, you are not going to be banned simply for using the following two add-ons.
==== Shout_ml by Epigram ====
https://github.com/jlisic/shout_ml
As the author of this guide is not well-versed in programming, the guide will not even attempt to explain how exactly these addons function. Essentially, this tool uses machine learning to, when given a series of parameters, determine whether a /yell is spam or not based on previous input. The addon does all of the work on its own, requiring zero additional input or code manipulation from the end user. Simply add it to your init.txt file for Windower so it loads on startup and enjoy. When used alone, shout_ml should eliminate most unwanted yells from your chat log before you can even see them. However, many users prefer to use it in conjunction with the next addon in this list for a layered defense approach.
==== Fuckoff by Chiai ====
https://github.com/Chiaia/Windower-4-Addons/tree/main/fuckoff
Again, this guide will not be trying to explain in-depth how the code works here. Suffice it to say that it uses a series of unwanted word or phrases (that you can add to yourself in the file, RMT are always mixing up their phrasing) to block out yell chat containing said words or phrases. Common sale terms like "Fast Cast 99999" or "T1 T2 T3" are intercepted and eliminated before they even hit your screen. Not only that, but Fuckoff has a built-in black list with (assumedly) an infinite number of slots for character names. Adding to this add-on is as simple as opening the .lua file and typing in the words/names you wish to block, and requires no .lua coding knowledge to interact with. Paired with shout_ml, you should expect to see little to no spam /yells at all.