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..

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
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

- Count: 0

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

        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)


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 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! :)

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

foreach (var (x, y) in stuff)

Any hint?

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!

Any suggestion for running it under Linux?

Getting compilation errors for all the

foreach (var (x, y) in stuff)

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

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?



  • UOBlackBoxVers-LinuxMacOS.txt
    3 KB · Views: 1
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.