EDIT 4/24: Welcome! This is sort of my work blog. It's been very rough going finishing the duskblade because I'm a dabbler, not a coder by trade, so I'm shifting gears to clean up what I have. I am working on the following projects right now: - The 5 DMG NPC classes - adept, aristocrat, commoner, expert, warrior - setting up for a pull request into the next Temple+ version (to do: help files, fix Obtain Familiar) - The duskblade base class (to do: arcane attunement, arcane channeling, spell power, spell retraining, help files) - A spell pack for duskblades and some related spells to boot: animalistic power (with mass version), channeled pyroburst, crown of might, crown of protection, dimension hop, dispelling touch, doom scarabs, energy aegis (with greater version), energy surge (with greater, lesser version), halt, regroup, seeking ray, slashing dispel, stretch weapon, swift expeditious retreat, touch of idiocy, toxic weapon. This has become a collab with dolio, implementing inevitable defeat, kelgore's fire bolt, rouse, bigby's tripping hand, vertigo, whelm, mass whelm, whelming blast, stand, and blade of blood. Future projects: - Illusion magic pack: ghost sound and the entire image line from the Player's Handbook, unified figment system - Generalize familiars and implement Obtain Familiar feat - Help clean up some of Sagenlicht's materiel for public release ==================== Hello, folks! My attention has returned to our dear Temple Plus, and in the past I had tried to contribute by crudely making a half-working bugbear that Sitra and co. were so kind as to incorporate (I could finally remake a PC from a campaign, thanks!), but given that there's been a little lull recently I decided I should contribute some more. After giving it some thought about what I'd want to add, the answer to that is the Duskblade. I'd like to go through and build it from start to finish. I had made an attempt about a year ago that didn't quite work and I seem to have lost the files. I will also attempt to create new spells to go along with the Duskblade and thicken out the list (and these spells will also by extension thicken other classes). I'm going to try again and document my efforts here to encourage myself and keep myself honest about the work. I've just set up a laptop with a clean install of Temple Plus to use as a work environment and get feedback as I go. If you're not familiar with the duskblade, here you go: https://srd.dndtools.org/srd/classes/basePhb2/duskblade.html https://srd.dndtools.org/srd/magic/spells/classSpellLists/duskbladeSpells.html Here's the elevator pitch: It's essentially a hybrid fighter like the paladin or ranger, but for magic; it's also an INT caster. It has a spell list comprised of touch spells and buffs. The big gimmick is that starting at 3rd level you can channel a spell into a melee attack. It also has a built in clone of Sudden Quicken usable multiple times per day. It's a fun spellsword class; in fact, maybe a little too powerful. I've also made a list of a number of spells I'd like to try to make to thicken out the Duskblade's spell list, many of which will also appear on other spell lists: DSK 1 Bigby's Tripping Hand Blade of Blood Kelgore's Fire Bolt Rouse Swift Expeditious Retreat DSK 2 Bigby's Striking Fist (maybe? bull rush doesn't work, maybe we can make it just Tripping Hand 2) Dimension Hop Seeking Ray Stretch Weapon Sure Strike DSK 3 Crown of Might (want to get sort of a template going for "crown" spells that take the head item slot) Crown of Protection Dispelling Touch Doom Scarabs Energy Aegis (and probably Lesser Energy Aegis for the sorc/wiz list) Regroup (I really want to see if I can get this to work) DSK 4 Channeled Pyroburst Toxic Weapon DSK 5 Slashing Dispel The list is ambitious, but the spell creation is the second part of the project - and all prior spell compendiums were ambitious, anyways! (Sagenlicht's last beta has a few of them but they were never merged into a public release). All of these new spells will need to be flagged as non-core so they respect the Temple+ Configuration and the long description format. The goal is to have this fully implemented with its own spell list as a drag and drop mod to throw in the Overrides folder. If the Temple+ team incorporates it into a later version I would be ecstatic. Let's get started!
https://github.com/GrognardsFromHell/TemplePlus/wiki/Python-Class-Definitions There's an excellent guide on how to make a new class, and I'm going to follow along with this. To get started, I'm going to make a basic full BAB class with the right skill list and arcane spellcasting from the core rules, as that's easy enough to begin with. We can also grant Combat Casting as a bonus feat at level 2. Once that's done, we'll populate as many of the abilities as we can from modifying existing abilities. Here's my abilities to do list: - the new Tier 3 Armored Mage, which allows for use of light and heavy shields. - Arcane Attunement, a pretty basic cast-cantrips-as-powers ability. - Arcane Channeling, the star of the show. The implementation will make or break the class. - Quick Cast, which will effectively be a clone of Sudden Quicken with up to four uses a day. - Spell Power, which is a spell penetration buff. We're not going to worry about any of those things now, but I had some of them kinda working before. For now I'm going to take it from the top and start going through the class tutorial in between downtime here at work since it's been a bit since I last goofed off with this stuff. My partner's a little sick tonight and I might need to go surprise them with soup but I hope to have the basics done by the end of the day.
Work's been busier than anticipated and my dear string bean needs me right after work, so less time today than expected... Okay, time to set the table. The file page is invaluable here. https://github.com/GrognardsFromHell/TemplePlus/wiki/Files I've decided to claim the duskblade as class 150 so I have room to work in the future. I'll make a new folder in overrides I'm calling "Duskblade" and throwing a mod_specs.json in there and get our basic file structures together. Workspace looks prepped. Shame I wasn't able to do much more other than plan things out, but we'll shoot for a functional class tomorrow.
Okay, after a hectic morning I'm digging in. Started getting my class written up. Not enough time before I need to prep for some evening plans to get everything set up, but I'll hopefully finish up tomorrow.
Well, I got the barebones class sorted. I've got to sort out the hooks everywhere tomorrow, using the proper file extensions as shown on the file page. Hoping to have a "look, it's in game" screenshot tomorrow.
I'm sick as death today, and taking the day off, but last night I woke up at like 3AM (while sick ofc) and started on the _exts. I'll finish tomorrow. Thanks for the likes so far, it's keeping me honest. I had the feverish idea of making a spell that makes a target believe they're flanked, Will to disbelieve, as an Illusion cantrip - and calling it Ghost Sound. One project at a time, August... but maybe I'll do that as part of the spell pack, otherwise Arcane Attunement's kinda boring.
Been sick as hell, my partner's made me soup while I fight off a sinus thing. I'm up and at 'em and hoping to post some work. Endarire, totally, and I figure if I do one I could do the other. I've got a list of ideas on illusion spells and spells that appear on the Assassin, Warmage, and Beguiler lists, but... one pipe dream at a time.
So here's what got done today: - I built the modifier, scr\tpModifiers\duskblade.py - set up the Duskblade Armored Mage (by default, light armor and shields; medium armor at level 4 and heavy shields at level 7, Improved Armored Casting allows use of heavy armor) - built the feat for it, rules\feats\duskblade armored mage.txt - made the rules/stat/ folder and named my extender "august.mes", added in entries there, and a stat_enums/ folder with an "august.mes" file inside. With this, we have one of the five class features down. For now the casting is just the beguiler's with the advanced learning ripped out. It won't launch. I'm trying to get the extended files working right but I'm probably biffing it or broke something just ripping out Advanced Learning. I'll probably be too busy tomorrow if anyone wants to see how far I've gotten. Next up is just getting it to launch, then I'm moving on to Quick Cast since it should be easy to just riff on Sudden Quicken.
Took today off - had a bunch of appointments, we'll get cracking tomorrow. Posting to keep myself honest. Let's get this done!
Make sure to check out the log file for errors. For crashes due to the python stuff, you usually get clear cut error messages with line numbers and all.
Ha, I just forgot constants.py. Well, it doesn't crash, but it doesn't show up yet. And now I somehow don't have permission anymore to write to the log. Weird. I'll poke at it more tomorrow, today was busy again. At least the game launched!
If I may be so impertinent I disagree with two of your lines in your extension to stat_ext.mes: {1088}{Dskb} this is already used by Ultimate Magus surely you meant {1150} {13150}Duskblade {The duskblade blurs the line between spellcaster and warrior, marrying the power of magic with hand-to-hand combat prowess.} these description lines are all 7 lower according to precedent and should be {13143}?
In between this, volunteering, a new relationship and getting sick while doing this on top of doing this I feel like I've had no time at all to work on this. Thanks so much Pygmy. Working now!
A bit of work tonight. I decided to just revert the duskblade's spell list to the beguiler and just get it working... well, now it's crashing and I don't know why. The logs aren't being very helpful at this point, because the crash is a crash crash with a dump file and log. I may just start over, make a full beguiler clone and then make one change at a time.