hi,
Sorry for the delay of this answer, we simply missed your post.
When using STRING READOUT_WIDTH { ANIM OFF; } it's important that you initialize the parameter in your Init function. Otherwise uninitialized type will be a int.
At some point, the code is comparing the old value type with the new value. That's why it's waiting for a Int while you provide a Str. (feel like a bug to me)
I don't see the problem using STATICTEXT or STRING. It does create the expected fields. The StaticText can't be Animated anyway, i would remove the ANIM OFF
STATICTEXT PYPREFERENCE_STATICTEXT {}
STRING PYPREFERENCE_STRING { }
about the border around the static text you can declare the field like this in your ressource file:
STATICTEXT PYPREFERENCE_STATICTEXT_BORDER {BORDER;}
Cheers,
Manuel