Sometimes my filters end up resetting to default, and I made a backup file that I could drop in when it happened but another player suggested that making a macro to do it from in game would be easier. All this does is take a couple pre-defined filter sets that I use and loop through the Filter list...anything that isn't specifically set to be set as show is set to hide by default. I don't know enough about macros to use an .ini file for this, so I hard coded the conditional check into the varset for filterSet. I also only coded it to set filter to show or hide, some of the options on the list have Show Me Only and Show Group Only, these could easily be added as well. These filters are the ones I use since I box 18 toons on an EMU server and pull well over 100 mobs at a time, necessitating not only EQ filter settings but MQ2 filters too. This is just an easier way to assign the settings to my main or my alts.
To execute it, it watches for trigger text tied to chat the chat text setfilters. There are only 2 pre-configured filter sets right now, main and alt. /echo setfilter main or /echo setfilter alt will trigger, /echo setfilter anythingElse should cause the trigger to fail with a message explaining the required syntax. After it loops through the filters, it exits the macro.
Apologies for the formatting for the table in the comments, cleaned it up to better illustrate the settings of filter set main:
To execute it, it watches for trigger text tied to chat the chat text setfilters. There are only 2 pre-configured filter sets right now, main and alt. /echo setfilter main or /echo setfilter alt will trigger, /echo setfilter anythingElse should cause the trigger to fail with a message explaining the required syntax. After it loops through the filters, it exits the macro.
Code:
#Event OptionsWindowFilters "#*#setfilters #1#"
|===============================================================================================
| SUB: Main
|===============================================================================================
Sub Main()
/echo Use the following syntax for executing one of the two pre-defined filter sets
/echo '/echo setfilters main' or '/echo setfilters alt'
:Primeloop
/doevents
/goto :Primeloop
/return
|===============================================================================================
| SUB: Event_OptionsWindowFilters
|===============================================================================================
Sub Event_OptionsWindowFilters(string Line, string Filterset)
|Set a variable named filterSet to hold the pre-configured values
/declare filterSet string local
/declare Proceed int local 0
/declare index int local
|Set up various Filterset values for preset filtering
/if (${Filterset.Equal[main]}) {
/noparse /varset filterSet ${index} == 1 || ${index} == 2 || ${index} == 3 || ${index} == 10 || ${index} == 11 || ${index} == 20 || ${index} == 23 || ${index} == 26 ||${index} == 27 || ${index} == 28 || ${index} == 33
/varset Proceed 1
} else /if (${Filterset.Equal[alt]}) {
/noparse /varset filterSet ${index} == 1 || ${index} == 2 || ${index} == 3 || ${index} == 10 || ${index} == 11 || ${index} == 23 || ${index} == 26 || ${index} == 27 || ${index} == 28
/varset Proceed 1
} else {
/echo You need to use one of the pre-defined filters to apply these changes
/echo By default, the only pre-defined filter sets are either main or alt
/return
}
|Loop through each index in the list of filter options
/for index 1 to ${Window[OptionsWindow].Child[OFP_FilterList].Items}
|Select the index at the value of the iterator named index
/notify OptionsChatPage OFP_FilterList listselect ${Window[OptionsWindow].Child[OFP_FilterList].List[=${Window[OptionsWindow].Child[OFP_FilterList].List[${index}]}]}
|Assign show to the indexes I want the setting to be Show for, if value of index doesn't match then set it to Hide
|If you don't want to be spammed with the settings being applied, comment out the /bc commands, it was used for debugging
/if (${Proceed} == 1) {
/if (${filterSet}) {
/notify OptionsChatPage OFP_FilterComboBox listselect ${Window[OptionsWindow].Child[OFP_FilterComboBox].List[=Show]}
/bc Setting ${Window[OptionsWindow].Child[OFP_FilterList].List[${index}]} to Show
} else {
/notify OptionsChatPage OFP_FilterComboBox listselect ${Window[OptionsWindow].Child[OFP_FilterComboBox].List[=Hide]}
/bc Setting ${Window[OptionsWindow].Child[OFP_FilterList].List[${index}]} to Hide
}
|Add a small delay of .3 seconds so people can see the changes being applied but not be spammed too fast to read
|Feel free to increase or decrease this delay to a value that works for you
/delay 3
}
/next index
/echo Filter set ${Filterset} has been applied, exiting this macro
/end
|1. Achievements >Show< Show Mine Only Hide
|2. Auctions >Show< Hide
|3. Bad Word >Show< Hide
|4. Bard Songs Show Show Mine Only >Hide<
|5. Bard Songs on Pets Show >Hide<
|6. Damage Over Time Show Show Mine Only Show Group Only >Hide<
|7. Damage Shields Show >Hide<
|8. Fellowship Messages Show >Hide<
|9. Focus Effects Show >Hide<
|10.Group Chat >Show< Hide
|11.Guild Chat >Show< Hide
|12.Heal Over Time Show Show Mine Only >Hide<
|13.Item Speech Show >Hide<
|14.Melee Criticals Show Show Mine Only >Hide<
|15.Mercenary Messages Show >Hide<
|16.Missed Me Show >Hide<
|17.My Misses Show >Hide<
|18.My Pet Hits Show >Hide<
|19.My Pet Misses Show >Hide<
|20.NPC Spells >Show< Hide
|21.Others' Hits Show >Hide<
|22.Others' Misses Show >Hide<
|23.Out of Character >Show< Hide
|24.PC Spells Show Show Group Only >Hide<
|25.Pet Spells Show >Hide<
|26.PvP Messages >Show< Hide
|27.Shouts >Show< Hide
|28.Socials >Show< Hide
|29.Spam Show >Hide<
|30.Spell Criticals Show Show Mine Only >Hide<
|31.Spell Damage Show Show Mine Only >Hide<
|32.Strikethrough Messages Show >Hide<
|33.Stun Messages >Show< Hide
|
|
|***** The above is an example of the filter list, optional settings and the
|***** settings I use in my main setup...yes I DO filter out almost everything
|***** except chat channels because of the sheer volume of messages on large pulls
|
|***** You can adjust these settings to be whatever you want, but it'll take some
|***** customization of the code to make it work.
Apologies for the formatting for the table in the comments, cleaned it up to better illustrate the settings of filter set main:
| 1. Achievements | >Show< | Show Mine Only | Hide | |
| 2. Auctions | >Show< | Hide | ||
| 3. Bad Word | >Show< | Hide | ||
| 4. Bard Songs | Show | Show Mine Only | Show Group Only | >Hide< |
| 5. Bard Songs on Pets | Show | >Hide< | ||
| 6. Damage Over Time | Show | Show MineOnly | Show Group Only | >Hide< |
| 7. Damage Shields | Show | >Hide< | ||
| 8. Fellowship Messages | Show | >Hide< | ||
| 9. Focus Effectts | Show | >Hide< | ||
| 10. Group Chat | >Show< | Hide | ||
| 11. Guild Chat | >Show< | Hide | ||
| 12. Heal Over Time | Show | >Hide< | ||
| 13. Item Speech | Show | >Hide< | ||
| 14. Melee Criticals | Show | >Hide< | ||
| 15. Mercenary Messages | Show | >Hide< | ||
| 16. Missed Me | Show | >Hide< | ||
| 17. My Misses | Show | >Hide< | ||
| 18. My Pet Hits | Show | >Hide< | ||
| 19. My Pet Misses | Show | >Hide< | ||
| 20. NPC Spells | >Show< | Hide | ||
| 21. Others' Hits | Show | >Hide< | ||
| 22. Others' Misses | Show | >Hide< | ||
| 23. Out of Character | >Show< | Hide | ||
| 24. PC Spells | Show | >Hide< | ||
| 25. Pet Spells | Show | >Hide< | ||
| 26. PvP Messages | >Show< | Hide | ||
| 27. Shouts | >Show< | Hide | ||
| 28. Socials | >Show< | Hide | ||
| 29. Spam | Show | >Hide< | ||
| 30. Spell Criticals | Show | >Hide< | ||
| 31. Spell Damage | Show | >Hide< | ||
| 32. Strikethrough Messages | Show | >Hide< | ||
| 33. Stun Messages | >Show< | Hide |

