Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Savage Worlds

Notices

Reply
 
Thread Tools Display Modes
CapedCrusader
Senior Member
Volunteer Data File Contributor
 
Join Date: Aug 2009
Posts: 1,549

Old May 12th, 2017, 11:16 AM
OK, I think I can see two area of confusion in our communication:

There's a difference between the player interface and the editor. When I talk about limits on menus and such, I am talking about the player interface. Where it's set up so the player would make choices about the Race on the character record itself, affecting only that character.

I think you are mostly referring to the editor interface, where the Race record itself is modified, affecting all uses of that Race.

Am I right? If so, that's confusion #1. We are jumping back and forth between interfaces and they are different.

I think confusion #2 lies in that Races are constructed differently in Savage Worlds, code-wise. In the other systems, Races have a number of set attributes. Most of the various drop-downs and field entries are attributes of the Race record. In Savage Worlds, everything is bootstrapped onto the Race record.

That being said, let me look into adding some more user-friendly ways to add bootstraps to Race. I can see that Pathfinder has a few that deal directly with adding bootstraps. I might be able to add buttons to add Edges, Hindrances, Properties, and Abilities.

_
Currently In Development: Savage Pathfinder
Future Development: SWADE Super Powers Companion, SWADE Fantasy Companion
_
Currently Running: Savage Unity Inc. (homebrew multiverse theme)
Setting Files Supported: Deadlands: Reloaded, Flash Gordon, Gaslight, Hellfrost, Interface Zero 2.0, Seven Worlds, Slipstream, Solomon Kane
Future Setting Files: Savage Judge Dredd
CapedCrusader is offline   #151 Reply With Quote
Paragon
Senior Member
 
Join Date: Feb 2010
Posts: 874

Old May 12th, 2017, 03:07 PM
That would be a nice timesaver if nothing else.
Paragon is offline   #152 Reply With Quote
jfrazierjr
Senior Member
 
Join Date: Aug 2013
Posts: 123

Old May 12th, 2017, 06:51 PM
Quote:
Originally Posted by CapedCrusader View Post
OK, I think I can see two area of confusion in our communication:

There's a difference between the player interface and the editor. When I talk about limits on menus and such, I am talking about the player interface. Where it's set up so the player would make choices about the Race on the character record itself, affecting only that character.

I think you are mostly referring to the editor interface, where the Race record itself is modified, affecting all uses of that Race.

Am I right? If so, that's confusion #1. We are jumping back and forth between interfaces and they are different.
Well, partially but not completely.



Quote:
Originally Posted by CapedCrusader View Post
I think confusion #2 lies in that Races are constructed differently in Savage Worlds, code-wise. In the other systems, Races have a number of set attributes. Most of the various drop-downs and field entries are attributes of the Race record. In Savage Worlds, everything is bootstrapped onto the Race record.
Ok, so I am confused here. Perhaps I just don't have enough time "hands on" with HeroLab(I really am trying to learn and not be a PITA for you, I just don't understand). Again, checking (in the editor in my case), it appears that the approach is not significantly different, though perhaps a bit more complex.

For example, I opened 4e and then the editor. I then opened the Race tab in the editor and copy Dragonborn(since this is functionally the example I am trying to handle in many respects). This is in ddi_races.dat.

Checking out the bootstraps, I find. the following(I cut the description to minimize space more):

Code:
<thing id="rDragonbor" name="Dragonborn" description=" " compset="Race" uniqueness="unique">
    <fieldval field="racFlavor" value="Proud, honorable warriors, born from the blood of an ancient dragon god."/>
    <fieldval field="racCha" value="2"/>
    <fieldval field="racHtMin" value="74"/>
    <fieldval field="racHtMax" value="80"/>
    <fieldval field="racWtMin" value="220"/>
    <fieldval field="racWtMax" value="320"/>
    <fieldval field="racSpeed" value="6"/>
    <tag group="User" tag="StdRace"/>
    <tag group="Size" tag="Medium"/>
    <tag group="SkillBonus" tag="skHistory"/>
    <tag group="SkillBonus" tag="skIntimida"/>
    <bootstrap thing="lanDraconi"></bootstrap>
    <bootstrap thing="fRPlusAb">
      <autotag group="RaceBonus" tag="attrCon"/>
      <autotag group="RaceBonus" tag="attrStr"/>
      </bootstrap>
    <bootstrap thing="lanCommon"></bootstrap>
    <bootstrap thing="pRacDraBre"></bootstrap>
    <bootstrap thing="pRacDragon"></bootstrap>
    <bootstrap thing="fRDrDraHer"></bootstrap>
    <bootstrap thing="fRDrDraFur"></bootstrap>
    <bootstrap thing="fRDrDraRac"></bootstrap>
    <bootstrap thing="drgBrthTyp"></bootstrap>
    </thing>
Yes, some of these things are defined as a child of Race and are built in to race directly, so that EVERY Race gets them such as the fRPlusAb, but the exact value is defined(via the autotag) so that some races could pick between Str or Con, other races could pick between Int or Wis.

Others are simple bootstraps such as the fRDrDraRac(RacialFeat is or should be analogous to our RacialProp).

Code:
  <thing id="fRDrDraRac" name="Dragonborn Racial Power" description="When you select dragonborn as your character&apos;s race, choose one of the following powers. Your dragonborn character gains that power." compset="RaceFeat">
    <fieldval field="usrCandid1" value="thingid.pRacDraBre | thingid.pRacDragon"/>
    <tag group="Hide" tag="Special"/>
    </thing>
Since this goes into a field named usrCandid1, I ASSUME that this is one of a number of possible drop downs available. In this case, the end user would select from either Breath Weapon or Dragonborn Fear and would get those powers(similar to our Powers...). Additionally, in some way, if the chosen power on the race is Breath Weapon, a NEW(well hidden and not showing) field is prompts for Breath Weapon and gives a list of 3 possible attributes which are the "source" for the Dragon Breath.

Code:
  <thing
    id="drgBrthTyp"
    name="Breath Type"
    compset="RaceFeat"
    description="Choose the type of damage your breath weapon causes.">
    <fieldval field="usrSelect" value="Fire"/>
    <arrayval field="usrArray" index="0" value="Acid"/>
    <arrayval field="usrArray" index="1" value="Cold"/>
    <arrayval field="usrArray" index="2" value="Fire"/>
    <arrayval field="usrArray" index="3" value="Lightning"/>
    <arrayval field="usrArray" index="4" value="Poison"/>
    <tag group="Hide" tag="Special"/>
    <eval index="1" phase="Setup" priority="10000"><![CDATA[
~set our dragon breath power as the focus, for convenience
perform hero.childfound[pRacDraBre].setfocus
doneif (state.isfocus = 0)

~delete all keywords in our list
var i as number
for i = 0 to 4
  perform focus.deletestr["DamageType." & field[usrArray].arraytext[i]]
  next

~assign the new keyword
perform focus.assignstr["DamageType." & field[usrSelect].text]
]]></eval>
    </thing>

So I am a bit confused when you say Savage Worlds does things differently from other settings files, or perhaps am not seeing the forest for the trees(which might be why i was under the impression some of your previous statements might have "implied" a maximum number of dropdowns per game system for example).



Quote:
Originally Posted by CapedCrusader View Post
That being said, let me look into adding some more user-friendly ways to add bootstraps to Race. I can see that Pathfinder has a few that deal directly with adding bootstraps. I might be able to add buttons to add Edges, Hindrances, Properties, and Abilities.
Thank you. In a PERFECT world, I would really like the editor for Race(and an actual tab for races in the actual builder to have many more options. Examples(using 4e as a very rough example):
  • Skill Bonuses, honestly, in a perfect world, this would be a complex popup, but I don't know how much or how long it would take to build such a thing if it were even possible:
    • Each skill from the compset would be listed in a radio selection
    • One a skill were selected, you would then be able to select a die type from either a drop down or radio button list.
    • bootstrap the skill so that it shows up automatically and is removed if the race is somehow changed
    • offset the cost as this would be part of the racial package and should NOT count against skills taken
  • Abilities, just like above for skills
  • a few Menu #1 Tag Expression, Menu #2 Tag Expression for custom stuff the user wants to do.(If I am totally not understanding how this works, please let me know!), but I assume one could define a set of subraces with a new tag first and then point one of these types of fields to it as the source data for the drop down.)

Yes, this is a BIT slower than opening the bootstrap popup and picking the thing you want, but for NEW GM's trying to build out their races, this would be visual and MUCH easier to deal with.

Of course, I realize that this would just be the editor part, so a new Race tab(or popup or whatever honestly) would also have to be created. As well, outputs could need to be updated in some way to account for these various optional things. Yes, some games in SW won't use these things and if so, they would remain hidden, but when needed, they show up based upon the GM.

More importantly, I realize this is not a 2 week change(assuming it is all technically possible) and would be a fairly large project(in which case, others might be able to assist in the coding with the right knowledge! and this would be a win/win for multiple people). To start with, the easy test case might be a popup box showing all skills loaded in a radio button(or perhaps a list of check boxes) and bootstrap the selected values for free at d6.

btw, if anything I said was talking out of my ass because I don't understand how it all works, please let me know.
jfrazierjr is offline   #153 Reply With Quote
CapedCrusader
Senior Member
Volunteer Data File Contributor
 
Join Date: Aug 2009
Posts: 1,549

Old May 12th, 2017, 09:55 PM
The use of UsrCandid1 is part of the RaceFeat component in Pathfinder. It has the rest of the back-end structure to handle the menu. Savage World's Race component does not have that. UsrSelect for the breath weapon array is the same, it's supported in RaceFeat (PF) but not Race (SW). It's part of those differences I was talking about.

Part of the problem with the Skill bonus thing - SW doesn't have just one Skill list to deal with like the others. Every Setting has it's own additions. And in the Editor you can see them all, there are no Setting filters, it's the other way around. It assumes you want to be able to designate something as available in more than one source, so the relationship works the other way. It can be a real problem. I have over 2 dozen different Setting files loaded. There are 3-4 versions of some Skills. Sometimes it takes a couple of tries to get the right Skill. It's part of the price we pay for flexibility. I'll see what I can get away with. I've asked the head engineer what's available.

_
Currently In Development: Savage Pathfinder
Future Development: SWADE Super Powers Companion, SWADE Fantasy Companion
_
Currently Running: Savage Unity Inc. (homebrew multiverse theme)
Setting Files Supported: Deadlands: Reloaded, Flash Gordon, Gaslight, Hellfrost, Interface Zero 2.0, Seven Worlds, Slipstream, Solomon Kane
Future Setting Files: Savage Judge Dredd
CapedCrusader is offline   #154 Reply With Quote
jfrazierjr
Senior Member
 
Join Date: Aug 2013
Posts: 123

Old May 12th, 2017, 11:11 PM
Quote:
Originally Posted by CapedCrusader View Post
The use of UsrCandid1 is part of the RaceFeat component in Pathfinder. It has the rest of the back-end structure to handle the menu. Savage World's Race component does not have that. UsrSelect for the breath weapon array is the same, it's supported in RaceFeat (PF) but not Race (SW). It's part of those differences I was talking about.
I guess I still don't understand. The way it appears from examples I have seen is that UI fields in the editor can be re-used. They are defined in components.core at the BASE level(meaning all possible fields are defined first. I am using 4E as my baseline for finding things specifically because the source files ARE available to use the end user unlike Pathfinder(which I assume you might have access to given your position).

Then, each component which wishes to utilize said field has to then define that field as belonging to the parent thing(race, edge, skill or whatever wants to use usrSelect via an inheritance mechanism of some sort.

I know(well, suspect) this as the <Field id="usrSelect"/> is then reused in multiple locations to display a dropdown(classes, feats, races, etc) in 4E. Savage Worlds appears to only use usrSelect in edges, but I can't see why it cannot be defined as a child object of Race, Skills, or any other top level thing you as the core data file developer determine it needs to belong to.

It's not supported because the core data files have not made it be supported as a child field for Race, or Skill or whatever, not because it's not technically infeasible. Or perhaps I am totally misunderstanding just how extensible HeroLab actually is.



Quote:
Originally Posted by CapedCrusader View Post
Part of the problem with the Skill bonus thing - SW doesn't have just one Skill list to deal with like the others. Every Setting has it's own additions. And in the Editor you can see them all, there are no Setting filters, it's the other way around. It assumes you want to be able to designate something as available in more than one source, so the relationship works the other way. It can be a real problem. I have over 2 dozen different Setting files loaded. There are 3-4 versions of some Skills. Sometimes it takes a couple of tries to get the right Skill. It's part of the price we pay for flexibility. I'll see what I can get away with. I've asked the head engineer what's available.
Thank you ! This was the level of detail I was really looking for in an answer and this makes perfect sense. It's still annoying and I really hope your developer can find a solution without a code(ie, runtime code) change which I know won't happen for quite a while. I am seriously hoping that perhaps there might be a way to filter by source, but I also understand that Savage Worlds is the really odd thing because there are so many duplicates due to various source overrides.

I know it's frustrating for me to see 5 copies of a skill in the editor, but that's something i could live with, but as an end user simply building a character, it would be unacceptable. How much control do you have in those popup dialog windows? Since there may not be a way to filter, can said dialogs contain more than the two columns(I assume it's possible)? ie, what if there was column for source? I know it would not be a perfect solution by a longshot, but it might be workable. Is there a sort feature available? If both extra column AND sort were available, that would be even that much closer as all for a setting would be grouped. Again, not a prefect solution of course, but perhaps others would like to pipe in on this limitation to see if it would be worth pursuing(assuming it works that is with those features).


Another question along those same lines, is there the ability to make a dropdown and dynamically load the values to the list of possible values? I have no idea if this is possible or not in the hero lab script code, but if it were, we could loop over the selected sources, and then the skills in said sources, and build the dropdown dynamically. of course, I would guess that this feature does not exist, but again, it never hurts to ask.


Thank you for putting up with my questions and extremely long examples.
jfrazierjr is offline   #155 Reply With Quote
CapedCrusader
Senior Member
Volunteer Data File Contributor
 
Join Date: Aug 2009
Posts: 1,549

Old May 13th, 2017, 03:25 AM
Ah, I see. No, that's not usually the way it works. Each field definition is specific to that component. The fields aren't re-used, although sometimes field names are re-used. Now, the usrCandid1 field is part of the UserSelect component, as is the usrSelect field. That's currently only used in the Edges and Racial Properties component sets. It'd have to be added to Race.

And, no, I can't see the Pathfinder code objects, just Savage Worlds. If I asked, they'd probably let me have a set, I've never asked. And if memory serves, you can clone a game system and it creates an un-compiled set of files for you to modify.

I'm not saying it can't be done. I'm saying that, at present, those objects don't exist on Race because it's never been asked for. Setting up a Race is something that's done once at the beginning of a campaign and then never really touched again, for the most part. We've never really spent a bunch of effort on it because it's not something people have asked for. I create them all the time for Setting files and it's never really been an issue. The Races usually get created with the Setting. I'm used to going through the bootstrap button on Race and adding things that way. There's a sub-menu on that form to filter by object type (Racial Properties, Racial Abilities, etc) and it gives you places to add tags and field values for those that need it.

One of the Setting files I am working on (it's way down on the list, but it's there) is Star Wars. With a TON of alien races. Having a simplified interface to build Races has merit. It's just going to take a bit more than simply adding the edit objects. I've not done a bootstrap editing object in the editor yet, and I'm not sure how to code it. I've asked the fine folks at LW for some info.

_
Currently In Development: Savage Pathfinder
Future Development: SWADE Super Powers Companion, SWADE Fantasy Companion
_
Currently Running: Savage Unity Inc. (homebrew multiverse theme)
Setting Files Supported: Deadlands: Reloaded, Flash Gordon, Gaslight, Hellfrost, Interface Zero 2.0, Seven Worlds, Slipstream, Solomon Kane
Future Setting Files: Savage Judge Dredd
CapedCrusader is offline   #156 Reply With Quote
CapedCrusader
Senior Member
Volunteer Data File Contributor
 
Join Date: Aug 2009
Posts: 1,549

Old May 16th, 2017, 08:48 PM
I was able to add some new buttons to the Editor... You'll still have to add tags and such for Skilldie on Skills and any additional info on each bootstrap, but this'll make it easier to add multiple Racial Properties, Racial Abilities, Edges, Hindrances and Skills to Race, plus some other goodies. I added some of these same buttons to a few other places. (Creatures, Factions, and Groups)

_
Currently In Development: Savage Pathfinder
Future Development: SWADE Super Powers Companion, SWADE Fantasy Companion
_
Currently Running: Savage Unity Inc. (homebrew multiverse theme)
Setting Files Supported: Deadlands: Reloaded, Flash Gordon, Gaslight, Hellfrost, Interface Zero 2.0, Seven Worlds, Slipstream, Solomon Kane
Future Setting Files: Savage Judge Dredd
CapedCrusader is offline   #157 Reply With Quote
zarlor
Senior Member
 
Join Date: Nov 2010
Location: Metairie, LA, USA
Posts: 1,819

Old May 17th, 2017, 03:31 AM
Quote:
Originally Posted by CapedCrusader View Post
I was able to add some new buttons to the Editor... You'll still have to add tags and such for Skilldie on Skills and any additional info on each bootstrap, but this'll make it easier to add multiple Racial Properties, Racial Abilities, Edges, Hindrances and Skills to Race, plus some other goodies. I added some of these same buttons to a few other places. (Creatures, Factions, and Groups)
Nice! I know one of my requests has been to improve some things to make the Editor easier to use, but that's a pretty nebulous request. These kinds of specific changes, though, are more of the kinds of things that I think will be really helpful in making things a little less intimidating for folks new to using the Editor. I just haven't had the great ideas on specific ways, like this, to do that so seeing other folks come up with them and being implemented is really awesome. Thanks CC!

Lenny Zimmermann
Metairie, LA, USA

Data files authored (please let me know if you see any issues with any of these if you have/use them):
Official (In the downloader)
50 Fathoms, Deadlands: Hell On Earth, Deadlands: Noir, East Texas University, Necessary Evil (requires Super Powers Companion), Pirates of the Spanish Main, Space 1889 (original file by Erich), Tour of Darkness, Weird War II, Weird Wars: Rome
Coming Eventually
Evernight (LWD has completed their review but I have some fixes to make first... although Pinnacle mentioned this might get an overhaul to SWADE so I may just wait for that first. If you just HAVE to have this now, though, just PM me)
zarlor is offline   #158 Reply With Quote
dartnet
Senior Member
Volunteer Data File Contributor
 
Join Date: Jan 2007
Posts: 591

Old May 17th, 2017, 05:01 AM
I would love to see support for Iconic frameworks and heroic paths from Rifts because I have a feeling that we are going to see more of these soon.
dartnet is offline   #159 Reply With Quote
jfrazierjr
Senior Member
 
Join Date: Aug 2013
Posts: 123

Old May 17th, 2017, 06:56 AM
Quote:
Originally Posted by CapedCrusader View Post
I was able to add some new buttons to the Editor... You'll still have to add tags and such for Skilldie on Skills and any additional info on each bootstrap, but this'll make it easier to add multiple Racial Properties, Racial Abilities, Edges, Hindrances and Skills to Race, plus some other goodies. I added some of these same buttons to a few other places. (Creatures, Factions, and Groups)

Thanks, I look forward to seeing just what your work has produced and what the specifics are. For some context, I have no issue dealing with manually bootstrapping things, but where possible, the things which are normal and logical should be easy and adding an attribute for free at d6 to a race is so common that every core rulebook race has one(IIRC), so making that one case easier for non technical people should be as easy as possible.

Did you happen to add one or more text and drop down fields to the race component? I know I had originrally suggested a Race tab, but the more I play with HeroLab, I realized that all of the OTHER race specific stuff(example, All Thumbs, Agile, Low Light Vision, etc for elves) all show up on the Special tab. In the short term, this would be an acceptable solution for the presentation of any setting specific text fields and/or dropdowns required for a given race rather than a new specific tab for the race related stuff(though, it would be nice as a long term option to be developed as time permits).


One thing i would like to also suggest on the Special tab is to break things down into some separate groupings at some time in the future. All of the special traits are listed one after another and it would be nice to have these categorized. Since you have mentioned Pathfinder a few times, I refer to their Background Tab(for others, this contains Race, Alignment, Diety drop downs as well as sub group headers for Faction, Alternate Racial Traits(not sure what this is since I don't play PF), etc.

http://i65.tinypic.com/o0pic0.png

I don't know what else comes up there, but IMHO, i would be nice if the Racial stuff were separated from the Bennies(the only thing I know shows up there at this point) in some way. Again, this is a long term request and not critical for the current feature(ie, get to it when you can).


-----------------------------------------------------

Did you happen to have any luck with the whole player choose their free skill at d6 type thing? I know you mentioned having to check with some developers on that since there are so many overridden skills and currently, it will just show them all including ones not selected for that setting. I really hope this is something that can be figured out as it's a semi common race feature.

For the record, exactly how would you do this TODAY with the current code?
I assume you would have to create an edge, bootstrap it with the proper dropdown list of skills for said setting entered by each author, and then script each drop down list to assign the to the actual skill manually, finally crediting back the edge so it does not count against the points available during creation? Is that about the gist of it in rough terms?
jfrazierjr is offline   #160 Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 01:22 PM.


Powered by vBulletin® - Copyright ©2000 - 2024, vBulletin Solutions, Inc.
wolflair.com copyright ©1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.