• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

World is Square house rules

I'll give that a try. I wish I were at home and could post my code for Weapon Focus so you could see it directly though -- it's pretty different from the stock Weapon Focus. Look for an update in a few hours!
 
I'm not sure I understand why a custom Weapon Focus is even required here - why not just bootstrap in Martial Mastery from the main mechanic, since that is essentially what the feat tax rules describe anyway.
 
Last edited:
I initially thought the same, but abandoned that approach. Basically, it came down to a user interface choice.

Martial Mastery functions by choosing a specific weapon, and then you get the benefits of Weapon Focus for all other weapons that share a group with that weapon. That requires the end user to understand that if they want Weapon Focus (Heavy Blades), they have to pick Weapon Focus (Greatsword) or another heavy blade, and the bonus will be silently applied to whatever heavy blade they happen to have in their possession even though it's listed on their character sheet as "Greatsword".

It also requires them to navigate the incredibly long list of every possible weapon in the game, which is hundreds long at this point. Particularly since Hero Lab implements all the weird little one-off weapons which have to appear in the feat because one monster in some splatbook has Weapon Focus (Tentacle Beard).

Compare to being given a list of 16 weapon groups and picking one. You don't have to guess which weapon is in which group, or understand that picking one weapon is technically the same as picking its whole group. You just pick your group and be done.

The coding was somewhat more difficult on the back end, but the end result is substantially easier to use.
 
Okay, shopping is done, dinner is cooked and eaten, dishes have been dealt with, and now here's the code.

The Mechanic I currently have set up looks like this (after some compositing into a single screenshot):

attachment.php


In addition, it has a fairly simple eval script that runs at Final Phase 100:

Code:
doneif (hero.tagis[source.WiSRules] = 0)

~ We're an NPC, and subject to feat taxes, so we're done
doneif (hero.tagis[WiSRules.PayFeatTax] <> 0)

~ Check if we're a Kapenia Dancer, and bail out if not
doneif (hero.tagcount[ClassVary.arMagKapen] = 0)

perform hero.child[fwsWepFoc].assign[thing.skipprereq]

All that really does is tell it to ignore the pre-reqs.

Meanwhile, the eval script for Weapon Focus, running at Post-Levels 10000, is as follows:

Code:
~ If we're disabled, do nothing
doneif (tagis[Helper.FtDisable] <> 0)

~if we haven't chosen anything yet, just get out now
doneif (field[usrChosen1].ischosen + tagis[GTarget.?] = 0)

~get the wFtrGroup tag from our choice or GTarget tag
if (tagis[GTarget.?] <> 0) then
	perform this.pulltags[GTarget.?,wFtrGroup]
else
	perform field[usrChosen1].chosen.pulltags[wFtrGroup.?]
endif

~if we didn't find a wFtrGroup tag, there's nothing more we can do
doneif (tagis[wFtrGroup.?] = 0)

~ Get the list of weapons in the group.
var searchexp as string
searchexp = tagids[wFtrGroup.?,"|"]

~ Tag the hero has having weapon focus for each weapon
~ in order to satisfy pre-requisites for feats that
~ require weapon focus with a specific weapon.
foreach thing in BaseWep where searchexp
	if (eachthing.tagis[WepFocus.?] <> 0) then
		perform hero.assignstr[eachthing.tagids[WepFocus.?, ","]]
	endif
nexteach

~ Iterate through the weapons currently in the hero's possession
~ and apply the bonus to those that the hero is proficient with.
foreach pick in hero from BaseWep
	var proceed as number
	proceed = 0

	~ Must be part of this weapon group.
    if (eachpick.tagmatch[wFtrGroup,wFtrGroup,initial] <> 0) then
		proceed += 1
	endif

	~ Hero must be proficient with the weapon.
    if (eachpick.tagcount[Helper.Proficient] <> 0) then
		proceed += 1
	endif

	~ Yay, passed both tests.  Award them their shiny +1.
    if (proceed > 1) then
		perform eachpick.assign[Broadcast.WepFocus]
    endif
nexteach

~ Finally, tag the hero as having group weapon focus.
var boundary as number
var group as string
boundary = pos(searchexp, ".") + 1
group = mid(searchexp, boundary, length(searchexp))

perform hero.assignstr["WepGFoc." & group]

The end result on my test Kapenia Dancer looks like this:

attachment.php


The attack bonus appears to be correct. Under World is Square rules, all heros get Weapon Finesse automatically on light weapons, hence the dex mod in the attack bonus. And the weapon focus is applied to the scarf, but not the unarmed strike.

The only problem is that the Weapon Focus feat remains in an unselected state instead of selected. It should look like this:

attachment.php


Ideally, it would also be impossible to change the assignment away from Flails, since the PC is supposed to get this specific one, not their choice of any. That's all I really need to do -- set the state of usrChosen1 to the correct value and then turn it off.
 

Attachments

  • kapenia.png
    kapenia.png
    458.8 KB · Views: 133
  • kapenia2.png
    kapenia2.png
    338.1 KB · Views: 134
  • kapenia3.png
    kapenia3.png
    6.9 KB · Views: 134
The Target group can look as if it pre-selects something, because in the core files, we can control the display scripts, and make the display of that drop-down pretend to have chosen something. That is not something your made up tag group can get in on.

So, to repeat something Aaron said earlier, why create this new GTarget group? Why can't you use Target tags? If you need new picks to choose from just for this purpose, that's what the Selection Helper compset is for, but I'd look at borrowing the fighter weapon training abilities, first.
 
Okay! I tore out the GTarget stuff, put in a dummy thing with tag definitions per Aaron's suggestion, and adjusted my eval scripts to match. It works fine now. Thank you both very much.

I could wish for a more obvious mechanism for setting the value of a drop-down menu. Numeric fields can be set with .value, and textual fields can be set with .text, but unless I've missed something there's no operation for specifying what a menu should be set to.

Ah well. Onward!
 
All right! I think I have completed all of the requested changes, plus a few things.

[X] Monks, Unchained Monks, and Brawlers now get Unarmed Combatant for free
[X] Weapon Focus requires BAB of +1 or higher
[X] Weapon Focus works for animal companions
[X] Mythic Improved Critical works with World is Square rules
[X] Kapenia Dancer magus archetype gets Weapon Focus (Flails) for free
[X] Feral Child druid archetype gets Unarmed Combatant for free
[X] Corrected a bunch of typos in the feat descriptions
[X] Made it possible to selectively enable portions of the rule set.

If you have an existing character using WiS rules that has Mythic Improved Critical selected, you will need to delete that feat and re-add it after updating. The original Mythic Improved Critical feat has been suppressed with a Preclude, and replaced with one that uses Weapon Groups instead of individual weapons. The critical multiplier increase applies to all weapons in the selected group, except those for which the hero lacks proficiency.

The last item on the list is involved, and needs explanation. The list of World is Square options in the hero configurator (CTRL+K) now looks like this:

attachment.php


Enable all World is Square rules: Formerly named "Eliminate feat taxes". This turns on all of the World is Square house rules at once. If you have an existing character using this rule set, this will already be checked and the PC should continue to function as normal before.

Grant Default Combat Feats: when this is active, the PC will receive
Agile Maneuvers, Combat Expertise, Deadly Aim, Point Black Shot, Power Attack and Weapon Finesse for free, provided their BAB is high enough to qualify. Agile Maneuvers will only be applied if the hero's DEX mod is higher than their STR mod. Point Blank Shot is given to the hero so that they will qualify for subsequent feats, but its effects are suppressed. Weapon Finesse will not appear in the list of feats, but its effects are applied to light weapons when the PC's DEX mod is higher than their STR mod.

Group Weapon Feats: uses fighter weapon groups in the selectors for Weapon Focus, Greater Weapon Focus, Weapon Specialization, Greater Weapon Specialization, Improved Critical, and Mythic Improved Critical. Also enables Weapon Focus (ray), because rays are not present in any weapon group.

Combine Combat Maneuvers: replaces the usual combat maneuver feats with Unarmed Combatant (Improved Unarmed Strike, Improved Grapple), Deft Maneuvers (Improved Feint, Disarm, Dirty Trick, and Steal), and Powerful Maneuvers (Improved Bull Rush, Drag, Overrun, and Sunder).

Dodge and Two-Weapon Fighting: combines Dodge and Mobility into a single feat, and causes Improved Two-Weapon Fighting to scale with level.

NPCs pay normal feat taxes: functions as before.

I made adjustments to a couple archetypes, Kapenia Dancer (magus) and Feral Child (druid). These archetypes grant bonus feats that were replaced or altered by the World is Square house rules. PCs with these archetypes are now granted the equivalent World is Square feat at the appropriate level. If you would like a similar adjustment for some other archetype in the same position, please post a request here. There are an awful lot of other archetypes that could do with adjusting, but I think I'd rather adjust on a per-request basis than attempt a comprehensive reworking of the vast profusion of options out there.

At this point, I would like to ask for assistance with testing. If you are one of the people who requested a change, or just happen to be interested, please consider taking a moment to help with testing. To do so:

  • download the attached files and place them in your pathfinder game system folder
  • Rename world-is-square.txt to world-is-square.1st
  • Open Hero Lab, let it compile and load the data files
  • Load up a character and check to see if it's working.

Try enabling and disabling things. I would prefer to catch as many bugs as possible BEFORE pushing out an update through the update channel I established. Thanks.
 

Attachments

Last edited:
Just pushed out 1.2, a quick bug fix. Warpriests are supposed to get Weapon Focus for free at level 1, and weren't because it was suppressed. I've corrected that.

I thought it worked correctly with the Sacred Weapon damage bonus, too, but on further investigation, not quite. The sacred weapon damage die increase is working for your deity's favored weapon, but it's supposed to work for any weapon in which you have weapon focus also. And it's not. So, for example, a devotee of Calistria with Weapon Focus (Flails) will get the increased damage dice on a whip, but not on a heavy flail even though they technically have weapon focus for both and should get the increased damage dice for both.

I'll have to poke at it some more.
 
When using the WiS Weapon Focus ability, I continue to get this after selection of the weapon class:

Invalid syntax for tag template
Location: 'eval' script for Thing 'fwsWepFoc' (Eval script #1) near line 32

I also occasionally get this:

Invalid tag expression specified for 'foreach' statement
Location: 'pre-requisite rule' script for Thing 'fCoverFirV' near line 9

'fCoverFirV' has, of course, Weapon Focus (in this case with any firearm) as a prerequisite.

Hm. Would it work better for you to, instead of precluding 'fWepFoc', instead have 'fwsWepFoc' replace 'fWepFoc'?
 
Last edited:
Unfortunately, no. I initially used replace instead of preclude, but doing so caused problems. Specifically, if you use replace, that replacement happens even if the WiS rules are not enabled. Which naturally bollixes up every non-WiS character who has Weapon Focus. There are a lot of those.

Could you please post a copy of the portfolio that's causing this problem, with a description of the exact steps to reproduce the error? I have come across those errors before, but they've been sporadic. It would help a lot to have a consistent way to reproduce the problem so that I can diagnose the root cause. It may be a timing issue.
 
Wyrm, never mind on that request for a .por file. I think I've got it nailed down.

And, amazingly, it's not a bug in my code! (For once.) It's a bug in the pre-reqs script for the feat Covering Fire (the one from the Villain Codex).

The pre-req code for that feat currently looks like this:

Code:
var tagexpr as string

if (hero.tagis[WepFocus.?] <> 0) then
	tagexpr = "wCategory.Firearm & (" & hero.tagids[WepFocus.?] & ")"
else
	@valid = 0
	done
endif

foreach thing in BaseWep where tagexpr
	@valid = 1
nexteach

Because the error says it was an invalid tag expression, I copied this script over to a fake feat called Blork and added a line like this right after the tagexpr variable is defined:

Code:
	debug "Tag expression is: " & tagexpr

Then I set up a Gunslinger with the World is Square rules turned on, added Weapon Focus (Firearms), and Covering Fire. The debug output looks like this:

Code:
Tag expression is: wCategory.Firearm & (WepFocus.wAasenMort,WepFocus.wMHAirPist,WepFocus.wMHAirRifl,WepFocus.wArcPistol,WepFocus.wArcRifle,WepFocus.wAutograpn,WepFocus.wAxeMusket,WepFocus.wBlunderbu,WepFocus.wBombardHv,WepFocus.wBombardLt,WepFocus.wBombardSt,WepFocus.wBuckGun,WepFocus.wCannon,WepFocus.wCannFiend,WepFocus.wGRCannGre,WepFocus.wGRCannHvy,WepFocus.wGRCannLgt,WepFocus.wGRCannSct,WepFocus.wMHHKMP5,WepFocus.wMHHKMP5K,WepFocus.wMHM4Carbi,WepFocus.wMHUzi,WepFocus.wCulverin,WepFocus.wDartGun,WepFocus.wDeathRay,WepFocus.wDblHackbu,WepFocus.wGRDragon,WepFocus.wDragMuske,WepFocus.wDragPisto,WepFocus.wEMPPistol,WepFocus.wEMPRifle,WepFocus.wFirelance,WepFocus.wMHFlameth,WepFocus.wFlaTh1917,WepFocus.wMHFlareGn,WepFocus.wFlareGun,WepFocus.wMPBBGatgn,WepFocus.wGRGorgon,WepFocus.wGravPisto,WepFocus.wGravRifle,WepFocus.wMHM792,WepFocus.wGRHarpy,WepFocus.wHotchkiss,WepFocus.wIdRifle,WepFocus.wInfPistol,WepFocus.wLasPistol,WepFocus.wLasPist2,WepFocus.wLaserRifl,WepFocus.wLMGMadsen,WepFocus.wMHM2HB,WepFocus.wMHM60,WepFocus.wMHTTMG,WepFocus.wGRMedusa,WepFocus.wMHNetLaun,WepFocus.wMHPntBlGn,WepFocus.wMHBer92F,WepFocus.wMHBer93R,WepFocus.wMHCM1911,WepFocus.wMHCDE10mm,WepFocus.wMHDerring,WepFocus.wMHDestEgl,WepFocus.wMHFalcon4,WepFocus.wMHGlock17,WepFocus.wMHGlock20,WepFocus.wMHMAC10,WepFocus.wMHSITESM9,WepFocus.wMHSkorpin,WepFocus.wMHTEC9,WepFocus.wMHWalPPK,WepFocus.wGRPrivate,WepFocus.wMHCPython,WepFocus.wMHPathfin,WepFocus.wMHRugerSv,WepFocus.wMHSWM29,WepFocus.wMHAK47,WepFocus.wMHBarLtFy,WepFocus.wMHHKG3,WepFocus.wMHHKPSG1,WepFocus.wMHM16A2,WepFocus.wMHOICW,WepFocus.wMHRem762,WepFocus.wMHSterAUG,WepFocus.wMHTACMIL,WepFocus.wMHWinch94,WepFocus.wMSRDConcs,WepFocus.wMSRDCryon,WepFocus.wMHLAW,WepFocus.wMHBene121,WepFocus.wMHBerM3P,WepFocus.wMHBrnBPS,WepFocus.wMHMoss12G,WepFocus.wMHSawShot,WepFocus.wMPSCEGRSG,WepFocus.wMHSkFmSpr,WepFocus.wGRStinger,WepFocus.wMHSpWatGn,WepFocus.wGRSwivGun,WepFocus.wMHTaser,WepFocus.wGRTitan,WepFocus.wMHWaterCn)

Yup -- the hero was successfully tagged as having Weapon Focus with every single firearm in the game. But the resulting tag expression is totally invalid -- hence the error.

If you disable the WiS rules and create a gunslinger with Weapon Focus (Blunderbuss) and Covering Fire, everything works great. In that case, my test code yields this:

Code:
Tag expression is: wCategory.Firearm & (WepFocus.wBlunderbu)

This is a valid tag expression and works fine.

But if you take that same gunslinger (without the WiS rules) and add a second Weapon Focus feat, it triggers the invalid tag expression error. Here's the debug output for a gunslinger who's got Covering Fire, Weapon Focus (Blunderbuss) and Weapon Focus (Lance):

Code:
Tag expression is: wCategory.Firearm & (WepFocus.wBlunderbu,WepFocus.wLance)

So basically, the Covering Fire pre-req script is bugged in such a way that it cannot tolerate a PC with more than one Weapon Focus feat.

I'll file a bug report.
 
Having some issues with this mod. Ive followed all the instructions for import, when I get to the in-game setup step I scroll down to House Rules and cannot find the "World is Square" options in any form.

Please help.
 
Hrm! Well, that's unexpected.

Just to confirm, you added the source, and it did the import and told you the import was successful, right?

Did you get any error messages at any point? If so, when did they occur and what did they say?

What other Hero Lab mods do you have installed, if any? It's possible they might not be playing nice with each other.

Try deleting the WiS rules using the "manage third-party updates" option and then reinstall them.
 
I've noticed recently that when I equip a shield an ACP is being applied to my attacks as if I'm not proficient with it. It happens when I use the first 2 option in the newest update.
 
I've noticed recently that when I equip a shield an ACP is being applied to my attacks as if I'm not proficient with it. It happens when I use the first 2 option in the newest update.

Using weapon finesse? if so, that is working as intended (unless world is square is supposed to change that).
 
I built a level 1 rogue with WiS enabled, and gave him a short sword and a shield. When he has the shield equipped, his attack bonus looks like this:

Melee -2 = +0 (BAB) +2 (dexterity mod) -2 (ACP from armor) -2 (ACP from shield)

Then I disabled the WiS rules and gave him Weapon Finesse normally. His attack bonus then looked like this:

Melee -2 = +0 (BAB) +2 (dexterity mod) -2 (ACP from armor) -2 (ACP from shield)

I'm getting identical results whether the World is Square rules are enabled or not, so I don't think it's a WiS thing.

As to whether it's really supposed to apply that armor check penalty TWICE, I don't know. It seems a tad punitive.

My test PC wasn't wearing armor -- his only gear was a shield and the short sword. I've attached the portfolio in case anyone wants to verify that I'm not crazy. Please, please verify that I'm not crazy. I'M NOT CRAZY! *froths*
 

Attachments

Your character is not proficient with a shield, thus you get a penalty (equal to its ACP) on all attacks. That's the -2 armour penalty. You then get an additional -2 penalty because of Weapon Finesse and a shield.
This has nothing to do with the WiS data files - I don't have them at all, so they weren't active. You could report this as a bug if you don't think both penalties should stack.
 
Back
Top