Special Effects Viewer

2021 jan 22


based on codepoetz PowerBar effects browser


@Kevl’s I did read the readme and help files, but all I got was first an error message about SplitterDistance not being positive, then messages stating it was to be between Min and Max values (I got these messages when I chose “single character”, “placed effect” and reverted to “double character”).
I could only choose these through the menus, the only thing I could see was the list (on the pale yellow background, which shows on the right of your screenshot).
Restarting the toolset now (had to ctrl-alt-del to end it by the way), I noticed there was some settings xml file.


  • SpecialEffectsViewer.xml was not created in \AppData\Local\NWN2 Toolset\Plugins
  • I created one, with <?xml version="1.0"?> <SpecialEffectsViewer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SplitterDistance>100</SplitterDistance> </SpecialEffectsViewer> to see if that solved the issue, but unfortunately it didn’t.
  • I was able to have the same display as the screenshot though, by moving the left border of the list to the right, and selecting the “Show option panel” after. The xml file was not updated, but closing the viewer and reopening it showed that the previous settings (size, position) were still in memory.

Could you upload a default SpecialEffectsViewer.xml preferences file?



I will keep an eye on this. :slight_smile:

Thanks, Lance.

1 Like

@4760 gah, my bad

I see it in the code… will let you know when i get a new version out (soonish)

if you want to get that version running ->

- delete whatever prefs file (SpecialEffectsViewer.xml) is in your local folder.
  (ie. don’t interfere with the toolset/plugin trying to make its own)
- open toolset
- go to View|Options|Plugins|Special EffectsViewer|Window|w
- change the value of w to 800
- ok that, then start the plugin

It ain’t elegant but i think it’ll get the viewer started. Once it’s running you can adjust the splitter distance w/ mousedrag

The prefs file ought be created when the toolset closes.

fix is up

ps. Thanks

1 Like

Thanks, it works nicely now!

kk :)

ver is up

Very recommended  :)


I concur!!!

2 Likes update!

- fix exception when a search is attempted



I just used your Special Effects Viewer again, @kevL_s. I wanted to edit an effect by just removing the 0 event, and it looks as I want now without the 0 event. There’s no way to save the effect when you’ve just done something like this? Do you have to use the Visual Effects Editor for that?

hey andgalf,

sevi is only a viewer. yep Use the VisualEffectsEditor … sevi can display a lot of information about a SEF, and can play SEF events individually … so it can help find what you’re looking for, before heading into the more complicated VEE plugin

but you probly know that  :)p

Yeah, I noticed that I could find the information. Very good. I think I’ve got it now. Thanks!

1 Like

Gaah! So I thought I had got it working. In the toolset everything looks as it should, but ingame the effect won’t show when I removed two of the three events.

Maybe some here could help me? What I’m trying to do is take the fx_astral_dust Special Effect and remove event 0 and 1, so that only the nice, space-y, flying rocks remain. I tried that in the Visual Effects Editor, and in the area in the toolset, everything looks as it should, but when checking ingame, the effect is no longer visible at all.

what does your code look like?
Are you using ApplyEffectToObject() or ApplyEffectAtLocation() ?

( i assume your new SEF plays ok in the editor… )

EDIT : just took a look at fx_astral_dust in sevi … those rocks are way out there … are you sure your camera zooms out enough ?

Yes, since I first used the fx_astral_dust as it was, I see them ingame, but when I removed the two first events nothing shows ingame. Sometimes you have to wait a little while since they fade in, but I waited and waited ingame, and nothing shows there. It could very well be that I did something wrong when using the Visual Effects Editor. I haven’t looked at my new effect in your viewer though. I’ll see if the rocks are visible there.

1 Like

No, my versions are visible in your Special Effects Viewer. Sigh I don’t know what’s going on then. Maybe I’m doing something wrong. Here are my two sef files (did one without event 0 and one without event 0 and 1):

fx_astral.zip (911 Bytes)

EDIT: When fiddling around, I ended up using an Arcane Lamp effect which I modified. Again, it shows ingame if using the stock effect, but my modified effect doesn’t show ingame, just in the toolset.


EDIT2: Ok. I tried again. Now they became visible, but it takes like 2 minutes before they appear instead of just a few seconds, as it was when I used event 0 (I’m testing the one without event 0 at the moment). How come it takes so much longer for the effect to appear when I removed event 0?

ah so you’re applying them to .UTP files in the SpecialEffect slots? i think they need hookpoints which im not that familiar with @4760

idk. But you could try removing the special effect(s) from the slot(s) and applying the SEFs to the objects (in the area’s OnEnter script or similar)

effect eFx = EffectNWN2SpecialEffectFile()

ps. Look at the delay value (in sevi or SEE) and perhaps zero it … note that both the .Sef and the event(s) file(s) have their own delay values /iirc

Eh…I think the delay is 0 on everything, but I don’t know…Maybe I should change this? (I don’t know what I’m doing anymore)

Ok, I’ll try and do the script thing I guess…even though it shouldn’t be necessary, but hey, this is NWN2 we’re talking about. Things don’t always work the way you believe.


Urrghh! I don’t think I’m scripting this right (I’ve left out my own function StartConv here since in this case that’s irrelevant):

void main()

object oPC1 = GetEnteringObject();

if (!GetIsPC(oPC1)) return;

if (GetIsInCombat(oPC1)) return;

object oTarget = GetObjectByTag("myfx");

effect eFx = EffectNWN2SpecialEffectFile("fx_astral_dust_mod");

if (!GetLocalInt(OBJECT_SELF, "Done"))
	DelayCommand(0.5f, StartConv());

EDIT: Ok, maybe I have to use the .sef suffix too…