UE1 - UT Changing map to use different (renamed) package file

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

UT99

New Member
Dec 12, 2012
2
0
0
Hello. I got two maps for UT99: AS-ShuttleGr and AS-UFR4-Incursion.
First uses Space.utx, a texture pack and second uses Space.u, an UnrealScript package.
Somehow, they're conflicting. It seems that Incursion is trying to find code in texture pack and ShuttleGr is trying to find textures in code and both can't find their resources (unless one of two maps gets deleted).
I don't know a better solution, so I want to modify Incursion map to use, for example Space2.u and rename Space.u into Space2.u.
Problem is, I was unable to find a way to do so. Object's class name is not changeable. Is there simple way to rename package?
 

BashBox

Just a casualty of unreal
Feb 26, 2011
18
0
0
lazy way -
import the used textures from space.utx into space.u delete space.utx , and call it a day ,unreal could care less what the file extenstion is , so if the map needs texturs it will look in the space.u package for them if space.utx dosnent exist.

otherwise
you pretty much would need to remove the stuff that references Space.u in the map, save it , rename space.u and replace the things. or try to move the reverences into mylevel or somthing.
 

Feralidragon

UT n00b coder
Feb 25, 2008
182
0
16
There's probably a way, but it's basically by byte-hacking (it's by opening one of the maps in the hexeditor or even in notepad, and change the package name it references as "Space" to something like "Spacc" [it has to have the same number of characters just to not mess the byte offsets] and then rename the respective package to "Spacc" too.

Theoretically, that should work. In case you attempt this, save a backup of the map first.

PS: Don't forget to rename the changed map (even if you just add a "_fix" to the end of it or something).
 
Last edited:

UT99

New Member
Dec 12, 2012
2
0
0
Thanks for your replies! I went with BashBox's way - I imported textures into Space.u and both maps now working perfectly.
 

gopostal

Active Member
Jan 19, 2006
848
47
28
Ferali, just as a follow up to your post let me add that I did try this and it's much harder than most people can figure out. It's possible but the machine code is very hard to read in order to properly bytehack. Even with Anthrax holding my hand I only got so far with it and it's certainly not a casual coder's weekend project.

You are right though, it can be done. It's just hard as hell to do without creating a crashy mess.
 

Feralidragon

UT n00b coder
Feb 25, 2008
182
0
16
Well, it's not that hard provided that you at least know where the name table is.
Afaik the package internal name table only stores unique names, so the only way that would mess the whole thing is if some specific name is shared by more things within the same package, and even then it depends a lot in what that share consists off, for example:
- let's say that "gopo" is a package, and is also a tag in some actor placed in the level and also an event from a trigger. If you rename the package "gopo" to "opog" internally to reference said new package, you will also modify the tag and event of those objects in the level, however the whole thing would still keep working because both the event and tag would be updated since they reference the same entry in the name table.
Now, let's say you also have an external texture named "gopo" referenced by the package, now that could indeed break the whole thing since the texture "ogop" does not exist.

In this case in specific, the ideal would be if "Space" is not a referenced name anywhere but the external package name, although it's indeed too generic and could lead to problems.

Also, this was mostly a last resort solution (since the OP seemed a bit desperate on this), and yes, probably the OP wouldn't be able to do this, so probably I would do it myself if necessary. :)
 
Last edited:

Ticklemonster

New Member
Sep 3, 2002
33
0
0
qsl.net
Um, if space.u is a file that is found on other servers, there's going to be a package mismatch if this map is going to be used on a server with the new space.u uploaded if someone shows up on the server and has space.u already on their computer. Right?
 

BashBox

Just a casualty of unreal
Feb 26, 2011
18
0
0
might be or might not be, it also might not even matter. since
If for whatever reason the client had a original version of either of the 2 files installed, he would still have a problem if one server had one map and the other server had the other even without changes.
But yeah you would probably get a mismatch.
 

VendorX

Member
Aug 2, 2010
231
6
18
BXL/Paris
Not sure if this will work with U1, but... Export your map to .t3d, close editor, copy and rename old package, open .t3d file with WordPad and replace oldPackageName with newPackageName. Import into editor as new level. If you have something in myLevel, then load first original map, close and import .t3d...