Log in

View Full Version : Extend subclasses for existing classes?



Speculi
August 13th, 2018, 17:53
Hi, how can I extend the list of subclasses/specialisations for existing classes?

I saw with Xanathar's Guide to Everything, that is should be technically possible to extend the list of subclasses. Independent of which class entry I choose to drag on my character to level up and gain my specialisation, it would show me ALL specialisations. The ones from the PHB and from XGtE.

So, if I have the PHB and XGtE loaded, I can drag for example the Barbarian entry from either PHB or XGtE on my class to reach level 3 I get the popup to choose between:

Path of the Berserker
Path of the Totem Warrior
Path of the Ancestral Guardian
Path of the Storm Herald
Path of the Zealot


Is there a way to do this for Homebrew, or new subclasses where I don't own the FG module, but already have the book/pdf? :confused:

If I try to do this by copying the SRD class and add just the new subclass I want, this doesn't seem to work. I only get my new subclass if I use my special class and I don't get the subclasses from the PHB.
I already now how to add an entirely new class and add subclasses to it, but that's not what I want.

Nyghtmare
August 13th, 2018, 19:23
The way that I do it is to copy the base class from the SRD and then add the archetype (subclass) that I want to that.

You need to add it to a class... not just create the archetype on its own.

Speculi
August 13th, 2018, 19:29
In my tests, this has the downside, that I always need to drag and drop this copied version to the class on level up, otherwise FG doesn't seem to recognize the added archetype. With the store-bought XGtE module Fantasy Grounds is able to pick the added archetype up, no matter which class entry I drag on my character on level up.

Zacchaeus
August 13th, 2018, 19:42
I don't think homebrew class archetypes will be added to the list. Anything exported from FG is done so in a different format. Everything is numbered rather than given the name of the class or archetype. If you look at the exported output from FG for a class you'll see that it is given an id in the format <id-xxxxx>. Whereas in the output from something like the PHB this would be <barbarian>. You may find that if you change the id tags to the class you want it might work. I rather thank it may be more complex than that.

Speculi
August 13th, 2018, 20:15
Ah, I will have a look at the exported modules. I did my testing only inside a campaign, without exporting it. Maybe I can do some XML editing afterwards.

Thanks for the pointer!

Speculi
August 14th, 2018, 22:41
Just to give back some information:
Apparently it indeed is possible to copy i.e. the Barbarian from the SRD, add a new archetype/specialization, export it into a module and manually change the <id-xxxxx></id-xxxxx> tags into <barbarian></barbarian>.
This way you while you level up the character, you get to choose from all available Primal Path options on level 3. Independent on which entry you dragged onto you character.

Beware, I only did a quick test with this, not sure if it might break anything else, but it didn't seem to do.

When you copy from the SRD, you should remove any existing specialization (and maybe the corresponding features/abilities as well) from the new entry before you export it. Otherwise those will show up two times in the level up pop up.

Thanks Zacchaeus for pointing me towards this.

sstarsslayer
July 19th, 2020, 01:59
manually change the <id-xxxxx></id-xxxxx> tags into <barbarian></barbarian>
Looks like I've got 18 modules that don't have their specializations included in the prompt when players level. I tried editing some of them but it doesn't seem to work.
37837
eg the above "ranger" class record used to say "id-00001". Am I doing it wrong?

Zacchaeus
July 19th, 2020, 09:50
You'll need an end tag as well. Your image doesn't show that.

sstarsslayer
July 20th, 2020, 09:52
After some more testing, I see I've made some progress. I edited a few of the modules xml tags, including the end tag, to say ranger.
Now if using one of my edited modules to level up, the specialization/archetype prompt shows the combination of all specializations for all modules I've edited and does not show the ones I've not yet edited.
The problem though is it still doesn't show the specializations from the encrypted modules. Or if leveling using one of the encrypted modules, such as the PHB, it will still only prompt for all the specializations from all of the encrypted modules combined. This is why I thought it wasn't working at all when I made my post.
Perhaps the PHB doesn't use "ranger" ? I think it could spell or capitalize it differently or say something like "Ranger_class" and I wouldn't be able to tell anywhere.

Zacchaeus
July 20th, 2020, 11:56
I'm not sure what your answer is. The choosing of the archetypes is done by the ruleset and not by the class specifically. But if the xml is correct (and it may require some code elsewhere other than in the class bit itself) then I think it should pick up all of the archetypes.

BaneTBC
July 21st, 2020, 17:59
@sstarsslayer You might find some benefit of the Twitch video from Rob2e's stream yesterday where he created a new module for Inferno Magic. https://www.twitch.tv/videos/685531355

gmdmb3
December 14th, 2021, 20:29
did you ever find a solution to this? i am trying to do the EXACT same thing with a new druid circle.

gmdmb3
December 14th, 2021, 20:31
@sstarsslayer You might find some benefit of the Twitch video from Rob2e's stream yesterday where he created a new module for Inferno Magic. https://www.twitch.tv/videos/685531355

is there another source for this video the link you posted does not work

Zacchaeus
December 14th, 2021, 21:26
See the second video linked here for how to add an archetype to an existing class in the SRD. https://www.fantasygrounds.com/forums/showthread.php?37112-New-Class-Creation-Video The problem you will have is that you can only use that class from your own module and only the archetypes attached to that class will show up. Similarly if you use a class from the PHB your archetypes won't show up when you get the choice.

It is possible to get this to work (I think) but you will need to edit the xml. If you look at the code snippets below you'll see the code for the path of the berserker from the SRD barbarian compared to the code for the new archetype that I added to it.

<id-00001>
<name type="string">New Archetype</name>
<text type="formattedtext">
<p>Some text</p>
<h>Features</h>
<p />
</text>
</id-00001>
<pathoftheberserker>
<level type="number">1</level>
<name type="string">Path of the Berserker</name>
<text type="formattedtext">
<p>For some barbarians, rage is a means to an end-that end being violence. The Path of the Berserker is a path of untrammeled fury, slick with blood. As you enter the berserker's rage, you thrill in the chaos of battle, heedless of your own health or well-being.</p>
<h>Features</h>
<linklist>
<link class="reference_classfeature" recordname="reference.classdata.barbarian.features.frenzy3@DD5 E SRD Data">Frenzy</link>
<link class="reference_classfeature" recordname="reference.classdata.barbarian.features.mindlessrag e6@DD5E SRD Data">Mindless Rage</link>
<link class="reference_classfeature" recordname="reference.classdata.barbarian.features.intimidatin gpresence10@DD5E SRD Data">Intimidating Presence</link>
<link class="reference_classfeature" recordname="reference.classdata.barbarian.features.retaliation 14@DD5E SRD Data">Retaliation</link>
</linklist>
</text>
</pathoftheberserker>

Similarly here's the code for a feature I added compared to the code for a feature out of the path of the berserker


<id-00001>
<level type="number">3</level>
<name type="string">New Feature</name>
<specialization type="string">New Archetype</specialization>
<specializationchoice type="number">0</specializationchoice>
<text type="formattedtext">
<p>Some text</p>
</text>
</id-00001>

<frenzy3>
<level type="number">3</level>
<name type="string">Frenzy</name>
<specialization type="string">Path of the Berserker</specialization>
<text type="formattedtext">
<p>Starting when you choose this path at 3rd level, when you rage you can choose to go into a frenzy. If you do so, for the duration of your rage you can make a single melee weapon attack as a bonus action each turn. When your rage ends, you suffer one level of exhaustion (as described in Appendix PH-A).</p>
</text>
</frenzy3>

What you should see is that the output from something created in FGU has id tags rather than names. So in order for you to get what you want to do to work is that you'll need to edit all of those id tags to be the names of the archetypes and features. Once you do that I think it should work as expected.

gmdmb3
December 14th, 2021, 21:46
See the second video linked here for how to add an archetype to an existing class in the SRD. https://www.fantasygrounds.com/forums/showthread.php?37112-New-Class-Creation-Video The problem you will have is that you can only use that class from your own module and only the archetypes attached to that class will show up. Similarly if you use a class from the PHB your archetypes won't show up when you get the choice.

It is possible to get this to work (I think) but you will need to edit the xml. If you look at the code snippets below you'll see the code for the path of the berserker from the SRD barbarian compared to the code for the new archetype that I added to it.

<id-00001>
<name type="string">New Archetype</name>
<text type="formattedtext">
<p>Some text</p>
<h>Features</h>
<p />
</text>
</id-00001>
<pathoftheberserker>
<level type="number">1</level>
<name type="string">Path of the Berserker</name>
<text type="formattedtext">
<p>For some barbarians, rage is a means to an end-that end being violence. The Path of the Berserker is a path of untrammeled fury, slick with blood. As you enter the berserker's rage, you thrill in the chaos of battle, heedless of your own health or well-being.</p>
<h>Features</h>
<linklist>
<link class="reference_classfeature" recordname="reference.classdata.barbarian.features.frenzy3@DD5 E SRD Data">Frenzy</link>
<link class="reference_classfeature" recordname="reference.classdata.barbarian.features.mindlessrag e6@DD5E SRD Data">Mindless Rage</link>
<link class="reference_classfeature" recordname="reference.classdata.barbarian.features.intimidatin gpresence10@DD5E SRD Data">Intimidating Presence</link>
<link class="reference_classfeature" recordname="reference.classdata.barbarian.features.retaliation 14@DD5E SRD Data">Retaliation</link>
</linklist>
</text>
</pathoftheberserker>

Similarly here's the code for a feature I added compared to the code for a feature out of the path of the berserker


<id-00001>
<level type="number">3</level>
<name type="string">New Feature</name>
<specialization type="string">New Archetype</specialization>
<specializationchoice type="number">0</specializationchoice>
<text type="formattedtext">
<p>Some text</p>
</text>
</id-00001>

<frenzy3>
<level type="number">3</level>
<name type="string">Frenzy</name>
<specialization type="string">Path of the Berserker</specialization>
<text type="formattedtext">
<p>Starting when you choose this path at 3rd level, when you rage you can choose to go into a frenzy. If you do so, for the duration of your rage you can make a single melee weapon attack as a bonus action each turn. When your rage ends, you suffer one level of exhaustion (as described in Appendix PH-A).</p>
</text>
</frenzy3>

What you should see is that the output from something created in FGU has id tags rather than names. So in order for you to get what you want to do to work is that you'll need to edit all of those id tags to be the names of the archetypes and features. Once you do that I think it should work as expected.

I appreciate the effort you put into this but sadly that solution is FAR beyond my skill set but thank you anyway. I'll just wait for a simpler solution to come about lol.