Sunday, 16 September 2018

Big changes afoot

Hi folks

I know, it has been a while since I posted anything here. Shut up. I've been busy, honest! Mainly I have been tidying up small bugs in NPC Engineer and Spell Engineer, readying Equipment Engineer's framework, and tying all the modules together into one unifying program called Engineer Suite. You should be able to jump between modules if you wish (although you'd be better to close one module and open the next from the main window). This has advantages going forward. Much as I liked the idea of a whole suite of individual programs, the integration and shared code seemed like a better idea. It makes it easier for people to update too.

Here is a screenshot of its main interface - this will grow as I add modules to it:



There should be no changes that affect your data, but you'll note that the version number indicates a beta again. You'd be advised to keep a backup of your data for now in case of crashes. I don't expect any, but then I never do!

Please feel free to get in touch about any issues. I hope there are none!

Maasq





Engineer Suite information

Current release Version: 0.5.40
(release date 12 August 2019)

Engineer Suite setup.exe
Full installer. This is the recommended method.


Engineer Suite.zip - All files necessary to run NPC Engineer.
    NOTE: For best results, install the font included in the zip (right click and choose 'install' - it is a free font.)

    The program comprises several modules:

    NPC Engineer
    • Enable the import of NPCs from a variety of sources (PDFs, D&D Beyond, CritterDB, RPG Tinker and others);
    • Edit the imported information;
    • Parse to produce a bestiary module for Fantasy Grounds;
    • Export to a variety of formats, including RTF for MS Word, BBCode and HTML.
    It is also possible to create NPCs from scratch, save them individually to an NPC file for later parsing, and export to a NPC file suitable for other parsers.
    Images and tokens are handled as smoothly as possible - both are copied to the correct directory and renamed properly to make the process of building a bestiary as quick and as accurate as possible.
    The module file produced has a library section which mimics the Monster Manual, and NPCs import spell information and spell slots automatically when opened or added to the combat tracker (assuming you have the source book required open). All NPC functions are fully supported - Actions, Legendary Actions, Lair Actions, Spellcasting and so on.

    This version also creates a reference manual section for NPCs fully automatically.





    Spell Engineer
    • Enable the import of spells from a variety of sources (PDFs, D&D Beyond and others);
    • Edit the imported information;
    • Parse to produce a codex module for Fantasy Grounds;
    • Export to a variety of formats, including RTF for MS Word, BBCode and HTML.
    It is also possible to create spells from scratch, and save them individually  to a Spell file for later parsing.
    The module file produced has a library section which mimics the Player's Handbook.






    Table Engineer
    • Paste tables from Excel, Sheets, Word;
    • Edit the imported information;
    • Easily include links to other tables (or other items);
    • Make table entries rollable with a click of a button;
    • Parse to produce a module for Fantasy Grounds;
    • Import from a CSV file.
    It is also possible to create tables from scratch, and save them individually  to a table file for later parsing.




    Source code can be found on Github.


    New version changes


    v0.5.40

    Engineer Suite
    NEW: A new GUI element at the bottom of each screen allows you to set a category for the NPC/Spell/Table/Equipment etc. The default for this is the module name & for many purposes this will be fine. If you want to sort objects by chapter or the like, this is where you'd change that. It cannot be left blank (it'll default to the module name). You don't need to update all your previously saved work as the parser inserts the module name for blank entries. This felt like a big change and an important change so I hope it proves useful to everyone!
    NEW: Tooltip system written for Suite.
    FIXED: Some diagnostics had been left switched on. Sorted.
    FIXED: Links were causing problems, meaning I had to rewrite the link code. Big job, necessary job. However this means any links you have in projects or saved files may no longer work. I would advise recreating the link. At the very least you know what to do if the link stops parsing properly!

    NPC Engineer
    NEW: 'Categories' GUI element.
    NEW: 'Manage NPCs' button on button bar.
    FIXED: Categories weren't displaying properly when an NPC was autoloaded at boot. Fixed.
    FIXED: Names weren't being properly capitalised under certain circumstances. They are now!

    Spell Engineer
    NEW: 'Categories' GUI element.
    NEW: 'Manage Spells' button on button bar.
    NEW: Tooltips added for all GUI elements.
    FIXED: Menu item for importing text was pointing to the wrong subroutine and causing a crash. Sorted.
    FIXED: Categories weren't displaying properly when a spell was autoloaded at boot. Fixed.

    Table Engineer
    NEW: 'Categories' GUI element.
    NEW: 'Manage Tables' button on button bar.
    NEW: Tooltips added for all GUI elements.
    NEW: Load item on startup option enabled. This can be set from the 'Options' box (F11).
    NEW: Import from CSV file.
    FIXED: A boot problem where the default table wasn't displaying correctly in some instances was sorted.
    FIXED: Categories weren't displaying properly when a table was autoloaded at boot. Fixed.

    Equipment Engineer
    NEW: 'Categories' GUI element.
    NEW: 'Manage Equipment Items' button on button bar.




    v0.5.29

    Engineer Suite
    UPDATED: Links to tables enabled throughout the Suite.
    UPDATED: Link menu reorganised - the first menu entry lets you insert a link from a set of cascading menus. Far easier than before!
    UPDATED: Adding links to parcels and items is now enabled throughout the Suite. It will remain fiddly until I build Item Engineer and Parcel Engineer.
    UPDATED: The right-click menu for inserting links sets the caret at the point you right click, putting it in line with Word etc.
    FIXED: Strange link error spotted and fixed. I hope.
    FIXED: Blank submenus no longer crash the application.


    NPC Engineer
    UPDATED: Some minor changes to the top of the 'Base Stats' tab  the 'Gender', 'Unique' and 'Name' fields have moved to the right and other fields have had their width changed for cosmetic reasons. 'Type' is now full-width to allow for the swarms (see below) and 'Tag' is on its own line.
    UPDATED: Swarms should be picked up correctly on import, and have been added to the 'Type' box.

    Spell Engineer
    FIXED: Rogue commas in the caster list and a memory leak that this could cause have been sorted.
    FIXED: 'Clear all casters' now correctly clears the user list too.

    Table Engineer
    NEW: The GUI is now active. You can build tables. You can even save and load them.
    NEW: You can add links in table cells in the same way that you can in NPC/Spell Engineer. There is an 'Information' menu entry all about links, so please read it before telling me how broken things are. Once you have RTFM and still think they are broken, I'm happy to listen :)
    NEW: Ranges calculated & shown for 3 roll methods.
    NEW: An 'Add Notes' button has been added to allow the entry of formatted text for the 'Notes' tab in FG. This is written in such a way that I can add it with a single line of code, vastly simplifying the upkeep as the number of sections of the Suite increase.
    NEW: 3 roll methods allowed for: 'Based on table values' (min and max values taken from data in the table) 'Preset range' (min and max values set in advance), 'Custom dice roll' (you set ranges based on a number of dice - examples are 2d8 or 1d6+1d8 to give probability curves).
    NEW: Lock tables checkbox added. This should be left checked unless you want your tables to open up in edit mode in FG.
    NEW: Added two buttons: 'Text Dice' and 'Rollable Dice'. This refers to entries in your table that read '1d6 orcs' or the like. 'Rollable dice' converts all statements like this to read '[1d6] orcs' and this makes the entry rollable in FG - when this result is chosen by dice roll then it will send '4 orcs' to chat rather than 1d6 orcs. 'Text dice' removes all the square brackets should you need to.
    NEW: Tables now parse into a module along with spells, NPCs, images and tokens. The parsing may require tweaking as I add features but in my testing it seems robust.
    NEW: Links to other tables parse, allowing for nested tables.
    NEW: Rows & columns can be cleared via the right-click menu.
    NEW: Rows & columns can be inserted via the right-click menu.
    NEW: Rows & columns can be deleted via the right-click menu.
    NEW: The whole table can be cleared via the right-click menu.
    NEW: Paste from Spreadsheet (Excel and Google Sheets tested) or word processor table (Word; NOT Google Docs. It doesn't use tabs to delineate). Dice cells ignore non-numerical (or blank) cells.
    NEW: Table increases in size to accomodate pasted data.
    NEW: Added a switch to make rolls visible/hidden for players in FG's Chat.
    UPDATED: The 'From' and 'To' cells only accept numerical information (or being blank). I'm not totally happy with what happens when you try to insert text but I can't find an easy fix. Just don't do it and we'll all be happier. :)
    UPDATED: Some GUI changes to allow for some more options.
    UPDATED: 'Previous table' and 'next table' buttons are enabled.
    UPDATED: 'Manage tables (CTRL-M)' enabled. This is only for deleting tables. Editing is proving problematic and will be added at a later date. hopefully this isn't something you need to do often anyway as you save your tables :)
    FIXED: Rogue spaces appeared in the RichText table. Even though they never affected the output they were still offputting. This has been sorted.
    FIXED: Data remained in 'deleted' cells when reducing a table size. The cells are now properly deleted.

    Equipment Engineer




    v0.5.15

    Engineer Suite

    NPC Engineer
    NEW: The 'Import' window will remember its position when you reopen it. It stores the last position between sessions too. If you need to reset it, close it while its left edge is off the left side of the screen.
    UPDATED: The 'Type' list now includes 'trap'.
    UPDATED: Weapons can be tagged as 'Versatile'. This will increase the hit die by 1 class for 2-handed use, and this should suffice for most use cases. If something different is required the 'other text' box can be used.
    FIXED: Editing an NPC from the CTRL-M entry now properly reloads the 'NoID' field.
    FIXED: In actions, weapon hit die with 2 digits (d10, d12, d20) were not being read properly when edited. This has been dealt with for damage, bonus damage and ranged damage.
    FIXED: 'Sahuagin' was mis-spelled in the languages box, meaning it wasn't being tagged properly. Fixed. Check any of your NPCs with this language selected as they'll need to have it re-selected. Sorry!
    FIXED: If 'Add Descriptive Text' was NOT selected but Reference Manual output was, an XML error cropped up in the FG Module. This has been fixed and will now work as intended.

    Spell Engineer
    NEW: The 'Import' window will remember its position when you reopen it. It stores the last position between sessions too. If you need to reset it, close it while its left edge is off the left side of the screen.
    FIXED: Fixed an issue with imports where non-standard capitalisation was being ignored.

    Table Engineer

    Equipment Engineer


    v0.5.9

    Engineer Suite
    NEW: A menu entry in the 'Information' menu - 'Links in FG' - will open a help document to support the link system.
    UPDATED: The link entry system has been upgraded. The menu entries hopefully read better, and there is a GUI to support the entry of links. This GUI can be switched off in options if it feels unwieldy.
    UPDATED: Some changes to how the XML is displayed in the 'validate' box.

    NPC Engineer
    FIXED: Shut down a 'slow down' bug when opening NPCs.
    FIXED: Languages now show properly when clicking 'next NPC' or 'Previous NPC'

    Spell Engineer
    UPDATED: The 'At Higher Levels' box has been merged with the spell description. There was no actual need for it to be separate (other than saving you typing 3 words!) You don't need to do anything with previously-saved spells as the two fields will be merged on load. Typing 'at higher levels: ' (note the colon and space after it) will be bolded and italicised automatically.
    UPDATED: The spell text box has a 'validate XML' button.
    FIXED: Auto-highlighting 'At Higher Levels: ' now additionally occurs if a period is used instead of a colon.

    Table Engineer
    NEW: Very basic GUI shell & internal workings completed.

    Equipment Engineer





    v0.4.55

    Engineer Suite
    NEW: You can insert links to other objects in free text fields. These are Rich Text fields (recognisable by the 'bold' etc buttons underneath them). There is a right-click menu with several options. Please note - DON'T FORMAT INSIDE THE LINKS!
    The ones in the top half of the menu are riskier - you need to know the object's correct name or the link will not have an effect. The 'Displaytext' part of the link is what you want it to show on screen. There are just a few options for now, but I am happy to add whatever people feel they need - just request.
    The bottom half of the menu is safer - it only allows you to add objects from your current project. It opens a small GUI to allow you to choose the object and generates the link code automatically. This is obviously limited to NPCs and Spells at the moment, but will be expanded as each new part of Engineer Suite is coded.
    NEW: Windows 'Toast' notifications can be turned off. If you do so, the notifications will be delivered on the statusbar.
    NEW: There is a 'Quickstart Guide' option in the information menu (F12 shortcut). Engineer Suite is becoming quite complex and I felt that an 'in-house' help document might be in order.
    UPDATED: Object types are highlighted in bold.
    UPDATED: Tooltips in the 'Options' box.
    UPDATED: Status bar text has been removed. With the control of the tooltip timer, this text was pointless.

    NPC Engineer
    NEW: The NPC's description box can have any number of links inserted. See general text above.
    UPDATED: Some missing tooltips added.

    Spell Engineer
    NEW: The spell's information box can have any number of links inserted. See general text above.
    NEW: There is a menu option to add custom classes or archetypes to the interface. It works exactly the same as weapons, traits etc in that it saves to an external json file.
    UPDATED: You can add any number of casters to a user-defined list. When setting who can cast a spell, items in this list are available.
    UPDATED: Artificer and its archetypes added to casters list.
    UPDATED: Casters aren't tagged automatically on import as there is no standard way to deliver this information. To deal with this, the 'Casters' box opens automatically after an import. If this is NOT to your liking, you can turn it off in 'Options'.
    UPDATED: The import function should deal with custom spell schools. Let me know if anything isn't working!

    Table Engineer
    NEW: An icon :) Watch for things appearing as time goes on.

    Equipment Engineer


    v0.4.44

    Engineer Suite
    UPDATED: I changed the 'Parse Log' window quite radically. It is no longer a log - mainly because I never managed to implement an XML checker. That is far harder than it looks :)  Anyway, the window is still called a parse log for now, but really it just updates the progress. Bonus: it compiles a module far faster now. Bonus 2: The reason I changed it was that I was seeing some strange (but non-critical) behaviour. That is gone now. I hope you all like it.

    NPC Engineer
    NEW: A checkbox on the 'Innate Casting' tab allows you to mark the casting as Psionics. No other changes are necessary to introduce psionic casters to FG (thankfully!).
    NEW: There is a menu option to add custom languages to the interface. It works exactly the same as weapons, traits etc in that it saves to an external json file. This was part of the overhaul of Languages (see below).
    NEW: There is a 'Validate' button under the RTF window on the 'description' tab. At the moment this just displays the XML, but it will build up into an XML checker over the next few releases. For now, though, it allows you to have a look for errors in the description code before committing the NPC to a module.
    UPDATED: The 'Languages' interface on the 'Skills' tab has been radically reworked. It should still operate flawlessly with save files - let me know of any issues. The tickboxes are gone, replaced with 4 multiselect boxes. Click to select, click again to deselect. A dropdown box for the special language options replaces the 8 radio buttons. The biggest impact on users is the ability to add custom languages to suit your campaign. I have added two from Frog God Games' NPCs as an example. The other knock-on effect is that it gives me GUI space to expand the skills section, something I have had multiple requests for over the years.
    UPDATED: Languages sort alphabetically in the statblock.
    UPDATED: Autosaving NPCs is now an option. It is on by default to ensure consistency of naming of NPC and graphics. You may switch it off to cause a 'Save NPC as..." box to pop up. This will point at your selected NPC save path and have the NPC name as the suggested name.
    UPDATED: Range increased on 'Senses' by request.
    UPDATED: Weapon damage bonuses are suppressed if they are zero ('1d8' rather than '1d8 + 0')
    UPDATED: Removed mention of 'JSON' in menu options.
    UPDATED: Added 'half-orc' and 'dragonborn' to the drop down list of tags for NPCs.
    FIXED: Parentheses at the end of some fields were disappearing - weapon names, for instance. I've added a check for the parentheses. If anyone needs other non-alphanumeric character specifically excluded in this way, let me know.
    FIXED: (I think) Issues with adding asterisks to spells.
    FIXED: NPCs with numbers in their name will now properly add to a project in Fantasy Grounds.
    FIXED: NPCs with an ampersand in their name will now have that ampersand appear in Fantasy Grounds.

    Spell Engineer
    UPDATED: Removed mention of 'JSON' in menu options.
    UPDATED: Added 'CTRL-M' keyboard to edit the spells file.

    Equipment Engineer



    v0.4.40

    Engineer Suite
    FIXED: A bug in the updater was fixed.

    NPC Engineer
    FIXED: Parentheses at the end of some fields were disappearing - weapon names, for instance. I've added a check for the parentheses. If anyone needs other non-alphanumeric character specifically excluded in this way, let me know.

    FIXED: (I think) Issues with adding asterisks to spells.

    v0.4.38

    Engineer Suite
    FIXED: A bug in the updater was fixed.

    NPC Engineer
    NEW: Support for accented characters added to the RTF box. At last you can have Faerûn recognised in your flowing descriptions! This has been tested with exactly 2 characters... 'û' and 'ë'. I will be interested to hear feedback on this and apologise if I broke anything :)
    UPDATED: The import filter for Lair Actions was made a bit more robust.
    UPDATED: The RTF box was tweaked again. I think I've improved it. Let me know if I broke anything for you.
    FIXED: A bug was preventing a new Action added to the Actions.json showing up until the next launch. Fixed.
    FIXED: A bug was inserting a blank line into dropdown lists when Actions or Traits were added to their respective json files. This no longer happens.
    FIXED: If you selected 'Other Language Text' for languages, although this saved and parsed into FG modules correctly, it never loaded back in to NPC Engineer. This also affected imports. I added code for this, and now it works like it should.

    Spell Engineer

    Equipment Engineer
    NEW: GUI Added.


    v0.4.26

    Engineer Suite
    UPDATED: The 'About Engineer Suite' help box is no longer empty. You can check your version number!
    FIXED: A bug was making the loading of projects not be consistent throughout the Suite. All components were given a lecture on the importance of a consistent approach and told to buck up their ideas.
    FIXED: Each component will now display the number of items correctly, rather than possibly just showing NPC numbers everywhere. This was a visible result of the sloppiness referenced above.

    NPC Engineer
    NEW: Buttons on the button bar allows you to 'Open Next NPC' & 'Open Previous NPC'. This gives a quick way to cycle through all the NPCs in a project if you need to check or add something. Note that this will only work if (a) you are using Engineer Suite as the parser, (b) you have a project loaded, and (c) the current NPC is in the project - all conditions that will usually be met, but worth mentioning for edge cases.
    UPDATED: The 'HP' pop-up dialogue now allows the HP bonus to go up to +800.
    FIXED: A small bug in the import of Innate Spellcasting was spotted and corrected.
    FIXED: If you overrode the calculated passive Perception, this was being ignored on reloading the NPC. This has been fixed, and passive Perception should always show as the value previously set when you load the NPC.

    Spell Engineer
    NEW: Buttons on the button bar allows you to 'Open Next Spell' & 'Open Previous Spell'. This gives a quick way to cycle through all the spells in a project if you need to check or add something. Note that this will only work if (a) you are using Engineer Suite as the parser, (b) you have a project loaded, and (c) the current spell is in the project - all conditions that will usually be met, but worth mentioning for edge cases.
    FIXED: The final caster in the source list wasn't parsing. Fixed. Reparse to correct this; no other action needed.

    Equipment Engineer
    Code was added to give the item cycling above, but there's still nothing meaningful to see here. Sorry!



    v0.4.19

    Engineer Suite
    NEW: Added an option in 'Settings' to set the tooltip timeout to a custom value to allow more time for reading them if desired.

    NPC Engineer
    No changes

    Spell Engineer
    NEW: The spell count for the current project is displayed in brackets in the status bar, mirroring NPCE behaviour.
    NEW: The 'Add to Project' button changes to 'Update Project' if the current spell name is already in the project, mirroring NPCE behaviour.
    UPDATED: The 'edit' button in the 'manage spells.json' dialogue now works as expected - ie. it reloads a spell from the json file to be edited anew.
    FIXED: A rogue comma was appearing at the end of the source list. Removed.

    Equipment Engineer
    Still not usable!



    v0.4.15


    Engineer Suite

    NEW: Initial interface designed and implemented - this is an overall control for all the modules in Engineer Suite.
    NEW: Menu system added.
    NEW: You can specify to boot into a chosen module on launch, bypassing the Engineer Suite GUI. This speeds up your workflow if you know, for example, you only need to get to NPC Engineer in your next session. This option is in the Options dialogue (see what I did there?) and can be cleared to allow you to boot to the Engineer Suite GUI again. Currently only NPC, Spell and Equipment Engineer will take any notice of this setting.
    UPDATED: Options window is multi-tabbed and can be accessed from any module of Engineer Suite.

    UPDATED: Check for newer version now runs on the launch of Engineer Suite.
    FIXED: You can now jump between windows with impunity (I think!) but for best data integrity and memory management it is best to close a module to get back to the Engineer Suite interface before launching the next module.
    FIXED: Options now carry over correctly between modules.

    NPC Engineer

    NEW: Roll20 Compendium import filter added.
    UPDATED: Minor tweaks to enable Suite version.
    FIXED: Slight issues with the Roll20 Compendium fixed.

    Spell Engineer

    NEW: You can check an option to have the spell you are working on reload at launch.
    UPDATED: Minor tweaks to enable Suite version.
    UPDATED: Spell text layout changed slightly to be no longer indented.
    FIXED: Imported paragraphs are spaced properly.

    Equipment Engineer

    NEW: Basic structure and menu implemented. GUI started, but still looks suspiciously like Spell Engineer. DO NOT USE YET!