Wednesday, 24 October 2018

Equipment Engineer GUI finished!

I have started work on Equipment Engineer, and over the course of this week I have nailed down the GUI. This was always the biggest challenge of EE for me, as I couldn't quite see an easy way to do it. A tab for each type of item might have worked, but it would have been annoying. Cramming everything onto one page would be better, but confusing as not all items require all fields.

I settled on disabling all fields that don't pertain to the selected item type. This seems to work well, and early feedback seems to approve. I also moved descriptive text, No-ID text and item image to a second tab, freeing up plenty of space to work with.

A couple of decent discussions on Discord and the FG Forums helped distill my ideas, and threw up a couple of items that I knew nothing about. You'll now be able to set the crit range and the reroll trigger for a weapon. I also found out you can add more than one damage roll per weapon, and have multiple damage types. All of these new ideas show the benefit a 'hive mind' brings to a project, and it makes me grateful that there's a community building around Engineer Suite.

There are a couple of features I inend to build in that have got me excited. Firstly, weapons. NPC Engineer has a weapons table (for use by NPCs) and it makes sense to allow linking of these two areas. It'll take a bit of tweaking but I'll get there.

The other one is the ability to build a pack with items in it that can be dragged to a character's inventory. This isn't something you can do from within FG, so I am keen to get this enabled. As it will require a lot of data input to allow for a list to select from, this will be put off until the base load/save/parse functions are enabled.

So it seems I have some sort of creativity back, and I am enjoying my programming again. I have a roadmap. I feel all set to work EE through to completion in as short a time as possible.

Don't forget to check out the Patreon site for 'work in progress' videos that are freely available to everyone (and also the series of tutorial videos for Engineer Suite that are available to Patrons).

Let me know if anything is missing here, on Discord, on FG forums, on the Patreon site or on the Github issue tracker. :)



Thursday, 18 October 2018

1d6A Compendium gets a massive update!

After a summer/autumn of avoidance, of programming and of video making, I finally forced myself to get back to adding monsters from the 1d6 Adventurers guys. Well, I found out that they don't slack off! I added just over 80 monsters over the last couple of days, and that really focuses your NPC building technique. So just in case you are new to Engineer Suite, here's what I think to be the best way of working. Note that preparation is half the battle!

  • I downloaded the pdf for each NPC from the id6A Reddit site, loaded them all into PDFmate and left it for a minute or so to extract all the images from all the files.
  • Next I named each image. This is tedious, but saves a tonne of time in the long run. Copy folder name, paste onto image name. Repeat nearly 100 times.
  • Move all the images into a dedicated folder.
  • Use TokenStamp2 to create a token for each NPC. Move all of these to the same dedicated folder.
  • Load each image into an image editor, resize it, apply a background, apply a border, save.

That was day 1.

  • Use 'Import' in NPC Engineer and copy the text from the PDF or webpage for each NPC. I find the web page easier.
  • Add the token.
  • Add the image. Copy-paste the attribution information (artist name and website). This is tedious but necessary if anyone else other than you is going to see it!
  • Add the description last of all.
  • Check that spells imported correctly.
  • Save and Add to Project.

Done :)



Saturday, 13 October 2018

Patreon site launch

I have launched a Patreon site.

I don't expect to get rich from it - that isn't the goal of launching it. I am using it to keep myself motivated for an aspect of Engineer Suite that doesn't excite me - making video tutorials. There have been a few requests for these, though, and as Engineer Suite gets more complex they will become necessary.

So far I have just uploaded a single video (about the various program wide settings), and this was more to test out the video recording software, the video editing software, the animated intro, and my own ability to speak without stumbling over every second word! All of that (except the last) went well, so I'll give it a go. I reckon I have thrown between 10 and 15 hours at this so far, so I only need about 100 subscribers to reach minimum wage!

There are a lot of areas to work through, and I intend keeping the videos small and manageable. I don't have the Youtuber 'talent' to pad out 90 seconds useful content to a 30 minute video, so that'll help! If you can see any way to improve this offering, please let me know.

I am uncomfortably aware that some people have already been very generous with their donations, and I can't find a way to make Patreon let these people in for nothing. I am keen that no-one should be paying me via both avenues, so if you have 'bought me a coffee' already you can send me a note of your name and email address (PM on Fantasy Grounds forum, email, Discord PM, any other way you wish) and I will email links to private versions of the videos as and when they become available.

The Patreon site is - I hope to see a few of you there!


Wednesday, 10 October 2018

More tidying up, and still nothing on Equipment Engineer.

Hi folks.

I have uploaded a small update. Mainly it adds things to Spell Engineer to advance it towards perfection(!), but a global option to change how long the tooltips stay visible was added. It was good to work on these items, as I am drying up again.

I have been trying to add a filter to NPC Engineer for Roll20, and I have been stymied at all angles. The frustration of this is eating at me; I might have another go yet, if I can find another avenue. Browser extensions might be my last option.

I also have 'white page syndrome' for Equipment Engineer. I think I need to talk it out with someone on Discord just to get my head in order. Once I have a clear picture of how I want the GUI to look, I'll knuckle down and right the bloody thing. Feel free to harass me on Discord about it, particularly if you have ideas!

I don't even have much to say here just now either.... I have writer's block!


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!


Engineer Suite information

Current release Version: 0.5.47
(release date 25 August 2019)

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

Engineer - 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.

    Equipment Engineer
    • Import data from PDFs or the web;
    • Edit the imported information;
    • Import weapons from the NPC Weapon list;
    • Export weapons to the NPC Weapon list;
    • Parse to produce a module for Fantasy Grounds;
    • Import from a CSV file.
    It is also possible to create items from scratch, and save them individually  to an equipment file for later parsing.

    Source code can be found on Github.

    New version changes


    Engineer Suite

    NPC Engineer

    Spell Engineer

    Table Engineer
    UPDATED: Viewport shows the table's notes under the table.

    Equipment Engineer
    NEW: 'New Item', 'Load' and 'Save' enabled. Anything you dabble with can be kept!
    NEW: 'Import' function for weapons in the NPC weapon list - not all properties are in that list, but it will save you some typing at least.
    NEW: 'Export' function allows any weapon to be exported to the NPC weapon list.
    NEW: The viewport displays all the information that will export to FG.
    UPDATED: GUI modified. Elements are hidden rather than just disabled, making for a cleaner, less confusing look and giving more screen real estate for me to work with.
    UPDATED: Weapon properties changed from tickboxes to a multi select box.
    UPDATED: Weapon properties now include bonus damage, if needed - mainly in preparation for when I introduce magic ietms.
    UPDATED: Range boxes only enable when a weapon is ranged (makes sense!)
    UPDATED: Many weapon properties are optional, and are only needed if the weapon is being exported to the NPC weapon list. These have been grouped in a box marked 'optional'. To make sure you know they are optional. Because they are optional, you know?
    UPDATED: The 'description' box on the 2nd tab has been replaced with the 'add notes' button in keeping with the style I'll be using from now on.
    UPDATED: Attribution fields have been added to the image tab.
    UPDATED: 'Unit' fields have been added to several quantities to help ensure a consistent formatting is used (gp, ft., lb., mph etc)


    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.


    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


    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


    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


    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


    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


    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.


    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.


    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!


    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!


    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!

    Sunday, 26 August 2018

    Importing is finished (no it isn't....!)

    Well, the hard work of doing the import module is finished. It will import plain text or from the PDF source I have checked with no issue. I am very happy with this, and I continue to be very pleased with how Spell Engineer has turned out code-wise.

    So what do I mean by 'no it isn't!'? Well, I found that there are a lot of sources out there, and not all of them display in the 'correct' way (or even a bloody sane way!). There are several plug-in functions for NPCE, and I'll have to go through these for Spell Engineer as well. I'm on the lookout for some help here - if you find a format that Spell Engineer doesn't cope with, let me know. Send me the source or link me it so that I can work with it.



    Sunday, 19 August 2018

    Importing, what a load of work!

    I started working on the 'Import' function of Spell Engineer today. I see the 'Import' part as being the USP of the Engineer Suite - to take a chunk of text and automatically sense where everything should go so that transferring a Spell, NPC, etc to Fantasy Grounds is the work of 2 or 3 clicks. It is fundamental to what I want the package to do.

    Spell Engineer has been done in entirely the opposite order to NPC Engineer, and for the most part has benefited from that.

    NPCE started life as a script for extracting information from a text file. It didn't even have a GUI in its earliest incarnation, and certainly no way to enter all the information from scratch. Slowly, it grew - GUI for the Import, GUI for all the information, user input for everything, graphical whizzbang then parsing.

    SPE knew it was going to do all of the above from day 1, so the first action was to create the GUI (to inform me of the information needed), make it user friendly, then deal with the output and parsing so that it was functional. Now I have to build in the import and it feels so much harder! There's a fair bit of coding just to even see the results of anything I do, and 2 buttons to click each time, and so on. I am glad it's a relatively small data set otherwise I'd need to find a neater solution to my workflow.

    Pfffft, first world problems, eh? I'll shut up and get on with it :)  The news here is that 'Import' is being worked on!


    Wednesday, 15 August 2018

    Damn bugs, creeping into our software, creating all our jobs....

    I've posted a new version tonight. A couple of people spotted a seemingly-innocuous bug, but it is actually quite nasty. I'd cocked up some code, and traits couldn't be deleted. That's the innocuous part. However, the code was deleting actions instead, which is the nasty part.

    I'm really sorry about that, folks. Check any NPCs you recently edited in case you inadvertently deleted an action or two. :(


    Tuesday, 14 August 2018

    Loving my new computer!

    After a couple of months of work-related stuff, I have finally got back into the programming. One of the bars was the fact my old system was taking 15 minutes or more to be usable through disk thrashing, and I was getting the odd blue screen of death. The system was basically unusable, and certainly no place to trust coding to!

    Luckily, all the extra work came with some extra money, and the donations I had received from some of you fine people helped enormously too (you bought my lovely new monitor, in fact!) I spent the last week or so building the system and installing everything (and having great fun in the process), and so now there was no excuse to put off programming!

    I jumped straight in with an issue that has been annoying people since I started NPC Engineer - the enforced alphabetical sorting of Traits and Actions. I'd had ideas, and I felt they were achievable. I met with success, and so I got the bug again :)

    There's been a couple of other additions and improvements, so be sure to check out the change log!


    Sunday, 17 June 2018

    1d6 Adventurers Compendium

    1d6 Adventurers Compendium

    The group known as 1d6 Adventurers have been putting out NPCs for over a year on Reddit's 'Monster A Day' forum. With their permission, I have collected these NPCs and used NPC Engineer to create a Fantasy Grounds bestiary. To date, there are over 500 NPCs in it. I will update once a week with the new monsters for as long as they keep writing them.

    Week 99: We’ve got 99 weeks of [Monster]s but a Lich was only one.

    Nowherewolf - Not-quite-where-you-thought-it-was-wolf.
    Caped Baldy - One punch person.
    Orc Vanguard - First in, last out.
    Dancing Blademaster - Perforating performers.
    Tigerpede - Or is it a Centiger?
    (It was the Baelnorn Lich, if you’re wondering.) Another week, another five assorted monsters for you. No matter the odds, we’re determined to keep churning out monster for your enjoyment. Let us know what you think!
    Monster-A-Day Discord channel:

    Sunday, 22 April 2018


    Time flies when you are having fun...

    I realise that these posts are getting pretty sparse these days, and that's mainly because I am too immersed in the writing of code to write a blog. So what's been happening, I hear you ask? Well....

    The NPC reference manual is nearing completion. The index page is up and running, bar some tweaking of the automatic layout into 2 columns. It looks great, even if I say so myself! No title/credits page yet, as I need to get the rudiments of RefMan Engineer running for that. It won't be difficult though (I hope!). All the elements for what I want to do exist elsewhere in the program suite already.

    I've gone back to NPC Engineer and tidied up a few things. It makes the program nicer to use overall. There are many small improvements; read the changelog for them. Casting/Innate casting import has been tightened up, though, so far less errors should occur.

    I've been looking at how to change things to allow for Warlock casters. I still have no real clear way forward here, and it is annoying me.

    I've also been looking at allowing re-ordering of traits and actions, an oft-requested thing. It is a tonne of work, though, and I am struggling to get my head around it. I think I am going to have to go ahead and build a new system rather than tinker with the current one. *sad face*

    Work on the 1d6 Adventurers module continues apace, and it is going to be a cracking wee advertisement for NPCE. Many of the improvements I made recently were as a direct result of meeting little issues as I worked on this.

    Finally, I might not be around too much over the next two months - work commitments. I'll try to keep working on little aspects of the program though, as this is now my main way of relaxing. Well, this and shouting at football!


    Tuesday, 10 April 2018

    More on the reference manual

    I've got quite into making the reference manual pages look as good as they can. I now have a footer with automatic art attribution on the pages that have art, along with a wee plug for NPC Engineer!

    My next goal for the reference manual is to make an automatic contents page, with NPCs listed by type and clickable. This will have some nice artwork as part of it. Following that, I want a title page with credits incorporated. This obviously needs to be edited somewhere, so it looks like a version of RefMan Engineer will have to be born to allow for this. It can grow bit by bit as I add other modules.

    Spells need some sort of love in this area too, so there will be spells listed alphabetically (page per letter), and eventually a clickable index of spells by caster and a title page.

    After that, I can start to look at  other reference manual pages and functions.

    Onwards and upwards, as they say!


    Wednesday, 28 March 2018

    Reference Manual

    For as long as I have been programming NPC Engineer, people have been asking for a reference manual generator. I have taken the first tentative steps to helping in this regard.

    If you enable 'Reference Manual' in the project management interface, you will get a reference manual page for each of your NPCs. It will have a statblock, image, callout boxes..... oh, why don't I just show you? :)

    This is a feature that I hope to improve and deepen, and for this to lay the foundations for a proper 'Reference Manual Engineer'. Let me know what you think, and what you'd care to see in this section of NPC Engineer!


    Tuesday, 13 March 2018

    Room for another?

    Today marks the start of a transition to a full suite of programs - inventively named The Engineer Suite - to put information into Fantasy Grounds. NPC Engineer has gotten very close to as polished as it is getting; there are a couple of fairly major projects I can tinker with, but they have been put off for now to allow Spell Engineer to take centre stage.

    Spell Engineer has been fun to build so far (apart form the XML - who knew you needed so much XML for spell lists?) I applied all that I had learned in the making of its elder sibling, and so it is leaner and easier to maintain. I'll be working on the importing function next, and hopefully that won't be too difficult. But I've said that before, haven't I? :)

    On the down side, my computer took 3 attempts to boot today, and there's no way I can afford a new one just now. I need to speak nicely to it and hope to hell it was just a glitch. On that note, I'm off to back up....


    Sunday, 4 March 2018

    It's been a long time since I rock n rolled

    Well now, it has been a month since I posted here. I feel remiss, and ever so slightly grubby. I offer my heartfelt apologies! To make up for it, I have posted a new version of NPC Engineer (1.0.13 for those who are counting) and a trial version of Spell Engineer that doesn't import or parse yet, but it will save anything you type in. In addition, here is the link to the Twitch broadcast last month, in case you missed it and want to have a look: Fantasy Grounds College YouTube.

    About Spell Engineer.... it was a relatively easy module to write, and I applied some of my newfound skills to it to make working with the information far easier. I wish I'd known what I do now when I started NPC Engineer! I have met a stumbling block, though, and again I am victim to this whole project growing up from nothing into something, with no planning along the way. The way projects are dealt with is too intertwined with NPC Engineer, and I need to unpick that before I can move forward with Spell Engineer. Boooo..... but it keeps me busy.

    So onwards and upwards and thank you for reading!


    Sunday, 4 February 2018

    Twitch broadcast

    I am going to be broadcasting live on Twitch on Saturday 10th February 2018 at 8pm GMT. I'd love it if you could join me.

    I am going to run through how to use the software, including some of the more hidden features. I am happy to answer questions, but because of the delay that Twitch puts in, I'll not be watching the chat live. If you have a question you'd like me to address email it to me beforehand, or send it to me via Discord.

    I'll record the broadcast and add it to the site in due course in case you have things to do on a Saturday night that are more interesting than hobbyist software :)



    Version 1.0 is live!

    Yeah! Really!

    After millions of versions leading up to this, I eventually got to the point that it was ready for proper release. Sure, there are things to fix and big features that can be added, but it is time to start adding other areas of the parsing process to the mix.

    As a sign-off though, I had some fun with CSS and HTML. I added textures to the viewport, and I added a theme switching element too. Why are you reading this? Go download it and play with it :)

    I am happy, and I am indebted to anyone who took the time to point out issues rather than just uninstall the software. Those of you who took the time to really work through a bug with me are diamonds; I'd not have done it without you. Really. I am lazy!

    So onwards and upwards! Here comes Spell Engineer....


    Monday, 29 January 2018

    Welcome back, HTML - my old friend.

    Have I ever mentioned how much I hate RTF? Really? I'll try not to repeat myself too much then :)

    I found a way to make the ActiveX control behave itself. The main reason I had had to use the evil RTF control was that the ActiveX one grabbed focus when clicked and didn't let go. This was a disaster for a program like NPC Engineer. So I made it completely unselectable, and built scroll routines to make up for this. It all works pretty well and I am very happy.

    Today was all about fixing the final output to work with HTML, so all the slog with the RTF was binned. Well, that's not totally true - I still use it in the 'import' box. Anyway, I took the opportunity to play with css and HTML, and now the viewport (fancy name for the right hand box) is as pretty as a pretty thing. It has proper triangular section ends, it has wee pictures for 'image' and 'frame chat' tags, the frame chat gets boxed, and spells get listed in a decent looking table.

    So after a hellish start, programming wise, this has been a decent week. I've had a couple of requests to rework the 'skills' tab, and this (if I do it now) is definitely the last major work on the NPC module for now. If not, it'll be the first revision after I get some work done on spells.

    Cheers for the support


    Thursday, 25 January 2018

    Amazing healing properties of a decent sleep!

    So in my last post, I was feeling a bit sorry for myself. Thankfully, I got past that and started chipping away again. There were several things at play, not all of them my coding, and they were building up to a 'perfect shitstorm'. With the stalwart help of Colin, though, I managed to track down what the issues were.

    The solution was to start at the beginning, rather than trying to treat the symptoms. I changed the 'settings' dialogue and tightened up control of the starting directories, and the issues in the project data structure just melted away - that programming was fine after all.

    The lessons to be learned? Grow up (no tantrums!), back off, have a decent night's sleep, and think about the problem while driving!

    To those who offered support - thank you. That definitely helped!


    Tuesday, 23 January 2018

    Sick fed up (again)

    it looks like I have backed myself into a corner with the file system and directories. In an effort to please everyone, I offered too much choice and frankly fucked the whole thing up.

    I am sick at the thought. I have no idea how to fix it short of telling people to use the directory structure I set as defaults.

    It takes teams of many to get these things right at major companies, sometimes after years of trying, and I just feel daft for trying to match that. Nothing makes you feel burst quicker than overreaching your skill level.

    I can't even face posting the recent bug fixes just now. Sorry.


    Thursday, 18 January 2018

    The semi-regular 'I'm almost finished now' post!

    Yep, it is time to claim I am almost finished with NPC Engineer again. I'm sure someone will hit me with a great suggestion, or find a bug, and I'll be eating humble pie - but the goals for calling it a 1.0.0 release have all been met, and barring bug reports, I really am going to try to start another module next week.

    So this update saw me dancing with RTF again. Did I mention that I hate RTF? Anyway, eventually I got to the point where you can add spells to the description (with decent tables even!) and you can format paragraphs as 'frame text' for Fantasy Grounds.

    So where next for NPC Engineer? There are still plans for it - BB code output, a 'create-an-NPC' wizard, templates - and it is time to branch out. Spells next, then I think I should try to have a shot at reference manuals.

    Thanks for the support, folks - the chat and feedback on Discord keeps me going!

    OK - see you in the bug reports :)


    Sunday, 14 January 2018

    Future developments

    This is where I see the project going in the near future. Longer term goals are to have all elements of Fantasy Grounds parsing covered, but there is no rush to completion on that front. Some of the items in the list are those suggested by viewers of the AMA on Twitch. If I missed any of the other excellent suggestions, let me know!
    Nothing listed here is guaranteed to be written; don't be trying to sue me! It isn't an exhaustive list either, and I am very much open to suggestions - leave comments here or ping me on Discord. The list for NPC Engineer is getting shorter now...

    NPC Module:

    • 'Wizard' for NPC creation.
    • Templates

    Spells Module:

    • Importing from a variety of sources.
    • Exporting to text and HTML.

    Other Modules:

    • Items module
    • Tables module
    • PC module
    • Races module
    • Classes module
    • Reference Manual module


    Twitch and an AMA!

    Fantasy Grounds College wanted to host an AMA (interview for the internet age) with me for their organisation, as part of being a DM in FG may involve creating or importing NPCs.

    This was a new experience for me! After years of being shy and retiring, here I had to do some shameless self-promotion. How would I cope?

    Easily, it seems. Inside every introvert there's an extrovert screaming to get out, and 90 minutes of chat and demoing zoomed past in the blink of an eye. The viewers on my Twitch channel (and that makes me laugh - me with a Twitch channel!) were very complimentary about NPC Engineer and about my approach in general, and this validation was the best part of the whole experience. I'd recommend it :)  As a side benefit, my kids treated me like a rock star after it!

    Many thanks to Laerun and FGC for setting this up. If you are new to Fantasy Grounds, look them up (link on the 'links' tab) and they will set you right on many aspects of the game.


    PS If you want to see the AMA, you can't - like a n00b I forgot to turn on the option to save the chat. Next time!

    Friday, 5 January 2018

    Copy and paste statblocks

    I've done it!

    After about 6 weeks or so of trying, I have finally managed to crack the clipboard. It is now possible to put that statblock from the right-hand side of the screen into any rtf-aware program, where it can be edited, resized, re-fonted.....

    Basically, NPC Engineer can now give you a lovely statblock for both the Fantasy Grounds version and the pdf version of your masterpiece. This was a long-standing goal of mine, and it feels great to be making progress. Things aren't perfect yet; it may be a few days before this version gets released. For a start, it turns out the statblock is too wide for a standard page (well, it sits at more than 50% of the page width). I'll fix this, and with a bit of effort I should even be able to allow you to scale the width to whatever you want.

    So right now, OpenOffice and WordPad work perfectly with my function. Word 2016 throws a tantrum and doesn't display it perfectly. Google Docs doesn't want to know, and it isn't my fault - it just won't let you paste RTF. There's a workaround if you HAVE to work in Google Docs; it's clunky as hell and I'll let you search for it (so that you don't shout at me for it!)

    So I have plenty to work on here - make it work with 2016 (I think I can do this), make it narrower (I know I can do this) use variable widths to allow users to set the width in cm (I should be able to do this) or inches (only if I receive death threats or a thick pile of used and unmarked notes; I hate imperial measurements!)

    What I CAN'T do without a tonne of work that isn't (a) fun or (b) related to the core function of NPC Engineer is make one of the 2-column statblocks. Sorry!

    If anyone wants a test version to play about with, contact me on Discord. I can always use beta testers!