STAR TREK 2d20
Page 1 of 3 123 Last

Thread: NPC User Guide

  1. #1

    NPC User Guide

    I am always impressed by how terrible the documentation is for Fantasy Grounds. I don't want to sit through a video; I don't want to attend a group meeting. I just want a detailed user guide. The wiki is almost hilariously deficient in details and missing information. Today's example is NPCs in PFRPG. Does anyone know how I can get information about the following?

    What characteristics, for each field, will be parsed by FG? What is the the exact nomenclature required by the parser (order, capitalization, spaces, delimiters, etc). I understand and use effects (although they don't always seem to work reliably).

    Problematic entries include damage reduction. For instance, one NPC entry from the 3.5 monsters module has the following:

    "Damage reduction 10/cold or good, darkvision 60 ft., immunity to electricity and poison, resistance to acid 10, cold 10, fire 10, spell resistance 18, telepathy 100 ft., tongues"

    Does any of that parse? Clearly not all of it. No semi-colons? DR is half capitalized and does not use the effect nomenclature (DR: 10 cold,good).

    Here is the SQ field from the PFRPG Bestiary

    "DR 10/cold iron or good; Immune electricity, fire, poison; Resist acid 10, cold 10; SR 18; change Shape (alter self, small or medium humanoid)"

    Now, has DR instead of Damage reduction, but no colon. This is a "phrase" to quote the effects page (iron or good). However the next section uses a comma delimited list (with spaces).

    We've been using this system for years and I still am flabbergasted by the fact that the developers haven't bothered to create adequate documentation. This is such a frustrating product.

  2. #2
    Trenloe's Avatar
    Join Date
    May 2011
    Location
    Colorado, USA
    Posts
    33,361
    FG primarily uses the format in the statblock standard detailed here: https://paizo.com/pathfinderRPG/prd/...roduction.html
    Private Messages: My inbox is forever filling up with PMs. Please don't send me PMs unless they are actually private/personal messages. General FG questions should be asked in the forums - don't be afraid, the FG community don't bite and you're giving everyone the chance to respond and learn!

  3. #3
    Thank you for replying with that information. Indeed, the overall organization follows that scheme. However, this has not been at all helpful to answer questions of the type I posted. I need a reference for the specifics. I'm not sure if there are gurus on the forum somewhere, but I'd love to discover some hidden cache of information that seems oddly and perennially missing. Perhaps the community considers this open source. It does fall somewhere between the actual fantasy grounds engine and the (exorbitantly expensive) pathfinder reference literature.

  4. #4
    If a creature's data record follows the same statblock as standard monsters from the Monster Manual, it should just parse.

    For the example you gave, it appears to be from the Succubus in the 3.5E Monsters module:
    "Damage reduction 10/cold iron or good, darkvision 60 ft., immunity to electricity and poison, resistance to acid 10, cold 10, and fire 10, spell resistance 18, telepathy 100 ft., tongues"

    When I drop the NPC from the campaign list to the combat tracker, I correctly get SR 18 in the defense section and this effect automatically configured:
    "DR: 10 cold iron or good; IMMUNE: electricity; IMMUNE: poison; RESIST: 10 acid; RESIST: 10 cold; RESIST: 10 fire; DMGTYPE: chaotic,evil"

    That looks correct to me.

    As for improved documentation, we welcome anyone who wishes to step up and expand the wiki with more detail.

    Regards,
    JPG

  5. #5

    ???

    I do appreciate your reply, but you didn't answer any of my questions.

    I gave *two* examples with different representations of the same creature. Are you saying that either of them would work in an identical manner? That doesn't sound likely. Because there is no documentation, we basically have to keep trying things until we find something that works. That is a pretty miserable way to figure out a software package.

    >when I drop the NPC from the campaign list

    I don't understand what you mean by campaign list. Is that term defined in some documentation I don't have access to? I do understand modules, but there are inconsistencies as I pointed out. I just don't know what the rules are for creating a new creature (or modifying an existing one).

    >anyone who wished to step up

    Aren't you a business? If this were free, open source software I'd be right there with you.

  6. #6
    >I gave *two* examples.

    We built the parsing engine to address particular phrases used in the 3.5E OGL and the Pathfinder OGL. Either of those representations should work. If you are creating your own creature and want something similar, we recommend copying from an existing creature and editing to fit your new creature, so you have the same phrase syntax.

    >I don't understand what you mean by campaign list.

    The campaign lists are all available via the sidebar. It's where all records of a specific type, whether local or module, are available. (such as Images, Stories, Items, etc.)
    https://www.fantasygrounds.com/wiki/.../Campaign_Data

    >Aren't you a business? If this were free, open source software I'd be right there with you.

    Detailing every minute aspect of a very complex system is outside the bounds of what we can do with the resources we have available. The RPG VTT market is a niche of a niche market, so we never have as many resources as we like. That is one of the reasons why we focus on supporting and enabling our community; and we feel the community is one of the strongest reasons to use our product.

    Basically, we can either build lots of cool features and automation as well as keep up with new game system and module releases, or we can divert a lot of time to documenting everything to fine detail. We've found that slow-moving targets in this market disappear quickly, so we strive for doing the right thing with standard publisher data at about the 80-90% automation mark.

    Regards,
    JPG

  7. #7
    Thank you for taking the time to reply.

    I realize that theme creation, ruleset modification, and functionality extensions are very large topics. You shouldn’t be responsible for teaching people Lua. However, some very-basic functionality (like parsing NPC fields) has not changed since I first purchased the software. It is also both essential and (in my experience) easy to render non-functional. Your examples did not answer the question because you just said that you dropped in something and it worked. The campaign list concept is not really helpful because you could add anything there. An NPC definition could work perfectly or be completely non-functional. That isn’t a reference source—it is just an instance of whatever was put into it.

    I feel that I’m having a difficult time communicating what is needed here. There are fairly few fields in the NPC specification. I can’t find any documentation about the rules by which they are parsed. Do those rules exist somewhere? What are the acceptable formats for delimiting lists? You mention 3.5E OGL and Pathfinder OGL and particular phrases. That is exactly what I am trying to find. Where are these specifications? [It turns out that these are simply the game rules. They do not contain specification of how programming entities should be represented -D] When I look across modules, I see a variety of approaches. The result of all this that I spend a lot of time during gaming sessions having the same conversation: “Oh, sorry, I see that such-and-such didn’t work correctly that time. I’ll make a manual adjustment. I’m not sure why it didn’t work for this creature since it worked for the last one.”

    Personally, I’d rather see no new features for the next year and some adequate documentation for core functionality. I think that most of the community is heavily invested in creativity. If that wasn’t case, and if people only used pre-prepared material, then your approach would make perfect sense.

    -David

    From: Fantasy Grounds Support [mailto:[email protected]]
    Sent: Saturday, February 10, 2018 3:44 PM
    To: [email protected]
    Cc: Fantasy Grounds Message Boards
    Subject: Re: Reply to thread 'NPC User Guide'

    David,

    Thanks for your feedback.

    >I gave *two* examples.

    We built the parsing engine to address particular phrases used in the 3.5E OGL and the Pathfinder OGL. Either of those representations should work. If you are creating your own creature and want something similar, we recommend copying from an existing creature and editing to fit your new creature, so you have the same phrase syntax.

    >I don't understand what you mean by campaign list.

    The campaign lists are all available via the sidebar. It's where all records of a specific type, whether local or module, are available. (such as Images, Stories, Items, etc.)
    https://www.fantasygrounds.com/wiki/.../Campaign_Data

    >Aren't you a business? If this were free, open source software I'd be right there with you.

    Detailing every minute aspect of a very complex system is outside the bounds of what we can do with the resources we have available. The RPG VTT market is a niche of a niche market, so we never have as many resources as we like. That is one of the reasons why we focus on supporting and enabling our community; and we feel the community is one of the strongest reasons to use our product.

    Basically, we can either build lots of cool features and automation as well as keep up with new game system and module releases, or we can divert a lot of time to documenting everything to fine detail. We've found that slow-moving targets in this market disappear quickly, so we strive for doing the right thing with standard publisher data at about the 80-90% automation mark.

    Regards,
    JPG
    Last edited by dradams; February 10th, 2018 at 21:25.

  8. #8
    To clarify, the idea is that you enter any NPC specifications similar to any similar examples you find in the 3.5E OGL or Pathfinder OGL. I'm not sure if there are any specific guidelines for how the OGL data is built-up or laid out; so we had to build out the parsing to work with specific examples pulled from the OGL data itself. If there are specific examples of features that are supported by the current parsing in other creatures but you can't get the wording right, please post on the forum, and either myself or other community member will jump in to help.

    We have actually found that the vast majority of users use pre-prepared materials, and never utter a word on the forums. We have to balance what we see in actual usage versus the desires of the more communicative forum community. We try to slowly build in features for both audiences, as well as work on new capabilities on the back end.

    Regards,
    JPG

  9. #9
    ddavison's Avatar
    Join Date
    Sep 2008
    Posts
    6,122
    Blog Entries
    21
    Remember that 3.5E OGL and Pathfinder are slightly different. The styles used within products from each of those use slightly different formats. For both of those systems there are hundreds of different publishers who all "mostly" fall the same formats but don't always. If you can find documentation for OGL NPC statblocks that cover all the bases and/or the same for the Pathfinder OGL, then use those. We built the parsing based on simply looking at examples across a wide range of products we received.

    Here is the available online documentation for the 3.5E NPC statblock. You'll note that it doesn't adequately cover every possible permutation.
    https://www.d20pfsrd.com/bestiary/ru...-entry-format/

    Pathfinder lists this information:
    https://paizo.com/pathfinderRPG/prd/...roduction.html

    If you copy from a Pathfinder statblock, 95% or more of those should parse properly within Fantasy Grounds. If you find exceptions, you can report those to the bug reports for whichever game system has the problem. It may be a bug with the parser or it may be an error with the formatting by the author of that creature.

  10. #10
    There is some formatting in those documents, as well as an order, etc. However, again, computers (as you well know) don't understand semantic concepts. They understand syntax. Here is sort of what I am looking for.

    Title Field: Nothing is parsed in this field

    Type: All parts of this field are potentially parsed. The following attributes can be specified here: alignment, size, type, and subtype. Entities in this text box should be separated by an arbitrary number of spaces (>0), but no other type of delimiter. Only one type of any given entity should be specified. If multiple are specified, only the first will be used. Capitalization is not important unless otherwise mentioned. The alignment can be specified by a one or two letter code (LG, CG, NG, N, LE, CE, NE). Both characters must be in caps. Alternately, the alignment can be spelled out. If so, capitalization is unimportant and the two components of a compound alignment should be separated by a single space, e.g. "Lawful Good". The Size should be one of [usual list Gargantuan, Colossal, etc., perhaps referencing on of the OGL documents you mention]. Types should be one of [usual list Aberration, Animal, Construct, again perhaps referencing an OGL version and section]. Subtypes should be one of [same idea]

    Initiative: This should be a signed integer with no other information

    Senses: This can be a combination of parsed and non-parsed entities. Individual concepts should be separated by a semi-colon or colon. An arbitrary number of spaces can be used as separators unless otherwise specified. Capitalization is not important unless otherwise specified. Unrecognized concepts will be ignored. The following concepts may be included: Skill rolls, e.g. "Perception +15", [I don't know what else can go here, but you get the idea]

    AC: This text box follows the general format in OGL. The format is as follows
    Total armor class "[positive integer]", comma, space, touch armor class "touch [positive integer](optional)", comma, space, flat-footed armor class "flat-footed [int](optional)"

    This isn't perfect, but do you get what I am saying? The problem with your approach is that it does not work very well for trying understand the fields with mixtures of formatted and unformatted/unparsed data (SQ for example).
    Last edited by dradams; February 10th, 2018 at 23:46.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
FG Spreadshirt Swag

Log in

Log in