Ladies and Gents, I have a problem.

My current ServUO computer is multipurpose and I want a dedicated server for ServUO. So I have purchased an identical computer except in two regards. The current ServUO computer is Windows 10 and has two physical hard drives, ServUO being installed on the D: drive.

The new computer is Windows 7 and has one hard drive.

After installing UO on the new computer I tried copying the entire ServUO folder to the new computer. Lots of compile errors. So, I thought this was perhaps because ServUO wanted to be on a D: drive. I partitioned the new computer, created a D: drive, made the folder names identical and copied ServUO over. Complete failure - multiple compile errors.

So then I tried a fresh install of ServUO on the new computer. Worked like a charm. Compiled perfectly and I was able to connect my UO client to it.

I then tried to move the BACKUP files from the old ServUO computer to the SAVES folder on the new computer. Nope... compile errors. I figured it was because I had custom scripts on the old ServUO computer and so I copied those over... made things worse.

Attached are the output files or each attempt.

I am about to attempt cloning the D: drive of the old ServUO computer and restoring that image to the new ServUO computer, but I am not optimistic. Any help would be appreciated!

Nick
 

Attachments

  • ServUO With Backup files added to Save folder.txt
    1.2 KB · Views: 3
  • ServUO Working.txt
    1.1 KB · Views: 3
  • ServUO With Backup files added to Save folder and Custom Scripts added to scripts folder.txt
    21.1 KB · Views: 3
  • ServUO WITHOUT Backup files added to Save folder but with Custom Scripts added to scripts folder.txt
    21.1 KB · Views: 3
You should be able to move the entire folder from the old computer to the new one, make sure it's still pointing at the right location for client files, and run the server exe without issue. It really doesn't care what Windows OS you have as long as you have the same version of .Net installed.

If you do a clean install you can't just copy your customs over; you have to replace the ENTIRE Scripts folder with your old one because otherwise you leave out all the edits to other scripts that were required by your various custom entries. But, if you installed a newer version of ServUO than you ran on the old computer, that might not work either because major core code has a habit of changing so much it renders older versions of the main scripts useless.
 
Doesn't Windows 7 need to have the latest .net stuff installed?

Correct, windows 7 cannot compile the latest distro due to support for .net being dropped by Microsoft on that OS.

Looking at the errors posted above though it looks like you did not copy every single file as it is looking for data that does not exist or you copied the files multiple times.

ServUO does not care where on your computer it lives. It does not need to be on the D drive.

Update your OS, copy the server exactly as it is from the old computer and run it.
 
Looks more like you had a fresh servuo copy and pasted your server over it and some files now exists several times.
 
To remove one obstacle I upgraded the new computer to Windows 10. The old and new computer are running the same version of .NET

If I copy the entire server folder from the old computer to the new computer it still does not work.... what the heck am I missing?
 
We would probably need to see the errors you're getting now to know for sure. But I will guess that your uo client is in a different spot or something like that.
 
No, it's the strangest thing. Made sure the game clients, both the old client and the enhanced client are in exactly the same spots they are on the old computer. I tried doing an image copy of the old computer, where everything works great, as soon as it's on the new computer tons of errors.

If I install ServUO clean on the new computer, no errors, but of course it's vanilla without any of my modifications, accounts or scripts. If I delete the fresh install and copy all the folders over directly to exactly the same path, tons of errors. I've tried compiling it and I've tried just launching it.

I even pulled up the system properties of both machines to confirm RAM, Processor, OS version and 64-bit were all the same. It's just the oddest thing.
 
Here are the new errors. It goes on like this, I say Y to delete, Y to delete types, try again and it picks another error to delete:

ServUO - [https://www.servuo.com] Version 0.5, Build 7104.32885 - Build on 6/14/2019 6:16:10 PM UTC - Release
Core: Optimizing for 4 64-bit processors
Core: Compiled for .NET MONO/CSC/Unknown
RandomImpl: CSPRandom (Software)
Core: Loading config...
Scripts: Compiling C# scripts...done (cached)
Scripts: Verifying...
Finished (5794 items, 1353 mobiles, 3 customs) (1.35 seconds)
Config: Warning, using default value for DataPath.CustomPath
DataPath: C:\Program Files (x86)\Electronic Arts\Ultima Online Classic\
Regions: Loading...done
World: Loading...
An error was encountered while loading a saved object
- Type: Server.Multis.RatCamp
- Serial: 0x40028994
Delete the object? (y/n)
 
When things want to randomly delete, it is because my datapath is wrong. You also have some type of datapath error as well.

Maybe give us a snip of your datapath.cs section showing the directory where you have the client files at...and maybe a snip showing where in Windows explorer your client files are at.
 
I wasn't sure how much to snip:

#region References
using System;
using System.IO;

using Microsoft.Win32;

using Ultima;
#endregion

namespace Server.Misc
{
public class DataPath
{
/* If you have not installed Ultima Online,
* or wish the server to use a separate set of datafiles,
* change the 'CustomPath' value.
* Example:
* private static string CustomPath = @"C:\Program Files\Ultima Online";
*/
private static readonly string CustomPath = Config.Get(@"DataPath.CustomPath", default(string));

static DataPath()
{
string path;

if (CustomPath != null)
{
path = CustomPath;
}
else if (!Core.Unix)
{
path = Files.LoadDirectory();
}
else
{
path = null;
}

if (!String.IsNullOrWhiteSpace(path))
{
Core.DataDirectories.Add(path);
}
}

/* The following is a list of files which a required for proper execution:
*
* Multi.idx
* Multi.mul
* VerData.mul
* TileData.mul
* Map*.mul or Map*LegacyMUL.uop
* StaIdx*.mul
* Statics*.mul
* MapDif*.mul
* MapDifL*.mul
* StaDif*.mul
* StaDifL*.mul
* StaDifI*.mul
*/
public static void Configure()
{
if (CustomPath != null)
{
Core.DataDirectories.Add(CustomPath);
}
else if(Files.LoadDirectory() != null && !Core.Unix)
{
Core.DataDirectories.Add(Files.LoadDirectory());
}

if (Core.DataDirectories.Count == 0 && !Core.Service)
{
Console.WriteLine("Enter the Ultima Online directory:");
Console.Write("> ");

Core.DataDirectories.Add(Console.ReadLine());
}

foreach (var path in Core.DataDirectories)
{
Files.SetMulPath(path);
}

Utility.PushColor(ConsoleColor.DarkYellow);
Console.WriteLine("DataPath: " + Core.DataDirectories[0]);
Utility.PopColor();
}

private static string GetPath(string subName, string keyName)
{
try
{
string keyString;

if (Core.Is64Bit)
keyString = @"SOFTWARE\Wow6432Node\{0}";
else
keyString = @"SOFTWARE\{0}";

using (var key = Registry.LocalMachine.OpenSubKey(String.Format(keyString, subName)))
{
if (key == null)
return null;

var v = key.GetValue(keyName) as string;

if (String.IsNullOrEmpty(v))
return null;

if (keyName == "InstallDir")
v = v + @"\";

v = Path.GetDirectoryName(v);

if (String.IsNullOrEmpty(v))
return null;

return v;
}
}
catch
{
return null;
}
}
}
}



The client files are at C:\Program Files (x86)\Electronic Arts\Ultima Online Classic
I also have a copy of them here as this is where they sit on the old server:
D:\Ultima Online Classic
 
Where is this set at?

private static readonly string CustomPath = Config.Get(@"DataPath.CustomPath", default(string));
 
If you don't specify it like Djeryv's example then ServUO will use the Program Files (x86) location out of the registry and Windows has all kinds of access protections on that location. Manually point it to the D: location and see what happens.
 
Change the datapath - same error.

ServUO - [https://www.servuo.com] Version 0.5, Build 7114.34660 - Build on 6/24/2019 7:15:20 PM UTC - Release
Core: Optimizing for 4 64-bit processors
Core: Compiled for .NET MONO/CSC/Unknown
RandomImpl: CSPRandom (Software)
Core: Loading config...
Scripts: Compiling C# scripts...Finished with: 0 errors, 0 warnings
Scripts: Verifying...
Finished (5794 items, 1353 mobiles, 3 customs) (1.35 seconds)
DataPath: D:\Ultima Online Classic
Regions: Loading...done
World: Loading...
An error was encountered while loading a saved object
- Type: Server.Multis.GargishGalleon
- Serial: 0x40040DB9
Delete the object? (y/n)
 
Last edited:
That whole block of text is a giant comment (inside /* */ blocks) so just paste it right below there so it looks like this:


Code:
*/
private static string CustomPath = @"D:\Ultima Online Classic";

private static readonly string CustomPath = Config.Get(@"DataPath.CustomPath", default(string));

static DataPath()
....


(fixed hasty pasty!)
 
Change the datapath but I get the same error:

ServUO - [https://www.servuo.com] Version 0.5, Build 7114.34660 - Build on 6/24/2019 7:15:20 PM UTC - Release
Core: Optimizing for 4 64-bit processors
Core: Compiled for .NET MONO/CSC/Unknown
RandomImpl: CSPRandom (Software)
Core: Loading config...
Scripts: Compiling C# scripts...Finished with: 0 errors, 0 warnings
Scripts: Verifying...
Finished (5794 items, 1353 mobiles, 3 customs) (1.35 seconds)
DataPath: D:\Ultima Online Classic
Regions: Loading...done
World: Loading...
An error was encountered while loading a saved object
- Type: Server.Multis.GargishGalleon
- Serial: 0x40040DB9
Delete the object? (y/n)
 
(grasping at straws)

Both items it had issues with are multis. It's like the server's client files are missing the file MultiCollection.uop.

Try a clean copy of all the files from the Program Files (x86) location?
 
You mean copy Program Files (x86) to d:\ultima online classic or do you mean reinstall ultima online into Program Files (x86)
 
ok since you can put a clean version of servuo on with no errors, let me suggest this.

put clean servuo onto new computer (compile it but exit before creating owner acct)

go to your old computer master folder and find the "backups" folder, and take out the one that says "most recent"(don't delete it just drop it onto your desktop or something so if this doesn't work you still have it)

now go and copy and paste(make sure you copy so you don't destroy the originals) only the "backups" and "saves" file from the servuo master folder on your old computer(paste to desktop or somewhere safe so you can transfer them) to the new one with the clean install.


if it loads ok after that then shut down without saving and paste your custom files in. and you should be good to go.

if it doesn't load right after the backups and saves we will need to try something else.

The idea here is, that I have had similar errors when my save has gotten corrupt. Hopefully its only the most recent one if thats the problem.
Mine have gone corrupt when power goes out during a save with similar errors showing up on restart..
 
You mean copy Program Files (x86) to d:\ultima online classic or do you mean reinstall ultima online into Program Files (x86)

Copying from Program Files to the D: location again, just to see if anything got missed.

It could be a bad save like manwich suggests. A clean install + your custom scripts (assuming you don't have any that required editing core scripts) and your latest or 2nd latest backup might do the trick.

I move my test server between machines all the time. I also do development for our live shard on my local copy and then send the files to the owner to be made live. We've never had a problem doing so in over 11 years.
 
Well thanks guys - tried all these latest suggestions - no luck. I am now going to try copying the entire ServUO folder on the old computer to a different location on the old computer and see if that still works - ok - that worked. So copying the server files on the old computer to a totally new location on the old computer has no effect, it will still function.
 
So BUMP - hey guys - still having problems. It seems to be isolated to the Items folder in the Saves folder. I can at least compile it without that folder.

I tried to get the oldest backup of Items I have and use that, still got the error.

I am OPEN to ideas.
 
When I pulled it I got the error to delete the blackthorn.beacon. I said yes, deleted and fatal crashed but when I reloaded I was able to play it on 127.0.0.1. It works fine for me. Saves and buildings.... everything there. No more errors after that.
 
I just had this problem myself. There are 2 datapath files in your server folder. Easiest way to find them is to just use the folder search, but their locations should be:

YourServUOFolder/Scripts/Misc/ - This is a .cs file. This is not the one you want to edit which it looks like what you've been trying so far. So I would make sure you edit this file back to the original before anything tried here.

YourServUOFolder/Config - This is a cfg file you can open with Notepad. In this file, line 5 has a filepath. This is likely your old filepath, so update this to your new UO location.
 
Back