PDA

View Full Version : NPC Gen Engine



deadseacow
October 19th, 2019, 05:21
NPC Gen Engine

“NPC Gen Engine is unofficial Fan Content permitted under the Fan Content Policy. Not approved/endorsed by Wizards. Portions of the materials used are property of Wizards of the Coast. ©Wizards of the Coast LLC.”

Hi everyone,

Current status of NPC Generator

I wanted to create a quick way to flesh out a NPC. At this point it will Randomly pick Race, Name, Stats w/ Race stat bonus, Class, random equipment that belongs to class, Gold, Deity/Alignment, and background w/ traits,ideal,bond, and flaw. And only requires the PHB to function. I'm still currently typing in all human names and have about a third entered. Learning the tables so that the text is formatted in a useful way was fun to figure out. Something I learned is when FG starts working a table it will go down the whole row and first display the texts enter into each cell. Then it will return to the front and then work the tables in that row. So even if you put the text behind a table the result will be the text are displayed before the all tables.

The tables can do simple math. Which is how the random stat works. Ex. STR [1d6+1d6+1d6] DEX [1d6+1d6+1d6] CON [1d6+1d6+1d6] INT [1d6+1d6+1d6] WIS [1d6+1d6+1d6] CHA [1d6+1d6+1d6] will generate a basic random roll. I don't know how much more complicated the tables can do. If in the future FG adds variables to the tables you will be able to do some really sick stuff.

One of my favorite things right now are when a half-elf is picked the engine will randomly select names from either elf or human names. The same goes for half-orc. Also the only way I could figure out alignment was to have it select a deity first then just default the alignment to that god/goddess. But it can select no deity and still randomly pick an alignment.

I have seen some really funky NPC's pop out and I think it just makes them more colorful and memorable.

Current Version is "NPC Gen Engine 1.5"

To use:
Load up the current version of NPC Gen Engine.com
Ensure PHB is loaded
Bring up the tables and the top two tables are
001 NPC Female Gen Engine
001 NPC Male Gen Engine

Roll either of those tables and it will generate a NPC into a story window.

It was fun and I will be loading the rest of the human names through out the week. I will also be looking into other tables to create.

DeadSeaCow

Zacchaeus
October 19th, 2019, 09:59
Thanks for sharing.

deadseacow
October 19th, 2019, 20:40
I decided to update it again. Tables are addicting. You start with a question about how can you do it and now 6 hours has past.

My tables started to get very numerous so I made a folder numbering system. From there I decided to give each race their bonus to their stats and setup the system to easily accept names. I'm trying to decide it i should just enter the names my self from my Xanathers hard copy or not. If I did then no one would be required to have the xanather mod and make it more accessible to everyone. I have my hard copy of xanather's its just do I want to type out the thousand or so names. Does anyone know the table amount limit fantasy grounds can support?

Also if you exceed more than 20 items per table will it automatically roll a high value to make sure all entries are included. I have uploaded the next version of the NPC Gen Engine

Thanks
DeadSeaCow

Trenloe
October 19th, 2019, 20:44
I'm trying to decide it i should just enter the names my self from my Xanathers hard copy or not.
Assuming those names are intellectual property of Wizards of the Coast and covered by copyright, then you wouldn't be able to share the resulting module.

Zacchaeus
October 19th, 2019, 21:07
You can't include things which are actually in a WotC module. You can only link to it. I'm not sure what names you are referring to but if it is the tables which generate random names you can link to those tables.

You don't actually need a dice value in a table. FG will automatically roll a dice using the first number of the first row and the last number of the last row. So if that happens to be 56 then FG will roll a d56. You can have as many rows as you want and number them however you want.

deadseacow
October 19th, 2019, 21:09
So we can only link things together?

For instance, there is no link for the god and goddess. So I just typed their name into a table myself. Is that against the rules?

I just read the this website and it states that names can not be copyright due to insufficient creatively to support the claim in copyright.
https://www.copyright.gov/circs/circ33.pdf - page 2 to 3 shows example of items that can not be copyrighted.

WOTC did not come up with the name Talos but are using it in their copyright material. Dungeon and Dragons can not be copy right but the font can be.

I just want to make sure I understand these things because I dont want to start to something that will be shutdown later.

Zacchaeus
October 19th, 2019, 21:54
It depends on what you are talking about. WotC have copyrighted names such as Mordenkainen, Volo etc. Names of things that have existed for thousands of years like the names of gods can't be copyrighted.

deadseacow
October 19th, 2019, 22:47
Well Im still not understanding because one of the items that can not be copyrighted is names of characters. Which Volo and Mordenkainen are. The page I referred too is a link to the US governments copyright office. So my next question is has this road been gone down before and WOTC requested a stop through office channels? I can understand images, fonts, even the literature like dnd lore. I doubt this is the first time Volo has been used commercially.

Also thank you for explaining the tables to me, I tested it out and works exactly as you describe. I went ahead and revisited the tables to formatted them to the way you describe and there are no issues. Now I'm drumming my fingers trying to decide to make the name tables or not.

DeadSeaCow

Zacchaeus
October 19th, 2019, 23:30
What names are you talking about exactly?

deadseacow
October 19th, 2019, 23:44
Xanathar's Guide to Everything Pages 174-191 There just random tables with names on it.

DeadSeaCow

Zacchaeus
October 19th, 2019, 23:50
Well, as I say you can link to those tables and have them roll from your tables, but you can’t copy them into your module.

LordEntrails
October 19th, 2019, 23:52
Assuming those names are intellectual property of Wizards of the Coast and covered by copyright, then you wouldn't be able to share the resulting module.


You can't include things which are actually in a WotC module. You can only link to it. I'm not sure what names you are referring to but if it is the tables which generate random names you can link to those tables.
Something that hasn't been much in use on these forums in the Wizard's Fan Content Policy (https://company.wizards.com/fancontentpolicy) (mostly in part because it is relatively new). And somewhat contradicts the standard take on IP enforced on this website and related by Trenloe and Mr. Z. Whether SmiteWorks and the mods wish to revisit their policy on IP enforcement is up to them, but we all want to make sure we are on the conservative side rather than any more aggressive/liberal interpretation because we (the community via SmiteWorks) have a pretty good 'relationship' with Wizards.

This policy of Wizards states 8 core rules (Please see read the full thing, it's not long);

Free
Mark Unofficial
Don't Hurt Others
Don't Hurt Wizards

Logos and Trademarks
Legal Notices
Use with Other Games
Videos or Music


No Bad Stuff
Safe Sponsorship
Laws of the Land
No legal battles


This would seem to indicate most of what you are interested in doing would be in line for use under this policy. Still of concern (to me) would be use of certain names that Wizard's claim as trademarks. Whether names can be trademarked, or how such trademarks can be enforced is not settled, despite how you interpreted that website. If your not sure, Google terms like "Apple Trademark". Disputing this idea is fine if you wish to, but I would not expect this forum to support any such claim, not does the Fan Content Policy allow it (#8).

The other possible outlet for something like you are wanting to do is the DMsGuild. It has a license that is more generous, and more restrictive than than Fan Content Policy. There are several links from the DMsG FAQ (https://support.dmsguild.com/hc/en-us/categories/202531048-DMs-Guild-General-Information) you will want to look at. In short (but not complete) it allows;

Use of most Wizard's IP (not artwork, and not all settings)
Publishing on the Guild gives Wizards a permanent irrevocable license to use your material without compensation, and allows other DMsG creators to use your (non-art) material as well.
You content has to be mostly original. Compilations of other people work (including Wizard's) is not allowed.
You can list your items for free, Pay What You Want, or charge a price. You get 50% of the sales reimbursed via Pay Pal.

deadseacow
October 20th, 2019, 00:59
LordEntrails,

Thank you for that link to the website. I'm very happy that this is cleared up. I have no intent no making any kind of funding and will ensure that this will be marked unofficial. All I wanted to do is make a sweet little npc gen for off the cuff moments. Your reply was perfect and hit all the marks. I'm familiar with DMsguild and have purchased from them before. But I don't really think my stuff needs that kind of platform. I have been a long time lurker on these forums and just really had a chance to start using this software because my kids expressed interest.

I don't even really know if anyone needs what I'm making but its fun and why not.

DeadSeaCow

deadseacow
October 21st, 2019, 01:46
Just updated the NPC Gen Engine again.

Thanks

Trenloe
October 21st, 2019, 02:13
And somewhat contradicts the standard take on IP enforced on this website and related by Trenloe and Mr. Z. Whether SmiteWorks and the mods wish to revisit their policy on IP enforcement is up to them, but we all want to make sure we are on the conservative side rather than any more aggressive/liberal interpretation because we (the community via SmiteWorks) have a pretty good 'relationship' with Wizards.
I'd say 95% of the time I'm the copyright police on these forums I say something along the lines of "unless you have permission from the copyright holder or the material is covered under a OGL/CC license you can't share it". What you go on to describe is covered by what I say 95% of the time. So please don't try to make us out to be draconian and that we need to change our stance. We can't be aware of every single agreement/license/community policy out there. Hence why we err on the side of caution and why, in this instance, I said "Assuming those names are intellectual property of Wizards of the Coast and covered by copyright, then you wouldn't be able to share the resulting module." People should always check themselves that what they are publicly releasing is OK legally. And, I don't think any of the forum moderators actually took this module down, we raised and issue and discussed it with the OP first. From my point of view I feel we're very fair on the forum in terms of what we allow, how we discuss it and what we don't allow. The moderators are all unpaid volunteers - none of us enjoy doing this type of policing, but we feel we have to do it so that we are fair to all artists, authors and publishers and protect their hard work in our little hobby industry.

Thanks for detailing the WotC community policy. Good to know that's there. What's interesting is a section down the bottom:

What kind of stuff does “Fan Content” cover?

Pretty much anything you create based on or incorporating our IP. Fan Content includes fan art, videos, podcasts, blogs, websites, streaming content, tattoos, altars to your cleric’s deity, etc.

The key is that it is your creation. It should go without saying, but Fan Content does not include the verbatim copying and reposting of Wizards’ IP (e.g., freely distributing D&D® rules content or books, creating counterfeit/proxy Magic: The Gathering® cards, etc.), regardless of whether that content is distributed for free.
(Red highlighting is mine).

How many entries are we talking about that have been copied from Wizards products and reposted for this module? I know it's a grey area as how much is OK and how much isn't, but 100% copy/paste of sections from a book is stepping over that line in my opinion.

LordEntrails
October 21st, 2019, 02:48
I'd say 95% of the time I'm the copyright police on these forums I say something along the lines of "unless you have permission from the copyright holder or the material is covered under a OGL/CC license you can't share it". What you go on to describe is covered by what I say 95% of the time. So please don't try to make us out to be draconian and that we need to change our stance.

I apologize, since obviously my statement did not convey itself in the way I intended.

As a creator myself, and one that has had their creations stolen, I agree with a conservative or proactive approach to IP protection. I see such an approach as anything but draconian, and did not mean to imply such.


We can't be aware of every single agreement/license/community policy out there. Hence why we err on the side of caution and why, in this instance, I said "Assuming those names are intellectual property of Wizards of the Coast and covered by copyright, then you wouldn't be able to share the resulting module."
Absolutely, and exactly the stance I would want moderators on the forum to take (I wish they did so on other forums as well). You do a great job and I certainly did not mean to disparage that.


People should always check themselves that what they are publicly releasing is OK legally. And, I don't think any of the forum moderators actually took this module down, we raised and issue and discussed it with the OP first. From my point of view I feel we're very fair on the forum in terms of what we allow, how we discuss it and what we don't allow. The moderators are all unpaid volunteers - none of us enjoy doing this type of policing, but we feel we have to do it so that we are fair to all artists, authors and publishers and protect their hard work in our little hobby industry.
Again, I agree and think the you and the rest of the mods do a great job. I back your efforts 100%, always have. What I should have tried harder to convey was that the WotC Fan Content policy is relatively new (2017?) and is very different than previous policies they have taken. And as such, it might be new information to the mods that might mean things previously not allowed could now be allowed (with, if needed, modifications to comply with the policy).


Thanks for detailing the WotC community policy. Good to know that's there. What's interesting is a section down the bottom:

(Red highlighting is mine).

How many entries are we talking about that have been copied from Wizards products and reposted for this module? I know it's a grey area as how much is OK and how much isn't, but 100% copy/paste of sections from a book is stepping over that line in my opinion.
I don't know, and this guideline to create new stuff and not just reformat, re-collect, or otherwise redistribute existing content is at the heart of the DMsGuild policy as well.

What that percentage is (or some other way to measure)... well it's something that has been discussed among the DMsG creators, and OBS and WotC have not made a statement other than something like, 'be fair to each other'. Which is totally reasonable and the response I would hope for. For I think it is safe to say as soon as you put a measurable on something, people will attempt to "optimize" (or abuse?) it. My personal view is re-used content should be less than 25%, however one chooses to measure such.

Armandeus
October 26th, 2019, 13:31
This NPC generator is very interesting. Would you be interested in trying to allow the user to select classes and races to use or not use when generating, to include those in modules other than the PHB and custom content saved in FG?

deadseacow
October 26th, 2019, 18:33
Thanks Armandeus,

This module heavily depends on the tables in the PHB. I would have to purchase the other modules to include those tables. The plan was to have several different modules that would include different books. This module would only require the PHB. Another one would require PHB, Volo, and XGTE. The discussion with Trenloe is valid and I only have a clear conscience from pulling names of characters from XGTE without having to purchase that module. But anything else, like encounters, backgrounds, race sub classes, and equipment anyone will need to first acquire the needed modules.

In regards to have the option to turned on and off certain attributes, I need some help because the random tables have to be heavily modified for those features to toggled in that way. Since they are random you have to place all the information in a certain order. To be able to toggle a race to "off" I would have to make an entire new set of tables that did not include the race. Which is to much grunt work, but the part I would need help on is making an extension that would make tables use basic logic. I looked into xml and lua and after reading half a dozen well documented tutorials and explanations by the community, it is right now out of my reach.

But what I'm envisioning is a window that comes up with some boolean switches that would toggle certain tables on and off. With that you could then also tell the NPC Gen Engine which modules you have loaded and it would then pull from those tables. Have some tables that are "if", "and", or "else" could really generate some epic stuff. So right now I'm just working with my current abilities and trying to expand on them. But what you brought up is the direction I would like to go with it.

DeadSeaCow

yarnevk
October 26th, 2019, 18:40
There is a way to do this without copying tables. On a roll of X to Y you would roll on the names table from the PHB. On a roll of Y to Z you would roll on the names table from the Xanathars guide. The difficulty is in building that parent table it cannot be dynamically generated based on what the content available. That just means there is a dead link and you have to reroll. It is that lack of dynamic generation that stopped me from doing my PC story generator that I made for my own use, as well as the support burden of keeping it updated for all the possible contents, and those reasons made no sense for releasing it as it is not supportable.

However if you are copying the tables so that people do not need the other modules, then a person does not need to buy these products, eliminating one of the reasons to buy these products over using basic rules or SRD is all this extra content like tables. And that should have nothing to do with WOTC because their products did not format these things as rollable tables, it should have everything to do with SmiteWorks because they paid someone to type/parse all these things into a rollable table. So I think the only way something like this should be allowed is if it requires the other modules by using their tables, which means you have to deal with the support nightmare of configuring it for different library collections. And if that product did not format it as tables, you should not be able to use it as that would require wholesale copying. It does not matter that you make it freely available and are not profiting from it, you are removing income potential from Smiteworks.

While you cannot copyright a name, you certainly can copyright a collection of names or trademark a name.

deadseacow
October 26th, 2019, 19:10
yarnevk

You are right about how to configure the tables to support different books. As it is one could not rule them all. You would need to have multiply modules to cover the different combination books. Then the user would just download the one that applies to the content they have loaded. But if we could get tables that could store information and let other tables pull from that, then you could tell the "first page" which content you have loaded and it would only pull from those books. If you tried to pull from books that are not loaded it will just error out. Which in my opinion would encourage people to further purchase more modules so they can use those tables in their games.

I'm not trying to circumvent copyright or cause harm to any company. I want to make a tool that supports the company and encourage a more dynamic use with the resources available. If an extension could be made that would allow different types of tables instead of just the one random table then you could some unique stuff. I have very little coding experience and in the middle of moving across country. So right now I can't learn how to use FG more advance features. But I do think it is worth the effort because then you would have a more supportable tool.

Also with the names from XGTE, the way their tables are setup I could not use. I had to modify the name so it would be formatted correctly in my tables. I would say 90 precent of my tables are linked to the PHB. Just the names are manually entered.

DeadSeaCow

deadseacow
October 26th, 2019, 20:26
Trademark means I'm trying to use a taken name to brand my company. Which I am not doing. Also you can not copyright a name of a character or list of names. Trenloe quoted that fan content can not verbatim copy wizard IP. Which I did not. All my names have been modified in my tables. Thank you for your concern, but I will defer to Trenloe and when he says that I have gone over a line then I will back up.

yarnevk
October 27th, 2019, 16:53
If you could not copyright lists of names, then baby name books would not exist.

deadseacow
October 27th, 2019, 22:54
If you could not copyright lists of names, then baby name books would not exist.

I'm not following you or agree with you. Even Dungeon and or Dragons can not be copyrighted. It can be trademark as in only WOTC can use it as a business name. Their font can be copyright because its treated as an image. Their graphics can be because there are an image. Even if its is a list of names those names can not be WOTC IP. But if I scanned the page as a whole that is their IP. Because now it is a image of their material. I did not do any of those things.

Here is the US government says what can not be copyrighted

"Names, Titles, Short Phrases Words and short phrases, such as names, titles, and slogans, are uncopyrightable because they contain an insufficient amount of authorship. The Office will not register individual words or brief combina-tions of words, even if the word or short phrase is novel, distinctive, or lends itself to a play on words.Examples of names, titles, or short phrases that do not contain a sufficient amount of creativity to support a claim in copyright include
• The name of an individual (including pseudonyms, pen names, or stage names)
• The title or subtitle of a work, such as a book, a song, or a pictorial, graphic, or sculptural work
• The name of a business or organization
• The name of a band or performing group
• The name of a product or service
• A domain name or URL
• The name of a character
• Catchwords or catchphrases
• Mottos, slogans, or other short expressions
Under certain circumstances, names, titles, or short phrases may be protectable under federal or state trademark laws. For information about trademark laws, visit the U.S. Patent and Trademark Office website or call 1-800-786-9199"

https://www.copyright.gov/circs/circ33.pdf

I will no longer respond to any inquires about this subject matter unless it comes from a FG moderator.

deadseacow
October 27th, 2019, 23:06
I have been working on Shop gen tables. I feel like its coming along well. But formatting it is a bit more tricky. Right now I have divided the shops into four classes, Hamlet, Village, Town, City. Each one would produce a certain level of items. Hamlet being the fewest and the City having a chance to stock a magic item or two. I have used part of the NPC generator to make the shop keeper. My goal is to include the status needed so the DM could use when players are trying to haggle, steal, persuade, or bully their purchases.

Right now the Hamlet will only produce standard adventure gear with no weapons and maybe a potion or two.
The Village will have access to a shrine, inn, and general store that might have simple weapons but definitely some potions.

At this point Each item will randomly generate the price. The coin range is from 15 percent below to 50 percent higher standard prices. And Each time the table rolls the item a new price will come up. So you can have several potions and all will be slightly different prices. The Inn will generate 37 different meals all with their own prices.

Zacchaeus
October 27th, 2019, 23:27
You might want to have a look at Story templates https://www.fantasygrounds.com/forums/showthread.php?37400-Video-on-Story-Templates

deadseacow
October 28th, 2019, 00:57
You might want to have a look at Story templates https://www.fantasygrounds.com/forums/showthread.php?37400-Video-on-Story-Templates

Thank you Zacchaeus,

I actually just looked at that earlier today from that same thread. I wanted it to work but unfortunately Store Templates do not let math run along side of the tables. If I wanted to pull from a table 2d6 times it would not work. Or if I wanted the price to follow an item it would just print the formula instead of running through it.

Or at least I could not figure out how to. I'm welcome to suggestions.

DeadSeaCow

Zacchaeus
October 28th, 2019, 01:20
Thank you Zacchaeus,

I actually just looked at that earlier today from that same thread. I wanted it to work but unfortunately Store Templates do not let math run along side of the tables. If I wanted to pull from a table 2d6 times it would not work. Or if I wanted the price to follow an item it would just print the formula instead of running through it.

Or at least I could not figure out how to. I'm welcome to suggestions.

DeadSeaCow

There are some restrictions. Here's a couple of methods.

deadseacow
October 28th, 2019, 01:31
There are some restrictions. Here's a couple of methods.

I just rewatched the tutorial and first off thank you for the video. I discovered my problem and remedy it because your explanation is clear and makes sense. Also your example makes it clear on how one would go that route. Im playing with the tables and templates tonight to see if there is a method that I like. Thanks again

DeadSeaCow

deadseacow
October 28th, 2019, 02:51
Zacchaeus,

I think I have found a bug when trying to discover a different way to have a table roll multiable times. Watching your video made me away of using <> to pull a result from a table. So I made three tables to try and see if I could pull the results from one table and have it determine how many times the next table would roll. For instance normally you could do [1d4x][Inventory] to have Inventory roll 1d4x times.

I tried to have a "Master" table that would first roll "Slave" table then try and bring the "Slave" table results into the "Inventory" table. <slave>[Inventory]. I could not get this to work. I then tried <slave>x[Inventory], [<slave>x][Inventory] and a few other combinations. To my conclusion I think that the <> converts all results into a string including numbers. And you can't multiply a string as a integer, basic coding... So I wondered if I had the "Master" first randomly pick a number in a cell then called that cell in front of another table. I wanted to use [Master|1][Inventory]

This is were I think the bug is at. The Master table had [1d4] in the first cell. I then type [Master|1][Inventory] in the following cell, it didn't work. So I type [Master][Inventory] and FG either locks up and force closes, or will roll forever a d4, or roll it hundreds of times and then comes out of it. I know to have a table roll on itself is kind of pointless but I was just experimenting with tables.

DeadSeaCow

Zacchaeus
October 28th, 2019, 09:50
The angled brackets <> recalls a stored table result so that it can be placed in a string. It can't be used to call a table or anything else.

Story templates don't really give you a good result if the table you call has child tables or has multiple columns. If you want to use Story Templates you need to find a way to have all of your tables single roll and not have tables whose result is dependent on a roll from another table. They might not really be any use for what you are attempting to do.

For example if you have a master table which rolls a random race and that table then calls other tables dependant on the result of the Master table a Story Template probably won't work too well. If you wanted to use a Story Template you would need one for each race and link those to the table rows of your first table. You would then have multiple single roll tables attached to the story templates for height, weight, eye colour, hair colour etc etc.

You can't automatically use the result of one table to roll on another. In your [Mastery|1][Inventory] line that is returning a result from the first column of the Mastery table and then rolling completely independently on the Inventory table. If you are calling this from the Mastery table then it is simply calling itself infinitely. It isn't a bug but a user error :)

You can call a table on itself - for example you might have something like on a 20 roll on this table again type scenario. It can be done but you run the risk of setting up an infinite loop.

deadseacow
October 30th, 2019, 01:06
Thank you for your explanation. I think it seems as of right now story templates are not going to let me do what I want to. I would have like to have a table roll a npc on a story template. Then on the NPC's template have it able to generate inventory randomly. This way I can roll a shop keeper and have his/her wares change as I need them. So if the players come back and return I can just have the shops inventory change and keep the shop keeper.

I could make it work but the table for each kind of shop would get huge. And updating anything would be time consuming because instead of just changing one table that all shops call on. I would have to change every table. Also my next hurtle is the templates will not run the math formula, it instead just prints it. I could put the formula in its own table but every time you call a table the format puts it on a new line. I saw how you used the table grid. Is there a way to about the amount of items change each time? I would like there be a chance only a few items appear or a ton.

On another note I just found out the house I'm purchasing needs a new roof. YEAH. More haggling around the table about price. I'm glad I got really good help because I don't think a nat20 will do any good for me. I'm sure my realtor will just tell me I'm embarrassing him.

DeadSeaCow

Zacchaeus
October 30th, 2019, 01:29
For your first point you’d need a template for the shopkeeper and one for the inventory. I suppose it depends on how complicated you want of course but for the inventory you’d only need a few templates, weapons, armour, general gear etc and maybe a couple of inns and taverns.

I don’t know what kind of maths formulas you need but anything you can put in a table works on a template as far as I know, other than the $PC.