I'll second what The Ghost said about that. Used to be EUO was more stable with uoxl swap actions and how it interacted with clients.
I have had the black screen for a bit on my character/account trying to login. I never tried logging into other shards with the same account to see if my symptoms really match yours...
There are some other threads here where we discussed EUO and Client crashes. I find if it crashes, I have to stop everything - close all clients and Easyuo, make sure no remnants in task manager for either of those and start over.
I always start Easyuo, then use it to start all the clients I want. I have the most issue where if EUO crashes, I can't start a new EUO when clients originally 'bound' to the first EUO are still running. Before the 'auto update' that The Ghost mentioned, I do not recall this kind of requirement - EUO and the UO Client were happier to interact with each other, but not now.
Most crashes I have experienced involve doing more than 1 thing at a time on the same client which is what The Ghost suggests above. Dragging an item and moving more than 2 tiles from it's source location before dropping it - 100% of the time crashes the client. 2 Clients trying to drag the same item - 100% of the time crashes the client. Others have talked about uoxl swap behaving differently than it used to. Your description sounds similar.
The vast majority of client crashes happen from trying to do more than 1 thing at the same time.
A few crashes can happen because of management of resources.
The most obvious defense against crashes because the client is asked to perform more than 1 thing at a time involves setting good timers and checks or simply hard coded waits.
Your initial description seems very likely that more than 1 thing happening at a time or too close together. It would be trivial to create a log of when your events happen to prove it is or is not a timing issue. Just a few minutes reading the last 2-3 years worth of posts on the CLAW looter will show that many have experienced issues - which is of course related to doing more than 1 thing at a time. The players are running some assist script along side the CLAW and don't have their own script pause while looting. It is a guarantee the issue is doing more than 1 thing in too short a time span. Most naively do not want to accept that is the case - though all evidence points to this being the issue.
First, you want to eliminate any such timing issues. If that doesn't solve the problem then there is a more technical issue involving uoxl swap.
The uoxl swap is reported as slower than before the auto-update feature was available. I haven't personally timed it, just discussed it. So if you have code that was written for the older EUO (pre-auto update) and are experiencing issues based on the timing, you may find it can help to slow it down slightly. I know it is possible to swap every 1-2ms (and you mentioned 20-50ms), but the new auto-update means there is more things that have to happen when swapping between clients. So you will have to expect it will take longer. Even if you swap between clients every 200ms (a ridiculously long wait period which is not what I am recommending)- the shortest reasonable client actions happen at 1 to 1.25 second intervals. So a script must come back around at that interval.
You are talking about setting specials, targets and using a bandage. None of those actions will complete in under about .75 seconds and can wait to happen at 1 second intervals or longer. You can swap among 5 clients and not notice a functional difference at 200ms per swap. I know we all had stuff that could uoxl swap in sub 10ms periods a few years ago, but now with the instability that probably is not reliable in all situations.
This slight delay is what I would try first. Something as simple as adding a "wait 1" statement after the "uoxl swap" line would be more than enough to allow it to slow down enough.
If your situation is just too slow to swap between clients every 100ms, then you can dig into compiling Easyuo yourself:
There is slightly older source code for EUO and you can compile your own under a VM of an older MS Windows OS. This is before the auto-update feature was implemented. It seems to be more stable for the uoxl swap related issues. I know that source code is before the current menu code changes were implemented. There are a few other obsolete or new features in EUO since that source code was posted. Nothing that is critical to making scripts that do what you want. The major 2 features to give up are the auto-update and allowing more than 1 menu.
So you would be left with only old menu functions and the requirement to manually update the memory locations for accessing the client functions when the client is updated.
Gaderian