#Spellforge (Noita-like Spellcrafting)
1 messages · Page 3 of 1
isnt Colony_assassin the carrier object
its like
'the spell'
for SFP
the invisible marker is for the vanilla default projectile
Ahhhh
Right so why isn't the spell spawning then hmm
It needs 3rd visual ?
I mean 3rd object?
seems like the marker is overwriting the visual maybe ?
with OSSC?
because Spellforge isn't telling SFP to cast anything
im adding in to spellforge
tada.
I need to fix audio now
explosions sound seem to happen like at my location instead of at the impact
Awesome ! So it wasn't me after all haha
But you know I was curious if it was SFP thing anyway need to squash any bugs

maybe I explained poorly

oh well
it works now!

few more things to fix, few more event types to add (chain on payload, chain on multicast, maybe pierce and homing?), maybe some UI polish
submit for week 3
happy days
no debloat pass

and I'm off Saturday so I'll have a WHOLE day to finish it up for week 3

having a full day to work on a mod is indeed good
Hell yeah!
I'll try to squeak out the sound fix before sleep
oh
its SFP.
OSSC has the same issue
Can you record exactly, so I can fix it
vanilla fireball
OSSC cast -> explode way out of earshot -> loud
Vanilla Cast -> Same -> silent
doesnt seem to matter WHERE the SFP cast hits, its always the same volume
the bolt sound itself seems to work fine tho, it fades away as it flies off
you can also see the speed difference 🫣
my RC must be cursed
Ahh this, allright I'll take a look into it, there is a max distance sound for sure to set
Are you playing the sound as a 2d one, or 3d at the projectile location?
I wonder if the explosion sfx is playing on the character
the bolt sfx seems to travel with the projectile
so that seems fine
maybe the engine has issue with playing sounds away from the player manually? but they can travel away normally?

I think (haven't checked) it's just the wrong playback target
for the explosion
since the sound anchor works, flies together with the bolt
it's the explosion, maybe it's played as ambient and not as 3d
Needs checking

Wouldn't be surprised if - when the bolt disappears - the sfx location defaults to the player? 2d vs 3d is also a likely cause in my experience
This might be, needs a function to play before destruction
possibly fallbacks to the player
we know where the bolt hits so we can fire the explosion vfx
feed pos into audio?
idk Ive never done audio stuff
no idea how it works in openmw
audio is like 2-3 small functions
https://openmw.readthedocs.io/en/latest/reference/lua-scripting/openmw_ambient.html
this plays 2D (inside player)
https://openmw.readthedocs.io/en/latest/reference/lua-scripting/openmw_core.html##(Sound)
this plays 3D

does a 3d sound need to be attached to an object?
Makes it easy to debug too
Sound.playSound3d(soundId, object, options)
Play a 3D sound, attached to object
In local scripts can be used only on self.
Sound.playSoundFile3d(fileName, object, options)
Play a 3D sound file, attached to object
In local scripts can be used only on self.

Yes the object is mandatory
That's why I need to account for it
Will probably just create another dummy object to spawn for these 2 seconds
on the impact point
does the object need to continue to exist for the sound to play fully?
Yes
👍
I think so
Would make sense
is the explosion itself not an object?
I see 
despite using the same file and mesh lol
You can spawn items as animations or as objects
both having their own characteristics
objects you can scale but cannot move around if it's animation
That explains why replacing a summon always plays the conjuration sounds in your ears, because the unsummon sfx plays after the actor disappears
animations you can move but cannot scale (directly)
but you can workaround animation scaling by attaching... dummy invisible object WITH added animation the one you need scaled
5am I must sleep, best of luck o7
Toddcode Invisible Lights moment
the stuff I'm recently doing with the lua is just crazy
given the api limitations around animations
and in crazy I mean retarded
but working 😄
No solution more permenant than a temporary one. If it works, it works
any progress on sound?


Hmmm
should I feature gate multicast / multicast patterns and touch/self spells?
it seems kind of weird to do like Multicast 3 Shield on self
since it doesn't stack
hmmm
we could make damage stack
I suppose that would be noita like
it probably stacks already
since each damage effect is its own unique record

You literally can stack any effect 😄
YES
sorry caps
you can make any spell stackable
if I cast shield for 5pt twice
I only have 5pt shield
if I cast 1-10dmg over 10 seconds twice, its still 1-10dmg over 10 seconds
this is vanilla
| `STACK_CONFIG` | Table controlling spell stacking limits. |
### D. Restricting Stacking
local I = require('openmw.interfaces')
if I.MagExp then
I.MagExp.STACK_CONFIG.SPELL_LIMITS["gods_shield"] = 1
end
change that number to how many times you want the spell to stack
works on shields etc
ohh that's on you 😄

I am delving now into issue with the sound
how's the mod going
its basically fully functional now
with maybe a few edge case combinations not supported yet
I'm still mulling over if I should make damage effects stack or not
so you could do like fireball trigger multicast 3 firebite
and it would hit the enemy with 3 firebite effects at the same time
I could just do damage only
but then people might wonder why shield and weakness to, and resistance, etc don't stack

😵💫
I feel like the damage should stack
whats the point of 3 fireballs if only one does damage
or divide the damage between the amount of projectiles
honestly, what could be considered overpowered in vanilla could be acceptable in something like HBFS
I'll just do damage then
since the main use of the system will almost certainly be the various damage spells
@inner vector #1492962758445109429 message
Spell Framework Plus v1.82 is live on Nexus and Github
-fixed AoE effect sounds playing on the player instead of impact position
-fixed targetted spells so that they do not play cast VFX second time upon successful cast to align to vanilla behavior
Another two bugs squashed
Hey no problem ^^
Nice, but I see the castVfx is defaulting to Default cast VFX, intended?
wdym?
the sparkles on hand while casting - defaultVfx and not the fire vfx
oh
OH
it was fixed at one point
I think the debloat destroyed it
thanks!
I need to put that back in
No problem, got an eye for these details today
new bug for me to fix
our now stacking spell effects dont seem to play nice with the cost parser and get ignored
Nice that you mentioned these now, since I wanted to make a texture replacement just for them, but can’t figure out how they are called in the CS or files in general.
Can you tell me?
Thanks! I do know about that list, but weird that I never noticed the vfx_default - instances before and therefore assumed that the vfx for destruction spells is like the default or something. Probably overlooked it.
yeah the spell bolt is an actual weapon too
just Todd things
anyway mana cost is fixed
damage is stacking
and new critical bug
saving with an unexploded payload still existing and then loading during that session causes a hard crash
need to terminate projectiles onsave
or just have it saved and re-initiated/continued onLoad to not crash - keeping it vanilla behavior ^^
^ This is the way
Otherwise you might run into issues like spell projectiles in air during auto/quicksaves causing a crash when loading.
Which is awful if you die just after saving while your spell is in transit
its not the spell
its our container existing
openMW is like
wtf is this
crash.
I wonder if the spell data is loaded before the entity that contains it
I had to check SFP and thanks for finding a bug for me 😄 It doesn't reinitiate the spell, I need to account for this
But it doesn't crash it either
so it's Spellforge thing
Wait until I add the reinitialisation through save, then we'll see if it helps
I already put in a fix in spellforge
clearing projectiles onsave
it works but yeah they all go POOF
Definitely needs fixing, at least on my side and then we'll see
But tommorow I will be able to do it
Today I'm busy in a while
OSSC doesnt do it
I think its just my wierd projectiles that do it
they are like not spells
they are lua brains
🧠
just want to clean up the logs a bit
kind of messy
otherwise everything seems pretty good
last bit of UI polish, some good testing tomorrow, and then its ready for week 3

I've checked with OSSC, it just disappears when loading the save where the vanilla spell was flying. So before working on that wait on my fix
Rather than reducing debug logs just gate them behind a setting
It's good to have extensive logs 😄
yes
thats what I mean
put them under info or debug
only show errors/warns
a lot of stuff isnt organized
so it doesnt get gated right meow
damage effects stack with themselves now (ex: fireball trigger -> multicast 3 firedamage 10pt for 1 on touch = 30 damage dealt to target + fireball damage)
- firedamage
- frostdamage
- shockdamage
- poisondamage
- damagehealth
- damagefatigue
- damagemagicka
- absorbhealth
- absorbfatigue
- absorbmagicka
- drainhealth
- drainfatigue
- drainmagicka
cast VFX fixed
save load hard crash fixed
mana cost bug fixed
logs cleaned up a bit
[spellforge][player.init][ERROR] SPELLFORGE_RUNTIME_ERROR intercept dispatch failed spell_id=Generated:0x53e4 err=homing helper launch job did not complete
[15:10:30.937 I] L@0x1[scripts/incantation/player.lua]: INCANTATION SKILL MOD: Cast custom spell 'New Spell' (+1.9 XP, +7 magicka [19.5% refund])
[15:10:30.960 I] Global[scripts/spellforge/global/init.lua]: [spellforge][global.executor][ERROR] SPELLFORGE_RUNTIME_ERROR SPELLFORGE_LIVE_2_2C_SIMPLE_DISPATCH_ERR spell_id=Generated:0x53e4 recipe_id=2f838da9 err=homing helper launch job did not complete; fallback blocked after live attempt
@inner vector
Putting homing on the spell stopped it from working
Correction, it casts when there's no hostiles nearby
But when I would expect it to home, the spell fires nothing
[19:25:29.647 I] L@0x1[scripts/spellforge/player/init.lua]: [spellforge][player.init][ERROR] SPELLFORGE_RUNTIME_ERROR intercept dispatch failed spell_id=Generated:0x53f9 err=helper launch job did not complete```
I took Homing off and it still doesn't work
Hmm, after changing from exterior, to interior, and back to exterior cells it works
I wonder if it's connected to the reloadlua I ran whilst testing my perks
OH
That's not great
So when I enter Combat, they stop working
Oh it's not combat
It's casting 3 or 4 spells
Lemme test
3 spells. then it cuts out
I wonder if it isn't able to create more invisible projectiles or spell data based on your current limits
Which would mean it's not cleaning itself properly
ill take a look
they being
all spellforge spells?
All spellforge
huh
I dont have this issue
homing works in combat, spellforge works in combat
😵💫
homing still works on enemies
when homing is cast from a direct spell it has a short delay before it initiates
or else the cast starts off screen if that makes sense
IE you cast and the bolt seems to spawn from the edge of your screen and not the center
when homing is triggered from a payload, it starts homing instantly (projectile + trigger -> multicast + homing + projectile)
hmm
it still might be my end
I tried the same spell but with absorb fatigue instead
and it doesn't resolve properly
can you send the entire openmw.log?
"C:\Users\ [yourprofile] \Documents\My Games\OpenMW\openmw.log"
hmm
so our system limits the first cast to 8 casts
ie 'multicast 8 -> payload'
so for some reason the mod is accumulating
for you instead of reseting after each cast
cast cast cast fail
3 + 3 + 2
3 spells -> 3 spells -> 3 (hits 9, minus 1 cap of 8) doesn't fail though, the next cast does
i'm not sure why my game isn't behaving the same way though
working on a fix right meow
also working on expanding spell effect support since some spell effects still silently fail
please try this one out for now
the rest of the fixes arent in yet
but that should fix your 'stops casting' issue
hard for me to test because my client isn't having that issue appear
pretty much all effects should work now in recipe
added UI selection for any spell that targets attribute/skill but its kinda scuffed so need to figure out a better way I guess
you basically click a button and it moves forward in the list
I have no idea how to make a drop down, maybe a UI pops up and shows all the choice
anyway its functional at least
Not getting the glitch anymore
On a fun note, this now works with the TR summon spells, but only with up to 2 summons
should I change that?
I could make summons more stackable than they are now
would be neat to shoot 8 bone walkers at someone
I think 3 summons from a single spell is enough, you can still stack multiple spells
3 from 1 spell fits with Aryon's Helper from vanilla too
so what do you mean
3 summons per spell but you can recast it for even more?
3 summons per payload so each payload can summon up to 3?
A casting that same spell would refresh the duration/resummon
Casting a different spell with the same effect would summon more, like vanilla
alright I'll take a look
I made the UI more vanilla
also all operators visible
will release with the summon fix
or rework I suppose
does this mean
3 of the same summon in a spell
or 3 seperate summons in a spell?
Multicast 3 Summon Scamp?
or just
Trigger -> Summon Scamp, Summon Bone Walker, Summon Skeleton
Mutli-cast summon doesn't work, because summons can only target self.
The spells are made as just multiple summon emitters
So
Summon Dremora
Summon Dremora
Summon Dremora
so you dont care what kind of creature it is
even duplicate
got it
I could make multicast 3 work just fine, it makes 3 seperate spells anyway
multicast 3 is the same thing as
Summon Dremora
Summon Dremora
Summon Dremora
SO the functionality should be:
Recast = Refresh Duration
New spell cast:
Multicast 3 Summon Dremora = Works (Spell Name 'Test 2')
6 Summons exist```
Yeah, vanilla doesn't let you stack the same creature in a spell, so this mod letting you do that is a cool thing.
awesome, got it.
The Gang
multicast doesnt work
on summons tho
it only makes 1
fixing that
then I'll send the test build with summon revision + UI clean up
so multicast summon works now but 3 summon spells standalone in a payload dont
xD
not sure how I broke that but lemme check
Yessssss
the boys are all here
if nothing else is wrong then Test Build 4 is basically release ready
multi-grouping seems tempermental
some combinations dont play along
ie (multicast 3 fireball shield)
Multigrouping fixed
UI cleaned up some more (shows aoe size now)
added new modifier (Detonate)
Fixed Timer to detonate at end of timer, or act like trigger on impact
adding Detonate before a target spell inside a payload will cause it to explode instantly
Fireball
Timer
Detonate
Frostball```
(Basically Nolla from Noita)
Touch payload on timer works if it hits an actor
but does nothing if timer activates
Will test later :3
Updated to the Final Test Build
Tried to load a save
Got this error, and it kicked me back to the main menu
Haven't tried a new save yet as I have Wrath and Glory session atm, but will test after
ok thx
ill check it out, we did normalize the names in the UI
I must have messed something up
This issue with the failed loaded save game might be something that isn't exclusive to your mod and always seem to happen when trying to remove or disable a mod wich added a new magic effect. Check out some conversations here. Skrow and Hyasinth are onto it, but couldn't figured it out yet. #1495408927246909612 message
@covert wave I have an idea how to tackle the issue with save not being able to load after saving custom spell and disabling the mod - but it’s a bit convoluted. Having some script that deletes the custom spell on save and re-adds them back instantly. Thus if mod is missing then it won’t crash. But I guess if NPCs will have them it’s also the same situation but undoable if NPC is in another cell? Or it’s not read at such case?
And here is my inital post about the issue. #1495408927246909612 message
Failed to load savefile!: magic effect „t_mysticism_blink“ not found (translated from german)
Is this a common issue when disabling a mod, which adds a custom magic effect, you can't load the savefile anymore that previously used the mod? I'm using the 0.51.0 RC1 build @covert wave
Not that I want to actully disable it on the long run. I just wanted to check something else previously. Love these new spells!
shoot…
well I guess its not a release blocker if its a known issue
saves can’t be continued if you remove the mod, and if I ever rename any spell effects in any update going forward, existing saves will break
Hey, I read this in the change logs of a recent weapon poisoning mod.
Maybe the author really found a global solution for the problem 👀
https://www.nexusmods.com/morrowind/mods/58981?tab=description
I haven't got time to get to it yet but it seems it's possible to avoid this bug
I see, I thought you already looked into and figured it out, based on what I forwarded earlier from another author's mod page 😅

No pressure though. Every new magic effect mod that came out recently is so good, that I actually haven't uninstalled any of them 
And it seems that most people think the same, since there weren't many who pointed out this issue
could we re-register the broken MagicEffects during load context somehow?
all I did was normalize my spell names in the UI
so Summon Lesserbonewalker displays as Summon Bonewalker and it broke old saves 
I have to go to work so I can't really check the (Poison Weapons) fix out right now
Or I guess somehow removing onSave, and re-registering onLoad?
but old saves wont work if you remove the mod, you’d still need to load in with the new version and make a new save
It was a quick check but didn't go deep into the code
Yet
If you remove it onSave then it won't brick the save, since the data will be missing so it won't crash
so it would fix the issue going forward
but it wont fix his issue right now
his current save is bricked with the new version
Hmm…

I mean it's still worth a mention when people will donwload the magic effect mods later and hopefully won't have this issue then. Regardless of this, in the end it would need to be forwarded to the openmw devs I guess, so they can either incorparate said possible fix or at least mention the workaround in plain sight for when modders attempting new magic effects.
Alright well then I might just release as is then if its a known issue
I did big red disclaimers in my spell mods 😄
yeah I really dont want to delay any longer
I could chase bugs and feAtures for a while
Sometimes it’s better like this, so you’ll have a few reports at once and it’s faster to fix it that way rather than one by one 🙌
it looks like it uses a spellinfo.yaml file
so the effects exist outside of the save
but I'm unsure how to do that with Spellforge since the effects are baked into the spell the user creates during runtime
can we write into a yaml file with lua? I don't think we can but I've never actually tried to write into mod files directly from the game
I haven’t done yaml at all, been seeing it being used by Hyacinth/Pwn and also Ralts
So I don’t know the quirks yet
load.lua reads that YAML at load-context time and registers a tiny, known set of records.
the yaml is generating the poison records
I’ll definitely feed it later to the machine and will see what it spews out
I think for spellforge the only solution is to remove/restore spells onSave and onLoad
so if they uninstall the mod, there are no spells restored
and nothing fails
Yeah, saving to the storage file might do the trick and re-adding that on each load
Dunno if you can save such records to the .storage tho
can we delete spells with Lua from the spellbook?
I think there was discussion about this elsewhere

Look on my grimoire video
It’s literally removing them 😄
And I cache that and if you drop the grimoire then theyre re-added back

I can send you the files if you want to check out
Tieing that to save and load shouldnt be a problem, saving and loading are even exposed in the lua functions
So maybe that will be an easy solution for our problems with the custom spells
the CURSE

my chaos budget was part of the regression way back when
right now we have a max cap of 32 helpers
which means you cant even trigger multicast 8 trigger multicast 8 trigger because its like 130 helpers
you CAN multicast 32 though
I had at one point raised the limit to like 128 but it seems it was part of what got destroyed by the debloat
only noticed because I was writing out a description of each modifier and I was like... wait the limits are wrong
The regressions by ai are far the worst thing imo
You had it working then it deletes it…
twas my own ignorance
trusting an AI to merge and debloat and entire project even with 'safe' guidelines baked in was a fools errand
not making a backup RIGHT before doing it
was even more foolish
Oh my god 😄
I do copy of every step to prevent most of the wrongdoings 😄
Which is still sometimes not enough
now I know better
its ALIVE!
Congrats, it's been an epic hussle. May your bugs be crushed most succinctly
Heyy congrats!
the test spell only did 1 damage per fireball because im lv1
but assuming you have the skill and mana...

Now it's just a matter of fine tune 😄
already have new modifier ideas
Spell Vamp
damage to hp or mana
a modifier that makes a spell cost health instead of mana
(blood mage build maybe?)
Sun's Dusk integration, Hydraulic magic: costs water from your inventory
If you run out of water it uses potions
I already have a mod detection feature in DaggerfallCC, I suppose it would be fairly simple to add in a modifier if Suns Dusk is detected
About This one I was thinking literally yesterday
Well, absorb spells you already have in the engine
knockback modifier for aoe
It's only health cost - I can add that to SFP
but also like a "sucking" effect
like blackhole
Noita and blackhole
are like staples.
two peas in a pod
Physics are terrible in morrowind tho
But would love to see something like that
And sadly when applying Max's Lua Physics on the NPCs it gets even worse
But it was not made in mind of NPCs of course
so many things
spell trails...
hmmm
maybe take fog or vent smoke and change the color...
or damage field
like an aura around the projectile that deals damage to enemies that touch it
still want to make a sort of trap payload too
I was thinking of sucking the system from Tribunal traps
like Fireball Trap Fire Damage 100pt touch for 5sec
leaves a little glowing orb on the ground
if actor walks into its hitbox (larger that the orb ofc) it explodes
which means a gravity modifier would be good too
Check here, he has open perms
- and -
a lot of stuff that could be inherited onto OpenMW
This one especially, ready to use VFX for traps
I found this gem profile like 2 days ago
Bah
I still wanted to play around with making a Tribes ski mod
I need a clone
and 48 hours in a day
BAH

so many things to do
https://www.nexusmods.com/morrowind/mods/49684
https://www.nexusmods.com/morrowind/mods/49708
https://www.nexusmods.com/morrowind/mods/49709
https://www.nexusmods.com/morrowind/mods/49739
https://www.nexusmods.com/morrowind/mods/49667
They don't look as expected though
We need a solid 'line' of spell
Something that wasn't done before yet I think
Although shotgun mode looks nice
I wonder how difficult
Funnily enough, these mods were also made for modathon lol
Yeah I was thinking like Lighting Shield from Shaman in World of Warcraft-type spell
Orbit is halfway done in Kinetic Spells mod and also Haggle Light mod
since the objects are already hung up at some position
it's just a matter to add a constant recalculation of the position
to move around
When Kinetic Spell is in phase1 and you collide with actor it disappears
so its also a matter of only triggering a damaging spell event on that occasion
already have homing as a modifier
maybe I can repurpose it
Then every steering tick:
desired_angle += orbit_speed * dt
orbit_point = player_pos + circle(radius, desired_angle) + height
direction = orbit_point - projectile_pos
redirectSpell(projectile_id, direction)```
It should work no problem 😄
I was wondering if spf could be used to basically mimic some of his mods, I was especially wondering about having on target enchantments on weapons behave like spell slingers
That was about the one thing I was disappointed with when I realized what couldn't be done in OpenMW
I will do it eventually, planning to do it with Staff first
And yeah, most if not all of his mods are doable now with SFP, even without it but it would be lots harder
That will be epic, I remember starting to play this game a few months ago and being so mad when I enchanted a sword with target and it didn't do anything
Stay tuned 🙂
@inner vector is there any way to make a spell that bursts into more like in your video but then those become homing projectiles? I'm having so much trouble and I had a dragon ball type idea for a spell
I LOVE THAT THIS MOD JUST WORKS PERFECTLY WITH THE INCANTATION MOD
homing is super heavy and I tried to be cautious with it
ill see about expanding it more
so the issue is that
each projectile has basically a lua brain
for homing
each projectile is queried with a state request
constantly
to steer it
I'm just going balls to the walls so to speak and trying to unlock straight to 128 projectiles with homing but I assume its going to murder performance like I've probably never seen in a mod before
I wonder how it will actually handle, maybe it won’t be bad at all 😄
13 per tick
so 128 per 10 ticks
~0.16s
in a sort of round robin way
so no projectile gets starved
our current homing is already steering per 0.15s
so its basically perfect
Oh you got it finetuned nicely, cool
Yeah exactly
Its pretty sweet. I've some animations cooking, hopefully will be looking cool soon 🤞
Today I need to fix the bugs that were reported with OSSC 😄
it kinda lags if they all hit at once
This looks so great though
I made the homing delay a lil longer
maybe 0.85 is too long
hmm
0.65?
0.70 doesnt feel bad
Nice and nice lounge beats
please test
lag seems to calm down
after 1 cast
I got you after work
Shit looks like a dragon ball move
I can bet whatever got hit by that is most definitely dead
maybe the downside to spellforge should be
"Your own spells can hurt you"
just like Noita.
Maybe as the default setting, flavour Spellforge spells as inherently unstable - could even check if the player has Incantation, and give Spellforge spells a % chance to not harm the player equal to the Incantation level, as it's all about spellcrafting :^)
That way, there's a balancing act between the "on-the-fly" spellcrafting granted by Spellforge, and the "stable" spellcrafting of Spellcrafters
Make sure to update spell framework plus guys, critical patch went in today for the spells casted through it
save-breaking bug so it's as important as it never been yet
👍
@inner vector Homing is working smooth
how are you making this spell in the video, I am so bad at this spell system
Emitter
Timer
Multicast
Burst
Emitter
Timer
Multicast
Burst
Homing
Emitter
THANK YOU
i did not realize you could do timer intothings other than detonate lmao
ok, now my spell is even better
just killed a bull netch accidentally in one cast lmao
Timer is the same as trigger except if it doesn’t hit anything within the timer it explodes
so you can do air bursts and whatnot
if it hits something it triggers like normal
spells work from
top
to bottom
so you want to describe what efffects a spell has
before you cast the spell
hence
`multicast
burst
homing
fireball
multicast the spell
in a burst pattern
with homing on them
use fireball for it`
lol
I think half of Hla Old reported that crime
i've never played noita so i'm going into this blind
@inner vector
#1492962758445109429 message
This update can affect Spellforge performance negatively
v1.86 - Vanilla Parity Patch is live on both platforms:
-fixed multi-school spells to play all of the cast Vfx with the spells casted through Spell Framework Plus
-fixed multi-school spells projectiles to be all spawned instead of the first effect
-fixed all single-target spells when collided with an object to display the small area Vfx feedback
But it had to be done
Definitely needs inspected how much of perf drop it gives
Since it will spawn a lot more visuals now
don't they typically get merged in openmw?
the elemental types?
it makes a new projectile with both effects
Nope, I was casting vanilla casts back to back to mimic it's behavior
Playing around with the mod and it looks like it does't want to make spells with modded spell effects, despite correctly listing them in the known effects list
Is this like a caching thing where the list of valid effects get copied before other scripts add their new effects or something?
Ill take a look at custom spells
I thought it work natively but I guess not
spellforge doesnt actually make real morrowind spells
it makes (as far as the engine knows) an empty spell with nothing in it except mana cost, schools of magic, target/touch/self, difficulty. There is no actual “fireball” spell on the record, its more like “spellforge_fireball” (not the actual data but it gets the point across)
the spell is actually a container of data for Spellforge
so my guess is spellforge just doesn’t know how to launch custom spells effects but it can create them in a spell
the logs for the error in question are just
[19:15:58.291 I] Global[scripts/spellforge/global/init.lua]: [spellforge][global.compiler][ERROR] SPELLFORGE_RUNTIME_ERROR handleCompileEvent failed request_id=ui-compile-1779491758-12 err=EffectParams require a valid magic effect id
[19:15:58.293 I] L@0x1[scripts/spellforge/player/init.lua]: [spellforge][player.init][ERROR] SPELLFORGE_RUNTIME_ERROR compile failed request=ui-compile-1779491758-12 error=EffectParams require a valid magic effect id
[19:15:58.295 I] L@0x1[scripts/spellforge/player/init.lua]: [spellforge][player.spellcrafting_ui][WARN] SPELLFORGE_SPELLCRAFT_UI_COMPILE_FAILED saved_id=saved:9 reason=EffectParams require a valid magic effect id
im at work so ill check it out tonight
no worries, it's probably just some weirdness with the way custom effects have to be created by mods with the current api
what's most odd is that the preview actually works fine, it's just hitting create that bugs out
computes the correct cost of the effect and everything
This is probably why there's also weirdness with spellcast checks, where spells will say they failed to cast but then cast successfully anyways.
on self cast effects this sort of failed success only applies the Spellforge Dispatch <id> effect and not the vanilla effect, but the dispatch effect still applies the normal effects of the thing it's templated off of or something. A successful cast applies both effects and appears to work as expected
Only really tested with a levitate spell so far so if it's doubling the effect or something that would be very hard to tell
It works with some custom spells - I got it working with the TR summons, bound gear, as well as Nifty Spells Projection and Greater Projection

so it does sort of work with custom spells
weird
Tried with TR's summon dremora caster, same error
Maybe a load order thing or something then?
As an aside, white you can multicast vanilla summons, the TR summons aren't recognized as multicastable
spellforge is definitely after unofficial TR spells, so load order is probably not at fault
I'll need to check my load order, because it works when I multicast TR summons

When filtering by school custom effects all fall under uncategorized, which probably isn't helping things
this is a side effect of faking the hover over display
since our spells aren't actually spells
the hover over normally shows nothing
but like the engine I guess still sees these placeholder stand ins
and 'casts' a buff icon
I wonder if I can just cheat and quickly dispel the effect, it shouldn't affect the actual spell
the custom spell issue
It SHOULD affect TyrusDalet
perhaps old data is preserving functionality
I think the machine spirit mis-interpreted my request a while back
I asked for help normalizing spell records in our UI so people wouldn't see like Fire_damage, but instead Fire Damage
I think maybe its actually changing spell ID before creating the spell
so now TR_Summon isn't the right ID anymore
all our vanilla effects work fine because it knows what each normalized ID does
but doesn't know what a custom ID is because it never recorded it
Yeah for that one I was more wondering about whether spell success chances and magnitudes are affected by this, since there's three apparent outcomes
- The spell fails as normal, no effects applied
- The spell fails and only the spellforge effect is applied, the spell's effect works despite the failure popup
- The spell succeeds and both the spellforge and vanilla effect is applied (possibly doubling it unless the vanilla effect somehow does nothing, haven't tested)
the dispatch ID shouldn't cast on failure thats for sure
it doesn't double it
I have the same issue with summons
but it never summons extras
I imagine it shouldn't yeah
I remember trying to fix the issue with summons but getting rid of it directly meant breaking our pretty spell hoverover
its purely a side effect of our spell hover over
it definitely forces the id to lower case in the UI, so that could actually be it
I hijacked the vanilla system instead of building a UI element that shows up only for our spells
a lot of the mod is focused on "using in-engine functions" as much as possible
so tricking the engine into thinking we are casting a spell (but it has no effect) means I didnt need to remake spell casting from scratch or mess with the spell book at all
tricking the engine into thinking our spells have hover over icons mean we dont need a clunky UI replacement
but everything has a cost it seems

vanilla spell casting 'empty' spells gives us the defaultVFX issue
tricking the engine with fake hover over means strange duplicate buff icons that do nothing
ah the normalization is also to prevent the vanilla engine from casting the spell as well
so I just need to make a system to reference the real spell on load so when we normalize it in a spellforge spell, it shouldnt have any issue.
This is just an "extra" effect added in the LOAD script, it is possible to not show it
it all comes down to what you specify in the load file
as far as I've noticed
it's also useful for custom effects to give dummy icons to actually represent duration/activation
since custom effects are purely lua, engine doesn't understand what's happening. It can only give a visual effect status feedback
its casting a fake buff because our spell has a fake icon with duration and such
Yeah, but it's possible to eliminate this fake buff is what I'm saying, if it's of any importance
our frontend spell uses display proxies with real duration/magnitude so vanilla hover text looks correct. To fully prevent shell buffs, we likely need to make frontend spells use a truly inert zero-duration marker instead. That would cause us to lose the nice vanilla spell tooltip unless we find an OpenMW-safe way to keep tooltip data without creating active effects.
the cheat fix is basically the same frame the spell icon is made we remove it

Yes I understand that, what I mean is that what is on the tooltip doesn't actually have to be 1:1 applied effects from the tooltip

the noop effects in the actual spell also have the added bonus of showing what spell they're actually from instead of from some uuid ahh spell name
You can have tooltip info without some of the effects applied if needed
but that's just my observations from the Kinetic spell mod since it uses unique casting in 2 phases
Had some difficulties around it to be truly honest
unless you can change the name of the dispatched spell in the UI, if that's an option then it's probably best to just hide the effect
This means you actually make 2 spells for the load script, and when casting it will actually launch the 2nd spell, not the one from tooltip
When you specify that explicitly with the script of course
SFP isn't casting it
OpenMW is
thats why two show up
its basically the same problem as our spell projectile issue. The engine sees icon, sees duration, sees school type, makes a buff show up.
buff does nothing

fields.hasDuration = source and source.hasDuration
fields.hasArea = source and source.hasArea```
so you are saying we can still have all that, but make the engine not show it when we cast it?
Lemme check that real quick
I feel like it must be on my end
because otherwise, all the custom spell mods would have this issue
right?
yeah the way the engine handles non castable spells
isn't to do nothing
it just... pretends
on target spell with no data inside it?
cast defaultVFX
it also loves to use anything it can to figure out what to cast
Must be a way to counter that somehow
or providing a dummy defaultVFX
NC and no mesh
Well then, seems complete to me 😄
thats what invisible nif is for
and the omwaddon
is the spell bolt weapon record
using the invisibile nif
Yeah
and the silence.wav supresses the sound it makes
because ofc it makes sound too
i guess its better than the game crashing
no spell effect -> cant cast -> break engine
The workarounds are just sweet haha
for being pretty reliant on AI for coding, I'm actually quite clever at thinking of unique fixes
its not the best at fixing engine level issues
without being like
"patch OpenMW"
bruh no.
i'm not gonna do that
even the current issue, it insists we can't fix it without breaking our UI hoverover and I'm like "what if we just remove the spell icon the moment it activates?"

honestly surprised AI handles the openmw apis well enough to make things work
with how obtuse the docs are
not that it really cares about difficulty finding things in there since it can just ingest the whole lot in one go I guess
you can tell how well it does depending on how experienced the user is at using AI for coding and understanding what the API can do simply by looking at my early mods compared to now (hint, they were pretty rough. not awful, but pretty buggy and need/needed a lot of work)
if you just go in with a "build me an army mod worthy of mordor Dagoth Ur" its gonna probably make a pile of shit
I make it refer to openMW documentation for basically everything, I also have over time learned about the API myself as well so I understand more of what it can and can't do
I also quite often use the stones AI to destroy audit/craft the stones prompts
This will be done correctly if you make it 1.01s after invoking spellcast
so you don't poll onFrame to save performance
just a delayed cleanup
since spellcast takes 1.00
Mate, it does now, October last year until december it was pretty shite
😄
it seems to learn quickly though
This
I mean I made GRIP before Codex existed
By reading and troubleshooting over and over you just get it eventually
purely in GPT chat sessions
Yeah
it was a lot harder to work with
since I had to feed it files
and it would lose context on old files so quickly
it was awful
I do it nowadays mostly 😄 since already antigravity free usage banned, copilot also depleted, cursor free tier too

But I got my working methods as of now how to do it quite efficiently
no wonder I got my antigrav banned since I was juggling like 10 accts
but it was fun until it lasted
100 big ones to Sam every month 
just too many ideas to deal with free limits
was so annoying to hit limits after one prompt
ooo
recommend this site, you get free access to all models
with limits, but for example when using claude, you can use 4.6 and then when depleted 4.5 and then 4.6 without search and 4.5 without search
treated as separate models
claude depletes so damn fast its wild
I even tried a paid sub for claude and literally first prompt into a openMW mod github link and it hit 5hr limit

I dont think I've ever hit a limit with either the plus or pro sub for openai
with claude
it really does the job for me, even shit models tend to perform well after claude tailors nice plan
I got my ways 😄
claude is fantastic for UI work and creative stuff
anyway which spells arent working?
I have a fix I wanna test
TR spells?
the hyacinth ones?
@lethal crane
think so yeah
iirc that's the ones in expanded-vanilla currently
@inner vector this might be a solution for the dummy effects to not spawn anything, seems to load none of the engine things with this (nothing casts, no sound or vfx loaded from the engine - the cast animation starts normally of course like a normal spell Ossc starts the animation but no effects and vanilla casting is unable to start in such case, might help though anyway)
local function createEmptySpell()
local id = 'empty_spell'
if core.magic.spells.records[id] then return id end
local draft = core.magic.spells.createRecordDraft({
id = id,
name = 'Empty',
type = core.magic.SPELL_TYPE.Spell,
cost = 0,
effects = {},
})
local record = world.createRecord(draft)
return record.id
end
Tell me about it! I use Claude for helping with debugging (It's SO good at parsing error messages, especially since I've fed it the lua API and my git repos) and most issues that are slightly larger than single line errors can take 10+ hours to fix because of rate limits. I also use Claude to help with UI things, because it's fantastic at that - I've always struggling with UI coding, I just can't visualise it.
I use Codex to help me realise more complex ideas into reality, like figuring out how to achieve some of my more radical passive effects.
But perk construction, more simple perk effects (TG, MT, IC, TT, FG) I've managed to achieve all by myself, and I get better at it every day.
Ideally I wouldn't need to use AI at all, but using it as a tool to assist me, learning from it, and improving myself feels ok. I still scour the documentation myself, learn how it all works, and often go back and correct or improve shoddy work that the AI did
They should have called Aldritch
but what if you put spell effect placeholders into it so it doesn't show 'nothing'?
that empty spell and this spell are literally the same in the eyes of OpenMW when it comes to actual spell effects, except the icon placeholders (type/duration/magnitude). The engine sees "this is a self spell, it lasts 60 seconds and has no magnitude. I will put the self spell icon (summon ghost) in the players UI for 60 seconds"
it doesn't actually cast any of the placeholder spells in the hoverover information, but it still creates an icon for the self spell
the easy fix is basically "don't make a tooltip" but then the user doesn't know what the spell does. The hard fix is "make your own tooltip/UI system yourself". My cheat fix is "don't actually fix it, just hide it before the user sees it"
the real fix is unknown but likely engine sided. Idk if it can be fixed, it certainly feels like something put in place to prevent crashing
all my issues seem to basically be "the engine is defaulting" in clever ways
OpenMW looks at the spell, sees its a target spell but it has no effect it can understand, tries to cast a placeholder spell projectile that does nothing. It also sees a self spell, but no effect it can understand, casts a placeholder spell buff that does nothing and lasts 60s.
viola
cheat fix
bug? no no... I dont see any bug

Please feel free to test the fixed version 
looks like it works
no issues with any other custom spells or spells in general that you've noticed?
Nothing really game breaking, just some issues with the spellmaking interface, like how it doesn't filter available effects based on whether they're marked available for custom spells so there's a lot of effects that are normally disabled in momw packs like fotrify skill and restore magicka.
what do you mean?
some spells aren't supposed to be spellcrafted still show up?
I thought I had a gate for that...
restore magicka is there, and it definitely isn't spellcraftable normally
as a sidenote, the way that the search input loses focus after each letter you type is pretty annoying, but I don't know if that's compatible with live updates on search
search is broken too?
the filter
ah I didnt know
not broken per se
it just loses focus so you have to click on it to type each next letter

wha-POW
PUH POW
please try this version 
menu works, I assume fixing the restricted effect issue wasn't part of this patch
are they still showing up?

lemme see... I thought I fixed that
oh whoops
still under todo
only figured out what was causing it
my bad 
also isn't fortify skill something that works in vanilla spellcrafting??
I could have sworn you can go to mournehold and get the spell early and make whatever skill you want to be buffed
Make it the same like the code snippet, just change Empty to your spell id, so no school spell specified, just add icon and proper name. Do not assign anything else on the effect, might help
it is, but momw modpacks disable it so in my case it's a good test case for actually checking records instead of that filter being hard coded
you dont like my cheat fix? 
No no, don’t get me wrong 😄 just giving the solution ideas
😜
if I dont put anything else into the field (magnitude, damage, time) then it lacks information. it would just say (Summon Bonewalker) and not (Summon Bonewalker for 60s) or (Fire Damage) instead of (Fire Damage for 1-10dmg over 5 seconds in 10ft) 
How do you even have it?
This effect is not available in any standard spell that can be bought, it is available in potions and scrolls.
I can't even figure out how to give it to my player
to test it
it shows up only as ability flag
the TR ones are like racials they dont go in my spellbook

I guess you can give it a whirl
I have no idea if it worked or not though
it's also from a mod, https://modding-openmw.com/mods/zef-focus-magicka/
It worked, yeah
ditto

I'm going to add a window around the search bar
since its kind of invisible
tada
Updated to v1.2
- Fixed UI responsiveness when changing spell parameters and using search
- Updates to Spell sorting/search window (fixed focus lost while searching, border added around search box)
- Fixed custom spell detection and compiling, properly refuses 'spellmaking=false' spells
- Fixed duplicating buff icons
Oh no I've meant the Noita added effects, not the base game spell effects
so you don't get the defaulted vfx
Another intresting bug: Spellforge spells (or at least spells with triggered effects) are not properly attributed to the player for the purposes of assault bounties
so while homing projectiles will absolutely home in on friendlies and aggro them, this doesn't incur an assault or murder bounty.
there's something inconsistent about this, so it might only be some types of hit that behave like that or something, but it definitely fails to attribute sometimes
ok nevermind that one's my bad
it's actually an issue with how bounties and aggro work with creature actors and such

no worries
better to be safe than sorry
it's important to test whether beating someone over the head with a stick behaves the same way I suppose

Adding in a UI scaling preset to settings
investigating spells losing functionality randomly (but being restored on quicksave/load)
UI scaling options and spell recipe stability added
attempt 2 at fixing random spell recipes failing till save->reload
neither bug reporter provided any logs, or any way to reproduce it so I'm firing kinda blind here
modding is all fun and games until you learn how a colored line is actually drawn in openmw
looks like some spells were somehow being flagged as ‘touch’ while firing as ‘target’ so spellforge was basically waiting for a touch spell from that refID forever, breaking that spell.
fixed in 1.3
addressing weakness to element spells showing as “points” instead of “Magnitude in %” and then I’ll push v1.3 to live
Oh
its an openMW issue
(Warning: distilled by the machine spirit 👻 )
The spell hover path does this:
- Reads the hovered spell record.
- Copies each effect’s
mEffectID,magnitude,duration,range, etc. into tooltip params. - Lets the generic spell-effect widget format the text.
Source: tooltips.cpp
Then the formatter asks the magic effect record for getMagnitudeDisplayType(). If that returns MDT_Percentage, it appends spercent; otherwise for normal magnitudes it appends spoint/spoints.
Source: widget.cpp
The critical bit is here: getMagnitudeDisplayType() is hardcoded by the built-in magic effect index. Weakness effects are percentage because their vanilla effect indexes are in the percentage ranges. Unknown/custom effect IDs fall through to MDT_Points.
Source: loadmgef.cpp
Now you may ask "Slowchu... why don't you just use actual weakness to spell effects in the tooltip?"
And the answer is: Because the vanilla cast path will actually cast it on top of the SFP cast
o_O
This also means that ANY custom spell in 0.51 will not be able to present as % based
it will always display as Pts unless its some custom type of spell that already returns as % (like if you made a custom 'weakness to' spell)
you're talking about like that?
Vanilla
Spellforge
We use 'empty' custom spells for our hover-over (custom spells with no effects, but the proper school/icon/etc automatically parsed)
if I use an actual weakness to ID for the hoverover
the vanilla cast path will cast it
so it doubles up
and there is no way to 'choose' between MDT_Percentage and MDT_Points
its hardcoded
you're using a custom tooltip right?
the engine sees a custom spell, it defaults to MDT_Points





