all numbers as hex to prevent lua number overflow