Q: Ranges.2da has 2 columns labeled 'PrimaryRange' and 'SecondaryRange' which are apparently only used for perception ranges... Which of these columns affects the seeing range and which hearing (I assume 'Primary' is hearing based on my tests, but I'm not sure)? What values does the PercepRngDefault use? It uses the usual **** entries for default values, but where is that value defined?
A: Primary Range is the Spot range (Visual range)
Secondary Range is the Listen range (Hearing range)
If something is flaged as PercepRngDefault, instead of reading the values from the columns on that row, it looks up the creature's Appearance in Appearance.2da and uses the PERCEPTIONDIST column to find out what row creatures with that appearance are supposed to use. PERCEPTIONDIST in appearances.2da should reference back to a row in ranges.2da from which to read the values in from.
If all else fails, a creature will be assigned the values stored in the PercepRngMin row.