RunUO Crash


So I have a shard I play with trying new ideas ect, my children have now taken to playing on it too.
Back in August I had a problem with it crashing just after it loads up, I managed to solve this by going back to a save from 2 weeks before.
Since then its been fine, till last weekend. same problem, server loads scripts ect fine then crashes and goes to restart. Now i could go back to the save from august but we lose 3 months of play/work.
I have gone over everything i did on the day it crashed, monsters killed/spawned, items moved/spawned and nothing seems to make any difference.
I can start the server fine from a recent save, play the game fine but any save after this point, once the the server is closed it will not restart without crashing.
My coding skills are lacking here as unlike a script error I have no idea where to start, so I need help from anyone who has a deeper knowledge of the inner workings of runuo.
I will be very grateful for any help as i`m lost without UO to toy with now `im stuck at home for 2 weeks self isolating.
here is the crash report,

Server Crash Report

RunUO Version 2.1, Build 4018.31584
Operating System: Microsoft Windows NT 6.1.7601 Service Pack 1
.NET Framework: 2.0.50727.8806
Time: 25/10/2020 18:37:13
Mobiles: 39559
Items: 219662
System.ArgumentOutOfRangeException: The added or subtracted value results in an un-representable DateTime.
Parameter name: t
at System.DateTime.op_Addition(DateTime d, TimeSpan t)
at Server.Timer.TimerThread.ProcessChangeQueue()
at Server.Timer.TimerThread.TimerMain()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

- Count: 0

Cheers Ely


ServUO Developer
There is some timer that is loading with an improper DateTime time. Can be difficult to diagnose, do you have any custom scripts that would use a timer? Do you know how to run in debug mode?


There is some timer that is loading with an improper DateTime time. Can be difficult to diagnose, do you have any custom scripts that would use a timer? Do you know how to run in debug mode?
Post automatically merged:

Its been a few years since I ran in debug mode, can you remind me how. As for custom scripts using time/date the only one i can think of that will is a rare spawner one. I will try taking that one out.


ServUO Developer
Create a shortcut to your RunUO.exe. Then click properties on the shortcut and click the Shortcut tab. You should see a section that says target. add the end of the target (after RunUO.exe) add a -debug. Then run RunUO from the shortcut.



ServUO Developer
You might also run the command [dumptimers (I think its available in RunUO 2.1 but not sure). You will get a text file in the main directory that will show you running timers.


So I did the timer dump and im running in debug, how can I get more info on the crash in debug than running normal?
Can you see anything in my timer dump that looks odd?

Priority: EveryTick

Priority: TenMS

Priority: TwentyFiveMS

Type: DelayCallTimer[Server.Engines.Doom.GauntletSpawner.Slice]; Count: 1; Percent: 100%

Priority: FiftyMS

Priority: TwoFiftyMS

Type: Server.Mobiles.HarrowerTentacles+DrainTimer; Count: 1; Percent: 100%

Priority: OneSecond

Type: Server.Items.BaseDoor+InternalTimer; Count: 39; Percent: 8%
Type: Server.Mobiles.XmlSpawner+SpawnerTimer; Count: 373; Percent: 80%
Type: Server.Engines.CannedEvil.SliceTimer; Count: 9; Percent: 1%
Type: Server.Mobiles.Spawner+InternalTimer; Count: 4; Percent: 0%
Type: Server.Engines.CannedEvil2.SliceTimer2; Count: 1; Percent: 0%
Type: DelayCallTimer[Server.Items.PeerlessKey.Slice]; Count: 3; Percent: 0%
Type: DelayCallTimer[Server.Factions.Faction.ProcessTick]; Count: 1; Percent: 0%
Type: DelayCallTimer[Server.Misc.Weather.OnTick]; Count: 36; Percent: 7%

Priority: FiveSeconds

Type: DelayCallTimer[Server.Multis.BaseHouse.Decay_OnTick]; Count: 1; Percent: 0%
Type: DelayCallTimer[Server.RemoteAdmin.AdminNetwork.CleanUp]; Count: 1; Percent: 0%
Type: DelayCallTimer[Server.Factions.Town.CheckIncome]; Count: 14; Percent: 0%
Type: Server.Mobiles.PremiumSpawner+InternalTimer; Count: 5017; Percent: 61%
Type: DelayCallTimer[Server.Factions.Election.Slice]; Count: 7; Percent: 0%
Type: Server.Mobiles.Spawner+InternalTimer; Count: 371; Percent: 4%
Type: DelayCallTimer[Server.Items.FillableContainer.Respawn]; Count: 2769; Percent: 33%
Type: DelayCallTimer[Server.Items.DisturbingPortraitComponent.Change]; Count: 1; Percent: 0%
Type: Server.Engines.CannedEvil.RandomizeTimer; Count: 1; Percent: 0%
Type: Server.Engines.CannedEvil.RestartTimer; Count: 1; Percent: 0%
Type: DelayCallTimer[Server.Items.FountainOfLife.Recharge]; Count: 3; Percent: 0%
Type: Server.Engines.XmlSpawner2.XmlPoints+LeaderboardTimer; Count: 1; Percent: 0%
Type: DelayCallTimer[Server.Items.UnsettlingPortraitComponent.ChangeDirection]; Count: 1; Percent: 0%
Type: DelayCallTimer[Server.Items.StealableArtifactsSpawner.CheckRespawn]; Count: 1; Percent: 0%
Type: DelayCallTimer[Server.Items.HammerOfHephaestus.Tick_Callback]; Count: 2; Percent: 0%
Type: DelayCallTimer[Server.Items.JacobsPickaxe.Tick_Callback]; Count: 1; Percent: 0%
Type: DelayCallTimer[Server.Factions.Faction.HandleAtrophy]; Count: 1; Percent: 0%
Type: Server.Mobiles.LoyaltyTimer; Count: 1; Percent: 0%
Type: Server.Guilds.WarTimer; Count: 1; Percent: 0%
Type: Server.LightCycle+LightCycleTimer; Count: 1; Percent: 0%
Type: Server.Misc.AutoRestart; Count: 1; Percent: 0%
Type: Server.Misc.SpawnTimer; Count: 1; Percent: 0%
Type: DelayCallTimer[Server.Network.NetState.CheckAllAlive]; Count: 1; Percent: 0%
Type: DelayCallTimer[Server.Item.Delete]; Count: 10; Percent: 0%
Type: DelayCallTimer[Server.Engines.Quests.Hag.Blackheart.Heave]; Count: 2; Percent: 0%

Priority: OneMinute

Type: Server.Mobiles.PlayerVendor+PayTimer; Count: 109; Percent: 44%
Type: Server.Mobiles.RentedVendor+RentalExpireTimer; Count: 83; Percent: 33%
Type: Server.Mobiles.BaseCreature+DeleteTimer; Count: 3; Percent: 1%
Type: Server.Mobiles.BaseHire+PayTimer; Count: 47; Percent: 19%
Type: Server.Mobiles.VendorInventory+ExpireTimer; Count: 3; Percent: 1%
Type: Server.Misc.FoodDecayTimer; Count: 1; Percent: 0%
Type: Server.Misc.AutoSave; Count: 1; Percent: 0%


ServUO Developer
In debug mode, it should provide more information in the crash log.

I see two timers that I would look further at - Hammer of Hephaestus and Jacobs Pickaxe. I would be curious to see why those weapons have timers and are they implemented correctly.

Like I said, this can be a difficult one to diagnose. Post the crash log from a debug session when you can please.