Santo,
by first time I checked out the code of your MOD. In the preRender() method you are all the time making comparisons with the settings in the Conf.ini:
if(gun._bulletTraceMesh[indx()] != null && (point3d.distance(p0) < (double)Config.cur.ini.get("Mods", "TracersWirbelwind", 0) || World.getPlayerAircraft() == owner() && point3d.distance(p0) < (double)Config.cur.ini.get("Mods", "TracersPlayer", 0) || owner().toString().startsWith("air", 23) && point3d.distance(p0) < (double)Config.cur.ini.get("Mods", "TracersAircrafts", 0) || !(owner() instanceof com.maddox.il2.objects.vehicles.artillery.Artillery.Wirbelwind) && point3d.distance(p0) < (double)Config.cur.ini.get("Mods", "TracersWorld", 0)))
You should take into account that everytime a new bullet is generated, you are having 4 access to disk to make those comparissons. Multiply that by the number of bullets generated in the game, and it is kind of a waste of time and resources.
Typically you should initialize static variables with those values (so you read only once the values in Conf.ini) and since then, all your comparisons should be made against the variables (not the conf parameters in Conf.ini file).
Regards,
Pablo