Jump to content

SkyUI not showing effect HUD icons (only time bars)


freelikegnu

Recommended Posts

SkyUI works (almost) perfectly for me (SkyUI mod configs, inventory, vendor and crafting menus, etc) except that the HUD effect icons don't show, I only see the little bar in the HUD that shows time remaining on the effect.

Any idea what I'm doing wrong or how to troubleshoot further?

Skyrim SE 1.5.80.08
SkyUI_5_2_SE-12604-5-2SE
Skyrim Script Extender 64 v2.0.16 beta
modslist: https://pastebin.com/UHvZMaXS
screenshot: https://i.imgur.com/P6NOJBc.png (effect status time in top right)
Thank you!

Link to comment
Share on other sites

not sure, but I believe SkyUI has some ini-file (or possibly MCM) settings that allow the size of elements to be altered. Check the SkyUI mod page for direction.

 

I did something in passing (please don't ask what, I have no idea) that changed mine from those tiny bars to much much bigger. It *might have been tweaking a setting in the MCM, or it might have been by editing an ini file

(can't check right now anyway as I'm working and on another OS)

 

Hmm.. had another thought...it might be an additional mod I installed to augment SkyUI. I'l post back tonight when I'm able to play.

 

ok in lieu of later, I checked my installed mods list via nexus and I have a mod called skyHUD that (might be the way I got larger effects displays... might. you'll need to check the documentation

https://www.nexusmods.com/skyrimspecialedition/mods/463

 

Now if I could only figure out why my follower health bars rarely if ever show up. (even though they're ostensibly set to show)

Link to comment
Share on other sites

  • 2 weeks later...

It turns out this is a WINE issue on Linux at least to WINE 4.16, HUD Active effect icons work fine when I tested this in Windows. If anyone running Skyrim SE with SkyUI on Linux with WINE is curious or has more info, please contribute to the bug report I've posted here: https://bugs.winehq.org/show_bug.cgi?id=47805 Thank you!

Edited by freelikegnu
Link to comment
Share on other sites

  • 3 months later...

Hi.

I have the same issue using Steam+Proton: SkyUI Active Effects HUD timers without icons.

But my SKSE's console shows another error (not one indicated at the WINE bug report above). Each time I use a temporary spell and a timer (without its icon) appears, I get in SKSE's console these 4 lines:

[wma2 @ 00007f25f0da3200] overflow (238 > 233) in spectral RLE, ignoring
[wma2 @ 00007f25f0da3200] frame_len overflow

[wma2 @ 00007f25f0da3200] overflow (954 > 932) in spectral RLE, ignoring
[wma2 @ 00007f25f0da3200] frame_len overflow

I searched in google but couldn't find enough to understand the problem. What I found:

1) This error goes from ffmpeg/libavcodec/wma.c
https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/wma.c
2) This could be related to DRM
https://comeandtechit.wordpress.com/2010/04/19/overflow-in-spectral-rle-ignoring

What I don't understand at all is why anybody might want to put a DRM-protected file in a Skyrim mod?..

 

I tried to change icons file Data/Interface/exported/skyui/icons_effect_psychosteve.swf with mods like https://www.nexusmods.com/skyrimspecialedition/mods/29682 - all the same. So, I guess, the problem could really be not in icons.

Edited by shumkar
Link to comment
Share on other sites

  • 2 weeks later...

Hi again.

 

I have been able to make a testing that helped me to isolate the problem.

 

The errors with 'wma2' are produced by two lines in the file ActiveEffect.as:

skyui.util.Debug.log("[SkyUI Active Effects]: Missing icon");
skyui.util.Debug.log("\t\t" + s + ": " + effectData[s]);

It's weird but I am sure. I remind that I'm running Skyrim SE on Linux with Proton.

 

I have reason to suspect which code in the function skyui.util.Debug.log is 'guilty'. These lines:

		if (_global.skse && _buffer.length > 0) {

and/or
			if (_global.skse)
and/or

			else if (_global.gfxPlayer)

Why do I think so?

 

I wrote a simple mod (my very first Skyrim mod), which, after loading a save, calls a Custom Menu with a simple SWF clip with a simple text like "Hello world" in the center of the screen. And the tests with this mod are showing:

 

Test 1. If I compile this SWF clip with .as script that extends MovieClip, the SWF clip is being displayed.

Test 2. If I compile this SWF clip with .as script that extends skyui.widgets.WidgetBase, the SWF clip is not being displayed!

Test 3. If I compile this SWF clip with .as script that extends skyui.widgets.WidgetBase, and I remove from skyui.widgets.WidgetBase all the code except declaring variables and the public function WidgetBase, the SWF clip is not being displayed!

Test 4. If I compile this SWF clip with .as script that extends skyui.widgets.WidgetBase, and I remove from skyui.widgets.WidgetBase all the code except declaring variables and the public function WidgetBase, and in the public function WidgetBase the only line containing '_global.gfxPlayer' is replaced by a line NOT containing '_global.gfxPlayer', the SWF clip is being displayed again!

And,

Test 5. If I compile this SWF clip with .as script that extends skyui.widgets.WidgetBase, and I add also SkyUI's Log.as and I call skyui.util.Debug.log from my .as script, I get the same 'wma2' errors.

 

To be precise, in Test 4, I replaced this:

	public function WidgetBase()
	{
		_clientInfo = {};
		_widgetHolder = _parent;
		_widgetID = _widgetHolder._name;
		
		// Allows for preview in Flash Player
		if (_global.gfxPlayer)
			_global.gfxExtensions = true;
		else
			_widgetHolder._visible = false;
	}

with this:

	public function WidgetBase()
	{
		_clientInfo = {};
		_widgetHolder = _parent;
		_widgetID = _widgetHolder._name;
		
		// Allows for preview in Flash Player
		if (__x = 1000)
			_global.gfxExtensions = true;
		else
			_widgetHolder._visible = false;
	}

..., and the SWF clip is shown again.

 

 

This my simple mod shown also that _global.skse is equal to undefined on my machine. (I simply assigned _global.skse to the text displaying in the SWF clip).

 

This my simple mod shown also that SKSE functionality intended to work from ActionScript code - does not work at least partially or may be at all:

 

skse.Log - does not work,

skse.GetINISetting - does not work,

other functions I didn't test.

 

With all this, SKSE64 is installed on my machine; I launch the game with skse64_loader.exe, I see multiple logs e.g. skse64.log, skse64_loader.log and others.

 

Any thoughts?

 

Should I post this to Proton Bugzilla, or contact SKSE team, or try to contact anybody from SkyUI team?

 

 

Edit:

I compiled my mod on Windows 10 in Virtualbox according to the instructions here: http://forums.bethsoft.com/topic/1509769-tuthow-to-create-widgets-using-flash-tools/ and my Flash CS6 produced no errors.

Edited by shumkar
Link to comment
Share on other sites

I've managed to change the code of ActiveEffect.as so that Active Effect icons are displayed now.

 

However, for the time being the only one icon is displaying for all effects, because I changed the method of calling icons and I'll have to write an own rule for this method, which icon corresponds to which effect.

 

The old method was this:

_iconLoader.loadClip(iconLocation, _icon);

And for some reason it did not work.

 

I moved an icon (av_alchemy) from icons_effect_psychosteve.fla to activeeffects.fla, exported it for ActionScript, then in ActiveEffects.as added a private variable_av_alchemy and replaced the line above to:

_av_alchemy = content.attachMovie("av_alchemy", "av_alchemy", content.getNextHighestDepth(), {_x: (background._width - _iconHolder._width - 10), _y: _iconHolder._y, _width:_iconHolder._width, _height: _iconHolder._height});
_av_alchemy.background._alpha = 50;

I used this method - content.attachMovie - instead of _iconLoader.loadClip because it is used for the time bars, and the time bars are perfectly displayed.

 

The result - on the screenshot:

 

https://www.nexusmods.com/skyrimspecialedition/images/60965

 

It looks ugly :smile: But the main thing is that an icon (any... icon!) is finally displayed.

 

May be, the problem with _iconLoader.loadClip is in "addressing" of icons. I made a "test print" (skse.Log works, but not always...) of arguments passing to iconLoader and it shown that icon name is very weird, containing a lot of numbers and even sign '+' :ohmy: Very big number raised in a big power.

 

Screenshot: https://www.nexusmods.com/skyrimspecialedition/images/60966

 

In general, something like this. :smile:

 

Edit: forgot to add about exporting for ActionScript. Why all icons in icons_effect_psychosteve.fla are not exported? To address an icon with a short exported name is easier than level0... widgetContainer...

Edited by shumkar
Link to comment
Share on other sites

  • 3 weeks later...

I've managed to change the code of ActiveEffect.as so that Active Effect icons are displayed now.

 

However, for the time being the only one icon is displaying for all effects, because I changed the method of calling icons and I'll have to write an own rule for this method, which icon corresponds to which effect.

 

I've written the rules... So far, it works for me with all icons that I currently need (magic & alchemy).

 

If someone else has the same problem, just ping me in this thread. I could publish it as a mod (with one file Data/interface/exported/widgets/skyui/activeeffects.swf). It is based on the open SkyUI SDK by Schlangster, so there should not be problem with permissions.

 

If some icon will be missing (that you're using, but I am not), I'll add the rule for it. I'll need only an excerpt of your SKSE log at the moment of casting the effect with the missing icon.

Edited by shumkar
Link to comment
Share on other sites

  • 4 months later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...