PDA

View Full Version : Field Filters for All Libraries



Minty23185Fresh
November 6th, 2017, 00:43
THIS EXTENSION IS NO LONGER AVAILABLE.

As of late September 2023 I've not played D&D in over a year now.
It's doubtful that I will return in the near future.
Currently I have no interest, nor time, to maintain it.





## STOP!! ##
## Before downloading and trying to use this extension READ,
## UNDERSTAND and be willing to COMPLY with the instructions
## and limitations stated in posts #1 - 4 of this thread.
## STOP!! ##


This extension provides enhanced options for filtering which records appear in the Library record list.
The intended user is the Game/Dungeon Master, though the players are not restricted from using it.
The optimal use of this extension is for game design and prep, though game play may be slightly enhanced.


The following posts to this thread contain additional information that you agree to peruse:
#2 - What it does, how and why. Plus restrictions and licensing.. (revised May 3, 2021)
#3 - Versioning information and index to enhancement details.
#4 - Known issues. Work under construction. Acknowledged enhancements. And what ever else.

FGU users can subscribe for automatic updates in the Forge (here (https://forge.fantasygrounds.com/shop/items/624/view)).

This extension is not available for FGC.

Minty23185Fresh
November 6th, 2017, 00:44
Extension History:
This extension has been around for a while now. It has seen some major enhancements since its original inception: which was a tool to help me add more consistent field data to the Psionic Powers I was adding to the Mystics module (Spell Library Filters (https://www.fantasygrounds.com/forums/showthread.php?40116-Spell-Library-Search-Filter-for-All-Fields-(Extension)-for-5E)). Once I recognized the utility of having filters for all fields in every recordset library, this extension came to fruition.

Extension Necessity:
Fantasy Grounds has copious amounts of data available to its users. Lists of NPCs, Spells, Weapons, Armor and other Adventuring Gear. Trying to sift through the records, looking for an item that matches specific criteria can be daunting, even if you're just looking through a single book. Compound that with multiple books (modules) at your disposal and it may seem impossible. This extension, the Field Filters for All Libraries (FFAL), can help you locate records that meet specific criteria, by filtering the data. Examples: (in the books that I have) show me all the NPCs that have a CR of 3 and that can fly. Or show me all the Spells that have a conical area of effect.

Extension Use:
There are two types of Filters: Drop-down Combo Boxes and Text Search Filters. Most fields in the Recordset have specific data types and or specific data values, for instance an NPCs ability scores are always numeric. In the typical 5E setting, per Wizards of the Coast, there are specifically stated player character Skills. These kinds of fields employ the Drop-down Combo Box type filter. Open narrative data, like Story entries or Spell descriptions use the Text Search Filter control. The user can enter any text value they wish into a Text Search Filter (it is not case sensitive) but can only choose from a list of possible values for the Combo Box Filters. The user cannot change which filter is assigned to which field. The filter employed by FFAL is determined by the field type (numeric, boolean, specific text values, or open text fields) as specified in the underlying database.

The functionality that FFAL provides has grown over the years. There are various options that can be set to affect how and which filters are displayed as well as how filters behave. Information about the options that are available as of May 3, 2021 are indexed through the screenshot below. References to additional information are shown as blue annotations with the number in parentheses being the post number(s) that provide additional details. For instance post #62 of this thread provides additional information about the Advanced Mode's Equality Operators.
46305

Extension Interactions:
Many new users of Fantasy Grounds see the huge variety of community developed extensions available to them and they load 'em up. "What could be better than all this additional functionality?" The answer might be none of it! But certainly, less of it. If you are not actively using an extension's functionality, don't load it. Community developers work in a bit of a vacuum. I don't pay attention to what's out there, unless I want or need it. Because the more extensions I have loaded the greater the chances are that those extensions might adversely interact with one another - giving errant results, undesired behaviors or crashing. I make sure my extensions work with the rest of my extensions and with those that I use from other community developers. But not every other extension out there.

This extension, though uncomplicated, wholesale replaces some CoreRPG ruleset code thereby increasing the possibility of conflicts. Especially with other extensions that change the default functionality of the Recordset Library dialogs.

If you have problems with this extension, it is your responsibility to determine if the fault is extension conflicts. The first thing I will ask you is: "Do you use any other extensions?" If so, "Have you unloaded all the other extensions? Do you still have a problem?" So you might as well figure it out beforehand. If you don't know how to go about it, take a look at post #18 of this thread (https://www.fantasygrounds.com/forums/showthread.php?34099-Extension-interaction-Attn-ext-users-and-ext-developers-(soliciting-comments)/page2).

Extension Copyright:
This extension is copywritten by me, in its entirety. The copyright does not prevent you from modifying it for your own use. But you may not share nor publish the modified extension with anyone as long as it has any of my copywritten code in it.

Minty23185Fresh
November 6th, 2017, 00:44
Versions:

Feb 25, 2023v0.4.8patches an issue caused by CoreRPG ruleset changes.
Aug 01, 2022v0.4.7ruleset changes caused ext to fail. (see post #197)
May 24, 2022v0.4.6ruleset changes (the "Unidentified" fields) required a patch
Apr 21, 2022v0.4.5minor extension.xml changes for better Forge support
Apr 21, 2022v0.4.4discontinued support for FGC
Jan 05, 2022v0.4.3Ruleset changes to CoreRPG (FG Unity) required rework.
May 02, 2021v0.4.2Ruleset changes to CoreRPG required a patch
Mar 06, 2021v0.4.1Ruleset changes to CoreRPG required a patch
Feb 22, 2021v0.4.0Enhanced internal troubleshooting routines (see post #177)
Feb 05, 2019v0.3.3Enhancements, Case Sensitivity, All Fields
Feb 17, 2018v0.3.2Equality Operators and Logical Operators in Advanced Mode.
Feb 06, 2018v0.3.1Quick fix for FG v3.3.4 compatibility.
Feb 03, 2018v0.3.0Interform resize and Advanced Mode.
Dec 11, 2017v0.2.1scrollable list when more than five field filters
Nov 16, 2017v0.2.0specific support added for CoreRPG, 3.5E and PathFinder & bug fix
Nov 12, 2017v0.1.2support for NPCs and Notes library dialogs
Nov 07, 2017v0.1.1fixes issue as reported in post #12 of the thread
Nov 05, 2017v0.1.0Initial release (high version number because this extension is a major revision of SLAFS (https://www.fantasygrounds.com/forums/showthread.php?40116-Spell-Library-Search-Filter-for-All-Fields-(Extension)-for-5E)).


Enhancement Index:
As enhancements were made to FFAL, I posted details of each enhancement and how to use it in the latest post to this thread. Each of those posts have important information but sifting through the more than 150 posts in this thread to glean those details is daunting. Here is an index:

Record List vs Filter List Rescaling (post #47)
Advanced Filter Mode and the Filter Context Menu (posts #49-52)
Equality Operators in Advanced Filters (post #60)
Logical Operators in Advanced Filters (post #61)
Special Handling of the "Identified" Field (post #92)
Text Case Sensitivity Options for Filter Values(post #93)

Minty23185Fresh
November 6th, 2017, 00:45
As of the latest release (see post #3):

No known bugs.

No planned enhancements.

viviolay
November 6th, 2017, 05:50
This is amazing. I just tried using FG a few days ago believing the functionality was native to the program and was surprised it wasn't. Thank you so much!

Moon Wizard
November 6th, 2017, 07:29
The reason why I didn't add all fields for filtering was because I originally had some issues with adding every field for filtering. Specifically, performance issues (with lots of module data loaded, i.e. 5K+ records of each type) and UI issues (filters took up more room than list, and forced window to be larger than I wanted). So, I picked the most likely fields that people would be searching on for each record type. Some of those performance issues may be less than they were originally, since the campaign lists have matured a bit. It sounds like Minty is working through the UI issues and finding solutions. It will be great to see what he comes up with.

Regards,
JPG

Bidmaron
November 6th, 2017, 12:54
Hopefully, this will be a candidate to incorporate in a future update without the extension, but nice work nevertheless!

Minty23185Fresh
November 6th, 2017, 17:56
This morning while I was adding support for filtering fields in Tables, it dawned on me that I am doing this all brut force instead of allowing software to do the work for me (and the user). I need to implement "Smart Filters". When I brut force it, I create a new item, in this case a new Table, then go and look at the db.xml file and create filters for each of the fields. I decide whether to use combobox or text-search-box based on the type and contents of the field. If there are links and the like I have to decide whether or not to create filters for the "sub contents".

All this info is available to the software. With Smart Filters, the user could put the form into edit mode and create their own filters, they'd choose a field to filter, and some parameters (combo vs text), maybe specialized sorts routines, etc.

A user is only going to filter one, maybe two, but at the outside three fields at any one time. This methodology relieves me of the real estate issue (trying to fit a large number of filters on the form) and trying to determine which fields to ignore when setting up "All" of the hardcoded custom filters. It might also help with cross ruleset compatibility.

Bidmaron
November 6th, 2017, 21:47
Difficult to follow what you are proposing, Minty. Drop downs are what people will expect and since they are not taking up real estate unless dropped, I am not sure what the real estate concern is.

Erin Righ
November 6th, 2017, 21:57
Love to see this for Pathfinder, maybe someone with more skills than me could take this up?

Moon Wizard
November 6th, 2017, 22:33
I think Minty is talking about auto-generating the list of potential filters, having a way to dynamically add/remove filters, and allowing each filter to specify which field it is filtering on. It's an interesting idea, but there's a lot of detail to flesh out.
The hard part of that is handling custom filter fields (i.e. search by spellcasting class in Pathfinder, when multiple classes embedded in Source field); deciding whether a filter should be a dropdown or a free text filter; and building the UI to support addition/removal of filters dynamically.
It's quite a task, but Minty seems to like those.

Cheers,
JPG

madman
November 6th, 2017, 22:47
@Minty I was just exporting a mod and noticed this.

I am using Pathfinder ruleset, with the ext off it goes away.

21377

Madman..

Minty23185Fresh
November 6th, 2017, 23:19
Difficult to follow what you are proposing, Minty. Drop downs are what people will expect and since they are not taking up real estate unless dropped, I am not sure what the real estate concern is.

Sorry to be so nebulous about it. Sometimes I don't explain myself well. A picture might help. Here is a quick mock up in Paint so please keep that in mind, it's bound to have inconsistencies.

In the mockup there are three panels. The one to the far left shows the NPC library editor (one of those not yet finished). The NPC editor has some 25 fields in it. If I had 25 comboboxes, the dialog would not fit on screen, I'd have to have some way for the user to drop ones he/she isn't interested in or I'd have to add a scroll bar. All 25 of those fields would need their own custom filter options hardcoded into the extension.

What I think my next step should be is to provide "smart" filters that the user can set up. As in the middle panel, there would be the ubiquitous iEdit/iAdd buttons (oops I forgot the iDelete to complete the trio! :) ). The user would select the field or fields he/she wanted to filter in the combobox and then choose options (the little blue state buttons), like use combobox choices, or use text input boxes, split apart csv lists like tools and skills, alphabetizing CR "numbers", stuff like that. Programming would prepopulate the combobox with available fields and preset the options based on a prescan of the field values. (e.g. a csv list would be easy to recognize, so would dice, like 3d10, and CRs, if the field is Boolean, a combobox is the obvious choice.) In the picture the user is going to set up two filters. The third panel shows what it might look like after the user has finished setting up their custom filters, five of them.

21378

The real advantage here as I see it is support in the other rulesets. I know nothing of 3.5E and 4E, as well as PathFinder. Those rulesets based on the CoreRPG could possibly be automatically supported with little to no additionaly effort on my part.

Minty23185Fresh
November 6th, 2017, 23:24
@Minty I was just exporting a mod and noticed this.

I am using Pathfinder ruleset, with the ext off it goes away.

That's pretty uncool! I just tested it in 5E, the ruleset I'm used to. It does the same thing. I'll get to working on it. Thanks.

Minty23185Fresh
November 6th, 2017, 23:40
I think Minty is talking about auto-generating the list of potential filters...
Precisely. Moon Wizard is much more eloquent that I.

... having a way to dynamically add/remove filters...
A little less so... User input required.

... and allowing each filter to specify which field it is filtering on...
Again, spot on.

... It's an interesting idea, but there's a lot of detail to flesh out...
Thank you kindly, sir.


...It's quite a task, but Minty seems to like those.
I haven't a clue where that's coming from! :o

Bidmaron
November 7th, 2017, 02:02
Minty, maybe you could have a drop-box and let the user drag the fields he wants to search/filter on into the drop box. That would lessen the chore somewhat?

SirBayard
November 7th, 2017, 15:12
This has me excited, especially for NPC filtering based on fields like description or resistances.

Minty23185Fresh
November 7th, 2017, 15:50
Just released version v0.1.1 which I believe takes care of the "double vision" :) as reported by madman in post 12 of this thread.

Minty23185Fresh
November 7th, 2017, 15:59
This has me excited, especially for NPC filtering based on fields like description or resistances.

I'll work on NPCs today or tomorrow. I'll be sure to include those fields since you've mentioned them. I won't be able to include all NPC fields because of space considerations as mentioned in post #13 of this thread. Once I get that methodology going, you'll be able to pick and choose. Thanks for the feedback.

Bidmaron
November 10th, 2017, 12:38
Why not use the drag and drop approach, Minty? You could have the more common fields and a place to drag less common fieldss

DGM
November 10th, 2017, 12:52
Is it possible to add class filters in the Spell List for 5e?
Being able to filter all Wizard Spells would be nice.

LordEntrails
November 10th, 2017, 15:48
Is it possible to add class filters in the Spell List for 5e?
Being able to filter all Wizard Spells would be nice.
In the meantime, you can get all the spells in the PHB by class by going to the Library > PHB > Spells

Minty23185Fresh
November 11th, 2017, 01:31
Is it possible to add class filters in the Spell List for 5e?
Being able to filter all Wizard Spells would be nice.

If I understand correctly, I believe this is available. Make sure the PHB module is loaded. Choose the PHB at the top of the Spells library editor if that's the only module you wish to be working with. Then choose Wizard under Source. (The reason it is named "Source" is because that is the field name on the spell details editor.) All Wizard spells will be displayed in the middle section of the library editor.

21428

Minty23185Fresh
November 11th, 2017, 02:08
Why not use the drag and drop approach, Minty? You could have the more common fields and a place to drag less common fieldss

Sorry Bidmaron. I haven't been ignoring this. Thinking about it some. Also trying to get that darn NPC finished up. Yikes what a PIA!

First I'm unsure as to where to drag the data from? The individual detail dialogs? Like the Spell editor, the NPC editor, the Parcels editor? I could do that, but wouldn't every field on every editor then have to have an onDrag() (or whatever it's called) implemented so that the proper data comes over? Fortunately that could mostly be done by probably touching maybe three to five templates, so that's good. I have to have the field name, that's easy enough. The data type might be a bit more tricky. I don't think the data controls are data type specific are they?

Something like this?
21424

Bidmaron
November 11th, 2017, 05:21
The controls may or may not be data type specific, but the data tied to them is if it comes from the database. It has been a while since I played with drag and drop, but I thought the default drag handler told the drop receiver where the data came from. If that is true, you should be able to do what I am suggesting. At the very least if they drag the name of the field (where fields have names on the form they come from) you might be able to figure out the control with that label.

Minty23185Fresh
November 12th, 2017, 17:49
Version v1.1.2 of the Field Filters for All Libraries released.

It adds support for the NPCs and Notes library dialogs.

The support for NPCs is significant and a bit idiosyncratic (follows is an explanation).

====================================

The library dialog for NPCs with all the supported field filters is very large. In order to ensure it would fit on screen a number of the fields were combined into single filters. For example: all six abilities are filtered via a single dialog. The CR and XP fields are combined as well as the HD and HP fields. All the resistances and Immunities are in one filter as are the Spells. Here are some details..

Abilities:
In the screenshot below I have clicked on the combobox and scrolled down a bit. Note the division between numbers and the charisma values. What I have done here is provided users with the option of filtering all six abilities with a single numeric value, or filter based on one specific value of one ability. (You can filter by, say 13, in any ability or filter by a dexterity of 22, for instance).
21451

CR & XP:
These two fields go hand in hand, it seems only natural that they could be combined in the same filter. As in the screenshot above, in the one below I have scrolled down to a significant break in the combobox values. From the depiction, I hope it's obvious that you can filter by either a specific CR value or a specific XP value.
21452

Armor Class (AC) and its descriptive text are very much the same as CR & XP, as are HD & HP.

Resistances & Immunities:
Damage Resistances, Damage Immunities and Condition Immunities have been combined into a single filter. The fields typically are comma separated lists. The list values for all three fields have been broken up into individual items. Usually you can tell whether you're filtering by an immunity or a resistance by the value. For example in the screenshot below, I've scrolled down to show the "poison" immunity, the "poisoned" condition. Also note an error in the Princes of Apocalypse manual that I'll report to Smiteworks. For the Lich NPC in Princes... the two items poison and bludgeoning are semi-colon separated, not comma separated.
21453

And finally Spell Names:
In the screen shot below you should be able to glean that I have combined Innate Spells and "regular" Spells into a single filter and annotated each with a preface.
21454

Given the above examples, I'm hoping it should be obvious what's been combined and how in all the other combined field filters. If not, if you have questions please ask.

I believe I have done a pretty good job at alphabetizing most of the filter values. Some are a little problematic, for instance money. In filters containing money values with commas in them (e.g. 1,200 gp) they are sorted near the top of the values because the comma character is lower in the ASCII hierarchy than the numbers, so it get sorted to the top of the list. (While writing this I just thought of stripping the darn thing out of there and things would sort themselves out - a project for a future day.)

I hope you enjoy this new version. As always, problems questions or criticisms, please direct them my way.

damned
November 12th, 2017, 20:59
Well done Minty!

Minty23185Fresh
November 12th, 2017, 21:49
Okay.. Yes. Yes. I know, I know. The size of the NPC library dialog is a pain. Both my sons are complaining already. I knew there'd be complaints, just not this soon and not from family, right? Or maybe especially from family!

Anyway. I had promised to get the filters for the NPC dialog out there and I rushed it a bit.

Here is a work around.... Drag the dialog about half way off screen to the top. Then drag the resize button down to lengthen the dialog. Now drag the dialog back down to see the filtered modules at the top. True some number of filters toward the bottom will be off screen. If those aren't the ones you're using, great. If they are you'll have to reposition between filters and results. Sorry.

Here's a couple screen shots, well, because I love screen shots.
21458

Minty23185Fresh
November 12th, 2017, 21:54
Well done Minty!

Thank you very much, damned.

Obviously next up is a scroll bar for the filter boxes, some way of selecting only those you want (iEdit mode with little checkboxes or drag and drob as Bidmaron suggests.), or a finite group of smart filters that the user configures (suggested in a previous post).

DGM
November 13th, 2017, 08:38
In the meantime, you can get all the spells in the PHB by class by going to the Library > PHB > Spells

Yes this is pretty useful but being able to have a list that includes spells from all books per class per level is what I was looking for.

DGM
November 13th, 2017, 11:14
You can use Source to Filter on Wizard spells.

Bidmaron
November 13th, 2017, 13:49
Minty I have been looking at drag and drop. The drag target box is very practical. Go to the developer wiki and look at the dragdata object and the onDrop function of the windowcontrol. This will help your list problem because the user can drag anything to the drop. Ok and you can check the data source to find out exactly what he wants. Then you can build a custom drop down

Minty23185Fresh
November 13th, 2017, 15:00
Yes this is pretty useful but being able to have a list that includes spells from all books per class per level is what I was looking for.
You won't be able to get exactly that in one go with this extension, but you can get there. You would load up all the books (modules) you want searched. In the Spells library dialog, choose "all" categories at the top. Choose Wizard in the Source filter. The middle panel will show you all Wizard spells in all books. To look at them by level, choose 0 (cantrips) in the Level filter. All Wizard cantrips in all books are shown. Then do level 1, then level 2, ...

Minty23185Fresh
November 13th, 2017, 16:14
.... Go to the developer wiki and look at the dragdata object and the onDrop function of the windowcontrol.
... you can check the data source to find out exactly what...
Then you can build a custom drop down

Thanks Bidmaron... I did a quick implementation. Added an onDrop() to an existing text control and dumped dragdata to the console. It looks like everything I need is there.

Minty23185Fresh
November 13th, 2017, 16:20
While playing with the PathFinder ruleset this morning I found a bug. It exhibits itself with the CoreRPG (and therefore PathFinder) since neither is "technically" supported at this time. The only library affected is "Parcels". If you're using the 5E ruleset you'll be fine. I already have a fix in the works: I orphaned a function call. I'll work with PathFinder a little more to see if I have any other issues before releasing the "Parcels" fix.

Bidmaron
November 13th, 2017, 17:44
You are a hero Minty

Minty23185Fresh
November 13th, 2017, 18:58
You are a hero Minty
Don't go too far with that praise! :square: The hero can be a bit dense at times...

I was pretty sure I was going to go with drop down combo boxes on the left (field names) as well as on the right (field values). Plus text search boxes on the right for "formatted text" fields, like descriptions. I've done all the work of matching fields to data values to special sort routines, to yadda, yadda, yadda. So just reuse that work.

That said, I wasn't too sure what drag and drop was going to buy me. Then the light bulb went on. If the user can drag and drop, fields that I might not have supported, as insignificant, or an unsupported ruleset, or a new field brought about by a ruleset update... Can still be filtered.

Some user configuration options might still be required (right click menus, maybe?) for those tough fields. Fields like coin values (e.g. 1,321 sp) which are stored as strings, but you want to sort them as numbers when the right hand combo box get populated. With pre scanning during the drop I might be able to preselect the options. After a while I would build up a repertoire of recognizable oddballs to make the preselection smarter.

Thanks Bidmaron for your persistence.

Bidmaron
November 13th, 2017, 19:08
No problem. That gives you a way to have most common pre-configured and drag the less common, as you have divined.

Minty23185Fresh
November 17th, 2017, 06:43
Released v0.2.0 of the Field Filters for All Libraries (FFAL).

The FFAL now has been coded to specifically support for the following rulesets:
CoreRPG
3.5E
5E
PFRPG (PathFinder)

Please keep in mind that I play and DM using the 5E ruleset exclusively, so I do not have a large dataset with which to test the extension's functionality with the other rulesets. What I have done is go into the specific editors like Spells, Feats, NPCs, etc. etc. in those other rulesets and create data objects. I then used the db.xml to support the corresponding database fields. When completing the fields in each of the editors I used my best guess as to what the data would look like. I may have guessed wrong. If you notice strange sort orders, comma separated lists that aren't being broken apart, that sort of thing, please let me know so that I can make the extension work with data that you expect rather than the guesses I made. Thanks in advance for helping me make this extension better and better.

Please also note that I have had to drop filters for a few, typically numeric fields, in both the NPCs and Items libraries because the number of fields in those two libraries (and editor dialogs) is so large that the library dialog wouldn't fit on screen. (This NPC issue is prevalent in the 3.5E, 5E and PF rulesets. The Items issue is just relevant to the 3.5E and PF rulesets.)

Problems, questions, and criticisms, please send them my way.

DGM
November 17th, 2017, 17:53
You won't be able to get exactly that in one go with this extension, but you can get there. You would load up all the books (modules) you want searched. In the Spells library dialog, choose "all" categories at the top. Choose Wizard in the Source filter. The middle panel will show you all Wizard spells in all books. To look at them by level, choose 0 (cantrips) in the Level filter. All Wizard cantrips in all books are shown. Then do level 1, then level 2, ...

I've tried this and it's great, good enough for me!


Released v0.2.0 of the Field Filters for All Libraries (FFAL).

Do you have some patch notes?

-

I've mainly used your spell extension, I dislike the plugin for the NPC menu, it's too cluttered/takes up too much space.
21500

Erin Righ
November 17th, 2017, 20:33
2) Erin (post #10, below) asked that PathFinder be supported. Supported Nov 16. I have zero experience, ever, with anything PathFinder... Again, that said I'm willing to tackle it. I at least opened up the ruleset and from cursory observations the library dialogs look very similar in may respects to the CoreRPG. Probably just a few more fields. It's my belief that there are quite a few PathFinders out there so I'll start this up soon. Erin, I hope you don't mind fielding some questions, should I have them.



Definitely willing to help just dloaded 0.2.0 and I'll test it out and see what's what

Minty23185Fresh
November 19th, 2017, 07:23
Do you have some patch notes?
Nothing specific to that version, no. The difference between it and the previous version is a minor bug fix and updated support for the other three rule sets. I reserved posts 2, 3 & 4 of this thread for those sorts of details. The NPC dialog was a bit more problematic and is detailed in post 26. All the library dialogs, whether they are for spells, feats, parcels, ... behave pretty much the same. Some have more fields than others, completely based on the underlying data.

Minty23185Fresh
November 19th, 2017, 07:26
... I dislike the plugin for the NPC menu, it's too cluttered/takes up too much space.

I don't blame you. I'm not very happy with it either. There are just too many fields to handle cleanly. I am working on a scroll bar bar for the lower half (the filters) but it's not as simple as just plopping a scroll bar on the form...

Minty23185Fresh
December 11th, 2017, 23:21
I just posted a new version of the extension. The field filters are now members of a scrollable list. Otherwise functionality should be the same as the previous version. If you notice peculiarities or downright errors please let me know. Here's a screenshot of the 5E rulesets NPCs library dialog, with the new scrollable list as indicated.
21710

DGM
December 14th, 2017, 18:59
I just posted a new version of the extension. The field filters are now members of a scrollable list. Otherwise functionality should be the same as the previous version. If you notice peculiarities or downright errors please let me know. Here's a screenshot of the 5E rulesets NPCs library dialog, with the new scrollable list as indicated.
21710

Thank you for the update, I've just tested it and it's a massive improvement.
21737

Erin Righ
December 14th, 2017, 20:06
Well done Minty, looks great from what I have seen in my PF Campaign

Minty23185Fresh
February 2nd, 2018, 20:53
As of version 0.3.0 of the Field Filters for All Libraries Extension (FFAL) the user has access to an additional control on the Library Dialogs. The control allows the user to increase or decrease the height of the Record List and proportionally decrease or increase the height of the Custom Filter List. Increasing one of the list's height is at the expense of the other. I.e. increasing the Record List's height will decrease the Custom Filter List's height.

The "Dragline Control (https://www.fantasygrounds.com/forums/showthread.php?41325-Dragline-Control)" was designed, developed and posted by Bidmaron. Some slight modifications to the original control were made to make it work with FFAL. Permission to employ and modify the Dragline Control was kindly granted by the author.

The resizing control is located as the bottom edge of the Record List; as a line indistinguishable from the edge of the frame enveloping the list. I have marked the associated controls in the following screenshot.
22075

To use the control, simply hover the mouse cursor over the lower edge of the Record List, left click the mouse and drag in the desired direction. When you're correctly hovering over the control an instructional popup will appear (as shown in the left panel of following screenshot). As you're dragging the mouse cursor will change from your default cursor to a double, double-ended, arrow (as indicated in the right panel of the screenshot). When you're at the desired position release the mouse button and the two lists will proportionally adjust themselves.
22082

Here are another two screenshots that show the two adjusted height lists. In the left panel I have dragged the control to its upper extreme and in the right panel I dragged it to its lower extreme. Note that you cannot completely collapse either list. I have purposely limited how far either list can be collapsed. For the Record List it is three records high. However this varies, oddly enough, by ruleset based on the ruleset's graphics. Some rulesets have more eloquent graphics, which take up more "real estate" on the form, allowing less room for the actual data fields. These screenshots are for the CoreRPG ruleset. The graphics are a little less detailed, which in this case allows for nearly five records to be displayed. The lower, custom filter list, can be collapsed to either one or two records high for Libraries with only one or two filters available, or for all other filter count availabilities to no less than three records.
22080

As I was constructing this informative post, I noticed an error. It takes some doing to repeat the issue but here are the steps and a screenshot of the unfortunately mangled Record List.
1) Drag the bottom of the form down to lengthen the overall height of the form.
2) Drag the new list resizing control at the bottom of the Record List up to its extreme
3) Drag the bottom of the form up about halfway and watch the poor Record List get collapsed beyond recognition
22081

To remedy this just reverse the steps...

(There is more information on FFAL v0.3.0 in post #49, below.)

Bidmaron
February 2nd, 2018, 20:55
Awesome, Minty! I look forward to it.

Minty23185Fresh
February 2nd, 2018, 20:57
Version 0.3.0 of the Field Filters for All Libraries Extension (FFAL) introduces Advanced Mode. In this version of the extension the user can select (or set up) only those filters that they wish to use. For the Items library of the 5E ruleset there are field filters for 9 different fields. In the left panel of the screenshot below I have adjusted the size of the Records List and Custom Filters List on the Items Library dialog so that all nine field filters are visible. Then I placed the dialog in Advanced Mode and set up two filters, one for the Type field and one for the Subtype field. This is depicted in the right panel of the screenshot. Four things should be immediately noted in the Advanced Mode: (1) there are no little magnifying glasses to the left of the field names, (2) the field name boxes are dropdown combo boxes, (3) the field filters don't necessarily have to be in alphabetical order, and (4) list resizing using the "dragline control" is also supported in Advanced Mode.
22085

The user can toggle into Advanced Mode by right clicking anywhere inside the custom field filters list, highlighted in red in the left panel of the screenshot below. The popup context menu is also shown as well as the proper choice to select to go to Advanced Mode. To return to Standard Mode, the user merely performs a similar invocation and context menu selection in the advanced field filters list (as shown in the right panel).
22086

(This series of informational posts detailing new features of FFAL started with post 47 and continues with post 50.)

Minty23185Fresh
February 3rd, 2018, 06:01
The Create Item option in the popup context menu is only available in Advanced Mode. This option is used to add the desired field filters to the Advanced Field Filters List.

When the user enters Advanced Mode for the first time, the Advanced Field Filter List is blank. The user must add the desired filters to the list and choose the values to filter with. The left panel of the following screen shot depicts Advanced Mode upon entry for the first time, with a blank field list. To define the first field filter, click the Field Name dropdown combo box and choose from the available fields. This will bring up a Field Filter Value dropdown combo box or text search box (depending on the type of field). The middle panel shows the chosen Field Name and an associated Field Value Filter. The user then chooses a value to filter with. The right panel of the screen shot depicts this choice.
22091

To add additional filters to the filter list, right click with the mouse anywhere in the Advanced Field Filter List and choose the Create Item Icon at the bottom of the radial context menu. In the screenshot that follows I've started the creation of an additional two filters using Create Item. The filters are incomplete, in that I've not picked the Field Names nor chosen the Filter Values. For illustration I've also right clicked once more just to display the context menu.
22096

(This series of informational posts detailing new features of FFAL started with post 47 and continues with post 51.)

Minty23185Fresh
February 3rd, 2018, 06:01
The Erase Fields menu choice, to the lower right of the popup context menu is available in both Standard and Advanced Modes. In Standard Mode there is a single choice: erase the values that have been chosen for all field filters. A screen shot is provided.
22087

In Advanced Mode there are two choices, available through a second submenu: (1) erase the values of all field filters (same as in Advanced Mode) and (2) erase all filters, essentially clear everything to start over. Since the one submenu choice performs the same function as in Standard Mode only the clear all is shown in the following screenshot.
22088

(This series of informational posts detailing new features of FFAL started with post 47 and continues with post 52.)

Minty23185Fresh
February 3rd, 2018, 06:03
The Refresh Data option of the FFAL popup radial context menu may be the most esoteric and possibly least used by the average user but it's functionality has been needed time-and-time-again by me. What it does is reload the data from the database and open modules into the dropdown combo boxes. The library dialogs all have persistent data; closing them down doesn't invoke a refresh. If the data gets changed for some reason (for example you're creating a bunch of homebrew spells) then you would have to close down Fantasy Grounds completely for changes to be reflected in the combo boxes. Until now.

An example will surely help. In the following diatribe and illustrations, I have the 5E, Princes of the Apocalypse module loaded. This example is not particular to 5E. I'm working in the NPC library dialog window.

In the left most panel of the following screenshot note the "acid; bludgeoning" damage in the "Resist & Immune" combo box dropdown list. I believe this to be a module documentation error. Here is why it is important. In the middle panel of the screenshot, I've chosen the "acid; bludgeoning" resistance or immunity. Two NPCs have that property, as shown. In the right most panel, I have selected "acid" in the combo box and scrolled down in the Record List. The two NPCs are conspicuously absent. If I were designing my own encounter and wanted a creature that did acid or bludgeoning damage, the two water elementals wouldn't be presented unless I picked the errant value.
22098

If one looks at the Damage Resistances field in Water Elemental's details one notes that acid and bludgeoning are separated with a semi-colon, whereas all the other resistances are separated by commas. Again, I believe this to be a documentation error, a typo. One might argue that the two damage types are a "pair" and always go together. I'd buy that for say "thunder; bludgeoning" but "acid; bludgeoning", nope. Sorry.
22099

One might also argue that this is a short coming of FFAL. That the extension should ignore these little inconsistencies. Possibly. But when I was creating the supplemental Unearthed Arcana Mystic module and extension, I was specifically looking for these types of inconsistencies to ensure I had the best product I could muster. I needed a tool to do that and FFAL was born.

If one edits the Water Elemental and Water Elemental Myrmidon NPCs and changes the semi-colon to a comma, the edits are not immediately reflected in the combo box's dropdown list . One must invoke Refresh Data using the popup radial context menu. To do so, right mouse click anywhere in the filter list and choose the circular double arrows icon on the left side of the menu. The left panel of the following screenshot displays the proper menu choice. Upon refresh the combo box with the selected errant (or changed) value is cleared as shown in the center panel of the screenshot. This of course makes sense since it is no longer a valid choice. The right most panel shows that "acid; bludgeoning" is no longer a choice in the dropdown list, and that if "acid" is picked the two water elementals now appear in the filtered results.
22100

(This series of informational posts detailing new features of FFAL started with post 47 and continues with post 53....)

Minty23185Fresh
February 3rd, 2018, 07:41
Using the Advanced Mode, one might wonder what happens if one does this (is it allowed?):
22101

Consider this:
22102

Just what does that group of filters mean?
"Show to me, the NPCs that speak the Common language AND have a flying speed of 40 feet AND have an Armor Class of 15."

AND is the default (and only!) behavior for multiple custom filter choices. The filter values chosen by the user must all be present in the properties for the item to be displayed in the Record List.

Given that understanding of the mechanics behind the filters, the example presented in the first screenshot, makes complete sense.
"Show me the creatures that speak Common AND speak Elvish AND speak Sylvan."

In the next release of FFAL I hope to provide logical operators other than just AND. I hope to bring OR and NOT into the mix.

(This series of informational posts detailing new features of FFAL started with post 47.)

Minty23185Fresh
February 3rd, 2018, 18:23
Finally the information details have been addressed (see posts 47 - 53). So, I have just posted a new version, v0.3.0, of the Field Filters for All Libraries (FFAL). The download is, as always, in post #1 of this thread.

While the observable changes seem few, the coding changes were many. I have tried to ensure the code is bug free (two months of trying - aargh!).

If you find a problem, have a suggestion or criticism, please feel free to chime in. Feedback only makes the product stronger.

Erin Righ
February 6th, 2018, 19:34
Hey minty, got the following after update to 3.3.4 today

Script Error: [string "FFAL/scripts/FFAL_data_library_35E.lua"]:81: attempt to index field 'aRecords' (a nil value)
Script Error: [string "FFAL/scripts/FFAL_data_library_PF.lua"]:53: attempt to index field 'aRecords' (a nil value)

Minty23185Fresh
February 6th, 2018, 19:42
Hey minty, got the following after update to 3.3.4 today

Script Error: [string "FFAL/scripts/FFAL_data_library_35E.lua"]:81: attempt to index field 'aRecords' (a nil value)
Script Error: [string "FFAL/scripts/FFAL_data_library_PF.lua"]:53: attempt to index field 'aRecords' (a nil value)

Thanks Erin. I'll get to work on it right away. (I looked for the new release a little earlier this morning, but it hadn't been posted.)

Erin Righ
February 6th, 2018, 19:46
No prob, thanks for all your work

Baron28
February 7th, 2018, 00:54
Error received after the 3.3.4 update.

Script Error: [string "EXT/scripts/SLAFS_data_library_5E.lua"]:18: attempt to index field 'aRecords' (a nil value)

Minty23185Fresh
February 7th, 2018, 03:49
Announcing a new version of the Field Filters for All Libraries extension (FFAL v0.3.1). The updated extension is available in the first post of this thread.

One of the global variables in the masterindex was renamed in the recent release of Fantasy Grounds (v3.3.4). This caused FFAL to catastrophically crash. The old variable name has been replaced with the new one in the extension. I have completed thorough functional and code comparative testing to ensure complete compatibility with FG v3.3.4.

If you find additional problems please let me know. Thanks for your interest in FFAL.

[EDIT: Testing completed on Feb 09, 2018]

Minty23185Fresh
February 17th, 2018, 14:58
Announcing a new version of the Field Filters for All Libraries extension (FFAL v0.3.2). The updated extension will be available as soon as I finish the next post available in the first post of this thread.

Advanced Filtering Mode now supports the "Equality Operators": EQUAL, LESS THAN, and GREATER THAN. The equals operator is not new, it is the default operator in all prior versions of the library editors. The two new operators, less than and greater than, expand the range of matching records for a given criteria. In the following screenshot each of the equality operators is displayed. (Note the other operators, the "Logical Operators", which I'll explain in my next post to this thread.)
22275
Using the equal operator, shown in the left most panel, is nothing new, let's move along. The less than and greater than operators are most appropriate when used with numeric data, as shown in the center panel (the less than operator). However the two operators can be used on strings, as shown in the right panel (greater than operator). Typically, the results are based on alphanumeric order, which, again, typically the criteria list is sorted by. But not always, so results can be unpredictable. In the right panel I have purposely captured the screen with the drop down list exposed to indicate the sort order of the selection criteria. If one were to open each of the six filtered records, one would see that all of them have a Damage of either 2d4 or 2d6 which appear after the selected criteria in the drop down list.

One might immediately wonder where are LESS THAN OR EQUAL TO and GREATER THAN OR EQUAL TO. They are basically unnecessary since one can just select the next lower or higher criteria in the drop down list. E.g. if you want all records with Weight greater than or equal to 7, just choose the next lower number in the drop down list, say 6. Additionally, if you really must have "OR EQUAL TO" functionality, it is available using the OR logical operator, which I discuss in my next post.

The above operators are not available for use with the text search box. This is because when one enters text into the search box, records are filtered based on that text appearing anywhere in the associated field. So it doesn't make sense to try to perform the equality operations under that mechanic. Instead there is one and only one operator, "CONTAINS", as in the text field "contains" the word such-and-such. The CONTAINS icon looks similar to the greater than icon, but it is more rounded, sort of like a sideways "U", as shown in this screenshot.
22276

Oh yeah, one last thing, to choose the operator you want, cycle through them by mouse clicking the equality operator icon.

Minty23185Fresh
February 17th, 2018, 14:59
Announcing a new version of the Field Filters for All Libraries extension (FFAL v0.3.2). The updated extension is available in the first post of this thread.

Advanced Filtering Mode now supports the "LOGICAL Operators": AND, OR and NOT. The AND operator is not new, it is the default operator in all prior versions of the library editors. For a quick explanation see post 53 of this thread. The two new operators, OR and NOT, can expand or restrict the range of matching records for a given criteria. In the following screenshot each of the logical operators is displayed. (Note the other operators, the "Numeric Operators", are explained in the previous post to this thread.)
22281

As with the Equality Operators, to select the desired operation just cycle through them by mouse clicking the logical operator icon. In the screenshot above the AND operator is shown in the left most panel as a white "plus sign". The OR operator is shown in the middle panel, as a white "dot sign" and the NOT operator is shown in the right most panel as a red "minus sign" or "over score". For those familiar with Boolean algebra, the algebra of mathematical logic, one will immediately recognize these symbols. If one compares the AND operation (left panel) to the same operation in Standard Mode one will note the results are the same four records. However, also note the OR operation displays the same results, why? Allow me to mention the NOT operation first and I'll explain. In the right panel, the NOT operation, all records that are NOT of Subtype "Exotic Light Melee" are displayed.

Now a bit about how the Logical Operators are applied. Each record is individually subjected to all filtering criteria. What this means is, the code steps through each record on its own merit. The first record is subjected to the first criteria, then the second criteria, then the third, etc. If it meets all the criteria, in order, then it is displayed. The second record, then the third, etc. etc. are subjected to the same decision process. This is very different than a "funneling effect" where all records are subject to the first criteria, then the resultant subset of records are subjected to the second criteria, and so on. In the above screenshot, the AND and OR operators operate no differently on the record set since the records haven't been subjected to a prior operation. These logical operators only have real significance when multiple operations are in effect. Here is an example:
22282

Working through the panels: In the left most panel, the filter restricts the display of records to those that have an armor class bonus of 4. In the middle panel, I've added a second filter to the armor class bonus field, OR it can be greater than 4. Now there are many more records displayed. A record is displayed if it has an armor class bonus greater than or equal to 4. (An aside: in the prior post to this thread I mentioned that there were no "greater than or equal to" nor "less than or equal to" equality operators. This middle panel show you how to implement the greater than or equal to.) Back to the screenshots. In the right panel, I have added yet another filter. Records are displayed if they have an armor class bonus of 4 OR an armor class bonus greater than 4 AND are of subtype shield.

The order that the filters are defined is important. Here is an example with very different results for the same filtering criteria, but the filters are in a different order.
22279

What has happened here is: Records are displayed if they are of subtype shield, and they have and armor class bonus equal to four OR they have and armor class bonus greater than 4. Meaning, anything with an armor class greater than 4. Each application of a criteria stands on its own, then is applied to the previous decisions. ANDs tend to restrict the number of records shown, ORs tend to include more records in the display.

I'm not sure this is the behavior we really desire. I'd like comments if you don't mind sharing them with me. It's possible, what we really desire is the "funneling effect" mentioned above.

And now a note about NOT. When the NOT operator (single red minus sign) is used other than in the first filter definition it is ambiguous. In the following screenshot I am attempting to display those weapons with a damage greater than 1d4 but that aren't bludgeoning type weapons. I want piercing, slashing, etc., etc. type weapons.
22280

In the left most panel, the results displayed are, well, strange. A gallon of ale just doesn't seem like a weapon. This is because the NOT is applied ambiguously. The lua script behind the screen, doing the heavy lifting, needs to know whether to apply the NOT with an AND to the other criteria, or with an OR. Hence two sub operators: the NOT and then AND (red plus sign in the middle panel) and the NOT and then OR operator (red dot in the right panel). When one thinks about what is desired: "a weapon that deals damage greater than 1d4 AND does not do bludgeoning damage" as opposed to "a weapon that deals more than 1d4 damage OR (anything) that doesn't do bludgeoning damage" one sees that the middle panel has the correct filters with the correct operators.

So why even have the ambiguous, simple NOT operator? It's quick and easy when there is only one operation to be done.
(BTW, the Type = weapon filter is probably superfluous. Is there anything that does damage besides weapons?)

In general, I don't expect the Equality Operators and the Logical Operators to see a whole lot of use. But they are there for your enjoyment should you need them.

Thanks for using the Field Filters for All Libraries extension and please share your thoughts, ideas, criticisms and or problems.

Bidmaron
February 17th, 2018, 15:09
Minty, I hail your new update, and continue to love this extension. I believe it is worth consideration for merging into the base CoreRPG.

Erin Righ
February 17th, 2018, 17:40
I second, Bidmaron on this. For a guy who doesn't play PF, you sure made a great tool for it

Salva
July 16th, 2018, 17:43
Hi Minty, looks like the last update is messing with the extension or viceversa :(
https://cdn.discordapp.com/attachments/274977928058503168/468452836158472193/unknown.png

Minty23185Fresh
July 16th, 2018, 17:55
Hi Minty, looks like the last update is messing with the extension or viceversa :(

It certainly does look that way. I’ll get to work immediately. Thanks Salva

Minty23185Fresh
July 16th, 2018, 18:44
Hi Minty, looks like the last update is messing with the extension or viceversa :(
https://cdn.discordapp.com/attachments/274977928058503168/468452836158472193/unknown.png

Salva I can't seem to duplicate the error... Would it be possible for you to tell me what you did to trigger the error(s)? I've opened various libraries: NPCs, Stories, Spells... Navigated to various functions, applying various filters and I can't get it to trigger the error.

I am using FG v3.5.5 and Filter Filters extension v0.3.2 with no other extensions.
If you have other extensions loaded, possibly there is an inter-extension conflict. Please let me know what other extensions you're using and I can explore that.


23976


To summarize: please give me a list of extensions you're using plus steps to reproduce the error. Thanks.
[EDIT] I guess it could be a ruleset thing too. So what ruleset are you using? Your attachment shows 5E. Is that correct?

[EDIT] I notice, in the console data: "Runtime Notice s'5E'" - that looks like a Debug.console( ) output to me. Again a possible indication another extension involvement.

Salva
July 16th, 2018, 21:05
Im using 3.3.6 in test mode.
Maybe thats why.
Do you need more info?
Thanks

Minty23185Fresh
July 16th, 2018, 21:13
Im using 3.3.6 in test mode.
Maybe thats why.
Do you need more info?
Thanks

Ahhh. v3.3.6! That’s probably it. Gives me a little lead time. Thanks, I’ll check it out.

Do I need more? Not yet. Thanks.

grisix
August 3rd, 2018, 22:49
Great extension!

Minty23185Fresh
August 5th, 2018, 18:07
@grisix: Thank you.

@everybody: Salva reported some errors with the interim test version of v3.3.6. Now that v3.3.6 has been officially released, I'm not seeing those errors. I have a bit more testing to do, and code comparisons, but preliminarily it looks like the current version of this extension (v0.3.2) works fine with FG v3.3.6.

If you see this to be the contrary, i.e. you're receiving errors with my extension please let me know.

DGM
August 10th, 2018, 15:22
Great Extension still using it almost everyday.
There is a bug/issue that I've had most of the time, it seems to arise with the DOE plugin.

When I open NPCS it is empty and a error pop-ups if I close the error and search in the npcs it clear, reset and work normally.
24277

Minty23185Fresh
August 10th, 2018, 15:40
Thanks DGM. I’ll take a look. The information you’ve provided should be more than enough for me to get a start on this. If I need more I’ll ask. And I’m glad you find FFAL helpful.

lokiare
November 29th, 2018, 14:53
Any chance you can normalize the words before putting them in the list?

Sometimes a word will be capitalized or all lowercase or first letter capitalized and its the same word which shows up in the list multiple times.

you could use LUA's functions to turn all letters to lowercase then compare and then capitalize the first letter when you put it in the list.

Edit: Also there is a new version of FG in TEST that may be causing problems if you overwrite the StringManager script.

Minty23185Fresh
November 29th, 2018, 20:19
Any chance you can normalize the words before putting them in the list?
lokiare, I'm flattered that an FG developer finds my work worthy of personal use. Thank you, truly, thank you.

I purposely did not normalize. This whole project came about while I was working on my Mystic Class Implementor Extension. While migrating the Psionics over to Spells I was filling in Range, Duration, Level, that sort of thing. I wanted to be consistent, with my entries as well as, matching those of Smiteworks. Not normalizing everything was a quick and easy way for me to use the drop down and recognize differences then remedy them in my extension.

It is my opinion, that inconsistencies in punctuation and capitalization are actually errors and should be remedied in the books afflicted, not in my FFAL extension.

As an example, open up a few books that have NPCs in them and take a look at Alignment. Their inconsistent treatment borders on criminal.:)

That tirade complete, I will take a look at adding an option to FFAL. To be honest, unnormalized drop down items aggravates me too at times. I plan to revisit FFAL in the near future, I believe I may have some bugs. And thanks for the heads up in the following:

Also there is a new version of FG in TEST that may be causing problems if you overwrite the StringManager script.

lokiare
November 30th, 2018, 15:48
lokiare, I'm flattered that an FG developer finds my work worthy of personal use. Thank you, truly, thank you.

I purposely did not normalize. This whole project came about while I was working on my Mystic Class Implementor Extension. While migrating the Psionics over to Spells I was filling in Range, Duration, Level, that sort of thing. I wanted to be consistent, with my entries as well as, matching those of Smiteworks. Not normalizing everything was a quick and easy way for me to use the drop down and recognize differences then remedy them in my extension.

It is my opinion, that inconsistencies in punctuation and capitalization are actually errors and should be remedied in the books afflicted, not in my FFAL extension.

As an example, open up a few books that have NPCs in them and take a look at Alignment. Their inconsistent treatment borders on criminal.:)

That tirade complete, I will take a look at adding an option to FFAL. To be honest, unnormalized drop down items aggravates me too at times. I plan to revisit FFAL in the near future, I believe I may have some bugs. And thanks for the heads up in the following:

Thanks for taking a look. The reason we don't update all products is that instead of updating over 1000 individual product modules, we like to keep a focus on FGU and other future developments. Though when we go in and update some of the more popular content we can fix those. Of course that doesn't alleviate the problems on either side completely. Thanks for creating a nice, very useful extension.

lokiare
December 6th, 2018, 15:16
When this extension is enabled, the PC window (character window) turns into a masterlist window and doesn't allow the normal character manipulation. This is while running 3.3.7 in TEST.

Minty23185Fresh
December 6th, 2018, 15:31
When this extension is enabled, the PC window (character window) turns into a masterlist window and doesn't allow the normal character manipulation. This is while running 3.3.7 in TEST.

I don’t even understand how this could happen, I believe you, but can’t fathom it. I purposely avoided handling the PC library. It must be my avoidance behavior :)

I am just finishing up my Druid Wild Shapes Extension then I’ll get right on this. Thanks lokiare1

[EDIT] I have found some other issues too so it’s important I get to this.

madman
December 6th, 2018, 16:19
Druid Wild Shapes Extension

For what system. Do tell...

Moon Wizard
December 6th, 2018, 18:02
Minty,

I had to reorganize some of the scripts to support the ability to drag sidebar buttons as links. You are probably overriding one of the main scripts (LibraryData, DesktopManager, etc.), which you probably should avoid if you can.

JPG

Minty23185Fresh
December 6th, 2018, 23:29
Minty,

I had to reorganize some of the scripts to support the ability to drag sidebar buttons as links. You are probably overriding one of the main scripts (LibraryData, DesktopManager, etc.), which you probably should avoid if you can.

JPG

Thanks Moon Wizard. I try to never, ever wholesale override anything, but I do recognize both those managers. And I also seem to recall high dependence on tables in those managers. If they've been reorganized (i.e. some of the data is not in the same place), I'm positive I'll have problems. Thanks for the heads up.

Minty23185Fresh
December 6th, 2018, 23:31
For what system. Do tell...
5E. I am absolutely unfamiliar with anything prior to that until you go all the way back to AD&D.

Minty23185Fresh
December 12th, 2018, 19:54
From post #71 above...

There is a bug/issue that I've had most of the time, it seems to arise with the DOE plugin.

DGM, I was finally able to get it to throw an error, though it is slightly different than the one that you've provided. It is a comparison against nil problem so I have some confidence that their cause comes from the same area of code. I narrowed it down to the DOE: OLE extension by removing FFAL from the equation; I didn't load it. I have reported my findings to dulux-oz, see post #58 of this thread (https://www.fantasygrounds.com/forums/showthread.php?34735-DOE-OLE-Extension/page6).

In my attempts to replicate the error that you've reported, DGM, I followed similar steps, with both the DOE and FFAL extensions loaded, and have been unsuccessful in replicating what you've observed. If you can and wish to provide more details on what you do to get FFAL to throw the error I would happily entertain them.

In my mind the next step is to wait on dulux-oz. If he is able to observe and remedy the issue I have reported to him, once it is fixed we can see if that also fixes the issue you're having.

Minty23185Fresh
December 13th, 2018, 05:35
Any chance you can normalize the words before putting them in the list?

lokiare1
It just dawned on me that until I get this functionality in there, one can already do this using the “Advanced Mode” and the OR function.

Example: if beast and Beast are in the Type field for the NPC record library, one could set up the filtering criteria (in Advanced Mode) as:
• Type = Beast
• Type = beast

Minty23185Fresh
December 14th, 2018, 01:40
When this extension is enabled, the PC window (character window) turns into a masterlist window and doesn't allow the normal character manipulation. This is while running 3.3.7 in TEST.

I just downloaded v3.3.7 and tried to repeat the above behavior, without success.

The new Character Selection dialog has search functionality now which is pretty cool but its behavior is the same with or without my extension loaded. In the screenshot below the left panel is the CoreRPG ruleset without my extension loaded and the right panel is with FFAL loaded.

There doesn't seem to be a difference; the dialog is not typical of the master index dialog of all the other record libraries. Is it possible that the problem you observed was remedied in a change in the test (v3.3.7) ruleset between when you posted on the 6th and today? Please advise if you're still seeing the issue you reported. Thanks.

25579

lokiare
December 14th, 2018, 15:01
I just downloaded v3.3.7 and tried to repeat the above behavior, without success.

The new Character Selection dialog has search functionality now which is pretty cool but its behavior is the same with or without my extension loaded. In the screenshot below the left panel is the CoreRPG ruleset without my extension loaded and the right panel is with FFAL loaded.

There doesn't seem to be a difference; the dialog is not typical of the master index dialog of all the other record libraries. Is it possible that the problem you observed was remedied in a change in the test (v3.3.7) ruleset between when you posted on the 6th and today? Please advise if you're still seeing the issue you reported. Thanks.

25579

It looks like with the update to 0.3.2 the problem went away.

ScottUlmer
December 18th, 2018, 19:12
Hello, so with the release that came out today this extension is now bugged. After you type one character into any of the filter fields, the input field changes to the chat.

Minty23185Fresh
December 18th, 2018, 19:34
Thank you Scott. I’ve been working on a revision, and had checked against the test version, prior to its release. I thought I was in the clear.; I guess not. I’ll set my revisions aside and get to work on this more pressing need.

ScottUlmer
December 18th, 2018, 19:37
Sorry to raise the alarm... it is not your extension. With NO extensions active, the new version of Fantasy Grounds does this. I figured it was your extension because I installed it today, and then after the update it was broken. Apologies good sir!

Trenloe
December 18th, 2018, 19:51
Yep - it's an issue with v3.3.7. https://www.fantasygrounds.com/forums/showthread.php?46523-Beta-Release-v3-3-7&p=418587&viewfull=1#post418587

Moon Wizard
December 18th, 2018, 20:45
Just pushed a hot fix. Please update, and try again.

Regards,
JPG

Minty23185Fresh
December 19th, 2018, 17:54
Sorry to raise the alarm... it is not your extension. ... Apologies good sir!

Yep - it's an issue with v3.3.7. https://www.fantasygrounds.com/forums/showthread.php?46523-Beta-Release-v3-3-7&p=418587&viewfull=1#post418587

Just pushed a hot fix. Please update, and try again.

Thank you Scott, and no worries.
Thank you Trenloe and Moon Wizard, for being ever vigilant and for you masterful understanding and craft with the code.

I have double checked my the search fields used in Field Filters for All Libraries, after the hot patch, and I am not observing the behavior Scott reported.
Whew! A close call. :o

Minty23185Fresh
February 5th, 2019, 20:03
This version represents a major rework of the guts of this extension. Almost all of which will (hopefully) be unobserved by users. While rewriting a good part of the table driven data in some of the files I have just about addressed all of the items listed in the Problems, Fixes and Enhancements, post #4 of this thread.


The Tables recordset library is still unsupported, and will remain so unless there is a great clamoring for me to support it. After doing the Classes and Races recordsets, and their relative uselessness, it became obvious to me that the Tables recordset would be even more so.
I am quite certain that I have supported all available fields in all supported rulesets.
Filters that contained a combination of fields, e.g. the abilities in the NPCs recordsets, have been decoupled because screen real estate is no longer an issue due to the scroll bars in the filters portions of the dialogs.
Drop down combo box sorting is more ubiquitous and, in my opinion, better in many of the filters. Some fields are problematic, especially in the 3.5E/Pathfinder rulesets, because of inconsistent data format.
Filtering based on "Sub-fields", for example in the Classes and Races recordsets, is supported.
The "Identified" field, et.al., is rigorously supported, to prevent revealing data in unidentified objects (Images & Maps, Items, and NPCs libraries). More details below.
Filtering based on text case is now possible. More details in the following post.


Identified Objects
The Images & Maps, Items and NPCs recordsets have "Identified" fields. When an object is annotated as "unidentified" not all of its data is revealed to users. The GM, of course is privy to all the details, but the players get very little information about unidentified objects.

In the following screenshot, from the 5E ruleset, the "identified" related fields are circled in red. The "Identified" field is a flag to annotate whether or not all data should be made available to players. The field is actually "tri-state". By default the field is not set (I've labeled it "Undetermined"). Otherwise the DM must set the field to "Identified" ("Yes") or "Unidentified" ("No"). These filter options are circled in dark red, and the dialog fields are circled on the individual Item dialogs in blue.
26223
The Club item is Identified and so all its data will be shared with the players. The Mace item is unidentified and so only the Non-ID Name and Notes fields are shared with the players. The Axe item is undetermined, the DM has not set the Identified field to either Yes (Identified) or No (Unidentified).

In the next two screenshots, I'll compare the GM's view with the player's view of the three items, as well as the data in the filters available to the specific user.

In this screenshot, that of the GM, note the completeness of the data visible in each of the three data dialogs and that each Damage value appears in the recordset field filter. (All indicated in red.)
26224

And now compare the above screenshot with the following, that of the Player. The unidentified Mace shows up on the player's view with the Non-ID Name ("Fancy Club") and with the Notes as the item's Description. No other data is shared. I have carried this treatment to the Field Filters. The Damage value for the Mace is absent from the combo box choices. This prevents the very astute player from gleaning data about unidentified objects.
26225

One should note, as stated earlier, all data for the "Undetermined" item is shared with the players. So of what importance is "undetermined". For a content designer, the writer of adventures, and the GM the third state of the Identified field can be of significant help if they are using identified/unidentified objects. If the GM is taking care to not wholesale identify every object to his/her players, by selecting "(Undetermined)" in the "Identified" field filter a list of unhandled, untouched, objects is presented. The GM can now address each unhandled object.

Minty23185Fresh
February 5th, 2019, 20:03
Soapboxing, Self Promotion
In post #2 of this thread I explain a little bit about how and why this extension came to fruition. It's my opinion that anyone who writes any content for FG should be using this extension. The primary importance being data consistency. This extension gives quick and easy recognition of errors in data consistency. Superior products, get superior returns. Here are some examples for your perusal (all of these examples are simply typos):
26227

Case Sensitivity in String/Text Based Filtering
To the best of my knowledge the few Field Filters provided by the rulesets and the those in prior versions of this extension were case insensitive. This version of Field Filters for All Libraries provides an option for case sensitivity and case compression or "flattening". Here is a screen shot showing the new context menu option (right click anywhere in the Field Filters area):
26228

The new menu option choice is circled in red in the left panel of the screenshot, the right panel shows the three sub-menu choices, from top to bottom:

Case Sensitive
Case Insensitive
Case Compressed

Please note that the screenshot is for illustrative purposes. All three sub-menu choices are not visible at the same time. The mode that the Field Filter dialog is in will not be an available option. For example: when you first invoke a recordset dialog the default option is Case Insensitive, just as it always has been. So that option "A = a" will not be a choice. Only the other two will be. This indicates what Case Sensitivity mode the dialog is in.

In the next screenshot, Case Insensitivity is illustrated. Note the existence of both "amorphous" and "Amorphous" choices in the "SQ" Field Filter (left most panel). With Case Insensitivity no matter which one you choose, you get the same results.
26229

And in this screenshot Case Sensitive is illustrated in the left and center panels. This option can be of great help say when 45 NPCs share the same trait and you're looking for the one with the capitalization error.
26230

In the right panel of the screenshot above Case Compression is illustrated. All strings are compressed into lower case so one doesn't have to observe both "amorphous" and "Amorphous" nor "amphibious" and "Amphibious" choices. One is presented with just one choice for each. Obviously, this option behaves like Case Insensitive.

Bidmaron
February 6th, 2019, 04:06
Minty, this is just fabulous work!

Kelrugem
February 6th, 2019, 05:39
Thank you :)

Chronodt
February 9th, 2019, 08:03
The first time I click on the NPC icon after I load the campaign, I get this error:

Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:277: attempt to compare number with nil

I tried disabling all other extensions, but it still behaved the same.
I'm using the official pathfinder ruleset

Minty23185Fresh
February 9th, 2019, 13:42
I'm using the official pathfinder ruleset

What does “official pathfinder” mean?

The PFRPG2 ruleset is not supported because it is still in “beta” test, as far as I know.

Chronodt
February 9th, 2019, 13:45
What does “official pathfinder” mean?

The PFRPG2 ruleset is not supported because it is still in “beta” test, as far as I know.

well, it's PFRPG, with the official modules installed :P (shouldn't change anything, as I think it still uses the same ruleset as the free modules)

Minty23185Fresh
February 9th, 2019, 18:01
well, it's PFRPG, with the official modules installed :P (shouldn't change anything, as I think it still uses the same ruleset as the free modules)

Please provide a screenshot, similar to the following. I need a picture of the chat and the Library showing the rulesets and modules loaded. Please note that you might have to crop a full screen screenshot otherwise I won't be able to see the details I need.

In case you haven't reviewed the copious information provided in this thread, I am not a pathfinder user, I'm actually completely ignorant of it. Another user asked that I support pathfinder, and I'm doing the best that I can. Please be patient as I try to help you and get to the bottom of the problem.

26260

Chronodt
February 9th, 2019, 18:40
After your request of a screenshot I actually created a new campaign, to see if the problem actuall WAS one of the (paid) pathfinder modules, and I was right.

26261

I tried with the Pathfinder NPC codex as well, with the same error as the screenshot (but i didn't get the one in my previous post)
The free pathfinder modules were fine, instead.
It's not a blocking bug, after all, after the first time, you don't get it again unless you unload and reload one of the official (paid) pathfinder modules with NPCs

Minty23185Fresh
February 9th, 2019, 19:17
... to see if the problem actuall WAS one of the (paid) pathfinder modules, and I was right....
Okay. I'm out of luck now :cry: Would you mind working with me on this? I'd like to address it, but at the same time not notify everyone subscribed to this thread every time one of us comments. It bloats the thread and everyone's emails. I'd like to move over to PMs. Attachments are slightly more problematic there though.


The free pathfinder modules were fine, instead.
Thanks for trying this. I was going to suggest it.


It's not a blocking bug, after all, after the first time, you don't get it again unless you unload and reload one of the official (paid) pathfinder modules with NPCs
This looks like some sort of load issue as the data in the module(s) are processed during startup. Typically when this happens the field filters are not present and neither are the records (see screenshot).
26263

Minty23185Fresh
February 24th, 2019, 17:29
I have finally been able to address Chronodt's concern about FFAL.


First I'd like to thank Chronodt for using my extension and for coming to me when a problem arose with the extension. Chronodt was also instrumental in pointing me in the right direction so that I could find the issue in an efficient manner, once I had the time to investigate.


I believe the problem boils down to trying to open incompatible data sets. One cannot open the PFRPG Essentials: PFRPG Bestiary in the 3.5E ruleset nor should one try to open the 3.5E Essentials: 3.5E Monsters in the PFRPG ruleset. Some of the data fields are just too incompatible. When FFAL tries to sort the fields, patterns used to sort don't match up with the data present and, in this case, the extension crashes.


Below is a screenshot example. The panel on the left is from the 3.5E Monsters module, the panel on the right is from the PFRPG Bestiary.
26450

Lilly Fireblade
July 20th, 2019, 13:50
Hey minty when I use this plugin I get the following error when I open the NPC's menu:

Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:468: invalid order function for sorting
It even does it when it is the only extension loaded, and it has the odd side-effect of making it where my npc's menu doesn't show new npc's that I add during the session until I reload the table then it shows up.27986

Minty23185Fresh
July 20th, 2019, 16:32
Hey minty when I use this plugin I get ..[an].. error when I open the NPC's menu:
It even does it when it is the only extension loaded, and it has the odd side-effect of making it where my npc's menu doesn't show new npc's that I add during the session until I reload the table then it shows up.

Hi Lilly. Thanks for ensuring the use of multiple extensions isn't the problem by unloading all other extensions.

Two questions that I need answers to:
1) How many modules do you have loaded? For instance from the screenshot you provided, I see that Xanathar is probably loaded. Are there others? I do not have Xanathar, Volo and many others. I have tested FFAL with Players Handbook, Dungeon Masters Guide and Monster Manual, plus a few other campaign modules like Princes... and Hoard... Please try to find which is the offending module by loading only one module at a time (save PHB, DMG and MM for last since I've already tested those).
2) What does "new npc's that I add during the session" mean? Have you created custom NPC's, for, say a homebrew campaign? Have you "copied" or obtained NPC stat blocks from some other source, say the internet? They may contain offending data.

Let me know what you find, so I can proceed. This weekend is pretty much filled with other non D&D things (a travesty right?) so I won't be able to fully address this until next week.

Lilly Fireblade
July 20th, 2019, 17:15
1) I had only Players Handbook, Monster Manual, Dungeon Master's Guide, and Volo's. And Verified that it doesn't throw an error when the other three are loaded at the same time. so Volo's guide to monsters appears to be the culprit.
2)by adding npc's during a session I mean hitting the new npc button in the npc menu or dragging an existing npc into the npc menu to create a copy. without Volo's loaded it works normally.

Zacchaeus
July 20th, 2019, 19:04
I just tested this and I can replicate the errors mentioned. And it does seen to be confined to Volo. Which may point to a monster in Volo having an error of some kind which is casing the issue. But I've no idea of where to start looking. I'm assuming that the error means that there is something in the order in which the stat block is presented which is unexpected. I can't think of what that would be though.

Lilly Fireblade
July 20th, 2019, 20:22
I have found somewhat of a workaround for now. If you have the npc menu open when you first load Volo's in a session it will still let you use the plugin and shows any new/copied stat blocks that are made during the session. It does still throw errors all over the place and the view has to be refreshed for added/deleted npc's to update but it is still usable.

rushl23
July 22nd, 2019, 19:40
I believe I have discovered the issue with the "Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:468: invalid order function for sorting" issue, and a workaround for now. I haven't built a proper fix, as my LUA is rusty. But I'll share what I've found.

Going into technical mode now. :) If you just want the workaround, see below.

Basically, it looks like the issue is in the regex parse of strings coming from the FFAL_sortGen method. In 5e, this is called by item damage, and NPC saves, sense, and skill. The middle capture group is looking for a number, but some entries don't parse as such. They likely don't have any digits at all, or have a "-" as the entry. (Note that the FFAL_genericSortDataCapture method weeds out blank/empty data. But it doesn't handle instances where data is present, but not a number.) In those instances, in seems the sorting process fails to compare a string to a number, and throws the error. I could be off on that assumption, but I'm pretty confident that if the system could treat any failed number parses as a "0", things might work as intended.

In any case, the workaround (at least in 5E) is to change the second parameter's type from "number" to "string". That prevents the sort from trying to compare a string to a number, and all works without error. Of course, that means that numerical items are in string-order rather than number-order (i.e. 1, 2, 20, 3, 4... rather than 1, 2, 3, 4, 20...), but I can live with that.

Returning to a less-technical mode now.
The specific edits I did were in the file FFAL_data_library_5E.lua. Simply search for "return FFAL_sortGen" and locate the brackets which list the expected types (it'll be toward the end of the line).

For the ["dmg"] property, it will look like: "{"number","number","string"}". Simply change the middle "number" to "string". It will look like: {"number","string","string"}.
For ["saves"] and ["skill"], change {"string","number"} to {"string","string"}.
For ["sense"] change {"string","number","string"} to {"string","string","string"}.

Reload, and you should no longer receive any errors.

I hope this helps!
Tim

Minty23185Fresh
July 27th, 2019, 23:59
I believe I have a fix. The issue seems to be the Skill: Sleight of Hand. My "generic sort" routine crashes when there are multiple NPCs, as in Volo's, with that skill. This occurs because the sort expects a single word followed by a space followed by a signed bonus value (numeric), as is the case for every other Skill. There is only one NPC with the Sleight of Hand skill in the Monster Manual and that evidently doesn't present a problem.

I will provide a Debug copy of the extension here for your use Lilly, Zacchaeus, rushl23 and whomever else needs it. If after about month I haven't heard to the contrary I'll consider the code bug free and post it as the current copy of the extension. The reason I am going this route is I still don't have a copy of Volo's and probably won't be obtaining one anytime in the near future, so I can't honestly say that I believe I have the bug removed.

Thanks for using the extension and reporting the bug.

[EDIT (May 16, 2022)] Removed the Debug version from this post.

paladiusdarkhelm
September 20th, 2019, 00:06
I was having some major server stability problems in that whenever I went into "Items" more than once, it would crash my FG GM game session while this one was enabled. I'll revert back to the 3.3 version and hopefully do some more testing sometime over this weekend with the mix of other extensions I've been running.

LordEntrails
September 20th, 2019, 01:57
Did you make sure you weren't running into process size limits?

paladiusdarkhelm
September 20th, 2019, 22:58
Yes. I could get it to freeze up and crash within 5 minutes of load if I just kept messing with items specifically, closing the window, reopening, doing it again after I opened another window like spells.

Minty23185Fresh
September 21st, 2019, 01:33
I could get it to freeze up and crash within 5 minutes of load if....
Okay. Interesting. I’ve run FFAL for hours doing module conversions (.pdf to .mod) without incident.
I don’t doubt that you’re having difficulties I just find it odd. Just last night my DM ran the session for three hours with FFAL, LDTE, DWSI and a couple other extensions loaded without issue. It’s true though that he probably wasn’t using FFAL to any great extent.
What other extensions AND modules do you have loaded? What version of FG are you using? Do you have other programs running? Are you using Windows 10? What “freezes up”? The PC, i.e. Windows (all programs)? Fantasy Grounds locks up? Of just FFAL? Does a FG console window pop up with some error information?

Minty23185Fresh
September 21st, 2019, 01:53
Please believe me that I am not trying to be flip when I say this: I cannot fix what is not broken and it’s not broken until I can break it. I have to see what breaks it to fix it.

If you’re not a software developer, consider this example: say you have a problem with your car, that it stops running when you have the radio on, the windshield wipers running and you make a left turn (when using the left turn signal). You could take you car to the mechanic and he might never find the problem unless you tell him that you had the radio on, the wipers on and then you clicked on the left signal indicator and the car died.

I too will need the exact steps that you did to get the crash so that I can reproduce the failure on my end. Then I can track down my bug.

paladiusdarkhelm
September 21st, 2019, 19:29
Oh yeah, no problem, Minty. I meant to check with the 0.3.3 version to see it it has a problem. If not and I go back to the 0.3.4 debug version and it does, I'll try and get to all that probably tomorrow.

I use Win 10 on a surface book 2 laptop. I run the latest FG, checking for updates weekly. I keep my modules and extensions updated and check for those updates weekly. It is FG that locks up and ultimately crashes. I was using that debug version of this extension. I use a lot of other extensions at the same time, have a lot of other modules opened, have PDFs open on another monitor, run discord for chat and to pipe sounds through discord to my players, using voicemeeter banana, VB Audio cables, and Syrinscape (also running), and I have chrome running; I use all this all the time.

I started noticing a stability problem about a couple of months back. I uninstalled FFAL recently, because I noticed it seemed linked to me opening up windows like "Items" that sort and resort. Since removing the extension, the FG App has been stable when clicking into items, spells, and the like multiple times during game sessions or prep (when it is just me in there). My games are on Friday and Saturday nights. Sunday, I'll try and test with the 03.3. version with my usual load. I'll then retest with the 0.3.4 debug version on Page 11 the same way. I'll keep task manager running on my other monitor to monitor memory. I can also dump out my activated extension and module load lists and see if I can grab the error or whatever it is that flashes across the console a second before the App crashes out as well.

Thanks, Minty.

Minty23185Fresh
September 21st, 2019, 20:07
@paladiusdarkhelm
You can bring up a console by issuing the command /console in FG’s chat.
The downside is, if any of the extensions write to the console, depending on the volume of information written, it may severely impact the performance of FG. I know FFAL v3.3.4 can write a lot to the console so I wouldn’t use that version unless v3.3.3 is not causing you issues and we need to troubleshoot 3.3.4.
Personally I’d wait until everything is up and running then bring up the console in an attempt to catch the culprit in the act.
I believe that should FG crash and completely close down, unfortunately the console will close down also. If FG just closes down to the splash screen (where you choose between load campaign, new campaign, manage characters, etc.) I think the console stays up.

Minty23185Fresh
September 21st, 2019, 20:20
...
It is FG that locks up and ultimately crashes.
...
This one statement really caught my eye.

There have been times, during development, where I inadvertently introduced an infinite loop when writing to the console. The behavior exhibited by FG was exactly as you mention, FG stalls, becomes unresponsive, as copious volumes of data it written to the console, eventually a system error occurs, and FG crashes.

If that’s the case, v3.3.4 could exhibit the problem, while v3.3.3 might not.

paladiusdarkhelm
September 22nd, 2019, 00:04
Great info, Minty. Thank you! I'll keep my eyes peeled for this if I'm able to troubleshoot more tomorrow.

LordEntrails
September 22nd, 2019, 04:08
Also pull up Task Manager and sort by process size. Watch the size of the fg process and see what that number is when you finish loading everything and then as you use FFAL and then as FG locks up and then crashes.

paladiusdarkhelm
September 24th, 2019, 19:44
I completed some testing yesterday. Minty, how would you prefer I get you the details? You have a lot of my other details in that past post I made regarding system and other apps running. I have a word doc a write up of what I did in each of 3 scenarios - w/FFAL v0.3.3, w/FFAL v0.3.4 Debug, and without FFAL. I tried to stay as consistent as I could between running through each one. I have a text file of the console for each. I have my list of extensions running. I can go get my file that shows what modules are open in my campaign if needed as well. Not sure if I should/can attach it to posts here, send by PM, or other. Just let me know what works best.

Here are the summary results of my testing:

//Running FFAL v0.3.4 Debug: Summary end result - Memory got to over 3,500 MB in Task manager before FG hung up and I had to right-click its App icon and close it.

//Running FFAL v0.3.3: Summary end result - Memory got to over 3,500 MB in Task manager before FG hung up and I had to right-click its App icon and close it. This one went a little further than v0.3.4 Debug

//Running no FFAL: Summary end result – I could get memory up to 3,500 MB, but it would either recover itself or otherwise didn’t get FG to hang up using the same sort of steps or even going a bit more afterward. I then continued on it making some updates to my campaign and doing some prep for next weekend. Memory eventually ticked its way back down after about 30 minutes of use.

Minty23185Fresh
September 25th, 2019, 03:07
Also pull up Task Manager and sort by process size. Watch the size of the fg process and see what that number is when you finish loading everything and then as you use FFAL and then as FG locks up and then crashes.
Thanks LordEntrails. That eluded me when you mentioned process size limits earlier.

Ckorik
March 8th, 2020, 01:18
dunno your thoughts on unit testing but this one currently is not unity compatible.

Minty23185Fresh
March 8th, 2020, 18:02
dunno your thoughts on unit testing but this one currently is not unity compatible.
Someone else mentioned this a while ago, I believe. I’m not a Unity Patron so, to my understanding, I don’t have access to the current beta release.
Once the Unity version is released to all, I’ll work on it.

Ckorik
March 8th, 2020, 18:24
yep - I had the opportunity to go through my extensions and figured at worst it was a heads up - I appreciate your work and thank you!

LordEntrails
March 8th, 2020, 21:21
Someone else mentioned this a while ago, I believe. I’m not a Unity Patron so, to my understanding, I don’t have access to the current beta release.
Once the Unity version is released to all, I’ll work on it.
You can access the demo version of the beta. You will not be able to host others and you can't save. But you can start a new campaign and load extensions. If you have the time and desire.

Installer linked here; https://www.fantasygrounds.com/forums/showthread.php?50373-FGU-Playtest-Overview-and-Download

Weissrolf
April 19th, 2020, 13:55
Unfortunately this does not seem to work for PF2RPG. Too bad, because content search is just what I was looking for.

Minty23185Fresh
April 19th, 2020, 14:48
Unfortunately this does not seem to work for PF2RPG. Too bad, because content search is just what I was looking for.
Correct. It does not. Last time I worked on this extension PF2 was still in development. (I’m pretty sure that was the case.) Anyway you’re the first to ask about it. I’ll put it on my to do list. Any specific library (e.g. Story, Items, NPCs,...) you are particularly interested in? The reason I ask is NPCs, because of the large number of fields, takes a lion’s share of the development time.

Howell
April 19th, 2020, 19:39
I love this extension but one issue I'm having is that when the extension is enabled I can't add new items to any list (ie. new NPCs, now groups, ect) nor can I drag and drop copies of things from one group to another. Sometimes if I disable the extension and reopen the campaign the new items I was trying to create are there but weren't visible while the extension was running. I'm using FG v.3.3.10 classic

Weissrolf
April 20th, 2020, 02:17
Thanks for the offer to look into this. I would say that Spells is the most interesting (especially with the SR Drag & Drop module that includes Deity descriptions under Spells). Then Feats, Traits, Backgrounds and Items. Story could be useful and only then comes NPCs, at least when playing with prebuilt (paid for) Pathfinder Adventure Paths.

Dax Doomslayer
April 20th, 2020, 02:27
Howell, I had the same issue which caused me to stop using this. I thought it may be a conflict with another extension or something but didn't take the time to try it out...

Armandeus
April 22nd, 2020, 19:14
This is a super-useful (especially for spells!) extension and in my humble opinion, should be part of the base package.

The 3.3.4 debug version works in FGU, except if you open the NPC list. It then gives an error saying something like divide by zero, and no entries appear in NPC. If you try it again, it locks up FGU.

Minty23185Fresh
April 24th, 2020, 21:32
I love this extension but one issue I'm having is that when the extension is enabled I can't add new items to any list (ie. new NPCs, now groups, ect) nor can I drag and drop copies of things from one group to another. Sometimes if I disable the extension and reopen the campaign the new items I was trying to create are there but weren't visible while the extension was running. I'm using FG v.3.3.10 classic

Howell, I had the same issue which caused me to stop using this. I thought it may be a conflict with another extension or something but didn't take the time to try it out...
Just by chance guys.. Did you have any filters applied when created the new items? I haven't tried this, but it would make sense that new the items wouldn't show if there were filters applied. The new (empty) items wouldn't satisfy the filter criteria. When you restarted, with filters cleared, the items would magically appear.

Copies can be tricky. I believe they always go to the “New” group. So if you’re in any other group, say the Princes of the Apocalypse group, then your new copy won’t show up until you navigate to New or All.

Minty23185Fresh
April 24th, 2020, 21:47
Status update:
Looking back through the last few pages of this thread, it appears to me as though I have two outstanding issues, PathFinder 2 support and Unity support.

I'll be tackling the PFRPG2 support first. Initial investigation this morning leads me to believe that, optimistically, PFRPG2 will take me at least a month. The PFRPG2 ruleset has been implemented vastly differently than PFRPG (one), so I can't springboard off PFRPG, nor 3.5E (like PFRPG did).

I have too many irons in the fire to be able to devote as much time to it as I'd like. After that I'll tackle FGU.

mordkhaan
May 26th, 2020, 08:47
Just a small thing when using this in my 5e campaigns.
The first time I open the NPC list I get the below error and no NPCs are listed until I toggle from All to anpother and back again, only the first time though
Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:468: invalid order function for sorting
Yes, I am running whole kitbag of other extensions of course!

Weissrolf
May 26th, 2020, 13:14
Already looking forward to PF2 support. Thanks for status update.

Minty23185Fresh
May 26th, 2020, 17:34
Just a small thing when using this in my 5e campaigns.
The first time I open the NPC list I get the below error and no NPCs are listed until I toggle from All to anpother and back again, only the first time though
Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:468: invalid order function for sorting
Yes, I am running whole kitbag of other extensions of course!
Oddly enough, it might not be the “kitbag”. Because it states it is a sort issue, it is probably an inconsistency in the data of a module you have loaded.

1) what version of FG? Unity or Classic?
2) since FFAL has been tested with the more common modules (Players Handbook, DM’s Guide, Xanathar) and I don’t have the others it is likely not one of those three.

You stated that things are okay after you toggle the Group. I suspect this is not true. The NPCs are loaded but the data is probably not loaded into the individual fields. Or at least not sorted.

This leads me to wonder, are you really using FFAL? Or is it important to you to have a big “kitbag”? If you peruse the FG forums long enough you’ll come to realize, big “kitbags” only invite problems. It is in your best interest to run FG with the least number of extensions possible, only those that you really need. Community developers, like me, write our extensions in a vacuum of what other developers are doing. If two programmers have extensions that modify behaviors of a specific area of FG, the chances of a conflict are high. FFAL fiddles with the Recordset Libraries, the data that everything else in FG depends on. Chances are extremely high that, with the more extensions you have loaded, the greater the chances you’re going to have problems. Personally, I only use FFAL when I am developing content: migrating a pdf module to an FG .mod or writing my home brew. It is extremely rare that FFAL is running while I am DMing a session. And it’s MY extension!

That said, it’s your call. And FFAL is having an issue so let’s see if we can get it straightened out.

1) Start FG with your whole kitbag of extensions, unload all your modules and open the NPC Recordset. Does the error occur? (It shouldn’t there is no data, if it does there is an extension conflict.)
2) Add a module, start with a known good one (from above, PHB, DMG, or XGE). Open the NPC Recordset, does the error occur?
3) If not, right click down in the drop down combo box area for the radial context menu. Choose the reload data option, it’s at about 9 or 10 o’clock, I think, on the menu. Does the error occur?
4) Repeat steps 2-4 until you get the error.
Then let me know what module caused the error.

If the error occurred with no modules loaded or only one of the guaranteed modules, then it’s a “kitbag” issue and the same procedure has to be repeated but with extensions being loaded one at a time instead of the modules.

mordkhaan
May 26th, 2020, 21:07
I had wondered about the module list so will work through that
The kitbag is mainly the Twohy and co lot :)

dimfuture
June 15th, 2020, 18:00
I will just add that I am also seeing the same behavior as Mordkhaan

Minty23185Fresh
June 15th, 2020, 18:07
I will just add that I am also seeing the same behavior as Mordkhaan
Okay. Fair enough. But this is not helpful and gives me nothing to help find out what is causing the problem.

See post #136, I’ve provided specific steps to go through to help localize the issue. Once I have something concrete I can go on from there.

Broadcast Bard
June 18th, 2020, 01:08
When I open NPC's or click on any of the buttons at the top of npcs I also get errors. FGC

Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:168: bad argument #1 to 'floor' (number expected, got nil)
Ruleset Error: windowcontrol: Database type mismatch for control (cr) in windowclass (reference_groupedlist_groupitem)
Script Error: [string "ref/scripts/ref_groupedlist_groupitem.lua"]:58: attempt to index local 'cField' (a nil value)

LordEntrails
June 18th, 2020, 01:24
When I open NPC's or click on any of the buttons at the top of npcs I also get errors. FGC

Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:168: bad argument #1 to 'floor' (number expected, got nil)
Ruleset Error: windowcontrol: Database type mismatch for control (cr) in windowclass (reference_groupedlist_groupitem)
Script Error: [string "ref/scripts/ref_groupedlist_groupitem.lua"]:58: attempt to index local 'cField' (a nil value)
I suspect Minty is going to need you to verify what version of FG you are using and what extensions and themes are loaded. Also, what source are you pulling NPCs from? These details will help him reproduce and resolve the issue.

Broadcast Bard
June 18th, 2020, 02:19
Duplicate post

Broadcast Bard
June 18th, 2020, 02:21
That's all fair. I am using

FG 3.3.10
No theme loaded. Extention list is... Extensive.

36944

Obviously that makes troubleshooting harder.

NPCS... well, I have a lot of modules. This is not a super useful gif. Does this extention really do that poorly with parsing things that it spits out errors? Because it works 100% for everything except NPC's as far as I can tell, and even there, it spits out an error, but as soon as I click on like a folder (ALL) (NEW) (Monster Manual) etc. It works 100% fine.

36943

LordEntrails
June 18th, 2020, 14:17
That is a lot of extensions. I think Minty is going to need you to isolate which extension is causing the conflict with. Then he might be able to work with that extension author to get things so those two extensions work together. I would not expect him to spend the time to try and figure out what might conflict with all those various extensions. I would start with the NPC Flavor's extension, disable it and see if the error goes away. If not, disable 5 others at a time until you figure out which set solves it, then down to which one extension appears to be conflicting. Then start a new campaign and just enough this extension and that one and verify the conflict exists. Then you can let both extension authors know and let them see if they can resolve.

Why I asked about which module was simple if you already had eliminated extensions, then to see if perhaps some module had NPCs that were causing the problem. Since it's most likely and extension conflict, then don't worry about which module.

Minty23185Fresh
June 18th, 2020, 22:24
First: Thanks LordEntrails for fielding this for me. I certainly appreciate your efforts to set the landing field up so I can swoop in and look like the hero! :)

Second:@Broadcast Bard: Do you really need and use all those extensions? Take a look through the forums, ask around. Those of us who have been with FG for awhile use only the extensions we need for our campaign. Heck some of us will tweak the extension list from session to session. I use only a hand full (3-5). I've talked with LordEntrails in the past, he uses about the same. My DM uses a few more, 6 or seven. To drop a name, Trenloe, also uses only a hand full. We've come to learn, the more extensions you use the greater your chance of frustration because of conflicts.

So why do these conflicts exist? We extension writers, community developers, typically code our extensions in isolation of what other community developers are doing, unless we rely on someone else's extension, we aren't going to test our code to see if it is compatible with theirs. Oddly enough many of us have other things to do than check compatibility of our code with every other extension out there. If we were getting paid to produce these extensions, code compatibility would be expected, demanded, but for those of us who are just giving away our time and our efforts, some leeway is usually granted. It isn't until someone, such as yourself, reports an error that we know we might have an extension conflict. Again if you look around on the forums, find someone reporting issues with an extension, you'll probably also note that one of the first questions asked by the extension developer is "what extensions are you using?".

When a problem is reported to me, and if the user is only employing one or two extensions, then I usually pursue the issue on my own. When it is a mountain of them, I don't have the time to sort it out, there are far too many variables coming into play. The largest time consumer would be learning what all those other extensions do. I don't care what they do, otherwise I'd be using them. It is a monumental waste of my time to collect, install, and learn how to use all those other extensions. But you do care, you do know, you have them installed so it is up to you to do the initial troubleshooting.

Now here's a real benefit to both of us: you need to decide, am I really using FFAL, or am I just "arming up" because using lots of extensions is cool. If it's the former, you will help me help you get this ironed out, and I'll be happy to do so. If it's the latter, then you'll decide not to use FFAL and quit wasting both of our time. You decide. Let me know. And thanks for trying FFAL in first place.

dimfuture
June 30th, 2020, 07:00
First: Thanks LordEntrails for fielding this for me. I certainly appreciate your efforts to set the landing field up so I can swoop in and look like the hero! :)

Second:@Broadcast Bard: Do you really need and use all those extensions? Take a look through the forums, ask around. Those of us who have been with FG for awhile use only the extensions we need for our campaign. Heck some of us will tweak the extension list from session to session. I use only a hand full (3-5). I've talked with LordEntrails in the past, he uses about the same. My DM uses a few more, 6 or seven. To drop a name, Trenloe, also uses only a hand full. We've come to learn, the more extensions you use the greater your chance of frustration because of conflicts.

So why do these conflicts exist? We extension writers, community developers, typically code our extensions in isolation of what other community developers are doing, unless we rely on someone else's extension, we aren't going to test our code to see if it is compatible with theirs. Oddly enough many of us have other things to do than check compatibility of our code with every other extension out there. If we were getting paid to produce these extensions, code compatibility would be expected, demanded, but for those of us who are just giving away our time and our efforts, some leeway is usually granted. It isn't until someone, such as yourself, reports an error that we know we might have an extension conflict. Again if you look around on the forums, find someone reporting issues with an extension, you'll probably also note that one of the first questions asked by the extension developer is "what extensions are you using?".

When a problem is reported to me, and if the user is only employing one or two extensions, then I usually pursue the issue on my own. When it is a mountain of them, I don't have the time to sort it out, there are far too many variables coming into play. The largest time consumer would be learning what all those other extensions do. I don't care what they do, otherwise I'd be using them. It is a monumental waste of my time to collect, install, and learn how to use all those other extensions. But you do care, you do know, you have them installed so it is up to you to do the initial troubleshooting.

Now here's a real benefit to both of us: you need to decide, am I really using FFAL, or am I just "arming up" because using lots of extensions is cool. If it's the former, you will help me help you get this ironed out, and I'll be happy to do so. If it's the latter, then you'll decide not to use FFAL and quit wasting both of our time. You decide. Let me know. And thanks for trying FFAL in first place.

If it helps, and you're still interested in looking into this, I get the error with no other extensions loaded, just FFAL v.03.3. Additionally, In my testing I narrowed it down to a single module that makes it crash "D&D Volo's Guide to Monsters" module. If I load that module I get the Error, unload that module and it works fine.

Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:468: invalid order function for sorting

Minty23185Fresh
June 30th, 2020, 07:58
Thank you dimfuture. The error you’re experiencing, is indicative of data that is not consistent with that of previous modules. Lilly Fireblade reported this same error a while back. See post #103 and if you wish, try using the patched version of FFAL posted in post #109. (It was never posted as main stream because I hadn’t thoroughly tested it.)
Oddly enough, for the last few weeks I have been working on enhancements to v3.3.4 to assist me (and users) attempt to more quickly find these data inconsistencies in other modules. This will be handy since we’re seeing more and more third party modules being published. I expect inconsistent data formats to become much more frequent.

Weissrolf
June 30th, 2020, 16:47
Ahoi,

any news on Pathfinder 2 progress? Yesterday we were looking for spells with the auditory and/or visual trait, but the inbuilt search does not come up with results for such queries. We then ended up searching through the PDF instead, which is unnecessarily convoluted for modern computer based solutions.

dimfuture
June 30th, 2020, 17:42
If it helps, and you're still interested in looking into this, I get the error with no other extensions loaded, just FFAL v.03.3. Additionally, In my testing I narrowed it down to a single module that makes it crash "D&D Volo's Guide to Monsters" module. If I load that module I get the Error, unload that module and it works fine.

Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:468: invalid order function for sorting

Thanks, I grabbed that debug FFAL 3.3.4 extension and interestingly, it's inconsistent, sometimes it tosses the error and sometimes it seems fine, just loading and unloading the module. Did a little bit of testing and it seems that if I go through the modules and load/unload them as I get the error I can load a lot the modules successfully, but it seem to fail mostly with modules that contain lots of data.

Also a few times it blew chunks unloading a problem module (module loaded successfully after unloading some modules in my mental theory of reducing the page count)

Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:468: invalid order function for sorting
Runtime Notice: s'FFAL_genericSort() | sCapture, aOrder, aTypes, aFilterValues=' | s'^%s*([%a%s]*)%s*([+-]?%s*%d*)%s*(.*)' | { #1 = #1, #2 = #2, #3 = #3 } | { #1 = s'string', #2 = s'number', #3 = s'string' } | { #1 = s'tremorsense 60 ft.', #2 = s'passive Perception 20', #3 = s'(Empty)', #4 = s'Blindsight 10ft', #5 = s'truesight 60 ft.', #6 = s'Passive Perception 9', #7 = s'passive Perception 23', #8 = s'Blindsight 30ft.', #9 = s'passive Perception 17', #10 = s'darkvision 60 ft. (rat form only)', #11 = s'darkvision 60 ft.', #12 = s'Passive Perception 10', #13 = s'passive Perception 16', #14 = s'passive Perception 15', #15 = s'passive Perception 7', #16 = s'darkvision', #17 = s'passive', #18 = s'passive Perception 19', #19 = s'passive Perception 6', #20 = s'Perception +14', #21 = s'truesight 30 ft.', #22 = s'passive Perception 10', #23 = s'dark vision 60 ft.', #24 = s'passive Perception 11', #25 = s'Passive Perception 16', #26 = s'Blindsight 60 ft. ', #27 = s'Telepathy 60 ft.', #28 = s'blindsight 10 ft. (blind beyond this radius)', #29 = s'blindsight 120 ft. (blind beyond this radius)', #30 = s'passive Perception 14', #31 = s'passive perception 13', #32 = s'-', #33 = s'truesight 120 ft.', #34 = s'Darkvision 60 Ft. (Rat Form Only)', #35 = s'blindsight 120 ft.', #36 = s'darkvision 120 f.t', #37 = s'passive Perception 24', #38 = s'passive Perception 27', #39 = s'blindsight 30 ft.', #40 = s'Passive Perception 15', #41 = s'passive Perception 13', #42 = s'darkvision 120 ft.', #43 = s'darkvision 120 ft. (including magical darkness)', #44 = s'passive Perception 29', #45 = s'Perception 20', #46 = s'Perception 10', #47 = s'blindsight 60 ft.', #48 = s'Darkvision', #49 = s'Passive perception 12', #50 = s'Bloodhunt (see below)', #51 = s'blindsight 30 ft. or 10 ft. while deafened (blind beyond this radius)', #52 = s'Passive Perception 19', #53 = s'passive Perception 18', #54 = s'30 ft. dim', #55 = s'Perception 12', #56 = s'blindsight 60 ft. (blind beyond this radius)', #57 = s'blindsight 60 ft. (blind beyond this distance)', #58 = s'passive Perception 9', #59 = s'passive Perception 31', #60 = s'passive Perception 8', #61 = s'passive Perception 26', #62 = s'Darkvision 120ft', #63 = s'Passive Perception 13', #64 = s'blindsight 10 ft.', #65 = s'darkvision 30 ft.', #66 = s'blindsight 500 ft. (blind beyond this radius)', #67 = s'Blindsight 10', #68 = s'passive Perception 21', #69 = s'darkvision 240 ft.', #70 = s'Darkvision 60 ft.', #71 = s'darkvision 60', #72 = s'passive Perception 22', #73 = s'darkvision 90 ft.', #74 = s'Perception 16', #75 = s'blindsight 30 ft. (blind beyond this radius)', #76 = s'passive perception 9', #77 = s'Blindsight 60ft', #78 = s'darkvision 60 ft', #79 = s'passive Perception 12' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'(Empty)' | s'-' | { #1 = s'', #2 = s'', #3 = s'(Empty)' } | { #1 = s'', #2 = s'-', #3 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'-' | s'30 ft. dim' | { #1 = s'', #2 = s'-', #3 = s'' } | { #1 = s'', #2 = s'30', #3 = s'ft. dim' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'-' | s'(Empty)' | { #1 = s'', #2 = s'-', #3 = s'' } | { #1 = s'', #2 = s'', #3 = s'(Empty)' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: invalid sort value p2=' | nil

Minty23185Fresh
June 30th, 2020, 22:26
I grabbed that debug FFAL 3.3.4 extension and interestingly, it's inconsistent, sometimes it tosses the error and sometimes it seems fine, just loading and unloading the module. Did a little bit of testing and it seems that if I go through the modules and load/unload them as I get the error I can load a lot the modules successfully, but it seem to fail mostly with modules that contain lots of data.
Bear with me please, I need to make sure I understand what you’ve said here. If you load, say the Monster Manual, check for an error, unload it, check again, reload it and check yet again, upon doing this several times, once in a while you’ll get an error? It this correct?

Furthermore, if you do this with say two or three modules, you might get errors more often?

If so, interesting. Though given the way “sorting” works in lua and how lua handles arrays (tables). I can see this as happening.

I’ll try this too as a work on supporting some enhanced troubleshooting routines.

One thing I’d like you to try next time you get errors, if you haven’t done this already: right click in the field filters area, this should bring up the pop up context menu. Choose the “Refresh Data” option at about 9:00. Does the error reoccur?

dimfuture
July 1st, 2020, 00:01
Bear with me please, I need to make sure I understand what you’ve said here. If you load, say the Monster Manual, check for an error, unload it, check again, reload it and check yet again, upon doing this several times, once in a while you’ll get an error? It this correct?

Furthermore, if you do this with say two or three modules, you might get errors more often?

If so, interesting. Though given the way “sorting” works in lua and how lua handles arrays (tables). I can see this as happening.

I’ll try this too as a work on supporting some enhanced troubleshooting routines.

One thing I’d like you to try next time you get errors, if you haven’t done this already: right click in the field filters area, this should bring up the pop up context menu. Choose the “Refresh Data” option at about 9:00. Does the error reoccur?

yes you are understanding correctly.

results from refresh data

Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:468: invalid order function for sorting
Runtime Notice: s'FFAL_genericSort() | sCapture, aOrder, aTypes, aFilterValues=' | s'^%s*([%a%s]*)%s*([+-]?%s*%d*)%s*(.*)' | { #1 = #1, #2 = #2, #3 = #3 } | { #1 = s'string', #2 = s'number', #3 = s'string' } | { #1 = s'truesight 60 ft.', #2 = s'tremorsense 60 ft.', #3 = s'passive Perception 15', #4 = s'passive Perception 20', #5 = s'passive Perception 6', #6 = s'passive Perception 18', #7 = s'tremorsense 120 ft.', #8 = s'Darkvision 60 ft. passive Perception 10', #9 = s'passive Perception 14', #10 = s'Darkvision 60 ft.', #11 = s'passive Perception 9', #12 = s'passive Perception 7', #13 = s'darkvision 30 ft.', #14 = s'truesight 120 ft.', #15 = s'(Empty)', #16 = s'darkvision 120 ft.', #17 = s'passive Perception 17', #18 = s'blindsight 30 ft.', #19 = s'passive Perception 8', #20 = s'passive Perception 19', #21 = s'blindsight 60 ft.', #22 = s'Darkvision 60ft.', #23 = s'darkvision 120 ft. (penetrates magical darkness)', #24 = s'passive Perception 10', #25 = s'blindsight 10 ft.', #26 = s'passive Perception 13', #27 = s'blindsight 120 ft.', #28 = s'Darkvision 30 ft. passive Perception 10', #29 = s'passive Perception 12', #30 = s'darkvision 60 ft.', #31 = s'passive Perception 16', #32 = s'passive Perception 11' }
Runtime Notice: s'FFAL_genericSort() | sCapture, aOrder, aTypes, aFilterValues=' | s'^%s*(%a*)%s*([+-]?%s*%d*)' | { #1 = #1, #2 = #2 } | { #1 = s'string', #2 = s'number' } | { #1 = s'History +7', #2 = s'Persuasion +12', #3 = s'Arcana +9', #4 = s'Stealth +8', #5 = s'History +4', #6 = s'(Empty)', #7 = s'Religion +2', #8 = s'Perception +5', #9 = s'Acrobatics +4', #10 = s'Perception +1', #11 = s'Deception +6', #12 = s'Arcana +5', #13 = s'Deception +3', #14 = s'Deception +7', #15 = s'Acrobatics +8', #16 = s'Sleight of Hand +6', #17 = s'Medicine +4', #18 = s'Medicine +1', #19 = s'Persuasion +6', #20 = s'Insight +7', #21 = s'Intimidation +8', #22 = s'Perception +2', #23 = s'Perception +4', #24 = s'Intimidation +4', #25 = s'Nature +2', #26 = s'Deception +12', #27 = s'Intimidation +1', #28 = s'Athletics +8', #29 = s'Perception +10', #30 = s'History +9', #31 = s'Intimidation +12', #32 = s'Athletics +13', #33 = s'Insight +6', #34 = s'Insight +14', #35 = s'Arcana +18', #36 = s'Survival +2', #37 = s'Athletics +6', #38 = s'Athletics +2', #39 = s'Athletics +11', #40 = s'Sleight of Hand +7', #41 = s'Intimidation +6', #42 = s'Stealth +7', #43 = s'Arcana +10', #44 = s'Sleight of Hand +3', #45 = s'Perception +9', #46 = s'Perception +7', #47 = s'Religion +8', #48 = s'Arcana +8', #49 = s'Stealth +2', #50 = s'Deception +5', #51 = s'Athletics +4', #52 = s'Medicine +9', #53 = s'Deception +4', #54 = s'Religion +4', #55 = s'Deception +11', #56 = s'Persuasion +7', #57 = s'Deception +2', #58 = s'Stealth +4', #59 = s'Perception +0', #60 = s'Athletics +3', #61 = s'Athletics +5', #62 = s'Acrobatics +6', #63 = s'History +5', #64 = s'Stealth +3', #65 = s'Nature +5', #66 = s'Athletics +14', #67 = s'Arcana +7', #68 = s'Performance +6', #69 = s'Arcana +4', #70 = s'Insight +9', #71 = s'Intimidate +5', #72 = s'Sleight of Hand +9', #73 = s'Arcana +6', #74 = s'Perception +3', #75 = s'Intimidation +5', #76 = s'History +6', #77 = s'History +8', #78 = s'Arcana +2', #79 = s'Acrobatics +7', #80 = s'Perception +6', #81 = s'Insight +8', #82 = s'Nature +4', #83 = s'Stealth +5', #84 = s'Athletics +7', #85 = s'Intimidation +2', #86 = s'Stealth +6', #87 = s'Insight +5', #88 = s'History +12', #89 = s'Survival +4', #90 = s'Sleight of Hand +8', #91 = s'Insight +3', #92 = s'Athletics +9', #93 = s'Persuasion +8', #94 = s'Perception +8', #95 = s'Acrobatics +5' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +9' | s'Sleight of Hand +7' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +9' | s'Sleight of Hand +3' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +9' | s'Sleight of Hand +8' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +9' | s'Sleight of Hand +6' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +8' | s'Sleight of Hand +7' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +6' | s'Sleight of Hand +8' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +3' | s'Sleight of Hand +8' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +8' | s'Sleight of Hand +8' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +7' | s'Sleight of Hand +8' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +8' | s'Sleight of Hand +3' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +8' | s'Sleight of Hand +6' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Runtime Notice: s'FFAL_genericSortIsArg1LessThanArg2() | ERROR: capture table failed sort: t1 type recast failure, itemIndex=2, data item, result, p1, p2, t1, t2=' | nil | bTRUE | s'Sleight of Hand +8' | s'Sleight of Hand +9' | { #1 = s'Sleight', #2 = s'' } | { #1 = s'Sleight', #2 = s'' }
Script Error: [string "FFAL/scripts/FFAL_data_library_common.lua"]:468: invalid order function for sorting

mordkhaan
July 1st, 2020, 00:04
I happened to be online and could try and so I did and get
Script Error: [string "AFAL/campaign/scripts/AFAL_masterindex_wind..."]:401: attempt to call field 'AFAL_rebuildCustomFilterValues_helper' (a nil value)

Minty23185Fresh
July 1st, 2020, 02:13
I happened to be online and could try and so I did and get
Script Error: [string "AFAL/campaign/scripts/AFAL_masterindex_wind..."]:401: attempt to call field 'AFAL_rebuildCustomFilterValues_helper' (a nil value)
Is this with FGU or FGC?
And this particular error, the fact that it cannot find one of the helper functions (internal to FFAL), leads me to suspect an extension conflict. Do you have other extensions loaded?

mordkhaan
July 1st, 2020, 02:23
Is this with FGU or FGC?
And this particular error, the fact that it cannot find one of the helper functions (internal to FGU), leads me to suspect an extension conflict. Do you have other extensions loaded?

FGC and yes, fair few other extensions in place :)

Minty23185Fresh
July 1st, 2020, 17:23
... any news on Pathfinder 2 progress? Yesterday we were looking for spells with the auditory and/or visual trait, but the inbuilt search does not come up with results for such queries. We then ended up searching through the PDF instead, which is unnecessarily convoluted for modern computer based solutions.
I have not started this. I'm working on other issues. I do not know when I will get around to this. The issue really comes down to incentive. I have zero incentive to support Pathfinder 2. I'm not interested in Pathfinder, I never will be. I always have something else that I would rather do and so this gets pushed further down the "to do" list.

This is not a veiled inference for a "go fund me" or "send me some money". I don't want that, because then there'd be a hook in me and I'd be forced to do it. I am becoming of such age, that time is far more important to me than money. That's not to say I am fabulously wealthy, because I am not, it's just money is easily had, time is not. I only have so many years left on this earth. Spending my time on something that provides little to no enjoyment is simply non-sensical.

All that said, I probably will get to this, some day, but I don't know when that is. Might I suggest, talk to the Pathfinder 2 ruleset designers. Ask them to provide more robust field filter handling. This extension predated the completion of PF2. There have been numerous comments in this thread about ruleset support instead of extension support of this matter. It would be a lot simpler to implement this in the ruleset than in an extension.

Trenloe
July 1st, 2020, 19:32
Might I suggest, talk to the Pathfinder 2 ruleset designers. Ask them to provide more robust field filter handling.
Traits aren't that simple. There are literally hundreds of them in PF2, and each spell has multiple traits. To add those to a filter is going to 1) Use a lot of processing (too much in FGU at present), and 2) will give a filter list that could have 50 or more items to select from. It's not something that I'm dismissing, it's just that (like you) it's a matter of development priorities. But I certainly don't intend to add filters for every single field in a data record - sorry.

Minty23185Fresh
July 2nd, 2020, 00:53
... talk to the Pathfinder 2 ruleset designers. Ask them to provide more robust field filter handling...

.. But I certainly don't intend to add filters for every single field in a data record - sorry.
Ahhh. So... The PF2 ruleset designer is you...
I should have guessed. Very nice work Trenloe.

No need to be sorry, I completely understand and concur with that statement. Adding filters to all the fields in all the recordsets for the CoreRPG, 3.5E, PFRPG and 5E rulesets is a badge I have that I wear right next to the Stupidity Badge. Many of the filters that I added are truly, simply stupid. It bloated the extension and added aggravation to the support of it.

Weissrolf
July 2nd, 2020, 09:18
Thanks for the replies. Is there no way to do a free text search in content without having to add all kind of filters? I can search the PDF files, of course, but being able to only search within feats or spells would be very useful.

Minty23185Fresh
July 2nd, 2020, 15:36
Thanks for the replies. Is there no way to do a free text search in content without having to add all kind of filters? I can search the PDF files, of course, but being able to only search within feats or spells would be very useful.
"...free text search..." - to me that implies searching all the text of each spell for a specific word or words. FFAL doesn't do it that way.
In the other rulesets (CoreRPG, 3.5. PFRPG and 5E) there are separate fields, e.g. Range, Duration, School, etc., I assume PF2 is set up the same way. Each field has its own filter. So one would filter the spells displayed by selecting one of the entries available, via a drop down, for the chosen field(s). Spells, as do other datasets, usually have a descriptive field which also filters the displayed spells, but with user entered text instead of having to make a selection. But the text the user enters into that filter only works on the "description" field, not the collective text of all the fields.

And to specifically answer your question: No. Not to my knowledge. FFAL provides filtering mechanisms that mimic text searching, but it's not the same as using the search function in a pdf.

Minty23185Fresh
July 2nd, 2020, 17:25
Over the years I have seen some very respected community contributors go off on a rant. It happens once in a while. My time has come. I'm not deluding myself, believing that I am held in that high of regard in the FG community, nor that I have a vast number of contributions to the community, but if those that sit up high can once in a while lose it, so can the lowly.

Right now my desire to help anyone, with any problem, with any of my extensions, is about zero. I wrote all of my extensions, for me, solely for my use. After using them and seeing their utility, I thought others might find them useful, so I decided to share them with the community. In hindsight, I question the wisdom of that decision.

One particular, crass noob, poisoned the well, broke the dam. Well, I'll tell you what. Anytime you would like to come out of the cheat seats, and write a single routine that can parse past, present, and possible future values of every field, of every recordset, of every ruleset, so that those fields can be properly sorted based on vastly disparate values, I'd like to see it. I'd be humbled and overwhelmingly impressed.

Because I am not only highly aggravated, but also feeling vindictive, before anyone asks, "May I take your extension and modify it (for use by the FG community)." The answer is emphatically: No. All my code is copyrighted. You'll have to start from scratch.

My aggravation with the community will of course pass. Just ridding myself of this bile is cathartic.

After reviewing the past 30-40 posts to this thread my intentions are:
1) Specify audience and usage parameters for this extension (see revised posts 1 and 2). If you use this extension with even one other extension and you have problems, tough cookies, I'm not going to help you.
2) There is a lot of new adventure module content from a wide variety of vendors. I need more robust internal debugging routines to assist me in identifying issues with the sort parsers. This is what I am currently working on.

Pathfinder 2 and then Unity would be next up barring intervening issues. But as already stated in a previous post these are zero gain for me and so other projects will take precedence.

Weissrolf
July 2nd, 2020, 17:38
No problem. I mostly asked because in April you queried which libraries I am most interested in (spells). So it seemed like you were going to work on it at some point and I was curious about the progress. If PF2 support is not coming anytime soon then I can (and will have to) live with it. ;)

Searching in the "Description" field would already be a nice improvement. Currently for spells the search text field only seems to search for spell names. So a search for "penitent" will return "brand of the imPENITENT", but not "Atone", the latter of which includes the word "penitent" in its description (Effect) text.

For PF2 there really should be a "Traits" search field, allowing to search for specific traits like "audible" or "flourish". Traits are effectively hashtags and being able to search for tags when the whole system is built around them seems like a no-brainer. But that seems less of a job for extensions, but more of the main module. I will post a feature request to Trenloe about it in the corresponding forum.

Trenloe
July 2nd, 2020, 18:00
I will post a feature request to Trenloe about it in the corresponding forum.
See my comment earlier in this thread: https://www.fantasygrounds.com/forums/showthread.php?40954-Field-Filters-for-All-Libraries&p=523106&viewfull=1#post523106

Trenloe
July 2nd, 2020, 18:03
Over the years I have seen some very respected community contributors go off on a rant. It happens once in a while. My time has come.
Yup, it happens to us all. Unfortunately there will always be some who will push for (and expect) more... Hang in there, your contributions to the community are appreciated and valued.

Weissrolf
July 2nd, 2020, 20:05
Traits aren't that simple. There are literally hundreds of them in PF2, and each spell has multiple traits. To add those to a filter is going to....
Does it have to be a filter list, though? A simple text search field would help a lot already. If more than one search term can be entered via comma we could even combine searches for several traits, like all "audible, visible".

Minty23185Fresh
July 2nd, 2020, 20:19
Does it have to be a filter list, though? A simple text search field would help a lot already. If more than one search term can be entered via comma we could even combine searches for several traits, like all "audible, visible".

To my mind this would be completely new functionality. The underlying data is not set up for that.

[EDIT] an example is in order here. Say you have a small warehouse of boxes and you want to search for the ones containing broken merchandise. You can’t just look in all the boxes at once. You either have to open them up and look in each one individually, or you have to reformat the search by opening up all the boxes setting them side by side Or emptying them into a pile, then looking into all of them, or at the pile, at the same time.

Weissrolf
July 2nd, 2020, 20:56
I see the point. That being said, we are decades into computerized data management (aka databases), including search. Don't get me started about PDF search and search presentation capabilities, at times it feels like the digital stone-ages.

Minty23185Fresh
July 2nd, 2020, 22:08
Oddly enough, I designed and implemented databases and database front ends (GUIs) for, at the time, the largest slot machine company in the world. I suspect Smiteworks did not anticipate user database search capabilities in their original design specs. I only have what’s available to me, some lua and some xml. On the other hand I applaud Smiteworks and the Fantasy Grounds design and implementation team for exposing even that much to us community developers. One doesn’t often get even that much in their wish list.

damned
July 3rd, 2020, 00:13
There are two big challenges here and they probably contribute to why this is not part of Core and the challenges contribute to the complexity and the time invested by Minty in this extension already.

1. Its not as simple as searching a PDF where the PDF simply displays the same thing on every search result. A highlighter word on a page. In Fantasy Grounds every piece of data has a data type and a completely different set of related data fields and presentation requirements for each type of data. A weapon displays different data fields in a different data field window to what a Spell or a Feat or a Background or a section of text. The FFAL needs to search all of these data types and present the data link so that it will open with the correct presentation.
2. FGU does not handle long lists very well at this point in time and PF2 is going to have a huge amount of data over time if history is any guide.

It may not be obvious to people making requests on expansions to this extension but it is a lot of work and peoples time is finite.

damned
July 3rd, 2020, 00:15
Oddly enough, I designed and implemented databases and database front ends (GUIs) for, at the time, the largest slot machine company in the world. I suspect Smiteworks did not anticipate user database search capabilities in their original design specs. I only have what’s available to me, some lua and some xml. On the other hand I applaud Smiteworks and the Fantasy Grounds design and implementation team for exposing even that much to us community developers. One doesn’t often get even that much in their wish list.

No... they did not. The original team who started FG had little idea I think, about how their product would grow up. There are plenty of design bottlenecks... :(

Minty23185Fresh
July 3rd, 2020, 21:20
I see the point. That being said, we are decades into computerized data management (aka databases), including search. Don't get me started about PDF search and search presentation capabilities, at times it feels like the digital stone-ages.

This comment indicates to me, a lack of understanding of what the issues are here. You want something done, it seems as though it should be simple enough to accomplish, yet you can't so you resort to Fantasy Grounds bashing. To my mind a less than productive methodology.

First, Fantasy Grounds is a game playing platform. I'm assuming and damed confirms that database mining was not in the original, and it is probably still not in the project's scope.

Even huge databases such as those being compiled by Google cannot be mined by just an idea. Every time someone wants to extract data from a database, unless it has been done before and the routines already exist, some code monkey like me, must write the routines necessary to extract and present and sometimes interpret the data in a manner that meets the intended result. An example: the vast amounts of medical data being accumulated by Google (and others) are predominately aimed at medical statistical research. To believe that one should just somehow be able to play a game of "Let's Play Doctor" without some sort of out-of-scope interface is ludicrous. Yet this is exactly what i have done with Fantasy Grounds. I recognized the data treasure trove and provided a front end (user interface) to present the data in a means that satisfies my intent. It doesn't satisfy your desires or intent but that's because I never designed it to.

The implementation of FG's database by Smiteworks is actually quite clever and far from "stone age". With its "distributed" database, rather than have one huge database on a bottlenecked server somewhere that they must maintain they distribute micro-databases, called modules. They are all internally consistent, so that one "program" (e.g. FFAL) can access them individually or all at the same time. It also allows Smiteworks to update every user's unique database when the user purchases another product.

[EDIT] OMG. I’m glad I caught this. The diatribe above reads as though FFAL was solely my idea. Nothing could be further from the truth. The Field Filters were in the rule sets already, although, scant - only a few fields had filtering. I just took the idea to the next level.

Weissrolf
July 4th, 2020, 14:50
I do not *want* something done, I politely asked for whether it is possible and absolutely do not demand any unpaid community coders to spent their time on things they have no personal interest in.

But indeed it is my worldview that digitized data should be easier and faster to find than turning pages in a book. If data is digitized then it should also be made available for proper search and presentation, else a lot of potential is lost. This is not specifically aimed at FG, so no "resorting to bashing", which is why I also mentioned PDF search disappointments and the general lack of making full use of digital capabilities. The "digital stone ages" statement was aimed at said missed opportunities from what digital can achieve versus what we see implemented nowadays (again not FG specific, but still inclusive).

And to call me "resorting to bashing" has an unnecessary accusing tone and seems to blow the whole thing out of proportion. If there is an extension that improves on FG's limited search capabilities then I am all praising its maker, if not then bad luck. No resorting to be found here. Also keep in mind that English is not my native language, which does not make proper communication via online forums easier at times.

Minty23185Fresh
July 4th, 2020, 19:22
I stand corrected.

Minty23185Fresh
July 4th, 2020, 23:51
@Trenloe, @damed, Should I deprecate Pathfinder support in FFAL in favor of Pathfinder 2? Or should I just leave it for now?

DM Patrick
February 22nd, 2021, 01:56
I'm having errors with my FFAL since the last FG update. Running FGC 3.3.13. Anyone else? I use this module so much to easily find stuff. :(

Minty23185Fresh
February 22nd, 2021, 02:10
I'm having errors with my FFAL since the last FG update. Running FGC 3.3.13. Anyone else? I use this module so much to easily find stuff. :(
I apologize. I was aware of this. I should have posted something. It has been crippled for a very long time now, and I finally addressed those issues. Then as you said, the new release came out. And it’s as if they turned my extension inside out. There are significant problems, and I’m working on them. My work will be delayed as I have to travel this week.

DM Patrick
February 22nd, 2021, 02:12
No worries. Glad to hear it's not just me. Thanks for the quick response and I look forward to the update!

Minty23185Fresh
February 22nd, 2021, 16:48
I am ecstatic to announce the release of a new version (v0.4.0) of the Field Filters for All Libraries (FFAL).

FFAL has been crippled for nearly a year now, and finally I have it properly working again (I hope). I've been close to having a fully operational extension for a few weeks now, and then the new version of FG came out and it sunk me. I was able to get FFAL working this morning and since I'll be travelling for the next week, I wanted to get something out there before I leave. This version has been checked with FG Classic and Unity. But I don't have the time now to thoroughly test it.

Besides the fixes to make it compatible with the latest version of FG, this version fixes a data sorting problem that was brought to my attention nearly a year ago caused by unexpected data values in Volo's. Due to the "Volo's" data sorting problem I have added a command set that will assist me in the future to more easily find problematic field data in new modules.

When I get a chance I will be reworking the first few posts of this thread.

BaneTBC
February 22nd, 2021, 17:09
Minty, thanks for the work on this and your other extensions. I don't think we take the time enough to thank the folks who help make our lives easier at the end of the day.

Minty23185Fresh
February 26th, 2021, 07:13
Minty, thanks for the work on this and your other extensions. I don't think we take the time enough to thank the folks who help make our lives easier at the end of the day.
You’re welcome. It it good to hear that the extensions I publish do add to the convenience of using Fantasy Grounds.

DM Patrick
March 3rd, 2021, 00:48
With this latest update today, I'm getting a list of infinite errors when I bring up the "Tables" window. It may not be infinite, but it crashed my FGClassic.
44486
"scripts/masterindex_list.lua...... attempt to call field 'onSortCompare'(a nil value)

Hope that helps, and hope it's an easy fix!

Minty23185Fresh
March 4th, 2021, 03:25
@akito3379 and everyone else.... It looks like the last FG update (Tuesday March 2, 2021) broke FFAL for more than just the Table Dataset. The Story Dataset exhibited similar issues. I'm aware of the problem and I am working to get it fixed.

SailorLovins
March 6th, 2021, 01:22
Just want to say thank you for the amazing work you do bud.


@akito3379 and everyone else.... It looks like the last FG update (Tuesday March 2, 2021) broke FFAL for more than just the Table Dataset. The Story Dataset exhibited similar issues. I'm aware of the problem and I am working to get it fixed.

Minty23185Fresh
March 7th, 2021, 17:56
New version (v0.4.1) of Field Filters for All Libraries (FFAL) posted. It is available in post #1 of this thread.

There were some changes made by Smiteworks to the CoreRPG. They appear to be related to a discussion in this post (https://www.fantasygrounds.com/forums/showthread.php?66348-peculiar-sorting-issue-(fg-classic-story-entries)).

This version was tested in the development environment on both FGC and FGU but it has not been thoroughly play tested in a game session. I hope to do that today. If you, its users, run across issues please let me know. Be mindful of the caveats expressed in posts 1-4 of this thread as this extension heavily modifies ruleset functionality in the library ruleset code of CoreRPG, meaning, inter extension conflicts are highly likely - this extension will probably not play nice with others.

The following is actually just for my edification, so that I can recall, later on, what I did:
To address issues reported by akito_3379 in post #180: The masterindex_window.lua file had additions (OnSortCompare, among others) made to it that FFAL was not addressing. (I updated the masterindex_window.lua file in the ERA).

Minty23185Fresh
May 3rd, 2021, 04:12
New version (v0.4.2) of Field Filters for All Libraries (FFAL) posted. It is available in post #1 of this thread.

There were some changes made by Smiteworks to the CoreRPG. Another non-local variable name change in the ruleset tripped me up. The error was exhibited when one navigated off of the Record "Name" Filter (next to the "All button, at the bottom of the Record list).

Again the following is actually just for my edification, so that I can recall, later on, what I did:
To address the nil string error thrown: I updated the masterindex_window.lua file in the ERA

EisenF
September 23rd, 2021, 19:54
I love this extension and use it all the time but recently I noticed something was off and not working on some ribbons (Spells, specially, since it's one of the main reason I use this)
Turns out it appears to be a compatibility issue with another extension: Equipped Effects (5e Extension) https://forge.fantasygrounds.com/shop/items/158/view

Is there any way to get these two to work together?

Thanks in advance!

Arcanien
December 17th, 2021, 21:04
It looks like with the new update that this extension is having issues with the Masterindex again.

Minty23185Fresh
December 27th, 2021, 00:17
It looks like with the new update that this extension is having issues with the Masterindex again.

I have finally returned to D&D; an absence of nearly six months.

I am working on this. I found a bug (https://www.fantasygrounds.com/forums/showthread.php?71824-Paging-Items-list) in the rulesets which directly affects the behavior of this extension. I'll wait until it's fixed before releasing a new version.

Minty23185Fresh
January 5th, 2022, 23:19
A new version of FFAL, for Fantasy Grounds Unity (not for FG Classic) has been posted to the first post of this thread.

Smiteworks removed some duplicate script in the rulesets that handles lists (e.g. the record lists on the recordset dialogs used extensively by FFAL). Replacing the duplicated script with calls to common "area" list handlers in FG Unity but not in FG Classic has caused the rulesets to now be disparate enough to require separate extensions. The new version v0.4.3 is for Unity use only. The older version v0.4.2 for FG Classic was not changed.

lokiare
January 6th, 2022, 16:33
A new version of FFAL, for Fantasy Grounds Unity (not for FG Classic) has been posted to the first post of this thread.

Smiteworks removed some duplicate script in the rulesets that handles lists (e.g. the record lists on the recordset dialogs used extensively by FFAL). Replacing the duplicated script with calls to common "area" list handlers in FG Unity but not in FG Classic has caused the rulesets to now be disparate enough to require separate extensions. The new version v0.4.3 is for Unity use only. The older version v0.4.2 for FG Classic was not changed.

Is there a reason you aren't taking advantage of The Forge to allow users to get updates automatically?

Minty23185Fresh
January 6th, 2022, 16:56
Is there a reason you aren't taking advantage of The Forge to allow users to get updates automatically?
(EDITED) Answered via PM.

(EDITED) See page one of this thread for link to Forge.

anstett
April 10th, 2022, 17:58
Question/Request

This does not seem to index the Characters?

When I go to NPCs and create an Encounter I can use all the new drop down fields to find creatures. But if I convert them to a PC to add in additional details then those records are not found in the search.

What I am hoping for is to go to the Character window and do a search by different fields. Pull up all the Characters that have a location of Dragon Fen for example.

Thanks,

Minty23185Fresh
April 10th, 2022, 20:09
... This does not seem to index the Characters? ...
No. It's not supported at this time. Purposely; I didn't see the utility. Plus, I don't know for sure if the Characters are handled in the Library Recordsets, it seems as though they should be, but I don't know. What this would mean is, support for a disperate type of record, that might be completely inconsistent with the other recordsets. And, I wouldn't be surprised if, on a character sheet, there are 100 fields to support. This is something I have no interest in pursuing.


... What I am hoping for is to go to the Character window and do a search by different fields. Pull up all the Characters that have a location of Dragon Fen for example...
Again the utility might not be there, might not be what you want or expect. The only records (in this case character sheets) that would be indexed would be those in the current campaign. Those that your players built and any pregens that come with the "story" module.

True, you could open other modules, those that you own and the pregens in those would also be indexed.

I guess, any characters that played in prior campaigns that you've played in or hosted might also available for indexing, but I haven't a clue off the top of my head how I would support that.

And then we come full circle. At this time I'm not interested in doing this.

Thanks for your interest in FFAL.

Minty23185Fresh
April 10th, 2022, 20:11
Since I just posted to this thread, I recently noticed that the inequality operators for some fields are not working properly.

I'm working on other extensions at this time and I will get to this at my first opportunity.

anstett
April 10th, 2022, 21:35
Thanks!

gclguru
June 21st, 2022, 11:50
I may have found a bug. 1. It is causing an error window when I open NPCs. 2. The NPCs window opened empty until I selected a group. 3. I couldn't drag an NPC to copy it. 4. I made a new NPC and it didn't appear in the list. 5. I relaunched and the new NPC appeared, but trying to advance past the page it was on caused an error and crashed the NPCs window.
When I relaunched without the extension the problem went away, and the copies of NPCs I dragged appeared.
Maybe there is a typo in one of my custom NPCs??? I have a lot.

s'FFAL_sortAdvancementValues() | status: value with no or unsupported size=' | s'5-8 HD (Mediun) 9-12 HD (Large)' | s''

[ERROR] Script execution error: [string "FFAL/scripts/FFAL_data_library_35E.lua"]:462: attempt to compare string with number

[ERROR] Script execution error: [string "ERA/campaign/scripts/ERA_masterindex_window..."]:706: createWindow: Invalid parameter 1

[ERROR] Script execution error: [string "scripts/manager_list.lua"]:68: getPath: Invalid parameter 1

Minty23185Fresh
June 21st, 2022, 18:46
Thank you gclguru for the details. It’s incredibly helpful when I get these sorts of details.

Given the ERA… error, I suspect something has changed in the CoreRPG ruleset that has adversely affected my extension.

I’ll try to get to this as soon as I can.

Minty23185Fresh
August 2nd, 2022, 05:25
I have just posted version 0.4.7 of FFAL. It should take care of the second couple of the errors reported by gclguru in post #195 above. (For my edification, should I need this information in the future: The errors were caused by a deprecation of one of the functions in masterindex_window. The function was moved to the List Manager.)

I believe the first two errors that were reported are due to data that has a format which is inconsistent with what the sorting routines are expecting. This is not uncommon for Home Brew data. Some new books by WotC and other professional developers can cause sorting problems also. The routines expect very exactly specified data formats to perform proper sorting.

The first error provides a good hint as to what the issue is: one of the Advancement field values (probably the one shown). Take a look at the other values in that field (as provided in one of the rules books).

Morenu
August 26th, 2022, 16:14
I love this extension, thank you.

I would like to make a request if you are so inclined. could we get a field for choosing caster type (cleric, warpriest, sorcerer...)? assuming I am not missing that option someplace.

Thanks for your work.

Minty23185Fresh
August 27th, 2022, 03:14
I love this extension, thank you.

I would like to make a request if you are so inclined. could we get a field for choosing caster type (cleric, warpriest, sorcerer...)? assuming I am not missing that option someplace.

Thanks for your work.

In which Ruleset? 5E? PF?
And in which Recordset? Spells? Classes?

Morenu
August 27th, 2022, 03:25
In which Ruleset? 5E? PF?
And in which Recordset? Spells? Classes?

LOL, oops, sorry.

PF1e, Spells.

Minty23185Fresh
November 20th, 2022, 13:51
I love this extension, thank you.

I would like to make a request if you are so inclined. could we get a field for choosing caster type (cleric, warpriest, sorcerer...)? assuming I am not missing that option someplace.

Thanks for your work.

As near as I can tell, that field ("Caster Type") does not exist in the PF1e ruleset (see screen shot below).
But I think I understand what you're asking for: a new field? "Caster Type"?

My extension Field Filters for All Libraries (FFAL) does not create fields that don't exist in the ruleset already, it simply provides an indexing of those fields that do. I'm sorry I can't help you. A new field. "Caster Type" would need to be implemented in the ruleset itself.

55180

Morenu
November 20th, 2022, 14:02
Hmm. I just assumed the level line (brd 4, wiz/sor 4) was usable for that. Ok. Thanks for looking.

Ulric
November 22nd, 2022, 21:15
Any chance this extension can be expanded to the Starfinder ruleset?

Minty23185Fresh
November 22nd, 2022, 21:51
Any chance this extension can be expanded to the Starfinder ruleset?
I don’t know anything about Starfinder.
And supporting a ruleset isn’t trivial.

I guess the first question is, is the Starfinder ruleset free, or would I need to purchase it?

Ulric
November 23rd, 2022, 21:06
It's free except for the rulesets but not the published rulebooks. I currently own every Starfinder rulebook that has been published. I would be happy try and provide you with any information you might need to add Starfinder support to your extension.

webdove
February 24th, 2023, 17:05
Yesterday I tried reinstalling this. When I opened the NPC or spell windows I got the following error:
56354

Minty23185Fresh
February 24th, 2023, 17:38
Yesterday I tried reinstalling this. When I opened the NPC or spell windows I got the following error:
56354
I updated this morning… and received the same error. I’m working on it.

webdove
February 24th, 2023, 19:12
Thanks

anstett
February 25th, 2023, 15:59
Came to check, thanks for working on this

Minty23185Fresh
February 26th, 2023, 16:39
New version (v0.4.8) of Field Filters for All Libraries (FFAL) posted in the Forge.
(Patches issues introduced by recent CoreRPG ruleset changes.)

ProfDogg
March 26th, 2023, 16:33
How do I filter so that it only shows Player accessible mods? There used to be an option in FGC to automatically assign all mods as either Player accessible or GM-only (by hitting the green or red button respectively in the search bar). FGU does not have that function (either that or I can't figure out where it is). I'm hoping to use your extension to sort it and then just run off/on what I need.

Nebs
March 27th, 2023, 02:06
This extension seems to work well for most of the things in the 13th Age Ruleset. It doesn't add any additional search functionality to Feats or Powers.

That ruleset unfortunately isn't free though. I don't know if you just need the names of things to add functionality if you find the time, but I thought I'd share just in case.
56851

This extension is extraordinarily helpful. Thank you for your work.

Minty23185Fresh
March 29th, 2023, 03:55
How do I filter so that it only shows Player accessible mods? There used to be an option in FGC to automatically assign all mods as either Player accessible or GM-only (by hitting the green or red button respectively in the search bar). FGU does not have that function (either that or I can't figure out where it is). I'm hoping to use your extension to sort it and then just run off/on what I need.

Sorry, but FFAL doesn’t work with the modules library.

Minty23185Fresh
April 3rd, 2023, 07:20
This extension seems to work well for most of the things in the 13th Age Ruleset. It doesn't add any additional search functionality to Feats or Powers.

That ruleset unfortunately isn't free though. I don't know if you just need the names of things to add functionality if you find the time, but I thought I'd share just in case.
56851

This extension is extraordinarily helpful. Thank you for your work.
I know nothing about 13th Age, and I not particularly keen on purchasing it.
But that might not preclude me from supporting the additional functionality you’re looking for.
I have some special troubleshooting routines built into FFAL. Let me take a look at augmenting them so that by employing them you can provide info to me that might help us get more functionality into FFAL specific to 13th Age.
I’m kind of busy with some other things so this might be a drawn out process.

Minty23185Fresh
April 3rd, 2023, 07:29
It's free except for the rulesets but not the published rulebooks. I currently own every Starfinder rulebook that has been published. I would be happy try and provide you with any information you might need to add Starfinder support to your extension.
I apologize for the long delay to respond. Another user has asked that I support 13th Age. I’ll see what I can do to help both of you.
As I told Nebs, I’m a bit busy now so this will be a drawn out process.

Nebs
April 4th, 2023, 04:14
Thank you! I really appreciate the offer.

I'm not very fond of the way things are sorted in that system so I'd really appreciate the help of your extension.

I'd be happy to chip in however I can when you have the time.

DM Patrick
August 30th, 2023, 23:14
I think the latest update broke FFAL :(

Raddu
August 30th, 2023, 23:24
It looks like the latest update 8/29 is having problems with this ext. When I click on a button on the right, when the window pops up it's blank.
58705

When I disabled the ext it works.

Minty23185Fresh
August 31st, 2023, 00:10
It looks like the latest update 8/29 is having problems with this ext. When I click on a button on the right, when the window pops up it's blank.

I was afraid this might happen. One of my other extensions that manipulates the Recordset Libraries is also broken. I'm currently travelling and won't be able to address this until mid September.

DND Nerd 1995
September 11th, 2023, 17:45
Can you add this EXT to the Forge?

Raddu
September 15th, 2023, 20:45
It is on the forge (https://forge.fantasygrounds.com/shop/items/624/view), but it's currently broken. The author said he's currently travelling and can't fix it until later this month.

DND Nerd 1995
February 14th, 2024, 04:56
Do you think the makers of FGU can add this as a Base Feature?

MrDDT
February 14th, 2024, 05:56
Do you think the makers of FGU can add this as a Base Feature?

You can add it to the list of ideas.

http://fgapp.idea.informer.com/