Thank you very much! I will test it and let you know!

The main goal for now is avoiding server crashes. The rest, later..

At this point a lot of reasons can justify the backpack missing, like: my servuo not completely configured to allow using the enhanced client. You know, Pub57 :cool:

Thanks again!

**EDIT #1**

Ok I just remarked I have a couple of log files in my folder.. at the time of the daily restart and at 2 others I did..

I updated the code in BoxCore.cs..

Starting the server it is ok, restarting it gives this error..


Code:
Server Crash Report
===================

ServUO Version 0.5, Build 8539.8039
Operating System: Microsoft Windows NT 6.2.9200.0
.NET Framework: 4.0.30319.42000
Time: 2023-05-22 11:24:36 AM
Mobiles: 17203
Items: 161373
Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
   at Server.Services.UOBlackBox.BoxCore.EventSink_Shutdown(ShutdownEventArgs e) in C:\GamingSVR\ServUO\Scripts\Services\UOBlackBox\Box\BoxCore.cs:line 142
   at Server.ShutdownEventHandler.Invoke(ShutdownEventArgs e)
   at Server.EventSink.InvokeShutdown(ShutdownEventArgs e) in C:\GamingSVR\ServUO\Server\EventSink.cs:line 2087
   at Server.Core.HandleClosed() in C:\GamingSVR\ServUO\Server\Main.cs:line 351
   at Server.Core.Kill(Boolean restart) in C:\GamingSVR\ServUO\Server\Main.cs:line 325
   at Server.Misc.ServerConsole.ProcessCommand(String input) in C:\GamingSVR\ServUO\Scripts\Misc\ConsoleCommands.cs:line 199
   at Server.Misc.ServerConsole.ProcessCommand() in C:\GamingSVR\ServUO\Scripts\Misc\ConsoleCommands.cs:line 85
   at Server.Timer.DelayCallTimer.OnTick() in C:\GamingSVR\ServUO\Server\Timer.cs:line 700
   at Server.Timer.Slice() in C:\GamingSVR\ServUO\Server\Timer.cs:line 409
   at Server.Core.Main(String[] args) in C:\GamingSVR\ServUO\Server\Main.cs:line 673

Clients:
- Count: 0

I added a backpack validation at line 42 and it seems it fixed the issue..

C#:
        private static void EventSink_Shutdown(ShutdownEventArgs e)
        {
            var players = World.Mobiles.Values.ToList().FindAll(m => m is PlayerMobile);

            for (int i = 0; i < players?.Count; i++)
            {
                if (players[i].Backpack != null) // check for backpack
                    if (players[i].AccessLevel > StaffAccess && players[i].Backpack.FindItemByType(typeof(BlackBox)) is BlackBox box)
                    {
                        box.Session?.EndBox();
                    }
            }

            ArtCore.SaveStaticArtInfo();
        }

NOTE: I am receiving these errors only since the connection attempts with the EC client

Thinking: why is it done when no client connected

Will keep you informed for the first one!

**EDIT #2**

Fix you sent for login: same error, but at line 91 this time.. EventSink_Login().. for the same reason. EC client is true in my client.cf flie and no error on manual shutdown/restart..

--
 
Last edited:
I'll investigate further from information provided, though I will preface this with that if the enhanced client becomes a hassle, I will more than likely exclude it from the project!
 
that is what I was thinking.. disabling it with a client version check and I can probably investigate more later!

Thanks for your time! :)
 
Hello!

Little update..

The character used to login with the enhanced client still receives black box null reference errors when trying logging in with the regular client. The second character of the same account is good BUT the player did not try EC with this character.
 
The following error cannot be resolved
UO Black Box [Static Art Load Failed : Restart Server as Administrator!]

What I tried

- Import bmp to 65000 or later in UOFiddler and Save
 - mul two files into the folder that ServUO reads, and also into the client's folder.
 - I also tried converting to COP and trying it, since the above method didn't work.
- Start ServUO.exe with administrator privileges
- Delete TheBlackBox from Saves and start again


my mul folder was missing below.
I added these and it worked.
- artLegacyMUL.uop
- artidx.mul
- art.mul

---

I really look forward to this as the next useful plugin!

The button in the upper left hand corner of the screen gives you Tips on what the buttons mean.
My personal thought was that it would be nice if it was just a little more intuitive, as I have to remember it.
 
Last edited:
Any suggestion for running it under Linux?

Getting compilation errors for all the

C#:
foreach (var (x, y) in stuff)
{
    ...
}

Any hint?

-thanks
I can't figure out how to install GumpArt, where to put them?
Still need help?

It's in the gump art files of the client.
You can use a software like UOFiddler to read and edit the files.
This will create a patch for your client you'll need to add to all clients playing on the shard.

Contact me on Discord if you're on it! I'll help! I'll be on my computer in about an hour!

-K-
 
Any suggestion for running it under Linux?

Getting compilation errors for all the

C#:
foreach (var (x, y) in stuff)
{
    ...
}

Any hint?
I didn't get the errors. I use following dotnet.
Code:
$ dotnet --version
7.0.113

I think UOBlackBox contain some win-oriented code. they don't required Linux/macOS.
here is a patch.

But I have a problem. maps don't show correctly. why?

スクリーンショット-2023-10-31-154515.gif
 

Attachments

  • UOBlackBoxVers-LinuxMacOS.txt
    3 KB · Views: 5
If someone could point me in the right direction on this. Where do the BMP in the GumpArt folder go? It really does not say where they go.
 
Any suggestion for running it under Linux?

Getting compilation errors for all the

C#:
foreach (var (x, y) in stuff)
{
    ...
}

Any hint?

-thanks

Still need help?

It's in the gump art files of the client.
You can use a software like UOFiddler to read and edit the files.
This will create a patch for your client you'll need to add to all clients playing on the shard.

Contact me on Discord if you're on it! I'll help! I'll be on my computer in about an hour!

-K-
Korasek, you are right. I got same errors.
Previously, I'm using Pub58.
Pub58-WIP uses dotnet compiler.
So I never get this error.
But Pub57 use MONO compiler. So We got following error:
Errors:
+ Services/UOBlackBox/Tools/MapTool/HeatMapTool.cs:
CS0230: Line 97: Type and identifier are both required in a foreach statement
CS1525: Line 97: Unexpected symbol `in'
CS1525: Line 97: Unexpected symbol `)'
+ Services/UOBlackBox/Tools/Utility/GumpCore.cs:
CS0230: Line 296: Type and identifier are both required in a foreach statement
CS1525: Line 296: Unexpected symbol `in'
CS1525: Line 296: Unexpected symbol `)'
CS0230: Line 315: Type and identifier are both required in a foreach statement
CS1525: Line 315: Unexpected symbol `in'
CS1525: Line 315: Unexpected symbol `)', expecting `;' or `}'
+ Services/UOBlackBox/Box/GameInfo.cs:
CS0230: Line 236: Type and identifier are both required in a foreach statement
CS1525: Line 236: Unexpected symbol `in'
CS1525: Line 236: Unexpected symbol `)'
CS0230: Line 248: Type and identifier are both required in a foreach statement
CS1525: Line 248: Unexpected symbol `in'
CS1525: Line 248: Unexpected symbol `)'
CS0230: Line 260: Type and identifier are both required in a foreach statement
CS1525: Line 260: Unexpected symbol `in'
CS1525: Line 260: Unexpected symbol `)'
CS0230: Line 272: Type and identifier are both required in a foreach statement
CS1525: Line 272: Unexpected symbol `in'
CS1525: Line 272: Unexpected symbol `)'
CS0230: Line 284: Type and identifier are both required in a foreach statement
CS1525: Line 284: Unexpected symbol `in'
CS1525: Line 284: Unexpected symbol `)'
CS0230: Line 296: Type and identifier are both required in a foreach statement
CS1525: Line 296: Unexpected symbol `in'
CS1525: Line 296: Unexpected symbol `)'
CS0230: Line 308: Type and identifier are both required in a foreach statement
CS1525: Line 308: Unexpected symbol `in'
CS1525: Line 308: Unexpected symbol `)'
CS0230: Line 320: Type and identifier are both required in a foreach statement
CS1525: Line 320: Unexpected symbol `in'
CS1525: Line 320: Unexpected symbol `)'
Wilson, We would be very happy if you could fix this issue.
Additionaly, please following modifications:
1. use `/` as file separator, not '\'. There is no adverse effect in Windows environment. but Linux/macOS are require it.
2. In macOS/Linux environments, the method IsUserAdministrator() should always return true.
Even macOS/Linux users want to use this great tool. Thanks.
 
*Made a small update to Version 1.0.0.16 > Updated BoxStatic to not show ObjectProperties!

Re Download if you need this now, or wait until next version!
 
Compiles OK, but does nothing that I can tell. No items appear in packs.
Hard to help when you provide little to no information, if on staff character, you should get a black box in your pack, double click it to open up bag of tools! And if you don't see it still, make sure there are no errors in console window, and depending on servuo version, you might need to recompile!
 
On any Owner character, with this addon installed in scripts\services, I can compile as an Administrator no problem. When I launch the server as an Administrator and open any owner character, nothing new is in the backpack. Additionally the command [ReloadBoxArt does not work.

If I create a new character on the Owner account, they also do not receive anything additional in their backpack and the [ReloadBoxArt command still does not work.

I have tried using both version 57 or 58 > UOArtHook.cs
 
Doesn't tell me anything, what server are you using? how did you install the scripts? Do you have a screenshot of the start up where the blackbox logo appears, it'll post info if all loaded correctly! Have to understand, I am not there, I can't see your screen or read your mind! So post more info or I will not be able to help!
 
ServUO, unable to tell which version, will gladly provide if you can tell me where to find it.

Scripts are installed in the Scripts folder of the server, under Services:

1717670547277.png

1717670558122.png

Scripts were downloaded and pasted into their current location.

"Do you have a screenshot of the start up where the blackbox logo appears" No - what is this? Is there an additional EXE or similar that needs to run? All I've done is add the scripts where the directions said to add them, recompiled as an administrator, launched the server. I have used my existing Owner account and there's nothing in the backpack, I also created a new GM account and there is nothing in the backpack.
 
I'm running this script each time. Do I need to do something different?

@SET CURPATH=%~dp0

@SET EXENAME=ServUO

@TITLE: %EXENAME% - https://www.servuo.com

::##########

@echo:
@echo: Compile %EXENAME% for Windows
@echo:



dotnet build -c Release

@echo:
@echo: Done!
@echo:

@PAUSE

@CLS

::##########

@echo OFF

"%CURPATH%%EXENAME%.exe"
Tried to install it again:

D:\ServUO-master>dotnet build -c Release
Determining projects to restore...
D:\ServUO-master\Server\Server.csproj : warning NU1904: Package 'System.Drawing.Common' 4.7.0 has a known critical seve
rity vulnerability, CVE-2021-24112 - GitHub Advisory Database [D:\ServUO-master\ServUO.sln]
All projects are up-to-date for restore.
D:\ServUO-master\Server\Server.csproj : warning NU1904: Package 'System.Drawing.Common' 4.7.0 has a known critical seve
rity vulnerability, CVE-2021-24112 - GitHub Advisory Database
Server -> D:\ServUO-master\Server\bin\Release\Server.dll
D:\ServUO-master\Scripts\Services\UOArtHook.cs(6,7): error CS0246: The type or namespace name 'Ultima' could not be fou
nd (are you missing a using directive or an assembly reference?) [D:\ServUO-master\Scripts\Scripts.csproj]

Build FAILED.

D:\ServUO-master\Server\Server.csproj : warning NU1904: Package 'System.Drawing.Common' 4.7.0 has a known critical seve
rity vulnerability, CVE-2021-24112 - GitHub Advisory Database [D:\ServUO-master\ServUO.sln]
D:\ServUO-master\Server\Server.csproj : warning NU1904: Package 'System.Drawing.Common' 4.7.0 has a known critical seve
rity vulnerability, CVE-2021-24112 - GitHub Advisory Database
D:\ServUO-master\Scripts\Services\UOArtHook.cs(6,7): error CS0246: The type or namespace name 'Ultima' could not be fou
nd (are you missing a using directive or an assembly reference?) [D:\ServUO-master\Scripts\Scripts.csproj]
2 Warning(s)
1 Error(s)

Time Elapsed 00:00:10.84
If I use the 58 version of the UOArtHook I get this:


Compile ServUO for Windows


C:\Windows\system32>d:

D:\>CD \ServUO-master

D:\ServUO-master>dotnet build -c Release
Determining projects to restore...
D:\ServUO-master\Server\Server.csproj : warning NU1904: Package 'System.Drawing.Common' 4.7.0 has a known critical seve
rity vulnerability, CVE-2021-24112 - GitHub Advisory Database [D:\ServUO-master\ServUO.sln]
All projects are up-to-date for restore.
D:\ServUO-master\Server\Server.csproj : warning NU1904: Package 'System.Drawing.Common' 4.7.0 has a known critical seve
rity vulnerability, CVE-2021-24112 - GitHub Advisory Database
Server -> D:\ServUO-master\Server\bin\Release\Server.dll
D:\ServUO-master\Scripts\Services\Box\BoxStatic.cs(20,32): error CS0117: 'ObjectPropertyList' does not contain a defini
tion for 'Enabled' [D:\ServUO-master\Scripts\Scripts.csproj]
D:\ServUO-master\Scripts\Services\Box\BoxStatic.cs(30,32): error CS0117: 'ObjectPropertyList' does not contain a defini
tion for 'Enabled' [D:\ServUO-master\Scripts\Scripts.csproj]

Build FAILED.

D:\ServUO-master\Server\Server.csproj : warning NU1904: Package 'System.Drawing.Common' 4.7.0 has a known critical seve
rity vulnerability, CVE-2021-24112 - GitHub Advisory Database [D:\ServUO-master\ServUO.sln]
D:\ServUO-master\Server\Server.csproj : warning NU1904: Package 'System.Drawing.Common' 4.7.0 has a known critical seve
rity vulnerability, CVE-2021-24112 - GitHub Advisory Database
D:\ServUO-master\Scripts\Services\Box\BoxStatic.cs(20,32): error CS0117: 'ObjectPropertyList' does not contain a defini
tion for 'Enabled' [D:\ServUO-master\Scripts\Scripts.csproj]
D:\ServUO-master\Scripts\Services\Box\BoxStatic.cs(30,32): error CS0117: 'ObjectPropertyList' does not contain a defini
tion for 'Enabled' [D:\ServUO-master\Scripts\Scripts.csproj]
2 Warning(s)
2 Error(s)

Time Elapsed 00:00:27.86
 
Last edited:
Use 57 or remove the ref to ObjectPropertyList in the BoxStatic.cs : I haven't moved over to 58 fully so this is only sorta supported atm!
 
OK.

So if I download the blackbox ZIP file, then extract all the folders and place them in my servuo\scripts\services folder, then extract version 57 of UOArtHook.cs! and place this in my servuo\scripts\services folder, then run Compile.WIN - Release.BAT - everything should work?
 
This system is written for ServUO 57 & 58 which uses newer c#, you are receiving syntax errors because you are using an older server using older c#, which will cause the string syntax errors, you can fix them by using an older form of writing the string which includes the data, ie String.Format(); or use a newer server like 57/58!
 
이 시스템은 최신 C#를 사용하는 ServUO 57 및 58용으로 작성되었습니다. 오래된 C#를 사용하는 오래된 서버를 사용하기 때문에 구문 오류가 발생하고, 이로 인해 문자열 구문 오류가 발생합니다. 데이터를 포함하는 문자열을 작성하는 이전 형식(예: String.Format())을 사용하거나 57/58과 같은 최신 서버를 사용하면 이 오류를 해결할 수 있습니다!
매우 감사합니다
 
I might be late to the party, but having an issue. Sorry! So far, the BlackBox seems to work - partly - because its not loading the gump art, maps and co.

What I have done:

- Placed content of folder into scripts/services
- Since I am running ServUO pub57 (cloned from github), I extracted the ArtHook.zip, used p57 cs file
- Recompiled as admin
- opening server as admin.

I get this, which all seems fine!
14:39:46 UO Black Box [Default Locations - Initialized]
14:39:46 UO Black Box [Staff Locations - Initialized]
14:39:47 UO Black Box [Version : 1.0.0.16]
14:39:47
.----------------------------------------uu-----------------------------------------.
/------------------------------------------||------------------------------------------\
*******************************************{GD}*******************************************
\\.....__..__.____........____...__.......[].....__.........____.....................//
\\.../ /./ // __ \....../ __ )./ /.___._._____./ /__....../ __ )..___.__..__.......//
#>-/ /-/ // /-/ /-<#>-/ __ |/ // __ `// ___// // /-<#>-/ __ |/ __ \\ |/ /------<#
//./ /_/ // /_/ /...../ /_/ // // /_/ // /__./ , <....../ /_/ // /_/ /> <........\\
//..\____/.\____/...../_____//_/.\__,_/.\___//_/|_|...../_____/.\____//_/|_|by Kita..\\
*******************************************{13}*******************************************
\----------------------------------------<2023>----------------------------------------/
\_________________________________________||_________________________________________/

14:39:47 UO Black Box [Static Art Loaded = 31648 Images]


But when I enter the game, (using TazUO client thankfully because i can see the blackbox item without gump in my slot-inventory) the blackbox is missing its art. I even tried the ReloadBoxArt command. Is there something missing in the code that leads to the correct gump files?
 
Last edited:
In order to see the maps you need to edit your gump art via uofiddler! The maps images are included and are named by the slot they belong!
 
Ok, I get the idea - while I also apologize! The last time I did such things was in 2004.. XD

My problem is that I also don't see the rest of the gump art. I compiled, rebuild art with the command, even cleared other scripts to see if there are problems.

I figured one thing though and that is that your Blackbox is using gumpart.mul and can't access it when UOFiddler is running. I also can't run UOFiddler when the Blackbox Scripts exist on my server. I would consider it a bug or I am missing some workarounds or documentation on how to make the whole thing work properly. (I am a Senior Environment Artist, not a coder - so I just can guess and follow the instructions the script writer give me on hand)

Sadly I have to pull Blackbox from the Server for now in order to make Fiddler work again, but I really like your work on BlackBox. I really miss such tools for simple Worldbuilding stuff. (like Axis back in the days)
 
The gump art that is missing is probably due to the client your using, I used newer gumpart supplied by UO to make the gumps, they can be changed in the code in GumpCore.cs

1726861834556.png

Line 19 and 20 are the background gumps, change them to ones you have or update your official client.

As for the map art/ GumpArt - UOFiddler, I can't say much there, lots of info on how to add gump art, I won't get into it as there are many use cases depending on what your setup is! The maps are only used in the map tools of UOBlackBox so not a make or break for function!

I will have more free time come winter and I'll put some more effort into this project to make it easier in the future to install and use!
 
Thank you for the swift responses, Wilson! That is really wonderful. I will also try to help in any possible way.

One little question, though. I am actually using the 7.0.20.0 because I've read that with 7.0.50.0, Broadsword came in and changed plenty of file things. I've read so many different opinions on what should be used that it's difficult to distill what is the current state. Is it safe just to use one of the latest classic (non-enhanced) clients from the official website and go with these? (Maybe with the decrypter and latest UOFiddler to mess with UOP files)

Definitely, I would like to use the latest fluff, but it is more important for me to keep customization easy for me and my girlfriend. That's why I am taking this client thing so serious and being careful which versions to use. Perhaps I am overcomplicating things.

We're still learning the basics, and I am trying to get tools that make it easy to place items to decorate the world. Back in the days, it was possible to use Axis/Axis2. Today it feels much less convenient. I honestly wonder what all current Freeshard admins and world builders use for their ServUO servers.
 
The latest UOFiddler has a UOP addon which allows for packing files up to the latest versions, the only recent change to the official files/patch that I heard about was the clioc file has been changed. So IMO, any client prior to the latest one with the clioc changes would be suffice!

I can imagine it seems less convenient to new comers as there is 20+ years of stuff, most get into trouble trying to use older stuff, trick is to use the latest stuff (Within last 5-7 years). Stick to active projects, ie: UOFiddler, Centred, Classic UO etc etc!
 

Active Shards

Donations

Total amount
$80.00
Goal
$1,000.00
Back