PDA

View Full Version : NPC Engineer



Maasq
October 19th, 2017, 23:27
NPC Engineer
A windows program designed to facilitate the process of getting NPCs into Fantasy Grounds.

This has been merged with The Engineer Suite; thread here (https://www.fantasygrounds.com/forums/showthread.php?45630-Engineer-Suite&p=405865#post405865).


Maasq

Maasq
October 19th, 2017, 23:31
Full changelog on the website.






If you find something that breaks NPC Engineer, please PM me a text file of the offending document so that I can track down the issue.
Feature requests are also welcome.


IMPORTANT: If you are using NPC Engineer to import from a Homebrew source, the source will not have been subject to the same rigorous shredding official monsters get. This means that errors in formatting, capitalisation, spelling and so on can make it difficult for NPC Engineer. If your import doesn't work, check it carefully for missing full stops, colons where full stops should be, and the like.

Maasq

Thegroo
October 20th, 2017, 00:40
Thank you so much

hawkwind
October 22nd, 2017, 14:30
Great work, I not sure I'm doing a completely right though, I'm not getting a mod file in module folder but I am getting a zip file in the folder I have npc engineer installed in . I changed the extension of the zip file and placed it in module folder and it works so I'm pleased

Maasq
October 22nd, 2017, 15:17
Great work, I not sure I'm doing a completely right though, I'm not getting a mod file in module folder but I am getting a zip file in the folder I have npc engineer installed in . I changed the extension of the zip file and placed it in module folder and it works so I'm pleased

Hey Hawkwind. I'm glad you like it!

I'll go through some options here, and I'll try to explain each as fully as possible. Please don't be offended if you already know all of this; someone else might stumble across this thread with the same issues in the future.

I can't reproduce the error here, so the first thing we need to check is Windows version. I am using 10 (with the Creator update), and it also worked before the Creator update. Previous versions of Windows may react differently to some of the program's calls to Windows internals; I don't know for sure.

The next thing to check is that you are setting your directories correctly in the 'Project' window:
21103
About halfway down the left hand side, there are two fields for paths.

The module path is where you want to store the datafiles for the module on your system. Use the folder button to the right of this to open up a folder select box to make this easier.
The Fantasy Grounds module path is where your finalised module should end up. NPC Engineer looks in the registry for this, but I can only swear to it working properly on Windows 10 as this is the only OS I have to test it on. It should take the form shown in the screenshot, with 'Steph' replaced by your own Windows profile name. If this box is blank for any reason, or the path looks wrong, you can use the folder icon to the right and navigate to it yourself. A 3rd way of finding it is to run FG, and click on the little folder icon at top right (just below the 'close' button). This will take you to your FG datafile path.



Now I think about it, it is almost certainly the FG path that is the issue here. NPC Engineer does the extension change and file move in one instruction, so if the destination path doesn't exist the whole instruction will fail, leaving the zip file in the module folder. If yours is in the NPC Engineer folder, it suggests you haven't got either path set.

Let me know if this helps you out!

Maasq

hawkwind
October 22nd, 2017, 16:22
thanks for the quick reply

I have solved the issue now, i use a non standard location for my FG data and I somehow missed or deleted "/" in the file path name

Maasq
October 22nd, 2017, 20:33
Excellent - glad it was something simple. I'll build in some error checking at some point!

Maasq

hawkwind
October 23rd, 2017, 20:02
Excellent - glad it was something simple. I'll build in some error checking at some point!

Maasq yep it's a great tool and greatly speeds up entering third party NPC's , I can't believe you have had so few downloads

Maasq
October 23rd, 2017, 22:03
Minor bugfix update.

Maasq

hawkwind
October 25th, 2017, 11:45
quick question if i have clicked the parse button do I still need to click the add to project button as it appears from the arsing screen the Npc is being added to a database file

damned
October 25th, 2017, 12:13
yep it's a great tool and greatly speeds up entering third party NPC's , I can't believe you have had so few downloads

everytime a new version is uploaded the download count resets.
but spread the word so that more people know about it.

Maasq
October 25th, 2017, 15:18
quick question if i have clicked the parse button do I still need to click the add to project button as it appears from the arsing screen the Npc is being added to a database file

I'm not sure I understand the question, so I'll give it my best shot. Shout me (here or Discord) if I have got the question wrong!

The 'Parse' module loads up the npcs.json file and uses this to parse to a module. If the NPC hasn't been added to it (using 'add to project') there should be no way it can be parsed. There's a change in data structure that only happens when the 'add to project' button is pressed, so there's no chance of an accidental blurring of data or of a bug adding it.

However - and this might be what is happening - whenever you add an NPC using 'add to project', it is permanently a part of that project. You are right; it is held in the database file (npcs.json). So if you add the NPC on Tuesday, but don't parse until Friday, that NPC will still be part of the parse. This is to allow people to work on a big project 'bit-by-bit'.

Does this answer your query?

Maasq

hawkwind
October 26th, 2017, 08:33
I have been pressing parsing button before pressing the Add to Project " Button

Maasq
October 26th, 2017, 20:11
Hey Hawkwind.

I just tested in case I'd done something by accident, and thankfully not. There is no way for a creature to be parsed until it has been added to a project. The converse is that if a creature is parsing, then you have added it to the project some time in the past.

When I add a creature, my order of button pushes is: Save NPC, Add to Project, Parse. I don't need to save the NPC first, but I like to have them around for testing purposes.

Maasq

hawkwind
October 29th, 2017, 07:42
ok for my next question......

I have parsed all the monsters in a pdf and created a mod file. I have then created a new campaign within 5e entered all the story and maps etc from the pdf and linked in all monsters/npc's and then pleased with my work exported it all as a new mod file. I open the mod file on another PC with FG installed on and the npc's are not there so my question is there away of merging the two mod files without do a lot of cut and pasting between the two db.xml files , you use to until quite recently, be able to open the monster mod in FG , drag the npc to the npc page and it would be stored in the resulting exported mod.

Could you parse from NPC engineer into a already existing mod?

damned
October 29th, 2017, 08:26
Hi hawkwind - from your description you didnt do what you used to do - eg you didnt drag the npcs into the npc tab and then use those for your encounters etc.

hawkwind
October 29th, 2017, 09:56
yep I worked that out later and ammended my post but forgot to press save apparently

Laerun
October 29th, 2017, 13:23
I am still very interested in inviting you and your current project to FGC to show this off.

Maasq
October 29th, 2017, 13:31
Hey folks

Hawkwind - I plan to build in that very functionality at some point, but I am working on a different addition at the moment. I am a little wary of it though, as it could easily render a module unreadable. It may be that there are too many variables to safely offer that as an option.

Laerun - still happy to take part :)

I'm currently working on a better edit box for the 'description' tab. this will negate the need for a pop-up window, so make it faster and more intuitive. More importantly, it will allow you to apply headings, bold, italic, etc and see how it looks. This is a monster piece of work in the language I use, so it'll take me a couple of weeks of tinkering with XML/RTF/plain text to make it work. Fingers crossed though - if I get it right it means my next module will be something reference manual related.

Maasq

Laerun
October 29th, 2017, 13:36
Sounds great, looking forward to hearing from you again. I was looking into having lunch party and demo you on in the third week of November...?

PTBBC.ORG
October 29th, 2017, 17:34
double post...

PTBBC.ORG
October 29th, 2017, 17:35
Ok, I just downloaded this because it sounds amazing! But when I try to run it, I get this error.

21227

I have re-downloaded and re-extracted. Same thing.

Maasq
October 29th, 2017, 20:34
Hiya!

I'm hoping this is easily fixed. By the looks of things you have a dll file missing - I don't know whether this is because it got deleted, or was never installed. It is a Visual C++ dll, which at first struck me as odd as I don't work with C++, but then it struck me - the language I work in is written in C++.

A quick check on the web suggests this is a common thing though, fixed by reinstalling the Visual C runtimes. https://support.microsoft.com/kb/2019667 and choose the version that suits you.
This post (https://social.technet.microsoft.com/Forums/en-US/a38df7a2-7b9f-4db5-bc15-be8b700b3636/windows-10-msvcr100dll-missing?forum=win10itproapps) has other options too.

Hopefully this will help (and you'll probably need to restart Windows too!) Let me know how you get on.

Maasq

PTBBC.ORG
October 29th, 2017, 21:05
Ok, I was able to get it to open. Thank you. Now to try and get the NPC's created.

Ok, WOW. Just messed around with it a bit and THIS... IS.... AMAZING. Even I could figure it out and use it quick and easily. I have a ton of NPC's to put in, but seriously, this is great work. If you plan on making this where everything can be par5ed this way. You will make my life super easy with FG. It will be so much easier to create a full self contained module. At least to me. I know a lot of others are able to do a lot of this other ways with ease, but this is perfect for me.

Thank you, thank you and thank you.

Maasq
October 29th, 2017, 23:38
Ok, WOW. Just messed around with it a bit and THIS... IS.... AMAZING.

You can stay :)
Thank you so much for the positive feedback; it makes it all worthwhile. I'm busy trying to get a rich text module working and it is bursting my head; coming here and seeing this response to NPC Engineer means I'll go back to the Rich Text with renewed vigour.

As to the long term future of this...
My first goal is to make sure that NPC Engineer is complete. There are 2 big things to enable - a proper text editor for the 'description' tab (hence the Rich Text pain!) and a more graphical right-hand panel - something that will mimic in a rough sense a statblock in the MM.
After that, I'll be turning my attention to other modules - races, classes, and so on. I can't promise anything, obviously, but I will try to implement as much as my shaky skills allow.

Cheers!

Maasq

Laerun
October 30th, 2017, 22:33
Hello Maasq, so I have been trying this out and it works fairly well!

Octavious
October 31st, 2017, 16:57
Hi Maasq,
I read the above post that PTBBC.ORG was getting errors of missing DLL files running NPC Engineer. You mentioned your using C++ , If your using Visual C++ then set your project settings to "Use MFC in a static library" and it will include all the DLL needed for that executable. But I re read and you said your language isn't C++ but uses it .. so IDK..

Maasq
October 31st, 2017, 23:21
Hi Maasq,
I read the above post that PTBBC.ORG was getting errors of missing DLL files running NPC Engineer. You mentioned your using C++ , If your using Visual C++ then set your project settings to "Use MFC in a static library" and it will include all the DLL needed for that executable. But I re read and you said your language isn't C++ but uses it .. so IDK..

Hiya

I programmed NPC Engineer in AutoHotKey, a surprisingly full-featured wee language that fitted my needs perfectly. I recently found out that it was written in C++, but I have no idea about anything beyond that statement. I didn't know AHK had dependencies (the dll) until now!

Maasq

rob2e
November 2nd, 2017, 05:32
I can't wait for more (functionality)! This is AWESOME!

Maasq
November 2nd, 2017, 18:57
Thank you Rob!
The improved text entry should go live soon, maybe even tonight. It'll make a big difference to entering the descriptive stuff. :)

Maasq

rob2e
November 2nd, 2017, 19:16
Thank you Rob!
The improved text entry should go live soon, maybe even tonight. It'll make a big difference to entering the descriptive stuff. :)

Maasq

I love this project.
1) Let me know if I can help, I doubt I can, but anything I can do.
2) This is the greatest thing ever.
3) You da man.
4) More *** kissing.

Signed, a guy that makes modules 24/7 (even while he sleeps)...

Maasq
November 2nd, 2017, 20:38
I love this project.
1) Let me know if I can help, I doubt I can, but anything I can do.


Test it thoroughly :) I am lazy when it comes to testing my work. It is probably arrogance, to be honest! So yeah, as many people testing it for as wide a range of NPCs will show up any faults in it.
I'm also open to suggestions if you feel anything is missing.

What do you think my next module should be? I want something simple, so maybe equipment - I want to make sure everything integrates as easily as I envisage. After that, I can start hitting some of the harder areas such as races, classes, etc.

Anyway, you're one of the 'well known' ones on this forum, so you endorsing it will hopefully drive a few more folk to try it. That's help right there.

Maasq

rob2e
November 2nd, 2017, 20:46
I am HOPING what you are working toward is something that will do EVERYTHING. Is that even possible? Paste the whole PDF in and it just sorts it out? I think that's probably not possible. But next, you should do whichever one you think is easiest. The one that won't burn you out. lol

Maasq
November 2nd, 2017, 21:12
I am HOPING what you are working toward is something that will do EVERYTHING. Is that even possible? Paste the whole PDF in and it just sorts it out? I think that's probably not possible. But next, you should do whichever one you think is easiest. The one that won't burn you out. lol

I'd say 'not possible' because there are so many different styles and formats to copy from, and that's before the mechanical difficulties of recognising room description/weapon/NPC/boss/whatever. Basically you'd need a full-blown AI :)
My skill level works at the compartmentalised level, so you'll have modules (eventually) for each of the major parsing areas. Within each of those I'll be implementing a paste-import method if it seems worthwhile.

Burn-out is always an issue; especially when a task is difficult due to all the different inputs possible and the language I am using has limitations. The support on here and on Discord has been fantastic, though, and the guys on the AHK forum are similarly very giving of their time and expertise, so it gets me back on track.

The worst thing is finding the whole program is grinding to a halt because you mistyped a period as a comma - and you discover this whilst asking for help in a programmer's forum..... My kids found it very funny when I stopped cringing and told them, so not totally a waste!

Maasq

Laerun
November 3rd, 2017, 01:20
I love this project.
1) Let me know if I can help, I doubt I can, but anything I can do.
2) This is the greatest thing ever.
3) You da man.
4) More *** kissing.

Signed, a guy that makes modules 24/7 (even while he sleeps)...

I almost can not wait! Gooo Massq!

Laerun

ps. Still wanting to do that interview soon!

hawkwind
November 4th, 2017, 08:13
discovered a little glitch

I have been making a module with loads of racial templates on to NPC's and i have noticed If for example i open my bard.Npc file , add some Elf traits ,save it ,add to project and Parse then open say a veteran.npc file the bards's spells haven't been cleared

The same thing happens with traits

a way to quickly add templates would be appreciated by myself

Maasq
November 4th, 2017, 13:22
discovered a little glitch

I have been making a module with loads of racial templates on to NPC's and i have noticed If for example i open my bard.Npc file , add some Elf traits ,save it ,add to project and Parse then open say a veteran.npc file the bards's spells haven't been cleared

The same thing happens with traits

a way to quickly add templates would be appreciated by myself

Hiya

You're right; it is indeed a glitch. I'll fix it in the next release which I hope is coming soon. Until then, a workaround is to click 'New NPC' before 'Open NPC'; this will clear all data fields. Sorry about that, and I hope it never caused you too much pain :(

Someone else requested templates, and the main reason I haven't done it is I am not sure how to. I am open to suggestions!

Maasq

Mr.Aljabry
November 6th, 2017, 16:28
Hi Maasq
I've downloaded it today but I'm having a small problem and I'm not sure where I went wrong
After Parsing, I tried opening the module on FG but it gives me an error 237 reading end tag

As for the templates, you can simply use the SRD Monsters/NPCs as templates perhaps?

Maasq
November 6th, 2017, 19:09
After Parsing, I tried opening the module on FG but it gives me an error 237 reading end tag

That sounds like an XML issue but I can't reproduce that with my test batch of NPCs. Can you email me your npcs.json and the mod file please, so I can see what is happening? [email protected], or hunt me down in Discord.


As for the templates, you can simply use the SRD Monsters/NPCs as templates perhaps?

Possibly, though I want to avoid having content in NPC Engineer. Maybe I'll have a 'save as template' option and work with that somehow. Cheers for the suggestion!

Maasq

LordEntrails
November 6th, 2017, 20:42
Possibly, though I want to avoid having content in NPC Engineer. Maybe I'll have a 'save as template' option and work with that somehow. Cheers for the suggestion!

Maasq
My understanding is you could include the SRD, or parts of it, as long as you include the OGL as well.

But, you might instead of including the SRD, just in your doco a link to the SRD and an example or instructions on how to use it. Then you wouldn't have to worry about any of that.

Maasq
November 12th, 2017, 17:42
Mr.Aljabry never got back to me; has anyone else found his issue?

I tried opening the module on FG but it gives me an error 237 reading end tag



Having added an editable json file for weapons, are there any other areas of NPC creation that'd benefit from the same thing? Are enough traits / actions / reactions shared among NPCs to make this useful in those areas, for example?

Maasq

damned
November 12th, 2017, 21:00
Well done Maasq!

Laerun
November 13th, 2017, 04:13
I agree, this is really great Maasq! I have done my Bestiary for a custom game in about 1/4 of the time to do this long-handed within FG>! FGC is waiting to hear more about this amazing software tool!

Laerun
November 13th, 2017, 04:14
Mr.Aljabry never got back to me; has anyone else found his issue?




Having added an editable json file for weapons, are there any other areas of NPC creation that'd benefit from the same thing? Are enough traits / actions / reactions shared among NPCs to make this useful in those areas, for example?

Maasq

I have not ran into any weird issues, other than the one where some of the previous NPC's stuff is still there, left over. Sometimes the sources are not good, so it splits some of the actions incorrectly, but other than that it is very good for me!

Laerun
November 13th, 2017, 04:18
Mr.Aljabry never got back to me; has anyone else found his issue?




Having added an editable json file for weapons, are there any other areas of NPC creation that'd benefit from the same thing? Are enough traits / actions / reactions shared among NPCs to make this useful in those areas, for example?

Maasq

Would it be difficult to add the Traits, etc for a small background area?

Maasq
November 13th, 2017, 08:39
What do you mean by "for a small background area?"
It shouldn't be a lot of work to add a storage object for a list of traits; there are things to be overcome but that's ok!
I'm thinking you might be meaning something else though.

Maasq

Laerun
November 13th, 2017, 15:16
You are correct, just a small header and space for it. Technically, this can already be achieved in your nice new text formatting description area! I am confused what the weapon JSon file was for?

Maasq
November 13th, 2017, 15:26
There's a whole tab for 'traits' already. Each has a header and a space for the traits text. You shouldn't be putting them in the Description tab as that would put them onto the 'other' tab in FG itself.

In the actions tab, you can add weapon actions. Let's say shortsword. Rather than add all the info for shortsword for each new NPC, you can add it once in the weapons.json file then just select it from a dropdown.

There are 4 Gaelic weapons in there already - add one as a weapon action to see what I mean.

Maasq

Laerun
November 13th, 2017, 17:31
Sometimes, if an action is a longer entry and due to source formatting, the action will be split into two or three sections. Not sure if You can do anything about this, but it happens about 1/3 of the time for me. Easy enough to edit and fix though, now that you have included this edit feature.

Maasq
November 13th, 2017, 17:34
I'll try to catch you on Discord later and you can show me a source that does this. I'll nail it down somehow!

limpinjezus
November 14th, 2017, 18:28
I'm having a couple issues. When I put in a description, it adds a \lang1033 in front of the description that FG just displays as text. Also, when saving NPCs and then reloading them, it seems the Size is lost and not reloaded as that field shows blank.

Maasq
November 14th, 2017, 18:56
I'm having a couple issues. When I put in a description, it adds a \lang1033 in front of the description that FG just displays as text. Also, when saving NPCs and then reloading them, it seems the Size is lost and not reloaded as that field shows blank.

Hiya, and sorry about the issues.

The second one is easily fixed - in fact it already is, but hasn't been uploaded yet. A few bugs were spotted and conveyed to me on Discord last night so I am fixing all of those. There will be a new version later tonight or tomorrow. Programmers among you will not be surprised to hear it was a capital letter issue that caused this bug.

The first one is more vexing. The Rich Edit control uses RTF and RTF is the stupidest thing I have had to deal with in this whole programming lark. I have to strip out all those daft codes to get to what I need. I thought I'd managed, but it seems different computer or operating system uses different default stuff. It makes it hard for me to test but I can bash away at possible solutions and keep posting them.

For reference, I am on Win10 64-bit, English language (set to UK English). What's different about your set-up?

Speak soon

Maasq

limpinjezus
November 14th, 2017, 19:20
Great to hear a new version is coming soon. As for what system I have the issue on, it is Win10 Enterprise, 64bit, version 1703, build 15063.674, English (United States) Region & language.

Maasq
November 14th, 2017, 19:23
So the two differences are Enterprise vs Pro, and English (US) vs English (UK).

Any other users in the US able to confirm this error, with the /lang1033 showing up?

Maasq

CapitanAndyman
November 16th, 2017, 12:59
I also am getting the \lang1033 error. Windows 10 pro, 64 bit, English US keyboard and time settings. I really like the program, and thanks for working on it!

Maasq
November 18th, 2017, 00:27
New version released - link to the website in my sig, or files available in the first post of this thread.

This one contains lots of updates, including what I hope to be a fix for the \langxxxx thing. Please let me know if this fixes the issue for you guys.
Full changelog and new manual also on the website.

Maasq

Myrdin Potter
November 18th, 2017, 03:16
Trying to figure out how to get a stat block that looks pretty standard to work.

If I cut and paste is from the PDF it looks like this:

"ADEPT
Medium humanoid (any race), any alignment
Armor Class 11 (14 with mage armor)
Hit Points 22 (5d8)
Speed 30 ft.
STR
DEX
CON
INT
WIS
CHA
9 (-1)
13 (+1)
11 (+0)
16 (+3)
12 (+1)
10 (+0)
Saving Throws Int +5, Wis +3
Skills Arcana +5, History +5
Senses passive Perception 11
Languages any four languages
Challenge 2 (450 XP)
Spellcasting. The adept is a 5th-level spellcaster. Its spellcasting ability is Intelligence (spell save DC 13, +3 to hit). The adept has the following wizard spells prepared:
Cantrips (at will): fire bolt, light, mage hand, prestidigitation
1st level (4 slots): detect magic, mage armor, magic missile
2nd level (3 slots): invisibility, misty step, suggestion
3rd level (2 slots): counterspell, lightning bolt
ACTIONS
Dagger. Melee or Ranged Weapon Attack: +3 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 3 (1d4+1) piercing damage.
No longer mere students of magic, adepts are well on their way to the mage’s true mastery of the arcane arts. Most serious practitioners of wizardry encountered in the world are likely to fit this mold, perhaps with small variations in their lists of spells known. Like other types of spellcasters, they might be solitary practitioners, or members of magical guilds or cabals that share—and quite possibly hoard—power and knowledge."

The program asks me for each stat number and then the parse text on the right looks off.

Laerun
November 18th, 2017, 05:11
Trying to figure out how to get a stat block that looks pretty standard to work.

If I cut and paste is from the PDF it looks like this:

"ADEPT
Medium humanoid (any race), any alignment
Armor Class 11 (14 with mage armor)
Hit Points 22 (5d8)
Speed 30 ft.
STR
DEX
CON
INT
WIS
CHA
9 (-1)
13 (+1)
11 (+0)
16 (+3)
12 (+1)
10 (+0)
Saving Throws Int +5, Wis +3
Skills Arcana +5, History +5
Senses passive Perception 11
Languages any four languages
Challenge 2 (450 XP)
Spellcasting. The adept is a 5th-level spellcaster. Its spellcasting ability is Intelligence (spell save DC 13, +3 to hit). The adept has the following wizard spells prepared:
Cantrips (at will): fire bolt, light, mage hand, prestidigitation
1st level (4 slots): detect magic, mage armor, magic missile
2nd level (3 slots): invisibility, misty step, suggestion
3rd level (2 slots): counterspell, lightning bolt
ACTIONS
Dagger. Melee or Ranged Weapon Attack: +3 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 3 (1d4+1) piercing damage.
No longer mere students of magic, adepts are well on their way to the mage’s true mastery of the arcane arts. Most serious practitioners of wizardry encountered in the world are likely to fit this mold, perhaps with small variations in their lists of spells known. Like other types of spellcasters, they might be solitary practitioners, or members of magical guilds or cabals that share—and quite possibly hoard—power and knowledge."

The program asks me for each stat number and then the parse text on the right looks off.

My experience is the stats arrangement have to be laid out in a correct format or it will pars weird. STR 9 (-1) , the stat number s/b 'under' STR, so in regards to lay out, it is NOT standard to the Parse/NPC Engineer.. I guess?

Maasq
November 18th, 2017, 08:02
Trying to figure out how to get a stat block that looks pretty standard to work.

Hey Myrdin

Although it looks fairly standard, it hasn't been my experience of copying from pdf up to now. There are so many different ways that copying from a pdf happens that I initially despaired at ever getting NPC Engineer working at all! Luckily it narrowed down to a few groups in the pdfs I had access to, but as I say, this format hadn't shown up before.

I'm working on incorporating it just now. The easiest way would be to add an input filter, but I'm keen to wrap all pdf functions into the base filter. However if this causes issues with other pdf captures I might have to revisit and make it an input filter. I'll post an update in a while when I have it working.

Laerun, you were absolutely spot on. Most pdf formats had the value for strength immediately after 'STR'

As an aside - thanks for posting the cut-and-paste text, Myrdin. It made it so much easier to track the issue and fix it!

Maasq

Maasq
November 18th, 2017, 09:09
OK, update completed. Download available from the website (link in the sig). I haven't updated the version on this thread yet in case the changes I made breaks something else :)

Maasq

Laerun
November 21st, 2017, 01:05
Hey Myrdin

Although it looks fairly standard, it hasn't been my experience of copying from pdf up to now. There are so many different ways that copying from a pdf happens that I initially despaired at ever getting NPC Engineer working at all! Luckily it narrowed down to a few groups in the pdfs I had access to, but as I say, this format hadn't shown up before.

I'm working on incorporating it just now. The easiest way would be to add an input filter, but I'm keen to wrap all pdf functions into the base filter. However if this causes issues with other pdf captures I might have to revisit and make it an input filter. I'll post an update in a while when I have it working.

Laerun, you were absolutely spot on. Most pdf formats had the value for strength immediately after 'STR'

As an aside - thanks for posting the cut-and-paste text, Myrdin. It made it so much easier to track the issue and fix it!

Maasq

This was a similar type of issue that I was getting as well... I see that you are working on it, so no need to re-invent the wheel! Keep up the good work!

limpinjezus
November 21st, 2017, 03:01
New version released - link to the website in my sig, or files available in the first post of this thread.

This one contains lots of updates, including what I hope to be a fix for the \langxxxx thing. Please let me know if this fixes the issue for you guys.
Full changelog and new manual also on the website.

Maasq

I meant to reply sooner, but it seems the /langxxxx issue is resolved. Thank you for all your hard work.

Maasq
November 22nd, 2017, 17:17
Great, thanks for letting me know :)

Maasq

hawkwind
November 24th, 2017, 11:52
Hi

i'm getting this error message with version .97e




I tried using .92 and didn't get the same issue

Maasq
November 24th, 2017, 17:24
Hiya Hawkwind

I can't reproduce this issue here - it still parses my random set of monsters fine. The error looks like a fault creating the zip file.

1. Does the parse window open at all? If so, does it get through any part of the parse (images, tokens, etc?)
2. Check the file name and path in the 'project' part hasn't got changed or corrupted somehow. This would be my suggestion for what has gone wrong. Did you move files that the project is referencing?
3. Do you have a thumbnail.png? It shouldn't matter, but hey...
4. If none of the above help, try manually deleting any *.zip files left over in the directory in case they are blocking a new one being created.

the 'hzip' parameter the error is referencing is the zip handle. If it is wrong, something must have changed it between creating the zip earlier in the program and it saving files. Can you send me the npcs.json and the *.ini for the project? I can load them up and see if they cause the issue here.

Maasq

hawkwind
November 24th, 2017, 19:13
1, yes and i had a few other error messages as well

2. a possibility, don't know for sure i was adding monsters happily and did the first three and then it went all wrong

3. no

4. wiil do

files attached

additional files

Myrdin Potter
November 24th, 2017, 22:36
Ok, the attributes parse right, but now the description at the bottom of the NPC gets parse as an action. Do I need to move the description or use a code to say actions are over or something? Exactly the same as the example I pasted above.

Maasq
November 24th, 2017, 22:55
Yes, you have to paste description text separately. There is no way to detect the end of a statblock and the start of a description.
So paste in the statblock and most things get put in the correct place, then turn to the description tab for another cut and paste for that text.

Maasq
November 26th, 2017, 10:22
1, yes and i had a few other error messages as well

2. a possibility, don't know for sure i was adding monsters happily and did the first three and then it went all wrong

3. no

4. wiil do

files attached

additional files

Hey Hawkwind.

The file parses perfectly here, so I am at a bit of a loss as to what to tell you. The only change to the Parse module in that time was updating it to use a Rich Text control - so give colourful text. Nothing was changed under the hood so to speak.
My gut feeling is there is a file structure issue at your end. Try renaming the project so that it creates a whole new folder structure, add a single creature (the sample one provided will do) and then parse to see if it works. That'll at least let us know if it is the project that has the issue or if there is an issue with the code on your machine for some reason.

Let me know

Maasq

Maasq
November 26th, 2017, 23:26
New release today - 0.9.7g. Download from the website (www.masq.net)or from the first post in this thread. There are quite a few new features added, and some updates. Try it out! Read the changelog or Manual for information on what is new.

Laerun - you should be happier with what it does now. I'll add an input translator for that PDF this week too.
Hawkwind - try this version and see if it changes anything for you.

On another note - I got my first donation through the website this week, and it felt brilliant!

Maasq

Laerun
November 27th, 2017, 13:13
New release today - 0.9.7g. Download from the website (www.masq.net)or from the first post in this thread. There are quite a few new features added, and some updates. Try it out! Read the changelog or Manual for information on what is new.

Laerun - you should be happier with what it does now. I'll add an input translator for that PDF this week too.
Hawkwind - try this version and see if it changes anything for you.

On another note - I got my first donation through the website this week, and it felt brilliant!

Maasq

That is great Maasq! I am really happy with your progress, keep going...! I made my first donation as well! I started a 'new' Bestiary and I have not had issues yet...!

Laerun

Myrdin Potter
November 30th, 2017, 01:22
Not picking up the spell to hit modifier in this (and all other blocks in this PDF):

Spellcasting. The adept is a 5th-level spellcaster. Its spellcasting ability is Intelligence (spell save DC 13, +3 to hit). The adept has the following wizard spells prepared:
Cantrips (at will): fire bolt, light, mage hand, prestidigitation
1st level (4 slots): detect magic, mage armor, magic missile
2nd level (3 slots): invisibility, misty step, suggestion
3rd level (2 slots): counterspell, lightning bolt

Laerun
November 30th, 2017, 05:48
Can I see the source or Clipboard paste?

Myrdin Potter
November 30th, 2017, 06:16
I pasted it right in the post. I will do the whole one here:

ADEPT
Medium humanoid (any race), any alignment
Armor Class 11 (14 with mage armor)
Hit Points 22 (5d8)
Speed 30 ft.
STR
DEX
CON
INT
WIS
CHA
9 (-1)
13 (+1)
11 (+0)
16 (+3)
12 (+1)
10 (+0)
Saving Throws Int +5, Wis +3
Skills Arcana +5, History +5
Senses passive Perception 11
Languages any four languages
Challenge 2 (450 XP)
Spellcasting. The adept is a 5th-level spellcaster. Its spellcasting ability is Intelligence (spell save DC 13, +3 to hit). The adept has the following wizard spells prepared:
Cantrips (at will): fire bolt, light, mage hand, prestidigitation
1st level (4 slots): detect magic, mage armor, magic missile
2nd level (3 slots): invisibility, misty step, suggestion
3rd level (2 slots): counterspell, lightning bolt
ACTIONS
Dagger. Melee or Ranged Weapon Attack: +3 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 3 (1d4+1) piercing damage.
No longer mere students of magic, adepts are well on their way to the mage’s true mastery of the arcane arts. Most serious practitioners of wizardry encountered in the world are likely to fit this mold, perhaps with small variations in their lists of spells known. Like other types of spellcasters, they might be solitary practitioners, or members of magical guilds or cabals that share—and quite possibly hoard—power and knowledge.

Laerun
November 30th, 2017, 06:52
Okay, the stats will not work, the Stat block needs to be edited a bit, when you paste in the data, highlight the entire blob of text, do CTRL+J. Also, remove the any statements. The main culprit is the way it is copied and pasted into the clipboard. If that does not help, also paste into a text editor and fix or place the actual stats like they are in the PHB.

Myrdin Potter
November 30th, 2017, 06:55
The stats work fine when I cut and paste it. As a matter of fact, almost everything works fine except for the spell to hit modifier in the spell casting block. I discussed the stats 2-3 pages up in this thread and the program was modified.

There are occasional errors in traits based the spacing, but I can adjust for that.

Laerun
November 30th, 2017, 07:11
Try to remove the statement of 'the adept has the following spells prepared.'

Maasq
November 30th, 2017, 10:39
Hi Myrdin

As with many of the problems you will encounter, the source is slightly off in its presentation compared to WotC stuff. (spell save DC 13, +3 to hit) is usually written (spell save DC 13, +3 to hit with spell attacks) and this is what I check for. I will have a look at shortening it to just '+d to hit' just now - obviously this is trivial to do but I need to make sure there wasn't a reason I went for the longer phrase in the first place!

Laerun, 'The adept has the following wizard spells prepared:' needs to be there - it lets FG know which spell school to check. I think. I certainly make use of it in the parsing. The 'any race' and 'any alignment' are allowed for - anything at all in these positions will show up in the 'tag' and 'alignment' boxes as they are flavour rather than rule text. From a game point of view, I guess it would be better to change them once imported for your game, as the NPC will be of a particular race and alignment. Also that style of statblock is allowed for in NPC Engineer - not counting the madness that the input translators deal with, there are 6 different styles of statblock automatically recognised.

Actually, this whole thing might have been simplified in a recent update. I will check.

Anyway, Myrdin, look for a minor update later to correct for this - it doesn't appear to clash with anything.
**EDIT** I found another bug whilst doing this, so thanks :)

Maasq

Myrdin Potter
November 30th, 2017, 14:18
The only thing not automatically being picked up in the spell block is the spell to hit modifier, and it is short hand compared to pure WoTC style. I know you are pattern matching, and the more “wild cases” you see, the more you can fine tune it, which is why I am mentioning it.

Laerun - I can just add the spell to hit modifier with one character instead of rewriting the source material which is many characters.

Myrdin Potter
November 30th, 2017, 15:21
Here is an example stat block that the program had issues with the traits section. Also, the spell slot is populated at level 1:

DIABOLIST
Medium humanoid (any race), any non-good alignment
Armor Class 11 (14 with mage armor)
Hit Points 27 (5d8+5)
Speed 30 ft.
STR
DEX
CON
INT
WIS
CHA
9 (-1)
13 (+1)
12 (+1)
14 (+2)
8 (-1)
16 (+3)
Saving Throws Cha +5
Skills Arcana +4, Deception +5, Persuasion +5, Religion +4
Senses passive Perception 9
Languages Any three languages
Challenge 2 (450 XP)
Pact of the Tome. Part of the diabolist’s power is bound into a magical tome called a Book of Shadows. While the diabolist’s Book of Shadows is on its person, it can cast the following cantrips at will:
fire bolt
guidance
thaumaturgy
In addition, the Book of Shadows contains the following spells that the diabolist can cast as rituals:
augury
identify
find familiar
phantom steed
unseen servant
Eldritch Invocations. Once per long rest, the diabolist can use a spell slot to cast bestow curse. In addition, the diabolist can cast mage armor on itself at will, without using a spell slot and without material components.
Spellcasting. The diabolist is a 5th-level spellcaster. Its spellcasting ability is Charisma (spell save DC 13, +5 to hit). The diabolist casts all of its non-cantrip spells using 3rd-level spell slots, and recovers all of its used slots after a short or long rest. It knows the following warlock spells:
Cantrips (at will): chill touch, minor illusion, prestidigitation
3rd level (2 slots): burning hands, charm person, command, enthrall, hellish rebuke, hex
ACTIONS
Dagger. Melee or Ranged Weapon Attack: +3 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 3 (1d4 + 1) piercing damage.

Myrdin Potter
November 30th, 2017, 15:37
And here is another issue, in the spell list for the spell casting, it repeats the level and #1 slots in the spell list:

WILD MAGE
Medium humanoid (any race), any non-lawful alignment
Armor Class 11 (14 with mage armor)
Hit Points 49 (9d8+9)
Speed 30 ft.
STR
DEX
CON
INT
WIS
CHA
11 (+0)
12 (+1)
12 (+1)
13 (+1)
9 (-1)
17 (+3)
Saving Throws Con +4, Cha +6
Skills Insight +2, Intimidation +6, Perception +2
Senses passive Perception 12
Languages Any two languages
Challenge 5 (1,800 XP)
Wild Magic. When the wild mage casts a spell of 1st level or higher, roll a D20. A 1 triggers an effect on the Wild Magic Surge table.
Sorcery Points. The wild mage has 9 sorcery points it can use to empower metamagic effects or exchange for spell slots. To gain a spell slot, the wild mage uses a bonus action to expend 2 sorcery points for a 1st-level spell, or slot level + 2 sorcery points for a 2nd-level spell or higher. To gain additional sorcery points, the wild mage uses a bonus action to expend a spell slot and gains additional sorcery points equal to that spell’s level. Sorcery points are regained when the wild mage finishes a long rest.
Quickened Spell. The wild mage expends 2 sorcery points to cast a spell with a casting time of 1 action as a bonus action.
Twinned Spell. The wild mage expends a number of sorcery points equal to the spell’s level (1 for a cantrip) to target a second creature with a spell that targets a single creature.
Spellcasting. The wild mage is a 9th-level spellcaster. Its spellcasting ability is Charisma (spell save DC 14, +6 to hit). The wild mage knows the following sorcerer spells:
Cantrips (at will): blade ward, fire bolt, light, prestidigitation, shocking grasp
1st level (4 slots): chromatic orb, mage armor, magic missile
2nd level (3 slots): misty step, scorching ray
3rd level (3 slots): counterspell, lightning bolt
4th level (3 slots): wall of fire
5th level (1 slot): wall of stone
ACTIONS
Quarterstaff. Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 3 (1d6) or 4 (1d8) bludgeoning damage.

Myrdin Potter
November 30th, 2017, 15:51
And it looks like every time I save something with a spell list, it repeats the level and slot in the spells section of the tab and in the parsed text as well.

Maasq
November 30th, 2017, 17:08
Heya

oooh that Diabolist is (can't help myself) devilishly difficult!

There are four things I see here from the two casters:

For the Diabolist, putting a period at the end of the last of his spells will sort out the 'traits' issue. The period and linebreak that follow are the only way to tag a new trait starting (that I have found). Without the period, it sees the linebreak as something added by the PDF format and strips it.
Again, for the Diabolist - I can't make the spells display in a list the way they look in the input text. You'll have to change them to a comma-separated list (spell a, spell b, spell c), or cut and paste them to the description box. The traits, as mentioned above, are the hardest section to differentiate. I'm sorry about this.
For both: Spells appearing at the wrong level is a bug. I'll get on to that this evening. I remember meeting the same issue with innate casting and it wasn't a nightmare to fix.
For both: The repeated text will go away in the next update (later tonight) - that was the bug I found earlier.


Sorry that these issues will cause you extra work to get around or redo with the new version.

Maasq

Myrdin Potter
November 30th, 2017, 17:33
Considering the vast sums of money you are paid for this project, I am flabbergasted at the fact there are bugs!

Oh, wait, this is a labour of love and it is super awesome already. :-D

I just figure not enough testing and use and examples so you can work through the edge cases, which is why I am reporting and giving you examples. Otherwise most are trivial to fix inside FG and the small extra time is tiny compared to the time savings already.

This program is getting really good. Great improvements!

Maasq
November 30th, 2017, 17:48
Hey, thank you!

You're right. I am deplorable at testing - I work with the same few files and when they pass, I figure things are grand. I'm an optimist! So reports back on things that trip the program up are ... I hesitate to use the word welcome, but you'll appreciate where I am coming from :) So yes, please keep flagging up the edge cases. Posting the text with the issue is the quickest way for me to solve it too, so all is good.

I hate there being issues, though, which is why I always try to respond promptly and explain if there's something that I can't fix easily.

I have been working on updates to weapon attacks today for 8 hours or so and I am sick of them. :)
With any luck this will be the last I have to look at them though, and the flexibility offered by the improvements will be worth it.

Soon (TM) I'll get on to some other area of parsing. But this deserves to be as close to perfect as I can make it first.

Maasq

Nylanfs
November 30th, 2017, 19:01
This is relevant.
https://i.imgur.com/HTisMpC.jpg?fb

As is this one
https://technotif.com/wp-content/uploads/2014/02/Compile-Program-meme.jpg

Maasq
December 1st, 2017, 00:13
OK, I have quite a big update to share tonight, and it has some new stuff, some updated stuff, and some fixed stuff. I was tired when I got to the end so I am not going to share this version on the front page of this post yet - please grab it from the website (www.masq.net). If it survives being used, I'll put it up on the front page.

NEW: Added 'cold-forged iron' as a weapon material throughout - in damage resistances, damage immunities, and in weapon attack damage type.
NEW: Added an 'other text' box to weapon attacks to allow for complex attacks such as a werewolf's bite.
NEW: Added 'silver', 'adamantine' and 'cold-forged iron' as weapon properties for weapon attacks.

UPDATED: Changed the match text for spell 'to hit' to ensure a more reliable match.
UPDATED: Changed the match text for deciding if a trait or action text is a new trait/action or a follow-on paragraph. Text in brackets is now ignored for this purpose.
UPDATED: Import now looks for all the weapon attack information added to the program.

FIXED: Problem with creatures with 2 tags (such as werewolf).
FIXED: Problem with colons in spells.
FIXED: Weapons with damage in the form (2d8) can now be edited properly.
FIXED: Spells should display at the right level when imported now.

Hopefully this will be full functionality for weapon attacks now. I certainly hope to never have to work on them again :) Who knew that I'd need to work on so many different subsystems to add cold-forged iron & fully implement silver & adamantine? Doug, and/or other devs, if you guys read this stuff..... if anyone ever asks you to add another damage type (like cold-forged iron or adamantine) - even if it is WotC - tell them Steph said NO! (oh, and I'll never bother a developer about adding features again after today's 'fun'!)

Cheers folks

Maasq

mythikwolf
December 1st, 2017, 17:13
Hey Maasq,

Great work. Wanted to let you know that link on your website actually downloads 0.9.7g and not i.

Mythik

Maasq
December 1st, 2017, 18:57
Hey Maasq,

Great work. Wanted to let you know that link on your website actually downloads 0.9.7g and not i.

Mythik

Thank you, Mythik. It was a weird caching issue - I deleted the link and remade it, and it is now serving up the correct zip file!
Cheers for pointing it out.

Maasq

Maasq
December 2nd, 2017, 00:02
I've set up a Discord server for people to chat (text usually, voice if you prefer) about issues, suggestions or whatever to do with NPC Engineer. You can join the channel by clicking here (https://discord.gg/uH8NJ4x).

See you there :)

Maasq

Maasq
December 5th, 2017, 00:08
Hi folks

Another new version - mainly bug fixes, with a couple of small feature additions. This is version 0.9.7j. It is available from the NPC Engineer website (https://www.masq.net) or the first post on this thread. I'd urge anyone using the program to update to the newest version to iron out any faults.

For my next big feature addition, and probably heralding official release (1.0.0) status, I am working on an improved text box. Have a look at the screen below, and go read about it on the website. I am excited about this one; this makes the whole shebang complete. Or at least it will when I finish it this week sometime!

21656

I hope you all agree that this makes the program far more usable.

Cheers

maasq

kp9911
December 5th, 2017, 16:29
This is turning out to be quite the handy tool! So glad you got back into developing Maasq!

Maasq
December 6th, 2017, 21:46
Hey folks

Welcome to the release candidate! This is version 0.9.9 and it will become version 1.0 if nothing shows up to be bugged in the next week or so of testing :)
The big addition is full graphical statblocks on both the main screen and the import screen. It makes the process more visually appealing, and more importantly makes it much easier to sport import issues.

If you haven't tried NPC Engineer yet, help a fellow out by downloading it and playing with it for 20 mins. If you HAVE tried it, grab this new version. I'm really excited to hear people's opinions about the eye-candy.

As ever, grab it from the website (https://www.masq.net)or the first post here.

Join me on the Discord channel for a chat if you wish too!

Maasq

Thegroo
December 7th, 2017, 01:52
Going to test the new release as soon as possible.
Thanks again for your great work

epithet
December 10th, 2017, 22:34
I really love this tool, but there is one thing I looked for and missed when I was building a new npc: the ability to re-order the actions. Let's say you want to add multiattack to your npc... it would be nice to be able to bump it up to the top item with a couple of clicks.

Maasq
December 10th, 2017, 22:42
I really love this tool, but there is one thing I looked for and missed when I was building a new npc: the ability to re-order the actions. Let's say you want to add multiattack to your npc... it would be nice to be able to bump it up to the top item with a couple of clicks.

Heya. I took the decision to order actions in a particular way to match up with the official materials. If the NPC has multiattack, it will always appear first in the Actions section. Next, the weapon attacks list in alphabetical order. Finally, other actions list in alphabetical order.

If there is a need for re-ordering actions beyond this, I'll look at adding it at a future date. Because of the way arrays sort in the language I use, this wouldn't be a trivial task; it'd impinge on GUI code as well. You might be able to tell I feel slightly sick at the thought :)

Maasq

Maasq
December 10th, 2017, 22:47
New update. This update fixes a couple of bugs, adds a new feature in that you can leave your module unlocked on creation, and tweaks a couple of import filters. In particular, the D&D Beyond one was changed. They finally realised that their website was the one place that the statblock wasn't being displayed in the usual format and changed it :) Their new format would parse perfectly with no filter except for user-introduced errors such as rogue spaces where I'd prefer them not to be from the point of view of text capture, so I left a filter in to catch these.

Did I mention the font? There's a font in the zip. Please install it, otherwise the statblock will look off.

Have fun folks. I have a couple of bugs to iron out this week, but feel free to let me know of others on Discord or here. Website link and Discord channel link in the signature :)

Maasq

Maasq
December 24th, 2017, 16:03
New update to NPC Engineer - we're on version 0.9.19 now. This version fixes a couple of long term bugs and adds a new feature. Download from the first post in this thread or from the website (www.masq.net). The website will always have the latest version - sometimes I make small tweaks that don't seem worthwhile posting about here.

The new feature gives the ability to add terrain types and source mythology to your NPCs. This adds two further sorting options to FG's reference manual. Although not everyone will use this, it may prove very useful for some. It is unobtrusive, and is definitely not required to create an NPC. The image below shows an early version with just the 'terrain type' flag available:
21790

Can I just take this opportunity to thank those very generous folks who have donated via the website. It's a real boost, and it makes my kids think I am awesome! Thanks too to the Discord users for all their feedback and suggestions.

Merry Christmas folks. Have a wild/joyous/peaceful time as you see fit. You have my permission :)

Maasq

JohnD
December 27th, 2017, 18:28
It was suggested elsewhere by Lord Entrails... would it be possible to build in the capability to import data from Roll20 into FG format?

Maasq
December 27th, 2017, 22:11
It was suggested elsewhere by Lord Entrails... would it be possible to build in the capability to import data from Roll20 into FG format?

Hey John. Thanks for drawing attention to this. I have been busy playing laser tag with my kids and making turkey curry, turkey soup, etc so I missed the thread :)
I think making a translator for it is a great idea, and I'll get on to it tomorrow. It doesn't look too difficult, but we'll see.

If there are any other systems like that (and that have export functions) please feel free to point them out. The more useful NPC Engineer is, the better - especially if it helps draw people to the table.

Maasq

JohnD
December 27th, 2017, 23:23
Hey John. Thanks for drawing attention to this. I have been busy playing laser tag with my kids and making turkey curry, turkey soup, etc so I missed the thread :)
I think making a translator for it is a great idea, and I'll get on to it tomorrow. It doesn't look too difficult, but we'll see.

If there are any other systems like that (and that have export functions) please feel free to point them out. The more useful NPC Engineer is, the better - especially if it helps draw people to the table.

Maasq

a) An awesome way to spend your time with your children.
b) An awesome way of making NPC Engineer even better, if that was even possible.

Maasq
December 30th, 2017, 11:00
New update. As ever, the latest version is on the website (https://www.masq.net)or on the first post in this thread.

This one could prove quite important; once a week, NPC Engineer will check if it is the latest version (assuming you are connected to the internet). If not, it'll offer you the choice of going to the website to grab the new version. I'll still post about updates here just to keep the program in the public consciousness.

Don't panic if it seems you miss a few updates (version 19 to version 23 for example) as these will have been internal builds not released to the public. Or quick replacements for shoddy releases. Either way, you win :)

The Roll20 filter is (pardon the pun) rolled into this update, but a couple of issues have been pointed out and need updated.

I have also added issue tracking via Github (link in the sig) should you prefer to leave a trackable ticket rather than speak to me on Discord. I quite like the idea of having tickets; it appeals to my tick-all-the-boxes mentality!

If I don't speak with you beforehand, have a great New Year. Yes, there will be shortbread and whisky in my house. No, we don't all have red hair and wear kilts. :)

Maasq

damned
December 30th, 2017, 12:44
If I don't speak with you beforehand, have a great New Year. Yes, there will be shortbread and whisky in my house. No, we don't all have red hair and wear kilts. :)

Oh please do put your kilt back on!

Maasq
December 30th, 2017, 16:52
I'll have on a darling evening frock and some pearls. Don't judge me.

Maasq
Wielder of +2 party frock and pearls of defence.

(and hoping the ex-wife doesn't see this and try to take the kids off me for their own safety! hahahah)

PTBBC.ORG
December 30th, 2017, 18:02
Downloaded the latest version and it just sits at the loading screen... trying to figure out why..

Maasq
December 30th, 2017, 19:48
There appears to be an issue - it is the updater that is causing it. I'll put an update out later this evening, either with a different method of dealing with updating or with the updating pulled for now.
Sorry for the hassle folks.

Maasq

Maasq
December 30th, 2017, 22:02
Downloaded the latest version and it just sits at the loading screen... trying to figure out why..

I changed the way NPC Engineer 'phones home' so that it shouldn't cause Windows and virus checkers to jump all over it. If there are still issues, post a wee issue ticket on Github (Link in the sig) and I'll look at adding an option to switch off the autocheck.

I fixed the issues with the Roll20 filter; this should make it easy to convert any other json based output from other sites as well.

As ever, latest version on the website (www.masq.net)and on the first post of this thread.

Maasq

Maasq
January 2nd, 2018, 13:16
Hey folks!

I've released a new version. This one doesn't add much in the way of features, but it does add an installer and a swanky new icon...
The installer forced me to get more serious about my data files and where they were stored, so there are changes here. Short version: all datafiles are stored in the {appdata} folder under your windows login by default, though you can change this in the options. The downside is you will need to copy over your current files (not the project information, just ini and json files).

More details on the website (www.masq.net), along with the newest version and zip package if you prefer.

Here's the new icon:
21854

Maasq

Maasq
January 3rd, 2018, 15:03
Another update.... fixing some issues noted by people on Discord.
Check the website (https://www.masq.net)for the most recent version; it is changing quite quickly these days.

Maasq

Maasq
January 11th, 2018, 00:03
Hi folks... Yet another update. As well as some bug fixes, this one adds a couple of things.

1. You can click the 'copy to clipboard' button to get an RTF copy of the pretty statblock on the right hand side. RTF readers are notoriously finicky, so I can only guarantee it works with Word (2010 to 2016 definitely, probably older versions too) and WPS Writer which is free (although ad supported). OpenOffice fails, for some strange reason - it worked with older, less compliant code. If there is a clamour for OpenOffice support I'll consider looking at it again.

2. There are a couple of new 'save as...' options - RTF (see above) and HTML. The HTML is beautiful, and easy to write, and standards-compliant (Firefox, Chrome, Opera and Edge all display it perfectly). The HTML control is a pain, though, and breaks NPCE if I try to use it to replace the RTF. Nothing is easy. But the export is there, and if you have use for HTML you'll really appreciate it.

As ever, newest code on the website (https://www.masq.net).

Maasq

damned
January 11th, 2018, 00:31
Great job Maasq.

JHale1966
January 13th, 2018, 15:37
I'm having a problem loading the program now since going to the latest update. I have tried unistalling/reinstalling and deleting the folders but I keep getting this error:

21929

I even deleted the PBG-Bestiary folder that I had created and still getting the error. :/

Maasq
January 13th, 2018, 16:18
Hiya

I hope you haven't completely deleted all the files in your bestiary! Go to https://www.masq.net/2018/01/consolidating-your-files-in-standard.html to read how to move your files safely to work with the most recent version. If all else fails, you can delete the NPC Engineer.ini file and it'll work again. This is found in the {appdata} folder - on Windows 10 it'll be C:\Users\your name here\AppData\Roaming\NPC Engineer.

I'm sorry this hit you; as the project approaches proper release status small changes like this happen that can have far reaching effects. Once it matures to release (version 1.0.0) there should be no other file or directory changes.

Maasq

JHale1966
January 13th, 2018, 17:00
Ah-HA! Bingo - that fixed it. I only had a couple of Monsters over there as i've only been playing around with it and haven't put it into 'production' yet. :)

Thanks!

Doomskull
January 15th, 2018, 02:36
Great addition! You have my undying gratitude for this, it makes my DM tasks so much easier.
Only had a few little errors, I had to open the db.xml to fix a few issues. Two instances of the empty <> and </> would give me an error and there was a </b> missing. Also, I get images in the description section even though "images" is not checked in the settings. Any ideas?
EDIT: Just noticed the checkbox "Add Image Link" in the description section, that explains it!

epithet
January 15th, 2018, 20:00
I'm getting an error trying to open the module:
"Database Error: A XML parse error occurred processing file SCAP Occipitus:common.xml - Error on line 304: Error reading end tag."

Any suggestions?

Update: The problem, it seems, was caused by some descriptive text. The stat blocks would parse fine without the description, and it was only one description that cause a problem. That text included a heading, a description in italics, and two paragraphs of text with a sentence of bold text. No idea why that would cause a problem.

Two other things I noticed: it seems that you intended for double-clicking on the hp box to open a dialog, but nothing happens. The calculation buttons (mean, roll) work. Also, if you add a recharge to an action such as "Bellow (Recharge 6)" NPCE will turn that into "Bellow (Recharge 6." I tried a "(1/day)" to see if that would work, and the same thing happened "... (1/day." was how it came out.

Maasq
January 15th, 2018, 21:08
Great addition! You have my undying gratitude for this, it makes my DM tasks so much easier.

Thank you!


Only had a few little errors, I had to open the db.xml to fix a few issues. Two instances of the empty <> and </> would give me an error and there was a </b> missing. Also, I get images in the description section even though "images" is not checked in the settings. Any ideas?
EDIT: Just noticed the checkbox "Add Image Link" in the description section, that explains it!

I'd need to see what you were feeding in to it and the error it was giving. Could you pop onto Discord and show me some screenshots? Or better yet screenshare so I can watch what happens?
The image thing.... yeah, you spotted it :)

Sorry it took so long to answer - I had a loooong day at work. Hope to speak on Discord, as it is the quickest way to find issues.


I'm getting an error trying to open the module:
"Database Error: A XML parse error occurred processing file SCAP Occipitus:common.xml - Error on line 304: Error reading end tag."

Any suggestions?

As with Doomskull above, could you show me a screenshot of the source file over on Discord? Or send me the source file and let me rummage through it?

For both of you, the latest version is 0.9.46 and is available on the website. It might sort out issues as I made slight changes to the parsing.

These are the sorts of errors that interest me, and that I want to crush before I call it version 1.0.0 :)

Maasq

Doomskull
January 16th, 2018, 06:35
I'm doing another monster mod so as soon as I finish that I'll get with you on Discord if I get the same error.

Maasq
January 18th, 2018, 23:41
Hi folks.

Another update today - this takes me to version 0.9.51 (the version numbers tick up with internal builds - they aren't all releases!)
Ideally, this will be the last of the test versions (bug fixes notwithstanding) and I'll move to version 1.0.0 over the weekend. This will allow me to move on to other projects in the ...Engineer family.

I have added the new version to the first post in this thread, and the latest version can always be downloaded from www.masq.net (https://www.masq.net). You can also have a read of my development blog, and find a full changelog for the application.

So new to this version:



NEW: You can now set 'Frame Text' within NPC Engineer and it shows up properly in Fantasy Grounds.
UPDATED: Setting a weapon action's damage to zero (0dX + 0) will now remove the entire 'HIT:' part of the information, just leaving a 'to hit' and 'target' part. This allows special attacks such as grapple to look neater.
FIXED: Edit NPC Hit Dice window didn't open when the HP box was double-clicked on a system where a scaling factor had been set. NPC Engineer is now DPI aware and this feature should work as intended.
FIXED: If styling (bold or italic, perhaps heading) was added to a paragraph rather than to the block of text (ie the extra 'character' at the end of the paragraph is also selected), this left mixed up XML tags that caused the mod to fail. This has been fixed, but I will continue to monitor it. If formatting issues continue to cause fails, give me as much detail as possible to help me find the issue!
FIXED: Adding anything to an action that had parentheses and sat at the end of the action (such as (recharge 6) would cause the final close parenthesis to be removed. This has been corrected.
FIXED: 'Other Action' wasn't clearing properly when added. Corrected.
FIXED: 'Edit Action' wasn't putting the action name in the combobox. This is now working as intended.


All of Epithet's issues above have been fixed, I believe. Discord is great :)

I'm off for a wee celebrationary Jack Daniels before bed!


Maasq

Maasq
January 19th, 2018, 07:20
I uploaded the wrong file - Ugggggg.
Fixed now and sorry for the confusion!

Maasq

Ken L
January 20th, 2018, 01:10
Is this going to remain windows only? I don't want to use an emulator to load a stat block. I bought a bunch of stuff on DnDBeyond (sorry FG, I need portability between platforms) and have a mighty need for an importer.

If not, I'll have to create my own.

Maasq
January 20th, 2018, 22:39
Hi Ken

This is very much going to remain Windows only, I'm afraid - the GUI and background calls are all part of Windows and so there's no possibility of porting it. Sorry, chief!

You can't access a Windows box to create the module? I'm not sure how well it would do under emulation anyway - it'd be interesting to know if anyone has it running under an emulator.

Maasq

epithet
January 20th, 2018, 23:58
Hi folks.
...
All of Epithet's issues above have been fixed, I believe. Discord is great :)
...
Maasq

Thay have indeed. I'm trying to find more!

L. R. Ballard
January 21st, 2018, 05:46
I'll have on a darling evening frock and some pearls. Don't judge me.

Dazzling! Though I'm not feeling any effects, so don't drop anything on me!

Seriously, excellent work on NPC Engineer. I'm tinkering with v.0.9.25 and continuing to convert FRE1. With any luck, I can hang out a bit beginning in June. Oh, and thanks for the credit. Again, congrats on an impressive program!

Maasq
January 21st, 2018, 09:27
I'm tinkering with v.0.9.25 and continuing to convert FRE1.

Hiya pal, long time no see! That version is pre-installer, so when you update (you should!) you'll probably want to move data files around. There's a post on the website (https://www.masq.net/2018/01/consolidating-your-files-in-standard.html) that will be of use when you do update, as it tells you exactly what to move and when.

Other reasons to update:


Export as HTML statblock (every bit as pretty as that Monster Maker program we both used - at least I think so, but I am biassed!)
Export as RTF statblock (not quite as pretty, but if you use Word it gives a usable statblock for your 'paper' version of your module)
You can add spells to the description and get a properly formatted table in Fantasy Grounds.
You can designate a paragraph as 'frame text' so that it is marked with a speech bubble in FG, and goes directly to the chatbox when you click on it.
Many bug fixes and improvements.
A new icon (I think - it was around the installer version I added the new icon!)


The website (www.masq.net)will be new from when you last had a look, I think; the Github site has the source should you need to add your own tinkerings, and a lovely issue tracker for when you break my application!

Thank you for the compliments, as ever.

Maasq

Doomskull
January 23rd, 2018, 15:24
I'm having an issue getting with the images. I might not be understanding this correctly but if I have the images in the NPC Engineer "image" folder, do I have to have them in FG also?
I have the images in the "image" project folder after parsing but when I try to open the image in FG I get the blank "new image" image.
What am I missing here?

Maasq
January 23rd, 2018, 18:00
I'm having an issue getting with the images. I might not be understanding this correctly but if I have the images in the NPC Engineer "image" folder, do I have to have them in FG also?
I have the images in the "image" project folder after parsing but when I try to open the image in FG I get the blank "new image" image.
What am I missing here?

Hi Doomskull. There's certainly something going wrong; we'll have to mess around a bit here to see if it is a bug or something that you aren't doing properly. It will be a lot easier if you can catch me on Discord, as the conversation will be faster and we can screenshare to problem solve.

OK, having read your post it sounds like you might have copied or moved the images into a folder manually. The parser won't pick these up as it has no way of knowing about them. The image links are made in NPC Engineer when you add the NPC to a project, and the images are copied to the correct directory and renamed at this point. You never need to do anything manually.

The correct order of events is:

Create (or load) a project. Make sure it has 'images' (and 'Tokens' too if required) checked as well as NPCs on the right hand side as you create it.
Import or enter all the text for your NPC.
Add an image on the 'Description' tab of NPC Engineer.
Add a token (if required) on the 'Base Stats' tab.
Click 'Add to Project'.
Parse when ready to do so.



This will produce a mod file in your Fantasy Grounds directory, ready to be loaded in FG.
I hope this helps, or that I can work with you on Discord if not :)

Maasq

Maasq
January 23rd, 2018, 23:05
Hey folks

It transpires that the file system stuff in NPCE is a total mess if you don't use the default {appdata} directories, or at least you can break it. It might be that many people are using it fine with other folders and I am worrying about nothing, but I literally have no idea how to fix the issue other than close down the option of changing directories.

This sort of thing makes me feel sick to my stomach. I tried to accommodate every directory request and I've backed myself into a corner. I'm going to take a break now and try hard not to look at it until next week, when I might decide either (a) it is finished as it is or (b) to hard code directories. I can't even face uploading the bugfixes from the last couple of days just now, sorry.

The other project, Spell Engineer, will have to wait unfortunately.


Speak later, folks

Maasq

LordEntrails
January 24th, 2018, 01:28
Hang in there. We appreciate all you've done.

Doomskull
January 24th, 2018, 01:50
Hi Doomskull. There's certainly something going wrong; we'll have to mess around a bit here to see if it is a bug or something that you aren't doing properly. It will be a lot easier if you can catch me on Discord, as the conversation will be faster and we can screenshare to problem solve.

OK, having read your post it sounds like you might have copied or moved the images into a folder manually. The parser won't pick these up as it has no way of knowing about them. The image links are made in NPC Engineer when you add the NPC to a project, and the images are copied to the correct directory and renamed at this point. You never need to do anything manually.

The correct order of events is:

Create (or load) a project. Make sure it has 'images' (and 'Tokens' too if required) checked as well as NPCs on the right hand side as you create it.
Import or enter all the text for your NPC.
Add an image on the 'Description' tab of NPC Engineer.
Add a token (if required) on the 'Base Stats' tab.
Click 'Add to Project'.
Parse when ready to do so.



This will produce a mod file in your Fantasy Grounds directory, ready to be loaded in FG.
I hope this helps, or that I can work with you on Discord if not :)

Maasq

Got it to work bud, user error. Your right, I was dropping the image files into the image folder. I missed the fact that it pulls images from wherever! No biggie, works like a charm now.
Sorry to hear about the directory issue, I use the default so I have no issues!
Keep up the great work my friend, we non-scripting/programming DMs really appreciate all you fellas do!

JohnD
January 24th, 2018, 03:52
Yeah don't lose heart... this is great work that helps a whole bunch of people.

TheoGeek
January 24th, 2018, 06:11
Yeah don't lose heart... this is great work that helps a whole bunch of people.

Agreed. I literally JUST found this app two days ago, and I already love it. I'm gonna donate too - how much are cups of coffee where you live Maasq? :)

Maasq
January 24th, 2018, 19:22
Update: A good night's sleep helped. I have beaten harder than this in this journey; I'll beat this too. I've started looking at the file system from the bottom up. Thanks for the messages of support, it means a lot.

@theogeek - No idea; it is a turn of phrase :) Tempted to say $1000 though hahaha Anything is appreciated!

Maasq

Zacchaeus
January 24th, 2018, 20:57
Agreed. I literally JUST found this app two days ago, and I already love it. I'm gonna donate too - how much are cups of coffee where you live Maasq? :)

They don't drink coffee where Maasq lives. But they do consume a fair bit of Irn Bru :)

dberkompas
January 24th, 2018, 21:43
How about the price of a nice Black & Tan?

Maasq
January 24th, 2018, 22:52
A Jack Daniels and diet pepsi, no ice :)

Thegroo
January 25th, 2018, 01:48
Keep going on. You'll beat it.
Your work is great

Maasq
January 25th, 2018, 22:12
Hey folks!

Another update, this time with the file handling fixed (I hope). There are lots of other bug fixes too. Full changelog on the website, along with the latest version.

I am intending rolling 'Spell engineer' into NPC Engineer as a module. This will be my focus over the next few days, along with implementing a slightly different way of showing output - a 2 pane view. This will allow me some benefits - firstly, I can get my pretty HTML displayed in the program, and secondly I can use the same output window for each module. There are a couple of drawbacks (aren't there always) - the controls to minimise the application sit in the centre of the menu bar overall (see image - it is a mock up so ignore the blankness), and the status bar will get halved. I need to find a solution for the status bar problem.

22009

Hopefully it isn't horrible, as the freedom it will allow me going forward makes a huge difference to me.

Cheers all

Maasq

PTBBC.ORG
January 28th, 2018, 02:50
Updated to the latest version and it works so much better! Some of the PDF's I used were not formatted well at all, and NPC Engineer still handled 95% of it correctly! Small things like not recognizing the difference between Language or Languages, sometimes spellcasting would format weird due to placements of . : + and what not. But all of that still made my life so much easier creating a whole .mod of NPC's. Thank you so much for continuing your work on this. Will try the spell option next. Can't wait for items and feats!

Maasq
January 28th, 2018, 15:40
Updated to the latest version and it works so much better! Some of the PDF's I used were not formatted well at all, and NPC Engineer still handled 95% of it correctly! Small things like not recognizing the difference between Language or Languages, sometimes spellcasting would format weird due to placements of . : + and what not. But all of that still made my life so much easier creating a whole .mod of NPC's. Thank you so much for continuing your work on this. Will try the spell option next. Can't wait for items and feats!

Thank you for the feedback! The 'language/languages' thing I will fix right now. The spellcasting formatting can be difficult - as you've found, different publishers are not as stringent about their style guide as WotC and the Smiteworks team. If there's anything that you see over and over, and would like an input translator for, grab me on Discord and I can run one up.

Maasq

Maasq
January 29th, 2018, 00:24
Hi folks.

A new update today, and it's a decent one. Lots of bug fixes or small updates, as usual, but I have switched to HTML for my viewport. For a couple of reasons, I decided to stick with the single-window version. The 2-pane version didn't solve the issue I hoped it would and it added a lot of code overhead.

Back to the HTML viewport. It's pretty. Go download v0.9.60 from the website (www.masq.net)(yeah, big number... I commit often!) and play about with the description tab. See how frame text and spells look in the viewport.

Many bugs were fixed, including the italics issue reported on another thread. Strangely, the language/languages one isn't fixed, as a search for language has false positives in the text - making it hard to find the languages section. I decided to leave it alone.

Enjoy folks

Maasq

Uraence
January 29th, 2018, 16:06
I don't know if this has already been posted about, but I'm having problem with parsing "Innate Spellcasting". It will list the ability and the stat and DC, but any of the listed powers: At Will, 1/day, 2/day,etc.. get moved and added on to the last trait before Innate Spellcasting.

I've played around with the formatting and punctuation, but can't find a fix for this other then just deleting that section and entering it manually in the Innate Spellcasting Tab.

Maasq
January 29th, 2018, 17:13
Hi Uraence.
Can you give me some more details?


Is this information you are typing in, or information from the 'import' function? It seems that it is imported, but I wanted to check.
When you say 'parsing', do you mean the issue is with the output to FG, or do you mean the interpreting of the information from the import window into NPCE?
What is the source?


It'll help me narrow down the set of functions I need to deal with if there's an issue. Often it is just a formatting issue from the source material though.

Cheers!

Maasq

EDIT: I just added a creature with innate spellcasting to my project from an old Par5e file I had lying around. It had no issues at all, and it parsed properly into FG. This means it is almost certainly a source material issue. Join me on Discord and you can show me the source; you can even screenshare if you prefer.

Maasq

Uraence
January 29th, 2018, 18:32
I used the term "parsing" incorrectly. It's the output from importing text.

It has to be the formatting of something I can't find. I tried a different source pdf and didn't have the same issue.

Sorry for the bother.

Maasq
January 29th, 2018, 18:36
Oh, it's no bother at all!
Join me on Discord anyway - I might be able to spot the issue with the source. I have a little experience of dodgy sources by now :)

Maasq

Arthreas
January 30th, 2018, 11:12
Seemingly having an issue with a custom spiders "Web" ability. For the action name I will call it "Webs (recharge 5, 6)" but it will remove the last ) and is displayed as "Web (recharge 5,6" it does the same thing for ] as well, but for some reason letters like a or b or c are unaffected, but are capitalized. This happens when I add it to the list of actions via the update button after filling out the information. Is there a way to just have a ranged attack be a to-hit with no damage rolling? such as in the case of webs, the hit effect is simply a restrained effect with a str athletics check to escape but it appeared to add a damage roll at 0d6 +0 when updated.

Maasq
January 30th, 2018, 11:29
Hi Arthreas
I think you may be using an older version. I fixed both of these issues recently - coincidentally in the same update (0.9.51). The latest version is 0.9.60.

If you are using 0.9.60 and you are still seeing these issues, let me know as it is definitely a bug.

Cheers!
Maasq

gwhitneyy2k
January 30th, 2018, 18:57
Awesome tool- thanks for bringing it to the community. Especially excited at the prospect of a Spell Engineer. I am a non-programmer, fairly computer literate, new fantasy grounds user. Went thru an imported a monster, added it to a project, but cannot seem to figure out how to turn that project into a module I can add to FG.

Maasq
January 30th, 2018, 19:28
Awesome tool- thanks for bringing it to the community. Especially excited at the prospect of a Spell Engineer. I am a non-programmer, fairly computer literate, new fantasy grounds user. Went thru an imported a monster, added it to a project, but cannot seem to figure out how to turn that project into a module I can add to FG.

Hiya, and thanks for the compliment!

To create a module, you click the 'Parse' link. It's called this for historical reasons, and now I think on it, 'create module' might be a better title going forward.
Anyway.... look for the dragon head. There's one in the toolbar at the top, and another in the 'Options' menu. I think ctrl-p still works but it is ages since I coded the menu and I never use keyboard shortcuts!

A window should open, showing the operations it is going through. When it is done (less than 2 seconds for anything I have tried so far) you can open FG and add your new module as you would any other module.

I hope it all works perfectly - let us know how it goes.

Oh and welcome to the community!

Maasq

gwhitneyy2k
January 30th, 2018, 20:15
Worked like a charm- thanks

Maasq
February 4th, 2018, 23:09
Hi folks

This is a big one - I'm calling what I have released version 1.0 now. I think it is mature enough that I can trust it not to empty your hard drive or steal your car. So without further ado, I give you... version 1.0.3!
As ever, the place to get it is on the website www.masq.net - I can't host exe files here so I can't post the installer. Just having a single point for my uploading is easier too.

Highlights in this version:

NEW: The statblock now has a textured appearance. Trivial eye-candy, perhaps... but I like it :)
NEW: Hot on the heels of the texturing comes theming... 3 themes are included. If this proves popular I'll add more, or maybe do a theme maker.
NEW: There's a menu item there for a thing called Spell Engineer. I wonder what that does? (Nothing exciting yet. Click it and see.)

UPDATED: Menus have been renamed and reordered to be more .... sensible? Better? Just more.
UPDATED: There is a Hero Labs input translator

FIXED: More XML issues caused by the description window fixed. This is likely to be a work-in-progress so don't hesitate to let me know of issues.

I really like my themes; I hope you do too. It is just eye candy, but anything that makes the statblock more pleasant to look at may make it easier to spot an error.

In other news, 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. https://www.twitch.tv/abhoria

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 :)

Finally, I have had over $100 in donations now and I am humbled by your generosity. Thank you very much!

Maasq

Thegroo
February 5th, 2018, 01:57
Great work

damned
February 5th, 2018, 05:20
Boom! Well done Maasq.

Zacchaeus
February 5th, 2018, 08:37
Nice work!

Arthreas
February 6th, 2018, 08:07
Bravo!

Doomskull
February 6th, 2018, 14:15
Awesome bud! The Spell Engineer will be a great addition!

gwhitneyy2k
February 7th, 2018, 21:56
Enjoying this resource greatly! You have a setting for Roll20 Shaped Sheet in the text import format that isn't fleshed out in the manual or appendix. Is this the information from the API? I am transferring my campaign from the Roll20 shaped sheet to FG and this might make that transfer go much more smoothly.

Maasq
February 7th, 2018, 22:55
Enjoying this resource greatly! You have a setting for Roll20 Shaped Sheet in the text import format that isn't fleshed out in the manual or appendix. Is this the information from the API? I am transferring my campaign from the Roll20 shaped sheet to FG and this might make that transfer go much more smoothly.

Hey there!

I was asked around Christmas time to do a translator for the 5E shaped API from Roll20. The output is a json file. Not having had anything to do with Roll20 myself, I can't say more than that about what the file is, I am afraid. If it is in json format it is likely to be the same thing we are talking about. Be sure to just copy 1 creature at a time into NPC Engineer (import, save NPC, add to project, repeat till you are done!)

Hope this helps, and don't hesitate to pop on to Discord if you need any help. The manual fell way behind; I really need to update it. Sorry!

Maasq

Stitched
February 8th, 2018, 02:39
Hi Maasq,

So far, so awesome. I tore through a supplement/sourcebook I bought from DMs Guild and it was amazing.

I've hit a snag importing NPCs from another source (it's 5e conversion NPCs for "Against the Slavers: Danger at Darkshelf Quarry")

The NPC has the Spellcasting trait but when pasting, it's producing:

"Spellcasting. The glytheriel is a 1st-level spellcaster. It's spellcasting ability is Intelligence. The glytherial has the following spells prepared:"

From the following text:

"Spellcasting. Glythiel is a 1st level spellcaster. Her spellcasting ability is Intelligence. She knows the following spells:"

It would be nice to be able to adjust this text, much like you can adjust Traits. Maybe Spellcasting is a trait?

Maasq
February 8th, 2018, 07:19
The NPC has the Spellcasting trait but when pasting, it's producing:

"Spellcasting. The glytheriel is a 1st-level spellcaster. It's spellcasting ability is Intelligence. The glytherial has the following spells prepared:"

From the following text:

"Spellcasting. Glythiel is a 1st level spellcaster. Her spellcasting ability is Intelligence. She knows the following spells:"

It would be nice to be able to adjust this text, much like you can adjust Traits. Maybe Spellcasting is a trait?

Hiya! Glad you like the application. I think your issue is one that NPC Engineer can already deal with - on the 'base stats' tab, just under the NPC Name box, there's a dropdown to select 'gender' (female in the case of your NPC) and two checkboxes. 'Unique' is for named NPCs, or NPCs like the Tarrasque that there are only one of. NPC Engineer will capitalise the name. 'Name' is for a proper name, so that NPC Engineer will just use the first name rather than a full name ('Maasq' instead of 'Maasq Hammerheart'). Check both of these boxes for your NPC.

Can I check something, though? Is this an NPC called Glythiel? You've typed it 3 different ways above. I'm not trying to be funny - I want to make sure NPC Engineer isn't mangling the name somehow.

As to adjusting the text further, the ...has the following spells prepared: part is something that the app actively checks for, so I can't make that editable. There is space for flavor text though.

Hope this fixes things for you; let us know if not!

Maasq

Stitched
February 8th, 2018, 16:44
Can I check something, though? Is this an NPC called Glythiel? You've typed it 3 different ways above. I'm not trying to be funny - I want to make sure NPC Engineer isn't mangling the name somehow.

Maasq

Unbelievable. It's actually a typo in the written text. Glyrthiel / Glythiel.

Looking at my hardcover of the module, it should be Glyrthiel.

Thanks for the tips. I will try them out.

Stitched
February 8th, 2018, 18:24
Maasq,

Do you do *requests*? Is a stat block like below easy to parse?

Hobgoblin Regular
Medium Humanoid (goblinoid)
-------------------------
Armor Class 18 (chain mail, shield)
HP 11
Speed 30 ft
-------------------------
Str +1, Dex +1, Con +1
Int +0, Wis +0, Cha -1
-------------------------
Senses darkvision 60 ft
Languages Goblin, Common
CR 1/2 (100 XP)
-------------------------
Martial Advantage. Once per turn, the hobgoblin can deal an extra 2d6 damage to a creature it hits with a weapon attack if that creature is within 5 feet of an ally of the hobgoblin that isn't incapacitated.
-------------------------
Actions
Longsword (melee) +3: 1d8+1 slashing, or 1d10+1 slashing if wielded in two hands.
Longbow (ranged 150/600 ft) +3: 1d8+1 piercing


Aside from the "----------------", I guess the +/- to attributes is problematic, instead of explicitly stating the stat?

Maasq
February 8th, 2018, 20:31
Maasq,

Do you do *requests*? Is a stat block like below easy to parse?

Hobgoblin Regular
Medium Humanoid (goblinoid)
-------------------------
Armor Class 18 (chain mail, shield)
HP 11
Speed 30 ft
-------------------------
Str +1, Dex +1, Con +1
Int +0, Wis +0, Cha -1
-------------------------
Senses darkvision 60 ft
Languages Goblin, Common
CR 1/2 (100 XP)
-------------------------
Martial Advantage. Once per turn, the hobgoblin can deal an extra 2d6 damage to a creature it hits with a weapon attack if that creature is within 5 feet of an ally of the hobgoblin that isn't incapacitated.
-------------------------
Actions
Longsword (melee) +3: 1d8+1 slashing, or 1d10+1 slashing if wielded in two hands.
Longbow (ranged 150/600 ft) +3: 1d8+1 piercing


Aside from the "----------------", I guess the +/- to attributes is problematic, instead of explicitly stating the stat?

The dashed lines are easy. The plusses and minuses I'll assume are stat bonuses, so I can guess the stats from that (I'll make them the even number that gives that stat). The actions look a pain in the morning stars... but fixable.

Is this from a whole bestiary? Or is it the same format across a number of the author's releases? If so, it is worthwhile adding a translator. If it is just for 1 or two monsters you'll be quicker deleting the dashes in Notepad++ and adding some stats instead of the plusses.

Grab a hold of me on Discord if you want and blether. Ideally I need a few NPCs from the same source to test.

Maasq

Stitched
February 8th, 2018, 22:05
The dashed lines are easy. The plusses and minuses I'll assume are stat bonuses, so I can guess the stats from that (I'll make them the even number that gives that stat). The actions look a pain in the morning stars... but fixable.

Is this from a whole bestiary? Or is it the same format across a number of the author's releases? If so, it is worthwhile adding a translator. If it is just for 1 or two monsters you'll be quicker deleting the dashes in Notepad++ and adding some stats instead of the plusses.

Ideally I need a few NPCs from the same source to test.

Maasq

A whole mess of them.

https://www.giantitp.com/forums/showthread.php?525127-Converting-Red-Hand-of-Doom-to-5e

Each link in the outline goes to a 5e conversion of each encounter. Encounters contain 4-5 statblocks that look like the above.

Maasq
February 8th, 2018, 22:13
OK, once I have Spell Engineer working and I have done a couple of other things on NPC Engineer.
I've added it to the list at https://github.com/Maasq/NPC-Engineer/labels/feature%20request :)

Maasq

Stitched
February 9th, 2018, 19:18
Ran in to a bug where I've imported text, laid everything out, but can't save the NPC ?

None of the save settings are working - even to txt, html, etc...

Have no idea how to recreate it.

Never mind - if you have " " in the name, it won't save (like a nickname - in this case Maxine "Max" Osnette). Once I removed them from the Name and Description, it allowed me to save.

Thegroo
February 9th, 2018, 20:17
Thanks for all the good work.

I found just one little problem. (v1.0.3)
In FG my tokens don't display.
<token type="token">tokens/SOW npc/darkcreeper.png@SOW npc</token>

In the input folder there is a token folder.
But in the output folder and the generated zip, the token folder is missing.

Any idea?

***** Solved:
I'm just stupid. I forgot to check the tokens in the project.:mad::mad::mad:

Stitched
February 10th, 2018, 01:38
Does lowercase "passive Perception" in NPC Engineer cause problems inside of Fantasy Grounds ?

LordEntrails
February 10th, 2018, 02:09
Does lowercase "passive Perception" in NPC Engineer cause problems inside of Fantasy Grounds ?
It shouldn't. That's the capitalization that WotC uses so it should be the correct format.

Maasq
February 10th, 2018, 10:12
Ran in to a bug where I've imported text, laid everything out, but can't save the NPC ?
if you have " " in the name, it won't save (like a nickname - in this case Maxine "Max" Osnette). Once I removed them from the Name and Description, it allowed me to save.

Does lowercase "passive Perception" in NPC Engineer cause problems inside of Fantasy Grounds ?

Hi Stitched.

The first problem is a bug, and I'll get to work on that. It'll be a bug in every field except the description field. Good catch!
Second one is, as LordEntrails says, exactly the capitalisation that WotC and FG use. Personally I hate it, but stuck with what was 'official'! I haven't encountered any issue with it in the 6 months or so that NPCE has been parsing.

@TheGroo I've done it myself :)
It needs to be an option as not everyone wants tokens, and I don't want spurious code when people don't have them - this is why it is 'off' by default.

Maasq

Maasq
February 11th, 2018, 13:39
Ran in to a bug where I've imported text, laid everything out, but can't save the NPC ?
None of the save settings are working - even to txt, html, etc...
Have no idea how to recreate it.
Never mind - if you have " " in the name, it won't save (like a nickname - in this case Maxine "Max" Osnette). Once I removed them from the Name and Description, it allowed me to save.

I've fixed this. Previously the default save was the NPC's name, but quotes (and other illegal filesystem characters) would cause this to fail. Now the default filename offered up is the 'jpeg' name the same as how the NPC saves.... in your case, maxinemaxosnette.txt (or xml/html/rtf). Whilst this may not be perfect it was the simplest solution to an 'edge case' scenario :)

The 'Save NPC' button should not have had an issue, though, and doesn't on testing.

Hope this helps (and it'll be in the next release).

Maasq

BubbaGrim
February 14th, 2018, 06:46
I have idea for a plug-in, copy-paste 4e monster stats and it converts them to 5e output.

Maasq
February 14th, 2018, 21:23
I have idea for a plug-in, copy-paste 4e monster stats and it converts them to 5e output.

Hiya BubbaGrim

I've been asked for a version for 3.5 conversion too. There are 2 issues that make it unlikely that I'll ever do either:

1. I don't feel at all competent in making decisions about transferring between editions. I never played 3.5 or 4, so I have no reference frame for them. Tied in to this is differences in the stat types themselves.

2. The biggie. I'd need to program for each possible source of any edition I was importing. a 4E beastie from a PDF vs a 4E beastie from a variety of websites would be very different in scanning terms. Essentially I'd need to recreate the input filters for 5E in 4E and 3.5E - that's a huge amount of work, all of which I might be making mistakes on as I have no reference points for these editions.

Sorry mate :(

Maasq

Atua
February 15th, 2018, 01:39
Are you looking at doing a magic item version of this?

Maasq
February 16th, 2018, 00:14
Are you looking at doing a magic item version of this?

Yes Atua - one day :)
No timescale on it. Every time I try to start something new someone finds holes in my programming and I need to fix them (Yeah, getting it right first time would be better, but hey ho!)

Maasq

Maasq
February 16th, 2018, 00:20
Hey folks

Quite a big update to NPC Engineer today. There's even a sneak preview of what Spell Engineer will look like, although almost nothing works yet - no bug reports for this part yet! As ever, updates on the website (www.masq.net).

Here's what has been added/polished/fixed:


NEW: A menu option in the 'information' menu takes you to the changelog on the website to see what the recent updates are.
NEW: The 'description' field allows bulleted lists to be entered & parsed into FG.
NEW: A new import translator allows you to import Fantasy Grounds XML. THIS IS NOT AUTOMATED! You need to unzip the module and open the db.xml or common.xml, then find the creature you want to import. Select and copy all of its information. This will not take the description or graphics across; this is something you will have to do yourself. This might become an automated process in the future, but the work involved makes it unlikely. If you want it, start a kickstarter for it :) NOTE: THIS DOES NOT WORK ON PROTECTED PURCHASED MODULES! It is not a piracy aid.
NEW: A menu option on the 'File' menu allows you to copy the NPC onto the clipboard as BBCode.



UPDATED: Blood theme added. It's not great; open to suggestions for improvements!
UPDATED: NPCE remembers your chosen theme for next time.
UPDATED: Par5e output works again - sorry for the disappearance! I have added tables, frames and bullets to its output as well. Remember that the public version of Par5e did not parse Lair Actions. This isn't NPCE's fault!




FIXED: More XML issues caused by the description window fixed. This is likely to be a work-in-progress so don't hesitate to let me know of issues.
FIXED: Having quotes (or other illegal characters for filenames) in the NPC's name no longer renders it unsavable.
FIXED (after a fashion): When moving between tabs or adding anything to an NPC, the viewport reset to the top. This is a function of how HTML documents are displayed. I have implemented additions to my custom scroll routines that allow NPCE to instantly scroll back to where you were. The trade-offs for this are: (1) there is a noticable flicker and (2) slight delays when loading or resetting NPCs (fraction of a second). Neither of these are desirable but at the moment both are unavoidable. I'll explore other ways.


Enjoy!
Maasq (sick to the back teeth of RTF. No, seriously... I hate it)

Atua
February 16th, 2018, 01:43
Yes Atua - one day :)
No timescale on it. Every time I try to start something new someone finds holes in my programming and I need to fix them (Yeah, getting it right first time would be better, but hey ho!)

Maasq

Nice :-)

Maasq
March 13th, 2018, 23:16
Hi folks

Another new version of NPC Engineer is on the website. There are a couple of fixes. Headline fixes: you can now do negative dice roll modifiers throughout (1d4 - 1 for example) and you can now choose which descriptive switches are on/off by default. Here are the rest of them:

v1.0.19
NEW: YOu can now set default actions for the 4 switches in the 'description' tab: 'Add descriptive text', 'add title', 'add image link', and 'include spell list'. The otpion to do so is in the 'Settings' box (F11).

UPDATED: Fire theme added, Jungle and Blood themes tweaked.
UPDATED: More spaces for traits on the editing screen, and new, more clear, icons.
UPDATED: The 'Edit Reactions' window now has an 'Edit' button for each reaction, should it be needed.
UPDATED: The 'Edit Reactions' window has a drop-down list that contains any actions entered in the actions.json.
UPDATED: The 'Edit Legendary Actions' and 'Edit Lair Actions' windows now allow existing actions to be edited in place (down the left-hand side).
UPDATED: The 'Edit Legendary Actions' and 'Edit Lair Actions' windows have a drop-down list that contains any actions entered in the actions.json.
UPDATED: Hit point entry throughout the program can now have negative modifiers (1d6 - 1).
UPDATED: Weapon attacks can now have negative modifiers.

FIXED: More XML issues caused by the description window fixed (yes, more!). This is likely to be a work-in-progress so don't hesitate to let me know of issues.
FIXED: Various different quotes are replaced by " or ' to be compatible with FG.
FIXED: A rare 'blank line' appeared in the RTF panel for importing text. Fixed, I believe.

Enjoy!

Maasq

KlatuB
March 17th, 2018, 20:06
Maasq,

I'm starting to use the program, I went into NPC Engineer Settings (Options -> Settings) to look at the settings, when I clicked Cancel to close the window it stays open, the same thing happens when I click Accept, is this a bug or am I missing something.

Edit:

I found out what the problem is I'm using a 4k monitor (LG 27UD69P-W) with a GeForce GTX-1070 video card, when I have the setting window open on the 4k the buttons seem to be disabled, when I move the window to my non 4k monitor I can close the window normally.

Maasq
March 18th, 2018, 10:32
Hiya

Sorry for the delay in replying. Do you have custom scaling on your 4K monitor (ie not 96 dpi?)
This shouldn't affect buttons, although it clearly is. No other buttons are affected throughout the program?

I'll faff about with scaling on my own system to see if anything shows up. I'll report back soon!

Maasq

Edit: OK, changing scaling doesn't affect the buttons anywhere in NPC Engineer on my system, so I am at a loss to explain it just now. Are either the card or the monitor doing something outside of Windows to change scaling?

KlatuB
March 18th, 2018, 19:00
I do have the scale set to 150%, I have not tried creating a module yet, but I have tested the other buttons that I could and they all work normally on the 4k.

Maasq
March 18th, 2018, 22:04
I am flummoxed. There's nothing special in the code for those buttons - if other buttons work, so should they. We could try a screenshare on Discord to see if I can help nail the issue for you.

Maasq

KlatuB
March 24th, 2018, 19:52
Maasq,

I finally got back to looking into the button issue. Some how my display scaling to changed, once I reset it the buttons on the options window are working normally.

Maasq
March 25th, 2018, 00:52
Good stuff, I'm glad. :)

Maasq
March 28th, 2018, 00:34
Hi folks

A new update is on the website (www.masq.net), and this one adds a new feature I think a lot of you will like. If you select 'Reference Manual' in the project management interface, NPC Engineer will create a reference manual with a page for each NPC in your project. It uses information you have already entered, including image, to do this. All styling will remain (bold etc), and lists will display properly. Any text marked as 'frame chat' will appear as a callout box. At the moment this is basic and full width, but I intend offering options in this area soon. Watch this space!
NOTE
If you wish to enable this for a module that already exists, you will need to re-add each NPC to the project. This is because the XML is generated at the time of the addition.

Please offer me feedback about this section, but bear in mind that everything is automatic. Complex layouts will not be possible, and I have done the best I can with what is available. Hand-editing the XML will always produce prettier results, but it also involves hand-editing the XML!

Cheers
Maasq

Maasq
March 28th, 2018, 23:05
Here's the inevitable update to the update. Sorry folks! This is version 1.1.02 then.... available, as ever, from www.masq.net.

In the pursuit of perfect frames in the Reference Manual, I forgot to check if having no frames - the default state - still worked. Shut up. Fixed.

Maasq. Blushing.

mattekure
April 2nd, 2018, 18:13
I'm not sure if I am doing something wrong. I made a simple project to put in some custom spells. I used the spell engineer to enter everything and then create the module. The mod file appears in the correct folder, but it wont load in the game. it doesnt even show up as listed. When I open the mod, it has 2 files inside it "Saved Project Filesclient.xml" and "Saved Project Filesdefinition.xml". Did I do something to make them save the wrong names or something?

Edit: If I rename the files in the mod to just "client.xml" and "definition.xml" it loads fine in FG.

Maasq
April 2nd, 2018, 18:46
Hiya

Those two files should be named client.xml and definition.xml, so something has definitely gone wrong. I just created a new mod and added a spell to it, and it works perfectly. I'm having a look at the code to see how this could have happened, but try again with a new project. We can screenshare on Discord later if you still aren't getting it to work.

Maasq

mattekure
April 2nd, 2018, 19:00
Hiya

Those two files should be named client.xml and definition.xml, so something has definitely gone wrong. I just created a new mod and added a spell to it, and it works perfectly. I'm having a look at the code to see how this could have happened, but try again with a new project. We can screenshare on Discord later if you still aren't getting it to work.

Maasq

Hmm, ok, so I completely uninstalled NPC Engineer, and deleted the appdata folder.
Downloaded fresh from the website and reinstalled.
Ran it, changed the following setting "Save NPCs in a Project subfolder" to yes
Went to Project management and entered in the module info and checked the Spells and Reference Manual options. option "Add module Name to Path" is checked.
Entered a single spell, saved and added to project, then ran create module.
the newly created module has the same weird names from before, like its including the folder name "Saved Project Files" in the xml file name

I went back into Project Management and Unchecked the "Add Module Name to Path" and saved it, and exported a module, the xml file names were correct.

Maasq
April 2nd, 2018, 19:10
Hiya

You are deleting the backslash at the end of the module path somehow. There is a check in place to see if there is one and add it if not, but somehow it isn't picking it up.
Can we screenshare on Discord?

Nothing has changed in this part of the program in a while, and I set up a live project and another test one there recently with no issue. Let's nail down what the issue is and I can fix it.

Maasq

mattekure
April 2nd, 2018, 19:24
Hiya

You are deleting the backslash at the end of the module path somehow. There is a check in place to see if there is one and add it if not, but somehow it isn't picking it up.
Can we screenshare on Discord?

Nothing has changed in this part of the program in a while, and I set up a live project and another test one there recently with no issue. Let's nail down what the issue is and I can fix it.

Maasq

I cant right now, but I'll try again a little later, I didnt delete any backslash, but I'll walk through my steps more carefully and make sure I didnt accidently do it.

Maasq
April 2nd, 2018, 19:35
OK. For reference, a blank project should look like this. If you are using the default directories, there's no reason to change anything in the path boxes.
22834
Maasq

mattekure
April 2nd, 2018, 21:37
OK. For reference, a blank project should look like this. If you are using the default directories, there's no reason to change anything in the path boxes.
22834
Maasq

I just did another uninstall and delete the appdata folder, then reinstall. ran npc engineer and opened up manage project. and I see that it is missing the \ at the end of the module path. 22836

Maasq
April 2nd, 2018, 22:33
There IS an issue, and I'm looking into it just now. The workaround is to add the '\' for now. Sorry about that!

I have found another issue that I hope is related too. So 2 for the price of one - well done!

Maasq

mattekure
April 2nd, 2018, 22:39
There IS an issue, and I'm looking into it just now. The workaround is to add the '\' for now. Sorry about that!

I have found another issue that I hope is related too. So 2 for the price of one - well done!

Maasq

Awesome, and though I didnt say it earlier, thank you so much for making this, it is an awesome help!!

Maasq
April 5th, 2018, 02:30
Hi folks

As the title says, I have been tinkering with the reference manual output. As part of this, I wanted to add proper attributing for any images used, and the best way to do this seemed to be to have a new tab for images. I am pleased with how this turned out, and it will have no affect on your saves either. Bonus.

Changelog:

v1.1.09

NEW: Images had been treated fairly poorly, held in a tiny wee box on the 'description' tab. No more. I broke images out into their own tab (cunningly titled 'image') so that you can see a decent sized version of your image, and so that you can add both artist and website to attribute the work properly. This will be added to the end of each NPC's page in the reference manual, if you are generating one. As with all reference manual work in NPCE, you will need to re-add any NPC once changes have been made.

NEW: Adding an image automatically sets an image link in the description. You can leave this unset by default and never worry about whether you remembered to change it again. You can, of course, override this using the checkbox under the image.

NEW: The number of NPCs in a project will show at the end of the project's name in the status bar.




FIXED: A minor issue in the initial path if you didn't have a project loaded.

FIXED: An issue caused framed text to misbehave & produce bad XML. Sorted.

FIXED: Would you believe it if I said there were still errors in the RTF translation? No, me neither. Astonishingly, I found another couple and fixed them.

FIXED: Something I did up above also fixed the KNOWN ISSUE below. How about that?




v1.1.02

FIXED: In the pursuit of perfect frames in the Reference Manual, I forgot to check if having no frames - the default state - still worked. Shut up. Fixed.

I am also working on a module of 1d6 Adventurers' Monster-A-Day campaign over on Reddit with their permission. I am around half way through it, and working on it has been the impetus to fix a lot of the little niggly things. It's been a worthwhile experience. Look for this relatively soon!

Maasq

PS It is my birthday on Saturday. You're all invited round for a drink. :)

mattekure
April 20th, 2018, 16:55
I'd like to make a small request for the Spell Engineer. Currently for NPC engineer, you have the option to save NPCs in a project subfolder. could you add that capability to the spell engineer as well? I'd like to keep all spells from a source together.

Maasq
April 21st, 2018, 15:34
I'd like to make a small request for the Spell Engineer. Currently for NPC engineer, you have the option to save NPCs in a project subfolder. could you add that capability to the spell engineer as well? I'd like to keep all spells from a source together.

Yep. I will do that today and it'll be there the next time I publish an update. Good idea!

Maasq
April 22nd, 2018, 22:53
Hi folks.

New version available on the website (www.masq.net). Changelog is below. There are a good number of little fixes and improvements. Enjoy!

Maasq

Changelog:
NEW: The 'description' box responds to keyboard shortcuts - it always did - and two new ones have been added for frame chat and lists. Here is a complete list:
*CTRL-X: cut
*CTRL-C: copy
*CTRL-V: paste
*CTRL-B: Bold
*CTRL-I: Italic
*CTRL-U: Underline
*CTRL-H: Header
*CTRL-T: Body Text
*CTRL-F: Frame Chat
*CTRL-L: List (bullets)
*CTRL-Z: Undo
*CTRL-Y: Redo
*CTRL-J: Remove stray line feeds from pastes from PDF documents.

FIXED: Newline codes (\r) weren't being properly translated for reference manual pages. They are now.
FIXED: The arrows beside the main viewport had stopped working because of how I was referencing them. Changed this, and they work again. What do you mean you all use the mousewheel anyway?
FIXED: Import was chopping the last character (usually a period) unless you input a return. Fixed to work as expected.
FIXED: You can now switch directly from bullet to frame and vice versa when formatting in the 'Description' field.
FIXED: Spellcasting and innate spellcasting have always had issues with newlines in the middle of their text. Both have had a lot of work done on them, and deal with this much better now. There is one situation that will still ctach them, and is unavoidable - if the last level of spell (or number of casts per day for innate) is broken by a newline, this won't be picked up and you'll have to fix it manually on the import screen.

UPDATED: Some changes to how the reference manual pages are formatted. DO NOT UPDATE IN THE MIDDLE OF A PROJECT unless you are happy to go back and open each existing NPC and add it to the project again. (For Discord users, this is the same change that was made about 2 weeks ago, not ANOTHER one!)
UPDATED: Clicking on the image or the token boxes will no longer cause an already-selected image to disappear if you cancel.
UPDATED: Added a 'Clear Image' button for when the NPC doesn't deserve a picture any more.
UPDATED: Innate spellcasting has a new element - the text for components used/ignored when casting the spells. Previously, NPCE expected all innate casters to be the same, and enforced this (failing if text never matched what it looked for). This update allows it to find innate casters more accurately and output the correct text.
UPDATED: When entering Lair Actions, the caret defaults to the 'name' field as it originally should have.

mattekure
May 1st, 2018, 14:27
I cant seem to get it to recognize a saving throw bonus of +0. An example of this is the zombie from the MM. It has a wisdom of 6, so normally would have a -2 applied to its wisdom saving throw, but it has an explicitly defined bonus of +0 to wisdom saving throws. However, NPC Engineer skips over it unless its 1 or higher, or -1 or lower.

mattekure
May 1st, 2018, 15:43
Would it be possible to add a custom string for speed to account for creatures that have multiple sets of speed depending on form? like the fidele angel in the Tome of Beasts that has the speed listed as: 40 ft., fly 40 ft. (angelic form), or 10 ft., fly 80 ft. (eagle form)

Maasq
May 2nd, 2018, 19:41
I cant seem to get it to recognize a saving throw bonus of +0. An example of this is the zombie from the MM. It has a wisdom of 6, so normally would have a -2 applied to its wisdom saving throw, but it has an explicitly defined bonus of +0 to wisdom saving throws. However, NPC Engineer skips over it unless its 1 or higher, or -1 or lower.

Hmmm.
I'm not sure how I'd make the program distinguish between '+0' and 'off', but as there's an explicit need I'll need to find a way. Harrrumph! :)


Would it be possible to add a custom string for speed to account for creatures that have multiple sets of speed depending on form? like the fidele angel in the Tome of Beasts that has the speed listed as: 40 ft., fly 40 ft. (angelic form), or 10 ft., fly 80 ft. (eagle form)

Not without a lot of work. I'd need to add another set of controls, and the extra variables would affect a lot of the input/output systems. I also don't know how I'd tell FG about this. So at the moment, I'm sorry to say, this isn't something I'll be trying to add.

In general, I am marking exams at the moment, and won't be able to give any time to NPC Engineer for the next ~2 weeks. I'll get back on to it at that point.

Steph

mattekure
May 2nd, 2018, 22:05
Hmmm.
I'm not sure how I'd make the program distinguish between '+0' and 'off', but as there's an explicit need I'll need to find a way. Harrrumph! :)



Not without a lot of work. I'd need to add another set of controls, and the extra variables would affect a lot of the input/output systems. I also don't know how I'd tell FG about this. So at the moment, I'm sorry to say, this isn't something I'll be trying to add.

In general, I am marking exams at the moment, and won't be able to give any time to NPC Engineer for the next ~2 weeks. I'll get back on to it at that point.

Steph

Thanks for considering it. And enjoy marking exams :D

GunbunnyFuFu
May 5th, 2018, 12:51
Good day!

I've got a stat block that has innate spellcasting in it that isn't being output correctly...any way I can get you to look at it to see why it's failing? Once it hits the Innate Spellcasting block in the import text function, everything after that stops outputting correctly.

Thanks,

GunbunnyFuFu

Maasq
May 5th, 2018, 14:12
Hiya!
Can you join the Discord channel and post the text for the NPC in the #npcproblems channel?
Have you got the latest version downloaded? I made some changes to how the information was picked up in that area in the last version.
I'll have a look at it when I can and get back to you.

It'll be something simple and easily fixed!

Maasq

GunbunnyFuFu
May 5th, 2018, 14:25
Posted! Thanks!!

CapitanAndyman
May 8th, 2018, 00:28
Fantasy Grounds is giving me a "spell lookup failure" for NPCs built with NPC Engineer. Has anyone else had this problem?

LordEntrails
May 8th, 2018, 00:50
Do you have the spell in a loaded/open module? i.e. if it's trying to lookup a spell from ToA, you have to have ToA loaded or you will get a spell lookup failure.

If that's not it, please post screen shots and provide as much detail as possible so we can reproduce.

CapitanAndyman
May 8th, 2018, 02:01
Do you have the spell in a loaded/open module? i.e. if it's trying to lookup a spell from ToA, you have to have ToA loaded or you will get a spell lookup failure.

If that's not it, please post screen shots and provide as much detail as possible so we can reproduce.

See below for screenshot of the error message. I am not using the official spell/phb modules from FG- my spells all exist in a "player master reference" module that I built myself. In the image, I have a NPC open, with the error message in the chat box, and my spell list open to show that I do have the spells loaded when the NPC was opened.
23400

Maasq
May 8th, 2018, 17:22
Hiya. NPC Engineer doesn't do anything fancy with the spell lists - it is just comma separated plain text. Fantasy Grounds looks up each one in an open spell source (as far as I am aware).
For the sake of narrowing things down... close your own grimoire, and open the player's handbook (or srd). Now reload the NPCE module and see if the spells are picked up.

Maasq

Trenloe
May 8th, 2018, 17:46
See below for screenshot of the error message. I am not using the official spell/phb modules from FG- my spells all exist in a "player master reference" module that I built myself. In the image, I have a NPC open, with the error message in the chat box, and my spell list open to show that I do have the spells loaded when the NPC was opened.
23400
If you created this module in FG and exported to a module, then this will be the issue, as the FG spell lookup needs to find the spell name in the XML tag name (e.g. <dancinglights>), whereas exporting from FG uses the normal FG XML tag naming of <id-00001>, <id-00002>, etc..

The spell lookup in FG looks for reference.spelldata.<sanitized-spell-name>@* - i.e. a specific data structure within the XML of all open modules:

<reference>
<spelldata>
<spellname made XML legal>

I'm guessing your module doesn't have the data stored in this structure itself, or the spell tags are in the id-XXXXX format and need changing to the sanitized XML name - where .,-():'’/?+–_ and spaces are removed from the spell name.

Maasq
May 8th, 2018, 19:07
That's good to know for Spell Engineer's output, Trenloe - thank you for that. In sanitising, am I right in thinking Dancing Lights would become dancinglights?

Maasq

Trenloe
May 8th, 2018, 19:11
In sanitising, am I right in thinking Dancing Lights would become dancinglights?
Correct. I thought I'd typed that. Where did that bloody space come from?!?

Moon Wizard
May 8th, 2018, 21:32
Maasq,

Also, take a look at scripts/manager_campaigndata2.lua in the 5E ruleset. It contains the "sanitize" function which is used to convert a spell name into a valid XML tag lookup. It's the same logic that's used for internal tools to build 5E module spell lists.

Regards,
JPG

Maasq
May 8th, 2018, 21:52
Oooh, I will do. I wrote my own but it'd be worth checking it against yours. Cheers!

CapitanAndyman
May 9th, 2018, 01:42
If you created this module in FG and exported to a module, then this will be the issue, as the FG spell lookup needs to find the spell name in the XML tag name (e.g. <dancinglights>), whereas exporting from FG uses the normal FG XML tag naming of <id-00001>, <id-00002>, etc..

The spell lookup in FG looks for reference.spelldata.<sanitized-spell-name>@* - i.e. a specific data structure within the XML of all open modules:

<reference>
<spelldata>
<spellname made XML legal>

I'm guessing your module doesn't have the data stored in this structure itself, or the spell tags are in the id-XXXXX format and need changing to the sanitized XML name - where .,-():'’/?+–_ and spaces are removed from the spell name.

Yes, Trenloe - that's exactly right. I built my player reference module within FG using the /export function. Thanks for the info!

epithet
May 9th, 2018, 14:41
One thing I noticed, Andy, is that you've got a lot of extensions running. I'd suggest turning them all off one time to see if one of them might be interfering with your spell lookup functionality. I've had extensions cause problems before.

Edit: Nevermind, I see that Trenloe got it sorted out already.

iresprite
June 14th, 2018, 03:03
Hi all! This tool looks pretty damn spiffy. I hope this is an okay place to ask questions; if I should ask this elsewhere (like the GitHub issues page), please let me know! I'm trying to install it on my Win10 box, but am getting the following error:

23740

This is after uninstalling because Avira had some weird issue with it and quarantined NPC Engineer for "HEUR/APC (Cloud)" reasons. Has anyone seen anything like the above issues?

epithet
June 14th, 2018, 03:27
Try launching the installer by right clicking and selecting "run as administrator."

Zacchaeus
June 14th, 2018, 03:29
Hi irrsprite, welcome to FG.

I’m guessing but it looks like a permissions issue. Possibly you don’t have full read/write permission to the folder that the program is saving to. Also if whatever Avira is interfered with the program it may be that is still an issue even if you uninstalled it.

iresprite
June 14th, 2018, 03:35
Hi irrsprite, welcome to FG.

I’m guessing but it looks like a permissions issue. Possibly you don’t have full read/write permission to the folder that the program is saving to. Also if whatever Avira is interfered with the program it may be that is still an issue even if you uninstalled it.


Try launching the installer by right clicking and selecting "run as administrator."

Thanks for the welcome! Also, unfortunately, running as administrator is a dealbreaker for me. :( Avira is antivirus software that admittedly does get some false positives sometimes. I know that iut quarantined the program previously, but I removed all resources, so it should be a clean install. Ah well.

damned
June 14th, 2018, 06:19
There are not many good reasons to run something as Administrator other than for confirming permissions issues.
Either Avira is blocking access to the file or your account doesnt have the required permissions to modify files in that directory.
Either way you will need to investigate those to see if you can find the answer.

Maasq
June 14th, 2018, 12:06
Hiya. I'll set up a new account on my system as a non-admin account and see if I can reproduce the error tonight.

NPC Engineer 'phones home' at launch to see if there is an updated version and this might be why the AV's heuristics flag it as dodgy. I just use Windows own security these days and it has no issues, and I used Eset before that also with no issues.
Installation... you say you installed the first time and then uninstalled? Or did I misunderstand? If so, go to the directory mentioned and delete it by hand. Something interfered with the uninstall.
The installer is... can't remember it's name right now but is the premier free installer (used by probably half the things anyone installs). So the install and uninstall routines should be close to bulletproof.

As I say, I'll do some research tonight.

Massq

Maasq
June 14th, 2018, 22:23
Well... I installed NPC Engineer on a standard user account (my kid's!) with no issue whatsoever - I can't reproduce the issue. The installer is Inno Setup, in case that makes any difference to your issue.

Did you uninstall using the control panel? And have you gone to Program Files (x86)\NPC Engineer and deleted the entire NPC Engineer folder?
If you've done both of those, I am stumped, I am afraid.

Sorry I can't offer any deeper help here :(

Maasq

iresprite
June 16th, 2018, 14:59
Well... I installed NPC Engineer on a standard user account (my kid's!) with no issue whatsoever - I can't reproduce the issue. The installer is Inno Setup, in case that makes any difference to your issue.

Did you uninstall using the control panel? And have you gone to Program Files (x86)\NPC Engineer and deleted the entire NPC Engineer folder?
If you've done both of those, I am stumped, I am afraid.

Sorry I can't offer any deeper help here :(

Maasq

Hey, thanks so much for giving it a shot! I really appreciate the effort you've put into such a cool project.

And yep- I performed both those steps. There must be something I'm missing- maybe some bizarre registry weirdness or permissions weirdness imposed by my Avira AV. I might take another whack at it when I'm back from vacation, but your attempt at reproducing it at least gives me hope that I might be able to pull it off if I can narrow down the cause.

Thanks again!

damned
June 16th, 2018, 16:23
If Avira doesnt like the updater/installer and you dont wish to add an exception for the product then you are out of luck...

GunbunnyFuFu
July 25th, 2018, 21:58
Good day!

Having issues with the language area. I can put Common, Aquan and NPCE will parse just fine. But if I put Any one language there, that text doesn't show up next to languages. Any way I can get around this?

GBFF

Maasq
July 25th, 2018, 23:10
Good day!

Having issues with the language area. I can put Common, Aquan and NPCE will parse just fine. But if I put Any one language there, that text doesn't show up next to languages. Any way I can get around this?

GBFF

Hiya

I'm not sure what you mean. I tried a couple of things and can't reproduce what you are describing.
If I select a single language, it shows up fine in the right hand pane.
If I type "Any one language" in the "Alternative language text:" box, it shows up as expected in the right hand pane.

Do you mean one of these, or something else?

Maasq

GunbunnyFuFu
July 25th, 2018, 23:54
Disregard...I totally missed the Alternative language text: box...problem solved!

GBFF

Maasq
July 26th, 2018, 16:28
Excellent :)
While I was checking this I noticed that the text overlaps the text box. So win-win ... you got what you needed and snagged a minor bug too!

Maasq

GunbunnyFuFu
August 1st, 2018, 15:24
Hello!

Here's a question I have...statting up a vampire that has a list of weaknesses listed under Vampire Weakness, as such:

Vampire Weaknesses. Grezell has the following flaws:
Forbiddance. Grezell can’t enter a residence without an invitation from
one of the occupants.
Harmed by Running Water. Grezell takes 20 acid damage if he ends his
turn in running water.
Stake to the Heart. If a piercing weapon made of wood is driven into
Grezell’s heart while he is incapacitated in his resting place, Grezell is
paralyzed until the stake is removed.
Sunlight Hypersensitivity. Grezell takes 20 radiant damage when he
starts his turn in sunlight. While in sunlight, he has disadvantage on attack

When parsed with NPC Engineer, the weaknesses don't show up under the "Vampire Weakness" trait, but show up in alphabetical order mixed in with the other traits..is there a way that I can get these to parse correctly and show up under the Vampire Weakness trait?

EDIT: Figured out how to do it.
Thanks,

GBFF

epithet
August 5th, 2018, 22:15
That's a problem I run into as well. How did you fix it?

GunbunnyFuFu
August 6th, 2018, 11:41
I thought I had fixed it, however, in looking back at the character NPC file, I noted that my fix didn't fix it, so I'm back to square one with this problem and have to redo the Vampire NPCs...I'll continue to try some stuff.

GunbunnyFuFu
August 6th, 2018, 12:01
Try <li> before each of the subitems...that appears to work, although it results in a bullet point outside the box, and not under the text as you'd expect. See the following: 24213

Zacchaeus
August 6th, 2018, 12:43
I haven't used NPC ENgineer; but if you want to force a line break in a paragraph of text use /r. The text needs to be all on one line for this to work

I.e Text/rText/rText

Maasq
August 6th, 2018, 14:37
Hi guys. Sorry for the time taken to reply to this. I am finishing up building my new system and installing all the software today/tomorrow, so hopefully I'll be on this by the end of the week. I was thinking about it, and I'll take out sorting altogether and let people order traits whatever way they want (with the default being order of entry). This will sort out this sort of issue once and for all.

I had thought I was helping out by making things sort alphabetically within their groups, but it is probably the single biggest gripe people have with NPC Engineer. It's quite a hefty change but it will be a good challenge to get me eased back into working on it :)

Maasq

mattekure
August 12th, 2018, 23:54
I've noticed that some of my documents use "Armour" instead of "Armor" which seems to break the pattern matching. Is that something that can be accounted for?

Maasq
August 13th, 2018, 00:51
I've noticed that some of my documents use "Armour" instead of "Armor" which seems to break the pattern matching. Is that something that can be accounted for?

Yes, of course. I'll look into that over the next day or two and have it in the next update, which will be this week sometime.
The workaround is just to delete the 'u' in the import window for now.

The irony is that as a UK English speaker, I'd spell it with a 'u' and I had to retrain myself for official D&D stuff :)

Maasq

Maasq
August 14th, 2018, 00:59
New release!

Available, as ever, from the website (www.masq.net), this addresses the issue that traits and actions had - the alphabetical sorting. I have fixed this, and I have included some buttons to allow you to rearrange the order of these.

Other big addition is the inclusion of support for the Non-ID field, allowing you to keep your monsters secret from your poor party until after they are rerolling their characters :)

Full changelog:
v1.2.1
NEW: Fantasy Grounds' Non-ID field is now supported. The box for this can be found on the 'description' tab, as it seemed to fit thematically with that tab and also to keep it off of the first tab so that it doesn't appear to be a required feature. If this field is left blank, NPCs will show up by their name in the combat table and on the map ('Orc' for example). If you fill in the 'Non-ID' field, this is what displays ('Blue skinned humanoid' for example).
Each NPC has a little icon in the top bar of its stat sheet in Fantasy Grounds (just next to the lock icon) to allow you to ID or use the Non-ID field.

NEW: Some people asked if it was possible to have a visual reminder of whether the current NPC was in the current project or not.
If The NPC is NOT in the current project, the project button at the bottom right of the screen says 'Add to Project' as normal.
If the NPC IS in the current project, the button changes to read 'Update Project'.

UPDATED: I have changed how NPC Engineer stores Traits, Actions, Reactions, Legendary Actions and Lair Actions. These are no longer automatically alphabetically sorted - they are stored in the order they are entered. This was probably the most requested change to NPCE! Previously-saved NPCs won't be affected; their traits etc will retain the order they had when they were saved (alphabetically sorted, in other words).

NEW: To support the re-ordering of traits etc, each area where they are listed has a pair of 'up' and 'down' arrows for each item. Although this isn't as elegant as drag and drop, it IS within my programming skillset!


I noticed a couple of issues in this thread that I haven't addressed yet, and I apologise. I had a busy summer marking exams then building a new machine. I'm back on track though, and so I'll deal with these this week.

Cheers!
Maasq

Maasq
August 15th, 2018, 23:09
Hi folks

I've posted a new version tonight (1.2.3 ; Aug 15th). A couple of people spotted a seemingly-innocuous bug, but it is actually quite nasty. I'd ****ed 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. :(

Maasq

Maasq
August 16th, 2018, 23:22
I've noticed that some of my documents use "Armour" instead of "Armor" which seems to break the pattern matching. Is that something that can be accounted for?

mattekure - where in the statblock are you talking about? There's already a catch for "Armour Class: ". I added in catches for different capitalisation just in case. Or do you mean elsewhere in the statblock? If so, can you give me an example?

Maasq

Maasq
August 16th, 2018, 23:33
Hi folks

Another update, taking us to version 1.2.4 - this might be the final version for now as I think I have caught all the bugs and made all the requested changes!

UPDATED: Saving throws now have a checkbox after them. This can be used to force the value '+0' to display (as 0 is taken to mean 'not required to be shown' by default). This will affect very few monster builds, but an example of it can be found in the Monster Manual's Zombie.
FIXED: While looking at how to implement the above, I noticed that negative saves were displaying wrongly. I had stern words with them and they promise to display correctly in the future.

On to Spell Engineer now. It's time it had an import part to it. :)

Let me know if I have missed anything, or you want to see something added!

Maasq

Three of Swords
August 22nd, 2018, 13:02
Hey Maasq,

NPC Engineer is a very nice tool! Thank you for taking the time to develop and share it. I recently started to use it, and appreciate the time it saves me.

Since you're taking feature requests, here is what I would recommend:

1. An option to NOT have the Esc key close NPC Engineer. I have closed it so many times now w/o saving... It's a habit I have from other programs (like Excel) when I don't want to make the change to the field my cursor is currently in.

2. Calculation Fields. Calculate Saves, Skills, and Passive Perception rather than have them static values. It would be great when creating new creatures or converting a weaker creature to a stronger form. It would allow us to change an Ability score or the Challenge Level, and it would automatically update the Skills and Saves. From what I've seen, every creature follows the same Save and Skill rules. Save or Skill = Ability Score mod + Prof mod [+ Prof mod again in some cases, in which case it has Expertise in that Skill]. It would be easy to reverse engineer them when importing. Have a Miscellaneous Modifier field just in case, of course.

Other calculations options are: Action Attack and Damage mods, Spell Save DC and Attack mod, etc. But those are slightly more complicated as you don't sometimes know which Ability Score they use to calculate them. They can normally be figured out, but would take a lot of complicated code that makes a lot of assumptions.

3. Allow larger values than 200 in Senses Range fields. Tiamat has Darkvision 240', but 200 is the max it will allow.

Maasq
August 22nd, 2018, 16:33
Hey there! Thanks for the kind words.


1. An option to NOT have the Esc key close NPC Engineer.

I didn't know that it did! I will sort that out for the next update.


2. Calculation Fields. Calculate Saves, Skills, and Passive Perception rather than have them static values.

It was a design choice right from the start not to calculate fields. My feeling was that any tool I used always had a quirk that either forced you into a particular order of working, or overwrote your entered values gleefully. I didn't want NPCE to do this to people. If there's an area that you think every NPC follows a set of cast-iron rules, then PM me a set of these rules and a link to something official that says 'this is the way it should be done'. I'm happy to introduce items, but if there are any situations where the rules can be broken or bent, the feature is pointless.

I have introduced calculated fields in some instances (passive Perception being one of them, funnily enough!) where the rules are rock solid and people are unlikely to overwrite values they typed in. The other two obvious ones are the XP/CR link and the Hit Points box (undocumented feature - double-click in the HP box to get a small dialogue to help you enter HD etc). A final undocumented feature - double clicking on the 'saving throws' title will transfer ability score bonuses over to saving throws.

Skills - I think I will return to skills at some point. I'm still mulling over ideas about the GUI there.


3. Allow larger values than 200 in Senses Range fields. Tiamat has Darkvision 240', but 200 is the max it will allow.

No problem; I'll change this for the next update.

Cheers for the suggestions!
Maasq

Three of Swords
August 22nd, 2018, 16:59
It was a design choice right from the start not to calculate fields. My feeling was that any tool I used always had a quirk that either forced you into a particular order of working, or overwrote your entered values gleefully. I didn't want NPCE to do this to people. If there's an area that you think every NPC follows a set of cast-iron rules, then PM me a set of these rules and a link to something official that says 'this is the way it should be done'. I'm happy to introduce items, but if there are any situations where the rules can be broken or bent, the feature is pointless.


Thanks for the rationale. I'm disappointed in your choice, but I can accept it.

I don't know of any official sources saying 'this is how we calculate saves and skills for NPCs'. Experience from my Roll20 days has taught me the system they use because I had to manually enter dozens of monsters back before they had a Monster Manual available. In fact, when you see Errata on NPC saves and skills, from what I've seen it's always to correct them to be 'properly' calculated.

PS If you ever change your mind, let me know. I can help w/ the logic. I've done some programming in my days.

Maasq
August 26th, 2018, 23:07
New version release: v1.2.6. This is a tiny update to correct the two issues highlighted above. Escape will no longer close NPCE (or any of it dialogues), and the maximum values for senses have been increased.

Spell Engineer has also had an update... go get it!

Maasq

Maasq
September 19th, 2018, 23:51
Important Update:

NPC Engineer is no longer being developed separately as a standalone program. It has grown and encompassed other modules and is now known as The Engineer Suite. See the thread for this here (https://www.fantasygrounds.com/forums/showthread.php?45630-Engineer-Suite&p=405865#post405865).