Roemer/ut99-server

Update to 469b causes failed import error

dud1337 opened this issue · 7 comments

Using the default build in this repo: docker-compose up on the docker-compose.yml allowing a new volume to be created.

  • docker-compose version: 1.29.2
  • docker version: 19.03.13
ut99-server_1  | =======================================
ut99-server_1  | ucc.exe: UnrealOS execution environment
ut99-server_1  | Copyright 1999 Epic Games Inc
ut99-server_1  | =======================================
ut99-server_1  | 
ut99-server_1  | Executing Class Engine.ServerCommandlet
ut99-server_1  | Unreal engine initialized
ut99-server_1  | Browse: CTF-Face?Name=Player?Class=Botpack.TMale2?team=255?skin=SoldierSkins.blkt?Face=SoldierSkins.Othello?game=BotPack.CTFGame?mutator=BotPack.InstaGibDM,MapVoteLAv2.BDBMapVote,FlagAnnouncementsV2.FlagAnnouncements
ut99-server_1  | LoadMap: CTF-Face?Name=Player?Class=Botpack.TMale2?team=255?skin=SoldierSkins.blkt?Face=SoldierSkins.Othello?game=BotPack.CTFGame?mutator=BotPack.InstaGibDM,MapVoteLAv2.BDBMapVote,FlagAnnouncementsV2.FlagAnnouncements
ut99-server_1  | Bound to Fire.so
ut99-server_1  | Bound to IpDrv.so
ut99-server_1  | Collecting garbage
ut99-server_1  | Purging garbage
ut99-server_1  | Garbage: objects: 17369->17369; refs: 229313
ut99-server_1  | Game class is 'CTFGame'
ut99-server_1  | Sockets: Socket queue 262144 / 262144
ut99-server_1  | Sockets: I am 8256334c83db (172.24.0.2)
ut99-server_1  | TcpNetDriver on port 7777
ut99-server_1  | Server Package: SoldierSkins
ut99-server_1  | Server Package: CommandoSkins
ut99-server_1  | Server Package: FCommandoSkins
ut99-server_1  | Server Package: SGirlSkins
ut99-server_1  | Server Package: BossSkins
ut99-server_1  | Server Package: Botpack
ut99-server_1  | Server Package: CCHS4
ut99-server_1  | Server Package: FlagAnnouncementsV2
ut99-server_1  | Server Package: DefaultAnnouncements
ut99-server_1  | Server Package: KickIdlePlayers2
ut99-server_1  | Server Package: MapVoteLAv2
ut99-server_1  | Server Package: EnhancedItems
ut99-server_1  | Bound to UWeb.so
ut99-server_1  | Failed import: BoolProperty BoolProperty Botpack.ChallengeHUD.bSmoothCrosshair (file Botpack.u)
ut99-server_1  | Failed to load "UTMenu": Can't find BoolProperty in file "BoolProperty Botpack.ChallengeHUD.bSmoothCrosshair"..
ut99-server_1  | Failed to load "EnhancedItems": Can't find BoolProperty in file "BoolProperty Botpack.ChallengeHUD.bSmoothCrosshair"..
ut99-server_1  | appError called:
ut99-server_1  | Failed to load "EnhancedItems": Can't find BoolProperty in file "BoolProperty Botpack.ChallengeHUD.bSmoothCrosshair"..
ut99-server_1  | Executing UObject::StaticShutdownAfterError
ut99-server_1  | Failed to load "EnhancedItems": Can't find BoolProperty in file "BoolProperty Botpack.ChallengeHUD.bSmoothCrosshair"..
ut99-server_1  | 
ut99-server_1  | History: UObject::SafeLoadError <- UObject::GetPackageLinker <- UGameEngine::BuildServerMasterMap <- ULevel::Listen <- Listen <- UGameEngine::LoadMap <- LocalMapURL <- UGameEngine::Browse <- UGameEngine::Init <- UServerCommandlet::Main
ut99-server_1  | 
ut99-server_1  | Exiting due to error
ut99-server_1  | Exiting.
ut99-server_ut99-server_1 exited with code 

Seems to be related to an error importing bSmoothCrosshair from Botpack.u
bSmoothCrosshair was not found in prior versions of Botpack or UTMenu, only 469b

https://github.com/OldUnreal/UnrealTournamentPatches does not appear to have issues mentioning this.

I have the same issue with docker 20.10.10 and docker-compose version 1.29.2

It seems like what's going on is in the original 436 server package, the file is named BotPack.u, and files/Scripts/prepare.py renames this file to Botpack.u to eliminate case-sensitivity issues. Since the 469b patch includes the file as Botpack.u instead of BotPack.u, both files coexist before prepare.py is run, and the patched file gets overwritten, so removing the line that does this allows it to run for me.

Thanks for your PR on this, @yattaro. @Roemer, when you have time, could you take a look?

In light of inactivity on this repo I've taken to working a bit more on my fork and made some further changes such as using the latest 64-bit Ubuntu LTS release, pulling the latest patch release directly from the OldUnreal repo at build time (instead of including it here), cleaning up the Dockerfile, and reducing reliance on the prepare.py script. If @Roemer picks up this project again I can open another PR if wanted but if not I might just continue working on it there.

Thanks for the feedback. I fixed this specific issue and took over some things from @yattaro ;) Not sure yet about getting the latest patch from github.

Looks good! I took the approach of pulling the patch from OldUnreal's GitHub instead of using it in this repo because it seems to download much faster over HTTPS than pulling it with git (and I can imagine GH probably doesn't like people using repos for giant binary files), plus it could be a lower-maintenance way of getting any newer patches they release without changing the included files. On the other hand, I can see why it may seem more complicated than it should be.

Tested. Working. Thanks, everyone!