I'm trying to implement some custom inaccuracy code and keep running into a snag: FRandom only evaluates as a float when used alone. Even multiple FRandoms have to each be multiplied by 1.0 for the resulting expression to remain a float.
Here's some test code. I recommend E1M1, right across from the start is a wide flat wall.
Use TimeFreeze so you can see the shot patterns. The first gun (Slot 3) simply uses 10 degrees in either direction. The second (Slot 4) adds together two random results of 5 degrees, giving it a 10 degree spread but making the extremes less likely.
With both guns, primary fire will give a desired result (an irregular but continuous line of puffs) while alternate fire gives a bad result (only on whole angles, giving a uniform dotted-line of puffs).
Well, the problem I ran into (I think) is that in order for it to work properly, the values you feed into FRandom should be floats to begin with, i.e. should be suffixed with .0 to actually work. That's a thing I ran into with ww-nazis' shotguns, if I remember correctly.