Skip to content

Suggestion: Additional filtering methods in Library files #1049

Description

@cognato-net

It would be great to have more robust filtering options in Library files. To clarify, I mean the Library files themselves, not the respective sections within character sheets.

Current behavior

As far as I understand it, Library files can currently be filtered in a few ways:

  • By tag:
    • A single tag
    • Multiple tags, where all selected tags must apply
  • By content:
    • Content Filter
    • Content Filter (Names Only)
  • When tag and content filters are active, all active filters must apply.
  • The resulting table can then be sorted by column.

These options are already very helpful, but more advanced filtering rules would make Equipment and Skill files easier to work with. My initial idea was to filter items by TL and LC, but this could also be expanded to other fields.

Here are some examples. I've omitted the "e.g." expression -- assume it applies throughout:

TL and LC

  • In a TL10 setting without superscience, when building characters who don't have access to anything LC2 or lower, it would be very useful to filter out items marked TL10^, TL11+, or LC2-.
  • Sometimes I may want to see TL10 and lower items, including TL10, TL9^, etc. Other times, I may want to see only TL10 items, or only TL10^ and TL10 items.
  • These cases could be handled by treating TL values similarly to Tags: each unique TL string in the file would be a distinct selectable filter value -- TL9, TL9^, TL10, TL10^, TL11, etc. would all be separate options.
  • The list of TL filter values could be populated dynamically from the entries in the Equipment file. If a custom My Setting.eqp file containing items marked TL3A, TL3B, TL4A, TL4B, the TL filter dropdown would contain all four of those entries. This seems similar to the current behavior when sorting the TL column.
  • This would be especially useful when multiple items have the same name but different TLs, representing different versions of the same item. A related toggle could be something like: “[X] Hide lower-TL entries when higher-TL entries exist with identical names.”
  • Similar filtering options could also be useful for LC.

Value and Weight

  • These fields could potentially support numeric and range-based filtering, such as:
    • maximum value
    • minimum value
    • value between X and Y
  • Similar filtering options could also be useful for Weight.

Tags

The current Tag filtering system could be extended by allowing users to choose how multiple selected tags are combined:

  • all tags must match (AND)
  • any tags may match (OR).

This would make tag filtering more flexible and less dependent on perfectly consistent classification.

Examples:

  • Some items have the tag Robot and other items have the tag Robots. That is clearly a classification inconsistency and should be corrected. However, correcting Library data takes time, while OR filtering would allow users to work around this and continue their search.
  • In other cases, some items have the tag Combat Robots without also having the tag Robot. While it's true that all combat robots are robots conceptually, this doesn't necessarily mean that every item with the more specific tag should also require the more general tag. If tags always needed to recursively include every broader category, the tag system would quickly become difficult to maintain. Allowing users to choose between AND and OR filtering makes this more manageable.
  • Conversely, in other file types with fewer total tags, such as Traits, AND filtering may often be the more obviously useful behavior. For example, "Social and Advantages".
  • But in yet other types of files, such as Skills, different use cases benefit from different logical combinations. Compare the following:
    • "Magical and Knowledge"
    • "Magical or Police"
    • "Magical and (Police or Spy)"

I realize this may be difficult to design, implement, and fit cleanly into the UI. These are just some thoughts, but I think this kind of feature would be a very useful addition to GCS.

Possible UI approach

One possible UI approach would be to add a new button to the Equipment/Skill/Trait file toolbar. It could open an "Extended Filtering" dialog, in the style of the Set Substitutions window, where users could configure field-based filters and possibly even multi-level sorting.
After applying the filters, the toolbar button could change to a variant icon or active state to indicate that advanced filtering and/or sorting rules are currently active.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions