I am currently run into difficulties due to floating point precisions because in my loop i do fixed steps of 0.01d and in my loop I add tiny fractions like 0.001d multiple times and I end up running into "unexpected" errors. I never really dealt with such problem and i dont know how to deal with it other than doing reverse calculations like if a skill has 1 second cooldown i'd instead of adding fractions i'd calculate the amount of steps needed instead