7.0 Release: You can filter clothes and hair now No regex for them though yet
-------------------------------------------------------------------------------------------
Hello Darlings,
TLDR: I'm verbose <3, you can just add this as a session plugin and go about your day, using a legend for functions.
I wrote a filter system into my core VAM assembly and found a way to create a standard plugin for it instead. Filtering has been such a valuable tool to me that I planned to debut a patreon with it. However I realized speeding up morph searches could greatly empower content creators, so I decided to share it for free.
This plugin is designed to be a session plugin. Once you add it, you don't need to think about it, your search bars will automatically be upgraded to be filterable.
WHAT IT DOES
Upgrades your normal morph, clothes, and hair search bars to allow you to use combinations of filters.
Also turns them a refreshing blue.
These filters can do complicated things like:
finding all morphs that include "cheek" and "up" and start with"left" and don't include "butt"
(cheek+up$left--butt)
And they can do simpler but useful things like
finding all morphs that contain both "eye" and "lid".... I do that one a lot.
(eye+lid)
GETTING STARTED / INSTALLATION:
Just add MorphFilterPlus.cslist as a session plugin and go about your work or play.
The plugin automatically upgrades your people's search bars to have special filter options.
You can add it at any time, it will scan for present people and listen for additional people.
the Plugin UI allows you to enable/disable "Live Filtering" for morphs (its always on for hair / clothes).
While TRUE your morph filter will be submitted every time a new character is entered, if it meets the minimum set in the UI (default 3)
While FALSE the morph filter will wait for you to submit by pressing enter or clicking away.
You may also optionally convert spaces into the '+' symbol (they will still appear as spaces as you type).
HOW TO USE IT
you can use the search bars as normal, or use the following character combos to filter your search:
& : "And" Splits your search into a set of required filters that must all be true (only useful if you're also using %)
% : "Or" splits each of those filters into optional parts, where at least one part must be true.
Alternatively, you can use / or | for OR.
The optional constraints come before a string, and are as follows:
= : "Exactly Matches" (must be first character in a filter and isn't compatible with others unless using OR %)
+ : "Includes", essentially the normal search type. This is implied if the first string has no special character.
-- : "Does not include." You can alternatively use !
$ : "Starts With"
-$ : "Does not start with." You can alternatively use !$
@: "Regular Expression", MORPHS ONLY This must be your first character and is not compatible with any other code above. The string following @ is converted into a regular expression when you submit it. While typing a regular expression, live filtering is automatically (and temporarily) disabled. Regex is a fancy standardized filter format that I am not equipped to provide instructions for, but here is a link to a cheatsheet I am studying.
IMPORTANT USAGE CONCEPTS
the AND operator is applied first. and the OR operator applied second.
"A+B%C" results in two filters, at least one of which must be met: [A + B] OR [C].
"A+B&C+D%E" results in a compound filter: [A + B] AND ([C+D] or [E]). Both sides of the and must be met.
If you don't use an OR (%) then there's no real need for an AND (&) because all the constraints are implicitly additive.
for example: elf+ear&--left--lobe could omit the & to become elf+ear--left--lobe and it would make no difference. And(&) is just an option to add a requirement set above Or(%).
Whitespace is NOT ignored. Just like the normal search, if you have a space in there, it will be considered part of the filter. Make sure not to leave spaces between your constraints if you aren't looking for them.
Note: as of 4.0 you may convert spaces to '+' automatically via the plugin UI, as an option.
EXAMPLE SEARCHES
lip+curv+top--corner: contains lip, curve, and top, but not corner
nose&ridge%root&--bridge: contains nose and contains ridge or root, but doesn't contain bridge.
define%tone: contains define OR tone
squint-$aa: contains squint and does not start with 'AA'
open+eye: contains open and eye
belly%stomac%abd%waist--wasp: contains belly OR stomac OR abd OR waist without wasp
lip+corner%smil$aa: contains lip and corner OR contains smil and starts with 'AA'
New examples with '&' in 3.0
left&leg%thigh%calf+upper: includes left AND any of the following: leg, thigh, or calf and upper.
lip%mouth+curv&$up%top: includes [ lip or (mouth and curve) ] AND [ (starts with up) or top ]
Regex example in 4.0:
@lip.(top|curv) : includes lip, followed by any character and then either top or curv
all regex searches must begin with '@'
useful regex examples welcome, I'm not good at regex yet. I will add more soon.
KNOWN ISSUES
Special thanks to @everlaster for regex concepts and helping to discover some code solutions.
Thanks also to @Eye9 and @cmramlow for helping to discover and debug issues.
Enjoy
-------------------------------------------------------------------------------------------
Hello Darlings,
TLDR: I'm verbose <3, you can just add this as a session plugin and go about your day, using a legend for functions.
I wrote a filter system into my core VAM assembly and found a way to create a standard plugin for it instead. Filtering has been such a valuable tool to me that I planned to debut a patreon with it. However I realized speeding up morph searches could greatly empower content creators, so I decided to share it for free.
This plugin is designed to be a session plugin. Once you add it, you don't need to think about it, your search bars will automatically be upgraded to be filterable.
WHAT IT DOES
Upgrades your normal morph, clothes, and hair search bars to allow you to use combinations of filters.
Also turns them a refreshing blue.
These filters can do complicated things like:
finding all morphs that include "cheek" and "up" and start with"left" and don't include "butt"
(cheek+up$left--butt)
And they can do simpler but useful things like
finding all morphs that contain both "eye" and "lid".... I do that one a lot.
(eye+lid)
GETTING STARTED / INSTALLATION:
Just add MorphFilterPlus.cslist as a session plugin and go about your work or play.
The plugin automatically upgrades your people's search bars to have special filter options.
You can add it at any time, it will scan for present people and listen for additional people.
the Plugin UI allows you to enable/disable "Live Filtering" for morphs (its always on for hair / clothes).
While TRUE your morph filter will be submitted every time a new character is entered, if it meets the minimum set in the UI (default 3)
While FALSE the morph filter will wait for you to submit by pressing enter or clicking away.
You may also optionally convert spaces into the '+' symbol (they will still appear as spaces as you type).
HOW TO USE IT
you can use the search bars as normal, or use the following character combos to filter your search:
& : "And" Splits your search into a set of required filters that must all be true (only useful if you're also using %)
% : "Or" splits each of those filters into optional parts, where at least one part must be true.
Alternatively, you can use / or | for OR.
The optional constraints come before a string, and are as follows:
= : "Exactly Matches" (must be first character in a filter and isn't compatible with others unless using OR %)
+ : "Includes", essentially the normal search type. This is implied if the first string has no special character.
-- : "Does not include." You can alternatively use !
$ : "Starts With"
-$ : "Does not start with." You can alternatively use !$
@: "Regular Expression", MORPHS ONLY This must be your first character and is not compatible with any other code above. The string following @ is converted into a regular expression when you submit it. While typing a regular expression, live filtering is automatically (and temporarily) disabled. Regex is a fancy standardized filter format that I am not equipped to provide instructions for, but here is a link to a cheatsheet I am studying.
Regex tutorial — A quick cheatsheet by examples
Regular expressions (regex or regexp) are extremely useful in extracting information from any text by searching a specific search pattern
medium.com
IMPORTANT USAGE CONCEPTS
the AND operator is applied first. and the OR operator applied second.
"A+B%C" results in two filters, at least one of which must be met: [A + B] OR [C].
"A+B&C+D%E" results in a compound filter: [A + B] AND ([C+D] or [E]). Both sides of the and must be met.
If you don't use an OR (%) then there's no real need for an AND (&) because all the constraints are implicitly additive.
for example: elf+ear&--left--lobe could omit the & to become elf+ear--left--lobe and it would make no difference. And(&) is just an option to add a requirement set above Or(%).
Whitespace is NOT ignored. Just like the normal search, if you have a space in there, it will be considered part of the filter. Make sure not to leave spaces between your constraints if you aren't looking for them.
Note: as of 4.0 you may convert spaces to '+' automatically via the plugin UI, as an option.
EXAMPLE SEARCHES
lip+curv+top--corner: contains lip, curve, and top, but not corner
nose&ridge%root&--bridge: contains nose and contains ridge or root, but doesn't contain bridge.
define%tone: contains define OR tone
squint-$aa: contains squint and does not start with 'AA'
open+eye: contains open and eye
belly%stomac%abd%waist--wasp: contains belly OR stomac OR abd OR waist without wasp
lip+corner%smil$aa: contains lip and corner OR contains smil and starts with 'AA'
New examples with '&' in 3.0
left&leg%thigh%calf+upper: includes left AND any of the following: leg, thigh, or calf and upper.
lip%mouth+curv&$up%top: includes [ lip or (mouth and curve) ] AND [ (starts with up) or top ]
Regex example in 4.0:
@lip.(top|curv) : includes lip, followed by any character and then either top or curv
all regex searches must begin with '@'
useful regex examples welcome, I'm not good at regex yet. I will add more soon.
KNOWN ISSUES
- Hair and Clothing searches are live-filtering only.
- Regex is not in place for clothing and hair searches (because of the above)
- Selecting an option from the "Default" morph dropdown commands will unapply your filter
- Morphs remain filtered after removing plugin or atom (minor issue; any search or toggle will reset).
- There is some overhead (lag) in choosing morph categories or display type (morph vs pose) as the filter reapplies.
- There may be some occasional overhead when re-enabling UI as the filter reapplies. This will only be noticeable for large morph libraries, but shouldn't be significant. I am looking at some potential fixes or improvements there.
Special thanks to @everlaster for regex concepts and helping to discover some code solutions.
Thanks also to @Eye9 and @cmramlow for helping to discover and debug issues.
Enjoy