Okay, let me try this again, and, hopefully, it will make more sense . . . (yeah right :D )

As promised, here's the function I came up with (with the values I am applying);

if(lt(curval,128),if(lt((curval+(sqrt(r/(0.5/1))+1)),128),(curval+(sqrt(r/(0.5/1))+1)),128)),curval)

In more of a variable defined format, it looks something like this;

if(lt(curval,MDH),if(lt((curval+(sqrt(r/(((LPFMR/MR)*SA)/EA))),MDH),(curval+(sqrt(r/(((LPFMR/MR)*SA)/EA))),MDH)),curval)

where;

MDH - Maximum Desired Height (defined by user)

MR - Maximum Radius (from dead center to furthest point, rounded to nearest even value)

LPFMR - Largest Prime Factor of Maximum Radius (optimally should be 1/16th of MR)

SA - Slope Adjustment (used to bring up the result of LPFMR/MR to the nearest value below 1)

EA - Elevation Adjustment (used to create more aggressive elevation additions, increases with each iteration, starts at a value of 1)

Now I'll do my best to explain what I've done.

I've nested one "if" statement in another.

The inner "if" statement compares the intended replacement value to the maximum value as defined by the user. If the replacement value exceeds the maximum desired value, then the point is set at the maximum desired value. Otherwise, it is set at the replacement value.

The outer "if" statement does almost the same thing, but bypasses the inner "if" statement if the current value of the point is already at the maximum desired value.

The replacement value is calculated as a factor of the radius at the given point as compared to the maximum possible radius of the terrain as a whole. With each iteration, the replacement values should get increasingly aggressive to the point that we end up with vertical (or near vertical) slopes. By using selection masks, we can further control where the values are replaced and, in effect, create crater or plateau-like effects of nearly any shape with a little bit of patience. Since Wilbur doesn't have a loop function (that I can tell, anyhow), this function is wholly dependent on using selection masks to control where the replacement values can occur, and seems to work best with series of increasingly larger or smaller selections with each iteration.

There is probably an easier (read that as cleaner, less complicated) way to implement this function, but I'll leave that to your professional consideration, as I am quite the amateur with this whole function/programming thing.

GW