You can't do that to an actual instance: import bpy bpy.types.Object.prop = bpy.props.IntProperty() bpy.context.active_object.prop # this evaluates what the value is and returns <class 'int'> - not subscriptable [![enter image description here][1]][1] To adjust the min max etc. you need to re-declare it: bpy.types.Object.prop = bpy.props.IntProperty(min=100, max=300) # note: re-declaring will change it for all the objects Changing the `default` value will not change the actual value of that static property - you will need to assign it a new value in that case. But newly created objects will have this new default. You can make it work like this: 1. create [callback function][2] for your `hT` property 2. have this function re-declare your `fW` property with new parameters based on `hT` value [1]: https://i.sstatic.net/j3XCA.png [2]: http://www.blender.org/api/blender_python_api_2_66_release/bpy.props.html#update-example