Page 1 of 2

Finding the value or values for pawn offscreen removal

Posted: Mon May 15, 2017 9:32 pm
by Paladin
Well the name of the post says it all, im trying to find the value or values wich trigers pawn removal when offscreen.
Im no modding expert, but i manage to make the game run quite smooth on my crappy pc, the funny things is that probably after some bizarre tweeking this morning (15/05/2017 here in venezuela) the pawns werent removed offscreen for a long time (more than 6 seconds), i mean, i killed a cerberus trooper looked back and walked for like 6 seconds, then returned to look at the guy, he was supposed to be removed after like 1 second but he was still there. However my game behaved funny so i decided to use my backup Coalesed.bin, but i cant see to pin-point what i did to disable or severly delay offscreen removal.
All this of course is for SinglePlayer purposes, i dont care about multiplayer (its obvious i will get banned while playing with a tweak like this "IF" is possible).

Re: Finding the value or values for pawn offscreen removal

Posted: Tue May 16, 2017 12:26 am
by Mgamerz
MP is unpoliced (has been for years now), and you can't really get banned these days.

I have looked into this a lot in the past, but I couldn't figure out how it's done. A good way to figure it out would be to download my Script Dump and then search for stuff using something like GrepWin. I searched for things like cleanup, remove, garbagecollect, etc. I've had no dice figuring out what might be relevant. It may be part of the EXE or something, since this has to do with memory management there's a good chance its either native or part of the EXE itself.

Re: Finding the value or values for pawn offscreen removal

Posted: Tue May 16, 2017 9:53 am
by Paladin
Well this is what i think i did, aint gonna try it again because tweeaking left me exausted.
On "biogame.ini / sfxgamecontent / sfxpawn / swarmer" i found this "timetolive=60.f" so i asumed that when a swarmer pawn is killed it lingers for 60 frames (1 second) before is removed.
So i went crazy and added that value to all the pawns there at an extreme number from atlas to trooper (on my head if 60 frames are 1 second, then 7200 frames could be like 2 minutes), i also added "deathflourishduration" at an extreme level too, since a player pawn on multiplayer when killed leaves something for 4 frames , although cant be sure if it did something but i added it anyway. After that i went to "bioai.ini / sfxgame / sfxai / core" and added the 2 same values from the pawns, so "timetolive=7200.f", "deathflourishduration= to and extreme number". I think i also added thouse values into "bioai.ini / sfxgame / bioaicontroller" too, but cant remember.
Finally on "biogame.ini / engine / decalmanager" decallifespan was set to 10000.0
Thats all i can remember, because like i said on the opening post i killed a cerberus trooper looked back for 3 seconds and he was still there, then i looked back again walked away from the pawn for like 6 seconds, it was still there. But there was a chance i made other bizarre tweeks, so my unmodified Coalesed.bin back up replaced the other.

Re: Finding the value or values for pawn offscreen removal

Posted: Tue May 16, 2017 1:42 pm
by Mgamerz
Timetolive is the suicide timer for the swarmer and deathflourishduration is the duration of the red border when a multiplayer player dies, locally. Neither have to donwithpawn cleanup. I tore coalesced apart extensively making modmaker as it can edit almost all of it.

Re: Finding the value or values for pawn offscreen removal

Posted: Tue May 16, 2017 2:53 pm
by Paladin
Then one of them must have worked because the pawn didnt disappear for like 6 seconds, it feels that by adding any of those values or other to the pawns individualy (thats pure especulation) it could delay but not remove the cleaning.
There were 21 pawns on sfxpawn, i added those values to 19 of them, plus bioai.ini, it could be possible to add local player values to the mp/ai pawns, but which values i dont know.
Other thing i though its to trick the game into thinking we are constantly looking at all directions, i dont know if is possible though, since offscreen time means assests are being unloaded. Crysis had a similar thing called "unseentime" but of course cry-engine and unreal engine 3 are different.

Re: Finding the value or values for pawn offscreen removal

Posted: Tue May 16, 2017 10:42 pm
by Mgamerz
I've seen code for cleanup, there's an unrendered frame count for destroyed pawns. But since it is not consistent in how long until destroyed (it's called something like shrinktozero, in engine.pcc) I am not sure.

Re: Finding the value or values for pawn offscreen removal

Posted: Tue May 16, 2017 11:32 pm
by Paladin
Then ill need to find a way to open that file then pack it, i think m3explorer can do it. My game could be our ginea pig for the time being, since its only for singleplayer.

Re: Finding the value or values for pawn offscreen removal

Posted: Thu May 25, 2017 11:18 pm
by Paladin
Mgamerz wrote:I've seen code for cleanup, there's an unrendered frame count for destroyed pawns. But since it is not consistent in how long until destroyed (it's called something like shrinktozero, in engine.pcc) I am not sure.
Damn! i have been looking into Engine.pcc with E3explorer package editor, and the amount of values there are ridiculous, also couldnt post these days, i live in venezuela and stuff are "crazy" here. Anyway i found these:

+(Exp)1198 : Actor(Class) "all the values below are inside this one"
(Exp)372 : Pawn (Function)
(Exp)374 : Destroy (Function) ---- below destroy from (Exp)380 to 414 functions are timers.

Also waaaaaay down is this (Exp)762 : OnDestroy (function)

(Exp) 1037 and below have a couple of interesting values.

This is what i found for now.

Re: Finding the value or values for pawn offscreen removal

Posted: Sat May 27, 2017 2:06 pm
by Mgamerz
I believe ondestroy is called when the game actually removed them. I could not find any place that called ondestroy with my scriptdump.

Re: Finding the value or values for pawn offscreen removal

Posted: Sat May 27, 2017 5:12 pm
by Paladin
Can you use m3explorer? thats how i found those.