Hello!
You didn’t mention what the type of the variable your using is, I’m going to presume that it is a integer. An integer should have no problems with 1 billion. As integers in Blueprints are signed values, giving the following Min/Max values.
Min: -2147483648
Max: 2147483647
(if you are curious, this is called “twos complement notation”, because the negative value is capable of representing 1 number larger (although it is negative) than the positive number)
So I doubt that 1 billion is the culprit of making things go crazy. Assuming that you are using the integer data type. As you are representing money, I would highly suggest that you do use integers to represent the quantity. Trying to do this with floats is possible, but you are subject to rounding errors, if you allow the representation of the money to include any value in the exponent (i.e. 123.45 where “45” would be the exponent). Or if you wanted to allow the afore mentioned “45”, then you would probably always want to do a truncate after each math operation on the values.
For most games, the range of integers is generally sufficient. In that you need to determine, how fast people can make money in your game, and then determine how many years it would take them to achieve that, using the maximum speed that they can acquire money.
Hope this helps,