From the core code, it seems like the weapon radius will be added to (2 * ship radius) when considering attacks, giving an effective range of 6, centre to centre.
However, as a matter of empirical fact, ships don't fire unless the centre to centre distance is under 5, as proven by this replay...
weapon_test.hlt (1.6 KB)
I don't actually understand how the C++ code linked at top doesn't lead to a range of 6. Anyone know?