ServUO Version
Publish 58
Ultima Expansion
None
Hello everyone,I need your help.The server has been running for about a year without my involvement. I logged into the server last year, but yesterday when I decided to log in again, I discovered that the player houses located on Luna were missing, and who knows what else is gone. I started searching for saves in the backup, and I think I found some saves from 2022 that may have the houses. Can you please advise me on how to merge the old saves from the backup with the latest ones on the server so that we don't lose the accounts of new players created after that backup?
 
Depending on what version your ServUO is, create a backup of your current "Save" folder and set to the side during your test.

Now copy your all folders/files in Backup > Automatic folder into your Save folder and try recompiling/launching.

May get a few weird errors but see if it completes the load then check the world for your houses. If none their, you can revert your changes back.
 
He will simply overwrite the files. This method will restore the home directory, but any accounts created after that will be lost. I tried copying the fresh accounts.xml file directly from the up-to-date backup, but the server refuses to start. And even if it did start, I believe it would result in the loss of items belonging to new players. The only obvious solution is to delete the current save and replace it with the backup, but I don't want to lose the new accounts and their items. Similarly, I don't want to lose the old ones either. I'm at a loss and don't know what to do.

When transferring the entire backup, I lie by not taking into account the old accounts because they are all present in the fresh save at home, and the items appear, but the characters from the new accounts disappear.

I tried adding some fresh mobile files in hopes of transferring new players, but the server didn't start up.


report:
Server Crash Report
===================

ServUO Version 0.0, Build 0.0
Operating System: Unix 5.19.0.43
.NET Framework: 4.0.30319.42000
Time: 6/12/2023 5:26:23 PM
Mobiles: 46925
Items: 286430
Exception:
System.InvalidCastException: Unable to cast object of type 'Server.Mobiles.PlayerMobile' to type 'Server.Mobiles.BaseCreature'.
  at Server.Multis.BaseCamp.OnAfterDelete () [0x00031] in /opt/ServUO-Pub5722/Scripts/Multis/Camps/BaseCamp.cs:243
  at Server.Item.Delete () [0x000c6] in /opt/ServUO-Pub5722/Server/Item.cs:4449
  at Server.Multis.BaseCamp.CheckDecay () [0x00080] in /opt/ServUO-Pub5722/Scripts/Multis/Camps/BaseCamp.cs:105
  at Server.Multis.BaseCamp+<>c.<OnTick>b__53_0 (Server.Multis.BaseCamp c) [0x00025] in /opt/ServUO-Pub5722/Scripts/Multis/Camps/BaseCamp.cs:329
  at System.Collections.Generic.List`1[T].ForEach (System.Action`1[T] action) [0x0001e] in <de882a77e7c14f8ba5d298093dde82b2>:0
  at Server.Multis.BaseCamp.OnTick () [0x0000a] in /opt/ServUO-Pub5722/Scripts/Multis/Camps/BaseCamp.cs:326
  at Server.Timer+DelayCallTimer.OnTick () [0x00008] in /opt/ServUO-Pub5722/Server/Timer.cs:700
  at Server.Timer.Slice () [0x0003d] in /opt/ServUO-Pub5722/Server/Timer.cs:409
  at Server.Core.Main (System.String[] args) [0x00670] in /opt/ServUO-Pub5722/Server/Main.cs:700

Clients:
- Count: 0
 
Last edited:
It can be done, but the process is complex.

There are obstacles such as serials from older deleted items and mobiles being reused by new items/mobiles.
Items from the past that still exist in the present, but have different parent containers or mobiles.

That only scratches the surface; so it is not impossible to achieve, but depending on how many accounts are affected, it might not even be worth the effort to do it.

You could load the old save and estimate the value of their items, then give them some starting gold equivalent instead.
 
It can be done, but the process is complex.

There are obstacles such as serials from older deleted items and mobiles being reused by new items/mobiles.
Items from the past that still exist in the present, but have different parent containers or mobiles.

That only scratches the surface; so it is not impossible to achieve, but depending on how many accounts are affected, it might not even be worth the effort to do it.

You could load the old save and estimate the value of their items, then give them some starting gold equivalent instead.
thanks bro
I really think it's not worth the effort, but still there was hope for an easy way)
 
If you have Vita-Nex: Core installed, there is a [PlayerBackup and [PlayerRestore command that can create micro snapshots of a targeted player.

This creates a small binary file you can transfer from the old server to the new server, but it will not restore things like houses, etc, only things in the backpack and bank, and equipment.

It may be possible to extend it to houses, but in such cases i would pack up the house and put the contents in the bank before creating the player snapshot.
 
If you have Vita-Nex: Core installed, there is a [PlayerBackup and [PlayerRestore command that can create micro snapshots of a targeted player.

This creates a small binary file you can transfer from the old server to the new server, but it will not restore things like houses, etc, only things in the backpack and bank, and equipment.

It may be possible to extend it to houses, but in such cases i would pack up the house and put the contents in the bank before creating the player snapshot.

We used Vita-Nex while the server was running on Windows, but then, with great difficulty, we updated the server to version 58 and switched to Ubuntu, and unfortunately, we were unable to transfer Vita-Nex(

tried downloading the latest updated files but getting the same errors as before related to uofont


vnc:
Error:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'VitaNex.Text.UOFont' threw an exception. ---> System.NotImplementedException: The requested feature is not implemented [GDI+ status: NotImplemented]
  at System.Drawing.GDIPlus.CheckStatus (System.Drawing.Status status) [0x00190] in <3403ef0f91dd4bb1a52eecc5c4cc7a76>:0
  at System.Drawing.Bitmap..ctor (System.Int32 width, System.Int32 height, System.Drawing.Imaging.PixelFormat format) [0x00016] in <3403ef0f91dd4bb1a52eecc5c4cc7a76>:0
  at (wrapper remoting-invoke-with-check) System.Drawing.Bitmap..ctor(int,int,System.Drawing.Imaging.PixelFormat)
  at VitaNex.Text.UOFonts.NewEmptyImage () [0x00000] in /opt/ServUO-Pub5722/Scripts/VitaNex/Core/Text/UOFont.cs:75
  at VitaNex.Text.UOFonts.NewEmptyChar (VitaNex.Text.UOEncoding enc) [0x00000] in /opt/ServUO-Pub5722/Scripts/VitaNex/Core/Text/UOFont.cs:80
  at VitaNex.Text.UOFonts.LoadUnicode (System.Byte id) [0x00110] in /opt/ServUO-Pub5722/Scripts/VitaNex/Core/Text/UOFont.cs:214
  at VitaNex.Text.UOFonts.GetFont (VitaNex.Text.UOEncoding enc, System.Byte id) [0x00010] in /opt/ServUO-Pub5722/Scripts/VitaNex/Core/Text/UOFont.cs:322
  at VitaNex.Text.UOFonts.get_Item (System.Int32 id) [0x00000] in /opt/ServUO-Pub5722/Scripts/VitaNex/Core/Text/UOFont.cs:345
  at VitaNex.Text.UOFont..cctor () [0x00027] in /opt/ServUO-Pub5722/Scripts/VitaNex/Core/Text/UOFont.cs:463
   --- End of inner exception stack trace ---
  at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in <de882a77e7c14f8ba5d298093dde82b2>:0
   --- End of inner exception stack trace ---
  at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00083] in <de882a77e7c14f8ba5d298093dde82b2>:0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <de882a77e7c14f8ba5d298093dde82b2>:0
  at Server.ScriptCompiler.Invoke (System.String method) [0x00071] in /opt/ServUO-Pub5722/Server/ScriptCompiler.cs:530
  at Server.Core.Main (System.String[] args) [0x005d7] in /opt/ServUO-Pub5722/Server/Main.cs:664
This exception is fatal, press return to exit
 
Last edited:
Back