Mod Threshold Before Menu Performance Decreases

Started by Goldenpotatoes, October 14, 2015, 10:07:03 AM

Previous topic - Next topic

Goldenpotatoes

From what I can tell, after a certain threshold, the right-click menu options during in-game seem to cause the game itself to stutter heavily. I usually run ludicrous-sized maps when I play, but I've tested on the smallest map variant and the results are the same: an extremely delayed right-click with stuttering.

I usually have a few high-tiered changers (combat realism, expanded prosthetics), core mods (mostly EdB and Community Core). The rest are usually just singular additions or small structure changes. In total I usually run 30-35 mods total and the only delayed/laggy input I've seen is from the right-click menu.

Mod List:
    <li>Core</li>
    <li>EdBModOrder</li>
    <li>EdBInterface</li>
    <li>EdBPrepareCarefully</li>
    <li>RW_MedicalInfo-A12d_1b</li>
    <li>Community Core Library</li>
    <li>Community Core Library - Vanilla Tweaks</li>
    <li>CombatRealism</li>
    <li>CombatRealism Defence</li>
    <li>CombatRealism + Rimfire 1.8</li>
    <li>CrashLanding</li>
    <li>ExpandedProsthetics&amp;OrganEngineering</li>
    <li>Enviro_SK</li>
    <li>Mending_SK</li>
    <li>Mad Skills</li>
    <li>Hospitality</li>
    <li>Rimsenal_hair</li>
    <li>Apparello</li>
    <li>LT_Infusion</li>
    <li>LT_RedistHeat</li>
    <li>ESM - MineVein</li>
    <li>ESM - SmoothWall</li>
    <li>RimPharma V1.03</li>
    <li>RTFTJ</li>
    <li>TilledSoil</li>
    <li>ToolsForHaul</li>
    <li>Glass_N_Lights-12b.0</li>
    <li>Additional Joy Objects V2.60</li>
    <li>American Civil War Weapons</li>
    <li>WW2 Weapons</li>
    <li>LaserWeapons-LaserWeapons1.4</li>
    <li>PlasmaWeapons-PlasmaWeapons1.4</li>
    <li>GaussWeapons-GaussWeapons1.4</li>
    <li>LT_RaidPlus</li>
    <li>ESM - SmoothWall - CR</li>
    <li>ESM - DoNotDisturb</li>


Fluffy (l2032)

When you right click, the game asks all 'workGivers' if they have any jobs at that particular location, for that particular pawn. Each mod that provides a workgiver has it's own implementation of how to answer that question. It looks like you're running a mod that is doing a lot of work in order to decide if it has a job or not. I think workgivers are the only way a mod can influence the right click menu, but I may be wrong.

Start with providing a list of mods you have running, we can probably filter the list down to a few likely suspects.

You can also look in the mod folder, and then the Defs folder. See which mods have a WorkGivers folder, disable them all, and then add em back one-by-one to see when the problem comes back.

Goldenpotatoes


1000101

You are running both "ESM - Smooth Wall" and "ESM - Smooth Wall - CR", you should be using one or the other, not both.  The "CR" version is not a patch, it's a separate version.  Although neither of these have intensive work givers or directly add to the context menu (right-click menu), having both means you're running extra code.
(2*b)||!(2*b) - That is the question.
There are 10 kinds of people in this world - those that understand binary and those that don't.

Powered By

RawCode

this game have have GUI and world handled from single thread, this is not bad or good, moving GUI to separate thread will cost a lot.

When you right click, game resolve all possible actions in advance every time you do it, when you click on pawn, it will enum all objects in world to decide possible actions.

Every time you add mod that play around workgivers you add "scan entire world" routine, that routing is long and heavy, especially on large worlds.

I can develop some kind of debugger to detect possible cause, but, before that, enable devmod and try to play with GUI on completely empty map, it's possible to remove all objects with single click in devgui.

If there is no lags on empty map - start adding stuff and measure how many items, pawn, objects and stuff your hardware can handle.


Fluffy (l2032)

Quote from: RawCode on October 15, 2015, 05:07:03 AM
When you right click, game resolve all possible actions in advance every time you do it, when you click on pawn, it will enum all objects in world to decide possible actions.

Every time you add mod that play around workgivers you add "scan entire world" routine, that routing is long and heavy, especially on large worlds.
Not necessarily, smart modders limit the list of 'possible' objects for a job, but that's not always possible, and even then it's a comparatively expensive operation.

That said, nothing on that list really jumps out to me as a possible cause, I'ld suggest manually disabling all mods with workgivers, and add em back one by one.