Turbo - Multiple Rulesets
Turbo optimized the performance of the Fantasy Grounds effect processing. It has shown an average performance improvement of 590% in the 5E ruleset's getEffectsByType function. One may see perfromance degreation in FG effects processing when:
- Actors in the CT have more than 15 effects active
- CT is overloaded with Actors
- Extensions are loaded which increase the load on the FG effects processing system
Turbo has been adapted to support various rulesets, including 5E, 4E, 3.5E/PFRPG, 2E, PFRPG2, and SFRPG, and can be customized to support additional rulesets. Performance gains in rulesets other than 5E are expected to be similar. While performance gains with Turbo may be mostly imperceptible, any improvement will help reduce the perceivable performance impacts caused by other sources.
A full report on analysis can be viewed FG Effect Processing Performance Improvements
Issue with Overlay extension (nodex effect)
I'm testing this extension with PFRPG and Kelrugem Overlay: it works like a charm!
So far, I've only found a bug with the "nodex" effect: if you use "IF: nodex" or "IFT: nodex", nothing happens.
Looking into the code, I've found that Turbo extension looks for a "nodex" status, but ofc this status doesn't exist, since it's just a group of statuses mapped in Kelrugem extension (nodex = flat-footed, helpless, etc.).
As a workaround solution, I've overloaded the GetMatchedEffects function (from Turbo extension), to force a loop in case of "nodex" status:
Code:
function newGetMatchedEffects(rActor, sTag)
local aReturn = {};
-- DMC Kelrugem nodex management
sTag = sTag:upper();
if sTag == 'NODEX' then
-- Loop all nodex states (flat-footed, helpless, etc.)
for _, sNodex in ipairs(DataCommon2.tnodex) do
local aReturnNodex = {};
aReturnNodex = oldGetMatchedEffects(rActor, sNodex);
for _,v in ipairs(aReturnNodex) do
table.insert(aReturn, v);
end
end
else
aReturn = oldGetMatchedEffects(rActor, sTag);
end
return aReturn;
end
With this modification, "nodex" works correctly.
I don't know if it's better to modify Turbo GetMatchedEffects function, or Kelrugem extension. Anyway, it would be a great thing if you could fix this behavior.
Regards