STAR TREK 2d20
  1. #1

    Changing the Soak attribute from Vigor to Spirit

    Hello guys!

    I am currently running a Beasts&Barbarians campaign and one of my players got an setting specific edge ,to change her soak role from Vigor to spirit.

    Is there a way ,to change this mechanic ,for this player only ?Its kind of a pain in the back ,to do this manually,during big fights (and there are lots of them ).

    Thank you in advance,and sorry for my poor English….I hope what I wrote is kind of understandable.

  2. #2

    Join Date
    Sep 2020
    Location
    Ballston Lake, NY
    Posts
    595
    Soaking with Vigor is built into the ruleset. There's no way to change that afaik, outside of writing a very specific extension.
    How are you doing it now? Maybe someone can suggest an easier manual way of doing this.

  3. #3

    Join Date
    Mar 2020
    Location
    Sydney, Australia
    Posts
    247
    This would have to be done via an extension.

    However I would have thought that the B&B FGU ruleset would have taken care of this.


    If this is not currently working then the following solution "should" work for you ... assumption is that you are using SWADE ruleset.

    1. Create a blank extension
    2. In that extension, create a LUA file that is loaded in the extension XML
    3. Create a copy of the soakRollHandler function in manager_trait.lua from the Savage Worlds Ruleset and name it something memorable
    4. In that function, there is a line that gets vigor as the trait roll (line 170)
    5. You need to insert code into there that checks for the fear on the character and then use Spirit if they are a Monk (contemplative) or not.
    6. In the onInit of the extension replace that soakRollHandler with your new version with something like TraitManager.soakRollHandler = myNewSoakRollHandler

    I currently to do not have time to look into this personally, however what I have outlined should work.


    I was able to sit down and write a quick extension to do this ... was not too hard.

    It relies on that character having a specific Edge that is checked for. It is not elegant since it copies a whole function and inserts some code, and I am sure there is a simpler/more elegant way to do this.

    I am putting the code below for the 2 files required for the extension.

    You will need to unzip the SavageWorlds ruleset, find the function soakRollHandler and copy the code from there into the launcher.lua file below.

    I decided against copying it for you because I might be infringing on some kind of copyright etc.

    All you then need to do is put the files in a folder in your Extensions directory for the Fantasy Grounds data.


    Extension.xml
    Code:
    <root version="4.0" release="1.0" logo="">
    <announcement text="Beasts and Barbarians Monk (Contemplative) Extension for Fantasy Grounds" icon="" font="emotefont" />
    
    	<properties>
    		<name>Beasts and Barbarians Monk (Contemplative)</name>
    		<version>1.00</version>
    		<author>david @ DSC</author>
    		<description>An extension to allow Contemplative Monks soak using Spirit.</description>
    		<ruleset>
    			<name>SavageWorlds</name>
    		</ruleset>
    		<loadorder>1000</loadorder>
    	</properties>
    
    	<base>
    		<script name="BBMCLauncher"					file="launcher.lua" />
    	</base>
    </root>
    launcher.lua
    Code:
    function onInit()
    	TraitManager.registerTraitRoll("soak", mySoakRollHandler)
    end
    
    
    function mySoakRollHandler(sActorType, nodeActor, sTraitType, rUserData, draginfo)
    
            -- code from original function goes here up until the following line
    
    	local nodeTrait = TraitManager.getTraitNode(sActorType, nodeActor, "vigor")
    	if CharacterManager.hasEdge(nodeActor, "Monk (Contemplative)").                  -- CHANGE THE EDGE NAME HERE!!!
    	then nodeTrait = TraitManager.getTraitNode(sActorType, nodeActor, "spirit") end
    
            -- final line of code goes here from original function
    end
    Hope that helps you out.
    Last edited by UrsaTeddy; February 22nd, 2023 at 00:31. Reason: Did not want to have code copied directly from ruleset displayed here
    Thanks In Advance,
    D

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
DICE PACKS BUNDLE

Log in

Log in