For direct access use https://forums.oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com

227j Mod Questions

Report bugs, read about fixes, new features and ask questions about the Unreal 227 patch here. Place comments and commit suggestions.
User avatar
Matrix224
OldUnreal Member
Posts: 745
Joined: Wed Feb 20, 2008 7:41 pm

227j Mod Questions

Post by Matrix224 »

Hey,

I had been back on a bit of an Unreal binge with some friends recently, and we had decided to update to 227j this time around. It's been pretty smooth so far and we're enjoying it a lot, but there's a few random things we'd been seeing in the server with various mods. Most of it is client-side script errors (which I see get printed right to our consoles now and is fantastic), which I can address just fine. But some others are a bit questionable and I'm unsure of why they're doing what they're doing.

  • For Pawns, if a menuname is not explicitly set, it always used to put the class name itself in its place, and based on the code, it looks like it still does this in PreBeginPlay() of Pawn. For any subclasses I have though, it seems like it's not working as I would've expected. e.g. a class that extends Krall and is named MyKrall and has no menuname explicitly defined just shows up with a menuname of Krall, not MyKrall. Krall itself doesn't have a menuname defined, so it's not just pulling from there as far as I'm aware. Am I just forgetting how UScript works and since PreBeginPlay() is not redefined in the child, it's executing it "in the parent" so to speak, and is using the parent's class name? I know for a fact this used to work as I expected though (and for the record this isn't hard to go and fix by just setting the menuname, it's more of just a curiosity of why it's doing this).
  • Some sounds are looping now when using PlaySound. I know that the sounds are imported with a flag that tells them to loop and they always have had it, but they didn't used to loop when just using PlaySound. I assume this is an intended fix, but if that's the case, is there any way to change the code to play it only once instead of having to modify and re-import all of the affected sounds?
  • MonsterSpawn seems to throw a few warnings in the console every so often:

    Code: Select all

    Warning: Could not spawn ActorChannel object Class MonsterSpawnX.xxMSEffects!
    
    . From the code it looks like it spawns that xxMSEffects class on every current player's Location on a timer. Would this be because it's spawning e.g. in the ground or something and can't be loaded when the ActorChannel becomes relevant?
  • Did something change with death message parsing somewhere? I'm still using an older, modified version of xCoop, so that on its own is probably half my problem. But the custom messages it has all seem to be missing a space after the victim name, and the killer seems to have an extra space before it (e.g. "Matrixwas killed by a Manta"). It didn't used to be like that

Also this isn't 227j specific, just a general question because it's been a long time and I've forgotten:
When you call Spawn, if you don't supply a SpawnOwner or SpawnInstigator field, are they defaulted to the calling actor or are they just None?
User avatar
.:..:
OldUnreal Member
Posts: 1637
Joined: Tue Aug 16, 2005 4:35 am

Re: 227j Mod Questions

Post by .:..: »

Well to go through some of those points...
Matrix224 wrote: Wed Mar 20, 2024 12:28 pmFor Pawns, if a menuname is not explicitly set, it always used to put the class name itself in its place, and based on the code, it looks like it still does this in PreBeginPlay() of Pawn. For any subclasses I have though, it seems like it's not working as I would've expected. e.g. a class that extends Krall and is named MyKrall and has no menuname explicitly defined just shows up with a menuname of Krall, not MyKrall. Krall itself doesn't have a menuname defined, so it's not just pulling from there as far as I'm aware. Am I just forgetting how UScript works and since PreBeginPlay() is not redefined in the child, it's executing it "in the parent" so to speak, and is using the parent's class name? I know for a fact this used to work as I expected though (and for the record this isn't hard to go and fix by just setting the menuname, it's more of just a curiosity of why it's doing this).
Strange oddities like that typically happen if you create a class in UnrealEd and don't compile code, which leaves the new class in an odd state of hybrid old and new class.
Some sounds are looping now when using PlaySound. I know that the sounds are imported with a flag that tells them to loop and they always have had it, but they didn't used to loop when just using PlaySound. I assume this is an intended fix, but if that's the case, is there any way to change the code to play it only once instead of having to modify and re-import all of the affected sounds?
Unfortunately there isn't enough interface or parameters for sound effects to futher separate that. I wanted to implement something like SoundChannels (like in UE3) for that, but it'll have to wait until next 227 version.
MonsterSpawn seems to throw a few warnings in the console every so often:

Code: Select all

Warning: Could not spawn ActorChannel object Class MonsterSpawnX.xxMSEffects!
From the code it looks like it spawns that xxMSEffects class on every current player's Location on a timer. Would this be because it's spawning e.g. in the ground or something and can't be loaded when the ActorChannel becomes relevant?
Warning like that happens if actor destroys itself during Post/PreBeginPlay events on clientside.
Did something change with death message parsing somewhere? I'm still using an older, modified version of xCoop, so that on its own is probably half my problem. But the custom messages it has all seem to be missing a space after the victim name, and the killer seems to have an extra space before it (e.g. "Matrixwas killed by a Manta"). It didn't used to be like that
Probably missing a space bar in int file, you can manually correct that (UnrealShare.int, DeathVerb=" was ").
When you call Spawn, if you don't supply a SpawnOwner or SpawnInstigator field, are they defaulted to the calling actor or are they just None?
SpawnOwner defaults to None, SpawnInstigator defaults to spawner actors Instigator value.
User avatar
Matrix224
OldUnreal Member
Posts: 745
Joined: Wed Feb 20, 2008 7:41 pm

Re: 227j Mod Questions

Post by Matrix224 »

Hey, thanks for getting back to me on this!
Strange oddities like that typically happen if you create a class in UnrealEd and don't compile code, which leaves the new class in an odd state of hybrid old and new class.
So I did recompile a few mods in UED where I saw this happening (recompiled individual classes and also hit Recompile All to be safe) and saved them, and still saw the issues.
To try and simplify this down, I made a small mod in 227j outside of UED and compiled it with UCC.
This is the code for it:

Code: Select all

class TestPawn extends Krall;

function PreBeginPlay() {
	super.PreBeginPlay();
	Log("PRE: MENUNAME="$MenuName$", CLASS="$string(Class.Name));
}

function BeginPlay() {
	super.BeginPlay();
	Log("BEG: MENUNAME="$MenuName$", CLASS="$string(Class.Name));
}

function PostBeginPlay() {
	super.PostBeginPlay();
	Log("POST: MENUNAME="$MenuName$", CLASS="$string(Class.Name));
}
There are no default properties set, so MenuName should be empty by default (it's empty in Krall, ScriptedPawn, and Pawn) and as per PreBeginPlay() in Pawn, I would assume it sets it to Class.Name. This is what I see in the log though:

Code: Select all

ScriptLog: PRE: MENUNAME=Krall, CLASS=testpawn
ScriptLog: BEG: MENUNAME=Krall, CLASS=testpawn
ScriptLog: POST: MENUNAME=Krall, CLASS=testpawn
If I take that same code and compile it in 227i though and then summon it, I see this:

Code: Select all

ScriptLog: PRE: MENUNAME=testpawn, CLASS=testpawn
ScriptLog: BEG: MENUNAME=testpawn, CLASS=testpawn
ScriptLog: POST: MENUNAME=testpawn, CLASS=testpawn
Again this is something easy for me to fix by setting the MenuName, but I'm more just curious as to why it's behaving this way.

Unfortunately there isn't enough interface or parameters for sound effects to futher separate that. I wanted to implement something like SoundChannels (like in UE3) for that, but it'll have to wait until next 227 version.
Got it, I'll just change the sounds or take some time to reimport everything properly then when I track it all down.
Warning like that happens if actor destroys itself during Post/PreBeginPlay events on clientside.
Alright, I'll go look around and play with that code a bit more later then
Probably missing a space bar in int file, you can manually correct that (UnrealShare.int, DeathVerb=" was ").
For xCoop it's mostly defined in the .ini for it. The verbs in UnrealShare.int have the expected spaces though, and I don't believe xCoop redefines the verbs. It definitely used to display it fine in 227i, but it's not a big issue; I can easily just regex a space into all of the xCoop mesasges.
SpawnOwner defaults to None, SpawnInstigator defaults to spawner actors Instigator value.
Got it, thank you!
User avatar
.:..:
OldUnreal Member
Posts: 1637
Joined: Tue Aug 16, 2005 4:35 am

Re: 227j Mod Questions

Post by .:..: »

Matrix224 wrote: Tue Apr 09, 2024 8:11 pm There are no default properties set, so MenuName should be empty by default (it's empty in Krall, ScriptedPawn, and Pawn) and as per PreBeginPlay() in Pawn, I would assume it sets it to Class.Name. This is what I see in the log though:

Code: Select all

ScriptLog: PRE: MENUNAME=Krall, CLASS=testpawn
ScriptLog: BEG: MENUNAME=Krall, CLASS=testpawn
ScriptLog: POST: MENUNAME=Krall, CLASS=testpawn
If I take that same code and compile it in 227i though and then summon it, I see this:

Code: Select all

ScriptLog: PRE: MENUNAME=testpawn, CLASS=testpawn
ScriptLog: BEG: MENUNAME=testpawn, CLASS=testpawn
ScriptLog: POST: MENUNAME=testpawn, CLASS=testpawn
Again this is something easy for me to fix by setting the MenuName, but I'm more just curious as to why it's behaving this way.
Oh that's likely maybe because you have Krall MenuName defined in your 227j UnrealI.int, while its not set on your 227i version.
User avatar
Matrix224
OldUnreal Member
Posts: 745
Joined: Wed Feb 20, 2008 7:41 pm

Re: 227j Mod Questions

Post by Matrix224 »

So my Unreali.int in my System folder has nothing in there for Krall. I do see entries for some random things like Squid though.
From what I recall, when you have things set up in .int or .ini files like that, it gets reflected in UnrealEd's default properties. So I went in there just to see what was going on, and the MenuName for Krall is empty in its default properties. However for Squid, it is set, meaning (I assume) it is reading from the .int as expected.

I looked at the code for Pawn again and noticed that MenuName is marked as localized, so I wondered then if maybe some translation during runtime is going on here. I looked around and saw there's a SystemLocalized folder in my 227j Unreal, while my 227i did not have that. I looked around in there and saw that there's an int folder that has a bunch of .int files in it, and in there was another Unreali.int. Now in that one, everything is defined including Krall. So to test, I updated it to have a MenuName of "Renamed Krall", and then went back to my test pawn I had mentioned earlier.

Sure enough, that seems to be it:

Code: Select all

ScriptLog: PRE: MENUNAME=Renamed Krall, CLASS=testpawn
ScriptLog: BEG: MENUNAME=Renamed Krall, CLASS=testpawn
ScriptLog: POST: MENUNAME=Renamed Krall, CLASS=testpawn
So I guess it basically gets overridden by the localization of the base class during runtime. Like I've already said, I can just go update the MenuNames of my custom things manually, so this isn't really a huge issue. I'm just glad I at least have an answer to what the hell was going on here haha.

Thank you again for your help on this!
katryn
Posts: 2
Joined: Fri Jul 26, 2024 12:09 pm

Re: 227j Mod Questions

Post by katryn »

Hello to this forum. I would need your help if possible. I have gtx 970 card and it should support opengl 3.3 ( open gl checker saying i have even 4.5.0). Thus i can't properly decide what i actually have. Web sites sayin 3.3 so probably yes, idk. Anyway, my really best experiences with my unreal gold is on D3D11 with patch 227i. Really best effects and overall look so far, amazing in compare with default game. Ok, that's cool. Then i revealed they released 227j and 227k, so i wanted to try out that. Ok, D3D11 support is gone so logically i have been forced to choose basically the only one option - XOpenGL. Big disappointing there is black screen and running sound only. On both , with 227j and even with 227k. I don't want to degrade the game with downgrading to d3d9 or opengl. So probably 227i + d3d11 is the best option at all so far. Is there anybody who could give help why i can't fun XOpenGL? Should i upgrade to gtx 1660 or something? Thanks.

I have i5-4460 , gtx 970, z-97p asus motherboard. Win 7.
User avatar
Reborn
OldUnreal Member
Posts: 64
Joined: Thu Mar 16, 2017 6:55 am

Re: 227j Mod Questions

Post by Reborn »

katryn wrote: Fri Jul 26, 2024 12:59 pm I have i5-4460 , gtx 970, z-97p asus motherboard. Win 7.
I have i5-3570, Win 7 and gtx 960, - XOpenGL is working.
last Nvidia driver 474.11.
Drivers above version 474.11 are not workable / inoperative (this is a Nvidia bug).
Look for the problem in the settings.

But I won't say that xOpenGl looks better than OpenGl. In my opinion, OpenGl looks better.
xOpenGl is too dark and has problems with antialiasing on-screen fonts.
katryn
Posts: 2
Joined: Fri Jul 26, 2024 12:09 pm

Re: 227j Mod Questions

Post by katryn »

Ah ok, got it. Good to hear, i can keep it like that with D3D11. Probably the best what i can get. I tested all the renderers and yea, it's really the best effects (+ reshade, lenses, colorfullness, etc..looks really cool).
Just wanted to know where are these effects on that picture on the link.. patch j?

https://www.oldunreal.com/downloads/unr ... est-ver.j/

I don't see it on either OpenGL nor D39, so i was hoping it caused by XOpenGL....
User avatar
Matrix224
OldUnreal Member
Posts: 745
Joined: Wed Feb 20, 2008 7:41 pm

Re: 227j Mod Questions

Post by Matrix224 »

Alright I've come back again recently for some Halloween fun, and am having some other issues now as well. These are crashes this time instead of just script warnings, and I'm unsure how to proceed with these. These issues did not happen on 227i, so I assume I just did something wrong somewhere years ago and now it's become an actual issue. I've recompiled the affected mod several times now, trying to tweak various things, but to no avail.

The first one seems to randomly happen to me and some other people on the server. It's not limited to just this SkeletalMesh either, it seems to happen with any of the ones in the mod at random:

Code: Select all

History: URender::DrawLodMesh <- (SkeletalMesh UaSZombie.SawZombie)

 <- DrawMesh

 <- (SkeletalMesh UaSZombie.SawZombie)

 <- URender::DrawActorSprite

 <- (SawZombie vortex2.SawZombie)

 <- URender::DrawFrame

 <- (vortex2.MyLevel Recur 0 Mirror 1 Zone 6)

 <- URender::DrawWorld

 <- UGameEngine::Draw

 <- UWindowsViewport::Repaint

 <- UWindowsClient::Tick

 <- ClientTick

 <- UGameEngine::Tick

 <- UpdateWorld

 <- MainLoop

 <- (ClientCam Pos=(-621.484,-1.85452,-207.581) Rot=(64191,-13041,0))

I then installed a completely fresh 227j copy just to play around with, and ended up getting another error within a minute or two, this time related to audio:

Code: Select all

History: UALAudioSubsystem::RegisterSound <- 2 <- FSoundData::Load

 <- TLazyArray<<

 <- USound::Serialize

 <- LoadObject

 <- (Sound DarkDay.Creatures.dpain1 1508918==1508918/7145121 1508912 7248)

 <- ULinkerLoad::Preload

 <- PreLoadObjects

 <- UObject::EndLoad

 <- UPackageMap::PairToObject

 <- UPackageMapLevel::SerializeObject

 <- FInBunch<<UObject

 <- InitialClientActor

 <- FActorChannel::ReceivedBunch

 <- (Actor None)

 <- FChannel::ReceivedSequencedBunch

 <- Direct

 <- FChannel::ReceivedRawBunch

 <- DispatchDataToChannel

 <- BunchData

 <- UNetConnection::ReceivedPacket

 <- UNetConnection::ReceivedRawPacket

 <- UTcpNetDriver::TickDispatch

 <- UpdatePreNet

 <- ULevel::Tick

 <- (Level vortex2.MyLevel NetMode=NM_Client)

 <- TickLevel

 <- UGameEngine::Tick

 <- UpdateWorld

 <- MainLoop

 <- (ClientCam Pos=(-1079.64,495.513,-93.1771) Rot=(63006,-129555,0))
Any help on these would be greatly appreciated!

Return to “Unreal 227”