This page is list of notes I took for myself while trying to debug the
G_FindConfigstringIndex(): overflow error for UGX Mod v1.1. I tried to
figure out what things cause the error and also wrote myself a proposed
solution (which worked). Read through the page to develop an understanding
of the ConfigString system, which is an indexed engine array of string
assets. Then try to apply as many of the solutions as you can to both your
own scripts and Treyarch's default scripts to minimize the chance of the
error. ~treminaor
Console command: "configstrings"
> Check Console for output.
Creates 1 configString if sound name is unique - if sound is not unique then the same configString is reused.
Creates 1 configString if sound name is unique - if sound is not unique then the same configString is reused.
Creates 1 configString if sound name is unique - if sound is not unique then the same configString is reused.
playing the same sound 3000 times in a loop with a 0.1 delay did not cause this error.
playing the same sound 3000 times in a loop (19 times per frame) with a 0.1 delay did not cause this error
playing the same sound 3000 times in a loop with a 0.000001 delay did not cause this error
playing 3 sounds simultaneously 3000 times in a loop with a 0.000001 delay did not cause this error. Also combined with 128 unqiue fx on "tag_origin" using PlayFXOnTag, one per loop.
could not play 2000 sounds in a loop due to a string memory alloc limit (see https://ugx-mods.com/wiki/index.php?title=MT_AllocIndex:_failed_memory_allocation )
Creates 1 configString index for the path of the FX. If FX path is already in the configString array then no new index will be created. Reusing the same FX path with a different array name will increase the overall FX index and cause 400 FX Exceeded error.
Creates 1 configString index for a unique tag used - if tag has already been used for any other tag-related function, it will be reused and no new configString index will be created.
PlayFXOnTag() seems to generate some number prefixes on the tags used: https://i.imgur.com/mmbw8qC.png
playing the same fxID on the same tag ("tag_origin") on the same ent 3000 times in a loop with a 0.1 delay did not cause this error.
playing the same fxID on 3000 different (fictitious) tag names ("tag_origin_xxx") on the same ent in a loop with a 0.1 delay did not cause this error. same fx name with different (nonexistent) tag names = no crash
playing 125 unique (real) fxIDs on the same tag ("tag_origin") on the same ent 3000 times in a loop with a 0.1 delay did not cause this error.
Creates 1 configString index for a unique tag used - if tag has already been used for any other tag-related function, it will be reused and no new configString index will be created.
Creates 1 configString index for a unique tag used - if tag has already been used for any other tag-related function, it will be reused and no new configString index will be created.
Creates 1 configString index for a unique tag used - if tag has already been used for any other tag-related function, it will be reused and no new configString index will be created.
Creates 1 configString index for the name of the precached item, even if it does not exist and the precache fails. If the item has already been preacached then no new configString index will be created.
Solution - merge all animations into a single animtree.
animtree configstrings: 2979 to 2990
Change use of playsoundatposition(<alias>, <ent.origin>) to <ent> playsound(<alias>) wherever possible.