Random Server Crashes..
- pooty
- Posts: 4537
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: Random Server Crashes..
So some weirdness.
I tried my scoring mutator on the server. Worked fine, other than time issue, until end of game then never ended. Worked fine locally (dedicated UT server with seperate client). But that's longer term.
We (Mclovin,Reshred, Sanka) tried playing without UTCompOmni to see if we got any funky end round core stuff. Nope. Three rounds perfect. I am going to leave UTCompOmni off for tonight and see. I'm more concerned with the End of round crap (which I think was related to the end of round crashing), than the custom scoring (which seems to have is own issues). So if tonight goes well then we can focus on what in UTCompOmni is messing with the end of round... but I don't think they have the issue at CEONSS do they? Might be worth looking at what's different between our current version and theirs.
So fixing UTComp is the priority there's too much goodness there (Netcode and Damage Points) so have to fix it.
I tried my scoring mutator on the server. Worked fine, other than time issue, until end of game then never ended. Worked fine locally (dedicated UT server with seperate client). But that's longer term.
We (Mclovin,Reshred, Sanka) tried playing without UTCompOmni to see if we got any funky end round core stuff. Nope. Three rounds perfect. I am going to leave UTCompOmni off for tonight and see. I'm more concerned with the End of round crap (which I think was related to the end of round crashing), than the custom scoring (which seems to have is own issues). So if tonight goes well then we can focus on what in UTCompOmni is messing with the end of round... but I don't think they have the issue at CEONSS do they? Might be worth looking at what's different between our current version and theirs.
So fixing UTComp is the priority there's too much goodness there (Netcode and Damage Points) so have to fix it.
- captainsnarf
- Posts: 2714
- Joined: Tue Jul 06, 2021 1:51 pm
- Location: Washington
- Server Sponsor: Yes
- Server Admin: Yes
- Contact:
Re: Random Server Crashes..
Yeah, I'm pretty sure there will not be any crashing with utcomp turned off.
Also I have to say your OmniONSScoring mutator is genius excellent job there
Also I have to say your OmniONSScoring mutator is genius excellent job there
- pooty
- Posts: 4537
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: Random Server Crashes..
Thanks. Sweet to know we can replace a function. I just can't get the timer reset properly. Its like the 2pt win timer reset is hardcoded elsewhere. Makes no sense. Even tried this at the end of my MainCoreDestroyedYeah, I'm pretty sure there will not be any crashing with utcomp turned off.
Also I have to say your OmniONSScoring mutator is genius excellent job there
//reset timelimit
ONSGame.RemainingTime = 60 * ONSGame.TimeLimit;
ONSGame.GameReplicationInfo.RemainingMinute = ONSGame.RemainingTime;
if (bDebug) log("CustomMainCoreDestroyedOver..",'OmniONSScoring');
Had no effect. Calls it runs it no errors, and next round starts, timer still has the remaining time from last round -- it should have changed.
On the UTComp end round stuff...
I think its something in either the BS_xPlayer...
I noticed ONSPlus has its own GRI, but UTCompOmni merged those into SRI?
Damn that ONSPlus code is ugly.
I don't recall but was there a reason we put the ONSPlus stuff in UTComp vs its own package?
- pooty
- Posts: 4537
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: Random Server Crashes..
Spoke too soon. Still weirdness with resets at end of round. UTCompOmni isn't running so its not that. Happened on Minus just a few minutes ago.We (Mclovin,Reshred, Sanka) tried playing without UTCompOmni to see if we got any funky end round core stuff. Nope. Three rounds perfect.
Hold on. Server Browser is showing UTCompOmni, but its not on the command line.... maybe it's listed as server package/actor.
- captainsnarf
- Posts: 2714
- Joined: Tue Jul 06, 2021 1:51 pm
- Location: Washington
- Server Sponsor: Yes
- Server Admin: Yes
- Contact:
Re: Random Server Crashes..
They both replace the PlayerController class with their own class. To make ONSPlus and UTComp work together I merged all of the ONSPlus PlayerController stuff into UTComp's PlayerController (BS_xPlayer). They both had GameRulesModifiers also, but since those can work together we just load both of them (instead of merging them into one class).pooty wrote: ↑Fri Mar 24, 2023 7:33 pmThanks. Sweet to know we can replace a function. I just can't get the timer reset properly. Its like the 2pt win timer reset is hardcoded elsewhere. Makes no sense. Even tried this at the end of my MainCoreDestroyedYeah, I'm pretty sure there will not be any crashing with utcomp turned off.
Also I have to say your OmniONSScoring mutator is genius excellent job there
//reset timelimit
ONSGame.RemainingTime = 60 * ONSGame.TimeLimit;
ONSGame.GameReplicationInfo.RemainingMinute = ONSGame.RemainingTime;
if (bDebug) log("CustomMainCoreDestroyedOver..",'OmniONSScoring');
Had no effect. Calls it runs it no errors, and next round starts, timer still has the remaining time from last round -- it should have changed.
On the UTComp end round stuff...
I think its something in either the BS_xPlayer...
I noticed ONSPlus has its own GRI, but UTCompOmni merged those into SRI?
Damn that ONSPlus code is ugly.
I don't recall but was there a reason we put the ONSPlus stuff in UTComp vs its own package?
Yeah, I hated working on ONSPlus
- pooty
- Posts: 4537
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: Random Server Crashes..
So yes UTCompOmni was still in serverpackages...so lets try it tonight, this time UTComp is truly off.Server Browser is showing UTCompOmni, but its not on the command line.... maybe it's listed as server package/actor.
- pooty
- Posts: 4537
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: Random Server Crashes..
So I have some info on UTComp end game issue, I put some tracking code in my custom scoring mutator..
With UTComp
At the end of the game I can run around etc. Key is this line
Warning: ONSOnslaughtGame ONS-AAA_FrostBite-ScoringTester.ONSOnslaughtGame (Function Onslaught.ONSOnslaughtGame.SetEndGameFocus:01B9)
Without UTComp I don't get that warning and it works fine.
https://ericdives.com/UT2004-UnCodex/So ... e.html#788
So P is the loop variable. Likely failing on PlayerController(P), but what could UTComp be doing to cause that?
With UTComp
Code: Select all
ScriptLog: START MATCH
OmniONSScoring: Assigning Custom Points
OmniONSScoring: Begin Client Reset
OmniONSScoring: C.RoundHasEnded called
OmniONSScoring: PC.ClientRoundEnded called for p)o(Oty
OmniONSScoring: C.RoundHasEnded called
OmniONSScoring: C.RoundHasEnded called
Warning: MutOmniONSScoring ONS-AAA_FrostBite-ScoringTester.MutOmniONSScoring (Function OmniONSScoring.MutOmniONSScoring.MainCoreDestroyedOmniScoring:037C) Accessed None 'C'
OmniONSScoring: End Client Reset
OmniONSScoring: RemainingTIme=88
OmniONSScoring: RemainingTIme Setting=120
OmniONSScoring: CountDown Setting=4
OmniONSScoring: CustomMainCoreDestroyedOver..
ScriptLog: Reset Onslaught.
Log: Collecting garbage
Log: Purging garbage
Log: Garbage: objects: 71972->70353; refs: 982402
Warning: UTComp_ONSPlayerReplicationInfo ONS-AAA_FrostBite-ScoringTester.UTComp_ONSPlayerReplicationInfo (Function UTCompOmni.UTComp_ONSPlayerReplicationInfo.ONSPlusFindPlayerStart:04DA) Accessed None 'SelectedPC'
Warning: UTComp_ONSPlayerReplicationInfo ONS-AAA_FrostBite-ScoringTester.UTComp_ONSPlayerReplicationInfo (Function UTCompOmni.UTComp_ONSPlayerReplicationInfo.ONSPlusFindPlayerStart:04DA) Accessed None 'SelectedPC'
Warning: CSLinkNukeProjectile ONS-AAA_FrostBite-ScoringTester.CSLinkNukeProjectile (Function CSLinkNuke.CSLinkNukeProjectile.HealRadius:0021) Accessed None 'Owner'
OmniONSScoring: Assigning Custom Points
Warning: ONSOnslaughtGame ONS-AAA_FrostBite-ScoringTester.ONSOnslaughtGame (Function Onslaught.ONSOnslaughtGame.SetEndGameFocus:01B9) Accessed None 'P'
OmniONSScoring: Begin Client Reset
OmniONSScoring: End Client Reset
OmniONSScoring: RemainingTIme=0
OmniONSScoring: RemainingTIme Setting=120
OmniONSScoring: CountDown Setting=4
OmniONSScoring: CustomMainCoreDestroyedOver..
ScriptLog: ProcessServerTravel: ONS-DesertJunkYard-V13?Game=Onslaught.ONSOnslaughtGame
Warning: ONSOnslaughtGame ONS-AAA_FrostBite-ScoringTester.ONSOnslaughtGame (Function Onslaught.ONSOnslaughtGame.SetEndGameFocus:01B9)
Without UTComp I don't get that warning and it works fine.
https://ericdives.com/UT2004-UnCodex/So ... e.html#788
Code: Select all
unction SetEndGameFocus(PlayerReplicationInfo Winner)
{
local Controller P;
local PlayerController player;
if ( Winner != None )
{
if (Winner.Team.TeamIndex == 0)
EndGameFocus = PowerCores[FinalCore[1]];
else
EndGameFocus = PowerCores[FinalCore[0]];
}
if ( EndGameFocus != None )
EndGameFocus.bAlwaysRelevant = true;
for ( P=Level.ControllerList; P!=None; P=P.nextController )
{
player = PlayerController(P);
if ( Player != None )
{
if ( !Player.PlayerReplicationInfo.bOnlySpectator )
PlayWinMessage(Player, (Player.PlayerReplicationInfo.Team == GameReplicationInfo.Winner));
Player.ClientSetBehindView(true);
Player.CameraDist = 10;
if ( EndGameFocus != None )
{
Player.ClientSetViewTarget(EndGameFocus);
Player.SetViewTarget(EndGameFocus);
}
Player.ClientGameEnded();
if ( CurrentGameProfile != None )
CurrentGameProfile.bWonMatch = (Player.PlayerReplicationInfo.Team == GameReplicationInfo.Winner);
}
P.GameHasEnded();
}
}
- pooty
- Posts: 4537
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: Random Server Crashes..
I've also found a timer bug in the game. In ONS, if you kill the core in regulation and that doesn't win the match, the timer doesn't get reset, it eventually syncs to the right time but initially its off and shows the remaining time from the previous round. I've verified it with no mutators running.
But Even when I try to set it in MainCoreDestroyed, to fix it....
It just ignores and continues the bug. There's likely something in TeamGame that's messed up. But I don't think that's an issue for custom scoring..since the base game works like that. So I'll declare success on that.
I might try fixing end round stuff in the MainCoreDestoryed function.
But Even when I try to set it in MainCoreDestroyed, to fix it....
Code: Select all
if (bDebug) log("RemainingTIme="$ONSGame.RemainingTime,'OmniONSScoring');
ONSGame.RemainingTime = 60 * ONSGame.TimeLimit;
ONSGame.GameReplicationInfo.RemainingMinute = ONSGame.RemainingTime;
if (bDebug) log("RemainingTIme Setting="$ONSGame.RemainingTime,'OmniONSScoring');
ONSGame.CountDown = ONSGame.Default.Countdown;
if (bDebug) log("CountDown Setting="$ONSGame.CountDown,'OmniONSScoring');
ONSGame.Timer(); // Need this to reset timer
I might try fixing end round stuff in the MainCoreDestoryed function.
- pooty
- Posts: 4537
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: Random Server Crashes..
Sort of works. I can stop the running around but all the stuff in SetEndGameFocus never runs, so you get to broadcast like "Red Team is the Winner" or pretty much anything else in that function. Once we figure out why UTComp tramples that, we'll be good.
- pooty
- Posts: 4537
- Joined: Sat Apr 03, 2021 10:22 am
- Location: Michigan
- Server Sponsor: Yes
- Server Admin: Yes
Re: Random Server Crashes..
Ok I think I fixed it mostly, its on the server (and in git)
I used my new Custom Scoring Mutator... but the real fix was in UTComp.
Now all that being said I tested it quickly... seems to work, although its kind of funny the bots still run around at the end... which I found amusing.
Can't say it won't crash, but I think this was the root: return true at the end.. any time UTComp.CheckEndGame got called it ended the game, without going throught the other rules. But UTComp isn't the decider of ending the game (return true), unless its UTCompMutator.bEnableTimedOvertime which for us doesn't matter since OT core drains determine winner.
Hopefully its fixed, but I won't be shocked if it crashes still... between UTComp and the ONSPlus stuff in there.. its a bit of a mess. I guess we will find out tonight
I used my new Custom Scoring Mutator... but the real fix was in UTComp.
Code: Select all
function bool CheckEndGame(PlayerReplicationInfo Winner, string Reason)
{
// pooty attempt fix end of round drama.
/*if(ONSOnslaughtGame(Level.Game) != none)
{ return true;
}*/
if(UTCompMutator.bEnableTimedOvertime && Level.Game.bOverTime)
{
if(!OvertimeOver())
return false;
}
if ( NextGameRules != None )
return NextGameRules.CheckEndGame(Winner,Reason);
return false; // was true -- True end s the game. We don't want to end it. - 03/2023 pooty
}
Can't say it won't crash, but I think this was the root: return true at the end.. any time UTComp.CheckEndGame got called it ended the game, without going throught the other rules. But UTComp isn't the decider of ending the game (return true), unless its UTCompMutator.bEnableTimedOvertime which for us doesn't matter since OT core drains determine winner.
Hopefully its fixed, but I won't be shocked if it crashes still... between UTComp and the ONSPlus stuff in there.. its a bit of a mess. I guess we will find out tonight