Finding the value or values for pawn offscreen removal

Discuss Mass Effect 3 mods and modding tools here. This includes multiplayer mods.
Paladin
Posts: 10
Joined: Mon May 15, 2017 9:06 pm

Finding the value or values for pawn offscreen removal

Post 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).
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: Finding the value or values for pawn offscreen removal

Post 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.
Paladin
Posts: 10
Joined: Mon May 15, 2017 9:06 pm

Re: Finding the value or values for pawn offscreen removal

Post 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.
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: Finding the value or values for pawn offscreen removal

Post 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.
Paladin
Posts: 10
Joined: Mon May 15, 2017 9:06 pm

Re: Finding the value or values for pawn offscreen removal

Post 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.
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: Finding the value or values for pawn offscreen removal

Post 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.
Paladin
Posts: 10
Joined: Mon May 15, 2017 9:06 pm

Re: Finding the value or values for pawn offscreen removal

Post 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.
Paladin
Posts: 10
Joined: Mon May 15, 2017 9:06 pm

Re: Finding the value or values for pawn offscreen removal

Post 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.
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: Finding the value or values for pawn offscreen removal

Post 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.
Paladin
Posts: 10
Joined: Mon May 15, 2017 9:06 pm

Re: Finding the value or values for pawn offscreen removal

Post by Paladin »

Can you use m3explorer? thats how i found those.
Post Reply