PDA

View Full Version : New to FG, a couple of questions



TobyFox2002
October 4th, 2018, 19:11
Heya Folks, want to say I just signed up and so far everything I have encountered looks really cool and the documentation both on site and on youtube is fairly comprehensive, however there are a few things that I'm having questions about.

I am coming from roll20 for reasons of principle; I'm trying to get everything set up on here as quickly as I can so I can get things set up for my players. Have their characters transferred over as easily as possible and suchlike. So, without further delays or backstory..

1. How does one create races with various options/sub-options such as alternate racial traits, ethnicities or even Bloodlines.
2. I often have players who use strange races, including races with racial HD, such as centaur etc, but trying to drag and drop those results in... nothing happening, would I have to recreate those as races as opposed to monsters in order to allow that, and if so, how do I account for racial HD.
3. Where are archetypes, traits, flaws and drawbacks?
4. How do I add/create templates for players/monsters. (when I search for templates on the forums all the results seem to give is "story template")

And finally, for now,
5. With the eventual release of Pf 2.0, do you intend to continue to acquire licenses for pathfinder material, Adventure Paths, source books etc..

damned
October 4th, 2018, 23:37
Welcome TobyFox2002

3.5E/Pathfinder does nt have all the drag and drop features that 5E has.
You might take 30mins to fire up a Pathfinder game and grab some of the Pathfinder OGL/PRD modules (see sticky post).
This might give you a better idea of the data setup.

The licensed Pathfinder material is newer and does have some more options but still not quite as much drag and drop as 5e.

Yes - Pathfinder 2 will be fully licensed and supported.
If you get the PF Starter/Playtest adventure module you can start playing now - the ruleset is under development still and is being fast tracked.

TobyFox2002
October 5th, 2018, 00:58
I understand that it doesnt have all the drag/drop features that 5e has. But what is the general work around? I cannot afford the other content just yet, and have tried watching the videos on "what they offer," it didnt tell me what I wanted to know.

I dont really have any interest PF2, what I wanted to know is will you still be releasing content to regular pathfinder. A lot of places are like... well.. new and shiny is out.. lets not do anything for previous versions (or the company stops doing licensing for older content). And while pathfinder 2 certainly has some interesting content and mechanics changes, it also has some of the SAME things that made me turn away from Dungeons and Dragons when they went to 4e and then 5e.

Finally what about my other questions, Archetypes, Alternate Racial Traits, Drawbacks, Templates and selecting Monsters as Races. Is that support added if I download the relevant book, or just not here at all?

Thank you very much for replying it is very much appreciated.

damned
October 5th, 2018, 01:51
Sorry - I misunderstood.
Most of the DLC content is created by community devs under agreement with Smiteworks (and the Publisher of course). This does mean that the content that gets converted tends to be driven somewhat by the community devs interests. But yes - more Pathfinder 1E content is likely to continue for quite some time.
I dont use Pathfinder so I cannot answer your specific ruleset questions.

Ckorik
October 5th, 2018, 06:37
I understand that it doesnt have all the drag/drop features that 5e has. But what is the general work around? I cannot afford the other content just yet, and have tried watching the videos on "what they offer," it didnt tell me what I wanted to know.

I dont really have any interest PF2, what I wanted to know is will you still be releasing content to regular pathfinder. A lot of places are like... well.. new and shiny is out.. lets not do anything for previous versions (or the company stops doing licensing for older content). And while pathfinder 2 certainly has some interesting content and mechanics changes, it also has some of the SAME things that made me turn away from Dungeons and Dragons when they went to 4e and then 5e.

Finally what about my other questions, Archetypes, Alternate Racial Traits, Drawbacks, Templates and selecting Monsters as Races. Is that support added if I download the relevant book, or just not here at all?

Thank you very much for replying it is very much appreciated.

Archetypes - not in core - dunno if the others have these - but considering you can just type in what you need or copy/paste it's not a big deal

Alternate Racial Traits - again - not in core - but you can delete stuff you don't want and put in stuff you do want pretty easy.

Drawbacks - no system for these at all that I can tell - you'd have to add them in as custom stuff and decide where you wanted to track them

Templates - if you mean to make new monsters with on the fly? You should check out the Green Ronin 'Advanced Bestiary' which adds this functionality (so it claims) https://www.fantasygrounds.com/store/product.php?id=GRR2901e

I use hero lab - and copying a monster statblock from hero lab into the 'creature parser' is 99% perfect - so I can't be much help there.

Monsters as Races - this is supported - every bestiary has any player race built in - so if you own the bestiary product with the race you can drag/drop the race into the sheet.

ddavison
October 5th, 2018, 13:55
I wanted to chime in to let you know that we do hope to continue supporting Pathfinder 1.0 in addition to 2.0. We have a lot of customers and some of our devs who are still very much interested in the first version. There are a ton of books , supplements and adventures (9 years worth) to do still for version 1.0, though, so it will take some time. The character building support within FG will allow you to link pretty much everything you need to your character sheet, but it is not at the level of HeroLab for Pathfinder. Many of the features will be represented but not fully automated. We've decided upon the Special Abilities section as a sort of "kitchen sink" for anything that is not currently automated.

TobyFox2002
October 8th, 2018, 16:30
Is there a list of what automation/parsing works for creating new races and new classes?

Perhaps my searchFoo isnt as strong as I thought it was, but I'm just not finding anything, when ever I try to search for stuff, all I get is stuff for 5e. Videos for 5e guides for 5e..

For example, I'm trying to do something for a large race.. I type in what I expect to work based on instructions:

CreatureName are Large and take a –1 size penalty to AC, take a –4 size penalty on Stealth checks, and gain a +1 size bonus on combat maneuver checks and to combat maneuver defense.

Which is straight from paizo in terms of syntax, it works for medium or even small creatures.. but nothing happens. I understand you said there is much less automation in Pathfinder but this is kinda a bit much..

Trenloe
October 8th, 2018, 16:41
I type in what I expect to work based on instructions:
Can you provide a link to the instructions you're following?


CreatureName are Large and take a –1 size penalty to AC, take a –4 size penalty on Stealth checks, and gain a +1 size bonus on combat maneuver checks and to combat maneuver defense.

Which is straight from paizo in terms of syntax, it works for medium or even small creatures.. but nothing happens. I understand you said there is much less automation in Pathfinder but this is kinda a bit much..
When a race is added (dragged) to a PC, the parser will primarily look at the name of the "Traits" on the "Other" tab of the race record. Then, if the name matches with a few pre-defined words/phrases, the text of the trait will be examined for further details.

What tends to happen with things like parsing (in any of the rulesets) is that they evolve as the official products are converted to FG and have the need to check for new words/phrases. At this point, there hasn't been a playable race in the offical Paizo FG products (to the best of my knowledge) that is other than small or medium - hence the rules currently only look for small or medium.

TobyFox2002
October 8th, 2018, 16:55
Instructions... as in... copy it exactly as it would read from the default statblock out using the normal wording.. Dont really have a link..

Predefined, so.. basically the pathfinder system is locked, don't supposed the parsing code is something that can be created or altered as part of the xml or ext files... I am no programmer, but my copycode skills are good enough for most straight forward tasks.. I'm a bit OCD GM (well extremely OCD), and dont want to have to go in and manually edit, or have my players when another way exists.

And as for a playable race that is large.... Centaur to name one, though I've gotten into many arguments about that being an acceptable race for players.

Trenloe
October 8th, 2018, 18:39
Predefined, so.. basically the pathfinder system is locked, don't supposed the parsing code is something that can be created or altered as part of the xml or ext files...
The PFRPG ruleset is not locked - it's the Paizo official content that is encrypted. You have full access to the base ruleset, which is where the code is.

The PFRPG ruleset layers on top of the 3.5E ruleset - where the parse code is. Look at campaign\scripts\manager_char.lua in the 3.5E.pak ruleset file.


And as for a playable race that is large.... Centaur to name one, though I've gotten into many arguments about that being an acceptable race for players.
The key thing I mentioned was "...[parsing] evolve[s] as the official products are converted to FG..." Centaur is in the Advanced Race Guide - which hasn't had an official FG conversion yet. I've amended my post to clarify.

TobyFox2002
October 8th, 2018, 19:16
The PFRPG ruleset layers on top of the 3.5E ruleset - where the parse code is. Look at campaign\scripts\manager_char.lua in the 3.5E.pak ruleset file.
.

That file would be nice too look at, but I cant find it there is no such path that I can find.

Trenloe
October 8th, 2018, 20:05
That file would be nice too look at, but I cant find it there is no such path that I can find.
The ruleset is packaged in a compressed format, with the .pak extension - 3.5E.pak in this case. This is essentially a ZIPped file with the extension changed from .zip to .pak.

Information in the developer Wiki here: https://www.fantasygrounds.com/wiki/index.php/Data_Files_Overview#Rulesets

Also, as a starting point, read in info in Chapter 1 here: https://www.fantasygrounds.com/wiki/index.php/Developer_Guide

TobyFox2002
October 8th, 2018, 20:16
Well that was fairly straight forward, Large creatures now importing properly! Yay.
On a side note, I think I found a bug, or at least something that was left out of the code.. The size racial trait automatically calculates the Stealth (or hide), but thats not the only skill that is altered based on size. the FLY skill also receives a bonus/penalty based on size.. I think its twice the penalty/bonus as stealth receives. Not yet quite familiar with .lua, so I'm not sure how to fix that, but I dont imagine it would be all that hard. It is also a core element, found in the Pathfinder Core or PFSRD, and is also OGL. Granted, it doesnt appear you are handling any sort of fly mechanics including fly speed or maneuverability so may be this is not included for that reasons. Just thought I'd point it out.

I'm gonna have fun with this... I always did enjoy trying program in a new language using the copypasta method.. and failing miserably. [not sarcasm]

Cant wait to see what else I can make work. Thank you for pointing me in the right direction.

Trenloe
October 8th, 2018, 20:40
Well that was fairly straight forward, Large creatures now importing properly! Yay.
...
Cant wait to see what else I can make work. Thank you for pointing me in the right direction.
Glad you got into it and got it working.

One word of warning - if you are modifying 3.5E.pak directly, make sure you take backups - as this will get overwritten then next time you run an update. Therefore, the recommended step is to write an extension to just change the "stuff" you want and to run on top of the base ruleset.

TobyFox2002
October 8th, 2018, 23:44
Hrm.. I've followed the tutorial to create the extension, it shows up and loads without errors but, when it runs with the same code I used to get it to work in by editing the manger_char.lua inside the 35e.pak... It doesnt work. Not sure what I did wrong.

damned
October 8th, 2018, 23:47
Share the extension and hopefully someone can have a look at it with you.

TobyFox2002
October 9th, 2018, 00:28
Okay, here it is.. via dropbox https://www.dropbox.com/s/qv33ky53x2fst9e/Autofill.ext?dl=0.

damned
October 9th, 2018, 04:30
The easiest way is to actually replace that whole file:

<script name="CharManager" file="campaign/scripts/manager_char.lua" />

At the moment the way you have included the script it doesnt know where to use it.
There is probably a way to just rewrite the one function and include it but Trenloe might have to guide you on that...

Bidmaron
October 9th, 2018, 05:12
Toby, for our sanity and efficiency, it is better if you paste the code into a code box here on the forum instead of forcing us to go unpack an extension. I suspect I know how to do what you want, but I need to hit the rack tonight.

damned
October 9th, 2018, 07:17
I did ask him to share the extension.
The way it is put together etc is sometimes the issue.

TobyFox2002
October 9th, 2018, 07:45
Sorry I should have realized this.

Here is the Extension.xml code:


<?xml version="1.0" encoding="iso-8859-1"?>
<root version="3.3" release="1.0">
<announcement text="This extention provides additional autofill and automation for the 3.5/Pathfinder ruleset" font="emotefont" />
<properties>
<name>Autofill Extras</name>
<version>0.1</version>
<author>TobyFox2002</author>
<description>This extention provides additional autofill and automation for the 3.5/Pathfinder ruleset</description>
</properties>
<base>
<!-- This file is our main Lua file. You can name it what you want, but you must use xml restrictions in order to do that.-->
<script name="AutofillExtras" file="scripts/autofill.lua" />
</base>
</root>


And the .lua code inside the scripts folder



--
-- © Copyright TobyFox2002 2018+ except where explicitly stated otherwise.
-- Fantasy Grounds is Copyright © 2004-2014 SmiteWorks USA LLC.
-- Copyright to other material within this file may be held by other Individuals and/or Entities.
-- This file may be freely distributed and even modified as long as any changes and/or
-- enhancements are shared to the community as a whole for the enrichment of all.

RACIAL_TRAIT_SIZE = "^size$";
RACIAL_TRAIT_SIZE_MEDIUM = "^medium$";
RACIAL_TRAIT_SIZE_SMALL = "^small$";
-- RACIAL_TRAIT_LARGE added by TobyFox2002 to allow for large races
RACIAL_TRAIT_SIZE_LARGE = "^large$";


function handleRacialSize(nodeChar, nodeTrait, sTraitType)
local sSize = "";
if sTraitType:match(RACIAL_TRAIT_SIZE) then
local sText = DB.getText(nodeTrait, "text"):lower();
local aWords = StringManager.parseWords(sText);

local i = 1;
-- added "large" as part of the isPhrase array
while aWords[i] do
if StringManager.isPhrase(aWords, i, { "are", { "small", "medium", "large" }, "creatures" }) then
sSize = aWords[i+1];
break;
end
i = i + 1;
end
-- added large to elseif
elseif sTraitType:match(RACIAL_TRAIT_SIZE_MEDIUM) then
sSize = "medium";
elseif sTraitType:match(RACIAL_TRAIT_SIZE_SMALL) then
sSize = "small";
elseif sTraitType:match(RACIAL_TRAIT_SIZE_LARGE) then
sSize = "large";
end

if sSize == "" then
return false;
end

local sSkill;
if DataCommon.isPFRPG() then
sSkill = "Stealth";
else
sSkill = "Hide";
end
-- added large to else if
DB.setValue(nodeChar, "size", "string", StringManager.capitalize(sTraitType));
if sSize == "small" then
DB.setValue(nodeChar, "ac.sources.size", "number", 1);
DB.setValue(nodeChar, "attackbonus.melee.size", "number", 1);
DB.setValue(nodeChar, "attackbonus.ranged.size", "number", 1);
if DataCommon.isPFRPG() then
DB.setValue(nodeChar, "attackbonus.grapple.size", "number", -1);
else
DB.setValue(nodeChar, "attackbonus.grapple.size", "number", -4);
end
addSkillBonus(nodeChar, sSkill, 4);
-- Perhaps include addSkillBonus(nodeChar, Fly, 8); Questionable, need to knowledge of lua.
elseif sSize == "large" then
DB.setValue(nodeChar, "ac.sources.size", "number", -1);
DB.setValue(nodeChar, "attackbonus.melee.size", "number", -1);
DB.setValue(nodeChar, "attackbonus.ranged.size", "number", -1);
if DataCommon.isPFRPG() then
DB.setValue(nodeChar, "attackbonus.grapple.size", "number", 1);
else
DB.setValue(nodeChar, "attackbonus.grapple.size", "number", 4);
end
addSkillBonus(nodeChar, sSkill, -4);
-- Perhaps include addSkillBonus(nodeChar, Fly, -8); Questionable, need to knowledge of lua.
elseif sSize == "medium" then
DB.setValue(nodeChar, "ac.sources.size", "number", 0);
DB.setValue(nodeChar, "attackbonus.melee.size", "number", 0);
DB.setValue(nodeChar, "attackbonus.ranged.size", "number", 0);
DB.setValue(nodeChar, "attackbonus.grapple.size", "number", 0);
end
return true;
end


The code works, when added to the manager_char.lua, I'm fairly on point with my copypasta.. But when brought out put into an ext file and put into the ext folder. It does not.

damned
October 9th, 2018, 08:40
manager_char.lua is going to use the function handleRacialSize within the file.
It doesnt know to use your version.
Replace the whole manager_char.lua in your extension.

Trenloe
October 9th, 2018, 08:49
You're defining your custom code as a new global script package called "AutofillExtras" - but as damned says, nothing calls that package. FG will keep using the code in the 3.5E script package CharManager because there's nothing telling FG to use the new code.

Have a look at script scope and global packages here: https://www.fantasygrounds.com/wiki/index.php/Developer_Guide_-_Rulesets_-_Scripting#Global_Script_Packages

So, to make this work, without modifying the base ruleset, we need to override the relevant code in the CharManager script package, but using CharManager. to reference code in that package.

The following should work OK - as long as you use the racial trait name "Size" as the code in the main CharManager package that calls handleRacialSize doesn't look for Large.

The onInit() function run when the script package is initialized when the extension.xml file is loaded (because of the <script name="AutofillExtras" file="scripts/autofill.lua" /> entry in that file). onInit adds the RACIAL_TRAIT_SIZE_LARGE variable to the CharManager package (it doesn't strictly need to do that, as it's not used elsewhere, it's an example of what can be done and keeps all variables in that package.

The CharManager.handleRacialSize function is overridden with the local custom_handleRacialSize function.

And then in that function, any calls to variables or other functions in CharManager package have CharManager. in front of them.

Note - there is an issue with the script as is - it will use the name of the racial trait for the size name in the Notes tab of the PC sheet - I've changed this to use sSize instead.



function onInit()
CharManager.RACIAL_TRAIT_SIZE_LARGE = "^large$";
CharManager.handleRacialSize = custom_handleRacialSize;
end

function custom_handleRacialSize(nodeChar, nodeTrait, sTraitType)
local sSize = "";
if sTraitType:match(CharManager.RACIAL_TRAIT_SIZE) then
local sText = DB.getText(nodeTrait, "text"):lower();
local aWords = StringManager.parseWords(sText);

local i = 1;
-- added "large" as part of the isPhrase array
while aWords[i] do
if StringManager.isPhrase(aWords, i, { "are", { "small", "medium", "large" }, "creatures" }) then
sSize = aWords[i+1];
break;
end
i = i + 1;
end
-- added large to elseif
elseif sTraitType:match(CharManager.RACIAL_TRAIT_SIZE_MED IUM) then
sSize = "medium";
elseif sTraitType:match(CharManager.RACIAL_TRAIT_SIZE_SMA LL) then
sSize = "small";
elseif sTraitType:match(CharManager.RACIAL_TRAIT_SIZE_LAR GE) then
sSize = "large";
end

if sSize == "" then
return false;
end

local sSkill;
if DataCommon.isPFRPG() then
sSkill = "Stealth";
else
sSkill = "Hide";
end
-- added large to else if
DB.setValue(nodeChar, "size", "string", StringManager.capitalize(sSize));
if sSize == "small" then
DB.setValue(nodeChar, "ac.sources.size", "number", 1);
DB.setValue(nodeChar, "attackbonus.melee.size", "number", 1);
DB.setValue(nodeChar, "attackbonus.ranged.size", "number", 1);
if DataCommon.isPFRPG() then
DB.setValue(nodeChar, "attackbonus.grapple.size", "number", -1);
else
DB.setValue(nodeChar, "attackbonus.grapple.size", "number", -4);
end
addSkillBonus(nodeChar, sSkill, 4);
-- Perhaps include addSkillBonus(nodeChar, Fly, 8); Questionable, need to knowledge of lua.
elseif sSize == "large" then
DB.setValue(nodeChar, "ac.sources.size", "number", -1);
DB.setValue(nodeChar, "attackbonus.melee.size", "number", -1);
DB.setValue(nodeChar, "attackbonus.ranged.size", "number", -1);
if DataCommon.isPFRPG() then
DB.setValue(nodeChar, "attackbonus.grapple.size", "number", 1);
else
DB.setValue(nodeChar, "attackbonus.grapple.size", "number", 4);
end
CharManager.addSkillBonus(nodeChar, sSkill, -4);
-- Perhaps include addSkillBonus(nodeChar, Fly, -8); Questionable, need to knowledge of lua.
elseif sSize == "medium" then
DB.setValue(nodeChar, "ac.sources.size", "number", 0);
DB.setValue(nodeChar, "attackbonus.melee.size", "number", 0);
DB.setValue(nodeChar, "attackbonus.ranged.size", "number", 0);
DB.setValue(nodeChar, "attackbonus.grapple.size", "number", 0);
end
return true;
end

Hope this allows you to get going, and that is (mostly) makes sense! :)