• 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

Help with a Vecna Rogue archetype

eldamir

Active member
My DM has gotten me hooked on the homebrew options over on middlefingerofvecna and for my roglock, I've managed to put the majority of the two variants that I'm using (The Wild Hunt patron and Spell Thief rogue archetype) into Hero Labs, but have run into a bit of a road block with Spell Thief.
I copied the Arcane Trickster to create Spell Thief, but the spell progression of Spell Thief is more like that of a warlock than how Arcane Trickster does it. I haven't been able to figure out how to set spells known and spell levels within the Class Special along those lines.

TIA
 
Last edited:
Take a look at the Arcane Tricker archetype for the rogue. You might try using it as a basis since it is already a rogue archetype.

I don't know if it's just me, but the Middle Finger of Veca site won't come up for me. I know I've been there befome . . .
 
Last edited:
It probably won't come up because it appears that I have a bad link in the first post (which I just fixed - had a double http:// at the beginning)
I copied it from the Arcane Trickster archetype. I found the Eval Script that sets it up and have been trying to muddle through how the Warlock sets it's spell levels up (by making a copy and looking at it's Eval Scripts), but haven't been able to crack that code yet.
I'll spend some more time looking at it tonight and see if I can figure things out.
 
If its a rogue archtype you are working on (aka Spellthief, its better to use Arcane Trickster as a basis since it is already setup for an arcane caster rogue. To convert a warlock to a rogue archtype you may as well do it from scratch.
 
The Spell Thief has a lot of the traits of the Arcane Trickster, but how the spell slots and casting works is much more in line with how Warlock does it..

Here's what I have right now in 3 Eval Scripts
The first Script is setting up both a single Warlock slot (0th level)
Code:
(Phase: Post Levels / Priority 10000 / Index 2)

       perform linkage[table].setfocus

        doneif (state.isfocus = 0)

      var numslots as number

      if (field[cTotalLev].value >= 17) then
        numslots += 4
      elseif (field[cTotalLev].value >= 11) then
        numslots += 3
      elseif (field[cTotalLev].value >= 2) then
        numslots += 2
      else
        numslots += 1
        endif

      ~ Add the slots to the highest spell level allowed at the current level.
      perform hero.child[SlotHoldWa].setfocus
      focus.field[MaxAllow].value += numslots
      if (field[cMaxKnLev].value = 18) then
        perform focus.assign[sLevel.4]
      elseif (field[cMaxKnLev].value = 12) then
        perform focus.assign[sLevel.3]
      elseif (field[cMaxKnLev].value = 6) then
        perform focus.assign[sLevel.2]
      elseif (field[cMaxKnLev].value = 2) then
        perform focus.assign[sLevel.1]
        endif

And the second Eval Script
This one seems to be doing what I want - I have cantrips and spell DCs as expected based on class level and CHA.
Code:
(Phase First / Priority 1000 / Index 1)

      perform linkage[table].setfocus

        doneif (state.isfocus = 0)

        ~ Spellcasting attribute
        perform focus.setlinkage[castattr,BaseAttr,"IsAttr.aCHA"]

        ~ Spellcasting type
        perform focus.assign[CasterType.SpontKnow]
        perform focus.assign[CasterSrc.Arcane]
        perform focus.assign[Helper.3rdCaster]
        perform focus.assign[sClass.cHelpSor]

        ~ Cantrip Array
        focus.field[cArrKnCan].arrayvalue[2] += 2
        focus.field[cArrKnCan].arrayvalue[9] += 3

And the 3rd Eval Script -- this one is the only way that i've so far been able to pick spells in the "Rogue Spells" tab
Code:
(Phase First / Priority 100 / Index 3)

      perform linkage[table].setfocus

        doneif (state.isfocus = 0)

        ~ Spells Known Array
        focus.field[cArrKnSpl].arrayvalue[2] += 3
        focus.field[cArrKnSpl].arrayvalue[3] += 4
        focus.field[cArrKnSpl].arrayvalue[6] += 5
        focus.field[cArrKnSpl].arrayvalue[7] += 6
        focus.field[cArrKnSpl].arrayvalue[9] += 7
        focus.field[cArrKnSpl].arrayvalue[10] += 8
        focus.field[cArrKnSpl].arrayvalue[12] += 9
        focus.field[cArrKnSpl].arrayvalue[13] += 10
        focus.field[cArrKnSpl].arrayvalue[15] += 11
        focus.field[cArrKnSpl].arrayvalue[18] += 12
        focus.field[cArrKnSpl].arrayvalue[19] += 13

        ~ Max Spell Levels Array
        focus.field[cArrKnLev].arrayvalue[2] += 1
        focus.field[cArrKnLev].arrayvalue[6] += 2
        focus.field[cArrKnLev].arrayvalue[12] += 3
        focus.field[cArrKnLev].arrayvalue[18] += 4

Somewhere, Spell slots are getting set for 1st through 4th level. I'm inclined to think they're coming from the last block in the first script as they persist even when the 3rd script is deleted.
I figured out that the Warlock slot is coming from the SlotHoldWa, but don't know where that's being setup to be able to clone and modify for rogue levels.

I'm out of time to play around with it, and to be honest, I'm just copy/pasting and hoping in a lot of cases with this, so am not really surprised that I haven't made much progress :)
 
~ Max Spell Levels Array
focus.field[cArrKnLev].arrayvalue[2] += 1
focus.field[cArrKnLev].arrayvalue[6] += 2
focus.field[cArrKnLev].arrayvalue[12] += 3
focus.field[cArrKnLev].arrayvalue[18] += 4

This is where you set when you get 1st, 2nd, 3rd, and 4th level spells as you suspected.
(Phase First / Priority 1000 / Index 1)

perform linkage
.setfocus

doneif (state.isfocus = 0)

~ Spellcasting attribute
perform focus.setlinkage[castattr,BaseAttr,"IsAttr.aCHA"]

~ Spellcasting type
perform focus.assign[CasterType.SpontKnow]
perform focus.assign[CasterSrc.Arcane]
perform focus.assign[Helper.3rdCaster]
perform focus.assign[sClass.cHelpSor]

~ Cantrip Array
focus.field[cArrKnCan].arrayvalue[2] += 2
focus.field[cArrKnCan].arrayvalue[9] += 3


perform focus.assign[sClass.cHelpSor] <- should be set to cHelpWar I believe (cHelpWar being warlock I believe).

perform focus.assign[Helper.3rdCaster] <- should be changed to perform focus.assign[Helper.WarlocCast]

I'd have to actually build the subclass myself to be sure.
 
Thanks for that, Mergon.
Changing sClass.cHelpSor to sClass.cHelpWlk gives me the Warlock spell list, so I changed that back - Spell Thief uses the Sorcerer spell lists.

Changing focus.assign[Helper.3rdCaster] to focus.assign[Helper.WarlocCast] does indeed drop the Spell Slots of each level, but still shows as a Warlock spell slot (of level 0 since I don't actually have Warlock class levels).

Where can I find Helper.WarlocCast and hero.child[SlotHoldWa] to be able to clone and modify those to make it work with Rogue levels?
 
From what I am reading of the Spellthief, he only ever gets 3 spell slots. These spell slot are always 1st level until the spell thief reaches 7th level as a rogue. His spell slots are now 2nd level, just like a warlock's. At 13th level they become 3rd level and at 19th they peak out at 4th level slots.
~ Max Spell Levels Array
focus.field[cArrKnLev].arrayvalue[2] += 1
focus.field[cArrKnLev].arrayvalue[6] += 2
focus.field[cArrKnLev].arrayvalue[12] += 3
focus.field[cArrKnLev].arrayvalue[18] += 4

The above sets what level a spellthief's slots are and when they hit those levels.

Also, just like a warlock, you only ever have 2-3 spell slots based on you rogue level. You do not get spell slots like a sorcerer according to what I am seeing.

From what I see the spellthief is an Arcane trickster who uses sorcerer spells and a modified warlock's spell slot progression.
 
Thanks again Mergon - I've got number of spells (and pulling them from the Sorc list) working now, but still having trouble with spell slot progression..

Is there a list of Helper.* objects?

Using Helper.WarlocCast gets me warlock spell progression, but also triggers off of warlock levels. I think I need to clone that for something like Helper.RogueCaster or otherwise override that.
 
From what I read, the spell thief uses modified Warlock spell slots. You never get more than 3 of them, and the level of those limited spell slots goes up as you do accordign to the chart.

I'm not sure what issue you are having . . .
 
The issue that I'm having is that it's triggering off of warlock levels, not rogue levels.

HwR0BAP.jpg



Here are the 2 Eval Scripts as I have them now:
Code:
(Phase : Post-levels / Priority : 10000 / Index 2)
     perform linkage[table].setfocus

        doneif (state.isfocus = 0)

      var numslots as number

      if (field[cTotalLev].value >= 13) then
        numslots += 3
      elseif (field[cTotalLev].value >= 2) then
        numslots += 2
      else
        numslots += 1
        endif

      ~ Add the slots to the highest spell level allowed at the current level.
[b]      perform hero.child[SlotHoldWa].setfocus[/b]
      focus.field[MaxAllow].value += numslots
      if (field[cMaxKnLev].value = 18) then
        perform focus.assign[sLevel.4]
      elseif (field[cMaxKnLev].value = 12) then
        perform focus.assign[sLevel.3]
      elseif (field[cMaxKnLev].value = 6) then
        perform focus.assign[sLevel.2]
      elseif (field[cMaxKnLev].value = 2) then
        perform focus.assign[sLevel.1]
        endif

and
Code:
(First / 1000 / 1)
      perform linkage[table].setfocus

        doneif (state.isfocus = 0)

        ~ Spellcasting attribute
        perform focus.setlinkage[castattr,BaseAttr,"IsAttr.aCHA"]

        ~ Spellcasting type
        perform focus.assign[CasterType.SpontKnow]
        perform focus.assign[CasterSrc.Arcane]
~        perform focus.assign[Helper.3rdCaster]
[b]        perform focus.assign[Helper.WarlocCast][/b]
        perform focus.assign[sClass.cHelpSor]

        ~ Cantrip Array
        focus.field[cArrKnCan].arrayvalue[2] += 2
        focus.field[cArrKnCan].arrayvalue[9] += 3

~ Spells Known Array
        focus.field[cArrKnSpl].arrayvalue[2] += 3
        focus.field[cArrKnSpl].arrayvalue[3] += 4
        focus.field[cArrKnSpl].arrayvalue[6] += 5
        focus.field[cArrKnSpl].arrayvalue[7] += 6
        focus.field[cArrKnSpl].arrayvalue[9] += 7
        focus.field[cArrKnSpl].arrayvalue[10] += 8
        focus.field[cArrKnSpl].arrayvalue[12] += 9
        focus.field[cArrKnSpl].arrayvalue[13] += 10
        focus.field[cArrKnSpl].arrayvalue[15] += 11
        focus.field[cArrKnSpl].arrayvalue[18] += 12
        focus.field[cArrKnSpl].arrayvalue[19] += 13

        ~ Max Spell Levels Array
        focus.field[cArrKnLev].arrayvalue[2] = 1
        focus.field[cArrKnLev].arrayvalue[6] = 2
        focus.field[cArrKnLev].arrayvalue[12] = 3
        focus.field[cArrKnLev].arrayvalue[18] = 4

The two lines bolded above are where I'm pretty sure the issue lies, but I've been unable to find a way to make it progress off of rogue levels.

Adding Warlock Levels makes makes the spell slots progress, as expected:
0iJc6Xe.jpg
 
Try using this:

Phase: Post-Levels, Priority: 10000

perform linkage
.setfocus

doneif (state.isfocus = 0)

var numslots as number
var iLevel as number

iLevel = hero.child[cHelpRog].field[cTotalLev].value

if (iLevel >= 13) then
numslots = 3
elseif (iLevel >= 2) then
numslots = 2
else
numslots = 1
endif

~ Add the slots to the highest spell level allowed at the current level.
perform hero.child[SlotHoldWa].setfocus
focus.field[MaxAllow].value += numslots

if (iLevel >= 19) then
perform focus.assign[sLevel.4]
elseif (iLevel >= 13) then
perform focus.assign[sLevel.3]
elseif (iLevel >= 7) then
perform focus.assign[sLevel.2]
else
perform focus.assign[sLevel.1]
endif


According to the Spellthief pdf, the archtype only ever gets up to 3 spell slots.
 
Last edited:
You don't have any warlock levels . . .

Spellthief levels are your rogue levels only.

I'm not sure how you are getting a level 40 character.

A warlock, at 20th level. gets 4 spell slots.
A spellthief rogue , at level 20, gets 3 spell slots.

Total spell slots, for a level 20 rogue + level 20 warlock = 7 spell slots.
 
Yeah, I understand the division there - i added the 20 warlock levels to show that it progresses the warlock slots on both warlock and rogue levels.

The two sets of slots should remain separate, so ideally, this hypothetical 40th level character would have 4 warlock slots (at 5th lvl) and 3 rogue slots (at 4th level).
 
Actually not. It's like multi-classing in wizard & sorcerer. Your spell slots are based on the sum total of both classes levels.

That part is actually working according to 5e rules. You just never see it since there is no other warlock-based classes until now.
 
Actually, I think they should be separate spell slot pools.

P164 of the PHB seems clear that the slots from "Spellcasting" and "Pact Magic" are distinct.
For a 14 Spell Thief / 6 Warlock (what my character is headed towards), he should have 2 3rd level slots for Pact Magic and 3 separate 3rd level slots for Spell Thief.

If a character were to go 14 Spell Thief Rogue / 4 warlock / 2 ranger, he should have
2 2nd level slots for Pact Magic
2 1st level slots for ranger (i.e. 'normal' spellcasting)
and
3 3rd level slots for Spell Thief


I just don't know, at this point, if the objects are even exposed to be able to replicate a pact magic slot pool as a different pick based on a different class.

p.s. I asked my DM and this was his interpretation as well, so going with your interpretation for simplicity is out as well :(
 
Nope! Both use warlock spell slots. The descriptions of both the warlock and the spellthief spell slots are identical.

If the spell thief was using the sorcerer's spell slot system, you'd have a lot more spell slots and they'd be tied to spell levels.
 
Back
Top