There are a few places here and there where I’ve mentioned that some size and position properties are incompatible with other properties in Ren’Py, often because one property is shorthand for setting multiple properties.
Here is a table of all those conflicts. You don’t have to read it through from start to finish, but I hope it will be good reference material if you’re ever wondering why Ren’Py complains about using certain properties together, or if you’re having trouble positioning and sizing screen elements.

This article is intended largely as a reference after you’ve read Ren’Py Position Properties – Pos and Anchor, Ren’Py Position Properties – align, xycenter, and offset, Ren’Py Size Properties – xysize, maximum, and minimum, and Ren’Py Size Properties – fill, fit, size_group, and area.
| Property Name | Conflicts | Explanation |
|---|---|---|
pos | xpos, yposalign, xalign, yalignxcenter, ycenter, xycenterarea | pos sets both xpos and ypos, so it can’t be used alongside them.The next set of conflicting properties all set one or both of the pos properties along with the anchor property. They can’t both set the same thing, so only one of these properties will be what the actual pos value is.area sets pos and xysize, so again, it can’t be used in combination with a pos property. |
xpos | posxalign, xcenter, xycenterarea | pos sets xpos and ypos in one property, so it can’t be used alongside themThe next set of conflicting properties all set the xpos properties along with the anchor property. They can’t both set the same thing, so only one of these properties will be what the actual xpos value is.area sets pos and xysize, so again, it can’t be used in combination with a pos property. |
ypos | posyalignycenter, xycenterarea | pos sets xpos and ypos in one property, so it can’t be used alongside themThe next set of conflicting properties all set the ypos properties along with the anchor property. They can’t both set the same thing, so only one of these properties will be what the actual ypos value is.area sets pos and xysize, so again, it can’t be used in combination with a pos property. |
anchor | xanchor, yanchoralign, xalign, yalign, xcenter, ycenter, xycenter | anchor sets both xanchor and yanchor, so you can’t also use the individual xanchor and yanchor propertiesFor the other properties, it’s the same as pos; the conflicting xycenter and align properties set the anchor point of the image along with setting its pos, so only one of them can be actively applied at a time. |
xanchor | anchoralign, xalignxcenter, xycenter | anchor sets both xanchor and yanchor, so you can’t also use the individual xanchor and propertyFor the other properties, it’s the same as xpos; the conflicting properties set the anchor point of the image along with setting its pos, so only one of them can be actively applied at a time. |
yanchor | anchoralign, yalignycenter, xycenter | anchor sets both xanchor and yanchor, so you can’t also use the individual yanchor and propertyFor the other properties, it’s the same as ypos; the conflicting properties set the anchor point of the image along with setting its pos, so only one of them can be actively applied at a time. |
align | xalign, yalignpos, xpos, yposanchor, xanchor, yanchorxycenter, xcenter, ycenterarea | align lets you set a value for xalign and yalign, so it is incompatible with those individual properties.align sets both pos and anchor to the same value, so it’s incompatible with both those properties.xycenter sets the anchor and pos of the element, and since align also sets the anchor and pos, they are incompatible.area sets the pos of the element, and since align also sets the pos, they are incompatible. |
xalign | alignpos, xposanchor, xanchorxycenter, xcenterarea | align lets you set a value for xalign and yalign, so it is incompatible with those individual properties.xalign sets both xpos and xanchor to the same value, so it’s incompatible with both those properties, and pos and anchor which also set the xpos and xanchor values respectively.xycenter sets the anchor and pos of the element, and since xalign also sets the xanchor and xpos, they are incompatible.area sets the pos of the element, and since xalign also sets the xpos, they are incompatible. |
yalign | alignpos, ypos, anchor, yanchorxycenter, ycenterarea | align lets you set a value for xalign and yalign, so it is incompatible with those individual properties.yalign sets both ypos and yanchor to the same value, so it’s incompatible with both those properties, and pos and anchor which also set the ypos and yanchor values respectively.xycenter sets the anchor and pos of the element, and since yalign also sets the yanchor and ypos, they are incompatible.area sets the pos of the element, and since xalign also sets the xpos, they are incompatible. |
xycenter | xcenter, ycenterpos, xpos, yposanchor, xanchor, yanchoralign, xalign, yalignarea | xycenter allows you to set both xcenter and ycenter in one property, so it can’t be used in combination with the individual properties.xycenter sets both pos to the given value and the anchor to the center, so it’s incompatible with both those properties.align sets the anchor and pos of the element, and since xycenter also sets the anchor and pos, they are incompatible.area sets the pos of the element, and since xycenter also sets the pos, they are incompatible. |
xcenter | xycenterpos, xposanchor, xanchoralign, xalignarea | xycenter allows you to set both xcenter and ycenter in one property, so it can’t be used in combination with the individual properties.xcenter sets both xpos to the given value and xanchor to 0.5, so it’s incompatible with both those properties.align sets the anchor and pos of the element, and since xcenter also sets the xanchor and xpos, they are incompatible.area sets the pos of the element, and since xcenter also sets the xpos, they are incompatible. |
ycenter | xycenterpos, yposanchor, yanchoralign, yalignarea | xycenter allows you to set both xcenter and ycenter in one property, so it can’t be used in combination with the individual properties.ycenter sets both ypos to the given value and yanchor to 0.5, so it’s incompatible with both those properties.align sets the anchor and pos of the element, and since ycenter also sets the yanchor and ypos, they are incompatible.area sets the pos of the element, and since ycenter also sets the xpos, they are incompatible. |
offset, xoffset, yoffset | N/A | offset properties are compatible with all other mentioned properties. |
xysize | xsize, ysizemaximum, xmaximum, ymaximumminimum, xminimum, yminimumareaxfit, yfit, xfill, yfill, fit_first | xysize sets both the xsize and the ysize properties, so it is incompatible with them.Setting xysize sets the maximum and minimum properties to the same value. Ergo, you can’t use both of them at the same time.As with pos, area sets both pos and xysize, so you can’t use xysize with area.fit and fill properties are incompatible with anything that sets size, as they also set the size. |
xsize | xysizemaximum, xmaximumminimum, xminimumareaxfit, xfill, fit_first | xysize sets both the xsize and the ysize properties, so it is incompatible with them.Setting xsize sets the xmaximum and xminimum properties to the same value. Ergo, you can’t use both of them at the same time.As with pos, area sets both pos and xysize, so you can’t use xsize with area.fit and fill properties are incompatible with anything that sets size, as they also set the size. |
ysize | xysizemaximum, ymaximumminimum, yminimumareayfit, yfill, fit_first | xysize sets both the xsize and the ysize properties, so it is incompatible with them.Setting ysize sets the ymaximum and yminimum properties to the same value. Ergo, you can’t use both of them at the same time.As with pos, area sets both pos and xysize, so you can’t use ysize with area.fit and fill properties are incompatible with anything that sets size, as they also set the size. |
minimum | xminimum, yminimumxysize, xsize, ysizeareaxfit, yfit, xfill, yfill, fit_first | minimum sets both xminimum and yminimum, so it’s incompatible with those properties.xysize sets minimum and maximum to the same value, so they are incompatible.area sets xysize, which as mentioned, sets both the minimum and maximum to that value.fit and fill properties are incompatible with anything that sets size, as they also set the size. |
xminimum | minimumxysize, xsizeareaxfit, xfill, fit_first | minimum sets both xminimum and yminimum, so it’s incompatible with those properties.xysize and xsize set xminimum and xmaximum to the same value, so they are incompatible.area sets xysize, which as mentioned, sets both the minimum and maximum to that value.fit and fill properties are incompatible with anything that sets size, as they also set the size. |
yminimum | minimumxysize, ysizeareayfit, yfill, fit_first | minimum sets both xminimum and yminimum, so it’s incompatible with those properties.xysize and ysize set yminimum and ymaximum to the same value, so they are incompatible.area sets xysize, which as mentioned, sets both the minimum and maximum to that value.fit and fill properties are incompatible with anything that sets size, as they also set the size. |
maximum | xmaximum, ymaximumxysize, xsize, ysizeareaxfit, yfit, xfill, yfill, fit_first | maximum sets both xmaximum and ymaximum, so it’s incompatible with those properties.xysize sets minimum and maximum to the same value, so they are incompatible.area sets xysize, which as mentioned, sets both the minimum and maximum to that value.fit and fill properties are incompatible with anything that sets size, as they also set the size. |
xmaximum | maximumxysize, xsizeareaxfit, xfill, fit_first | maximum sets both xmaximum and ymaximum, so it’s incompatible with those properties.xysize sets xminimum and xmaximum to the same value, so they are incompatible.area sets xysize, which as mentioned, sets both the minimum and maximum to that value.fit and fill properties are incompatible with anything that sets size, as they also set the size. |
ymaximum | maximumxysize, ysizeareayfit, yfill, fit_first | maximum sets both xmaximum and ymaximum, so it’s incompatible with those properties.xysize sets yminimum and ymaximum to the same value, so they are incompatible.area sets xysize, which as mentioned, sets both the minimum and maximum to that value.fit and fill properties are incompatible with anything that sets size, as they also set the size. |
xfill | xmaximum, xminimum, xsizexfit, fit_firstarea | xfill sets the width of the displayable, so it’s incompatible with any other properties attempting to set the width. |
yfill | ymaximum, yminimum, ysizeyfit, fit_firstarea | yfill sets the height of the displayable, so it’s incompatible with any other properties attempting to set the height. |
xfit | xmaximum, xminimum, xsizexfill, fit_firstarea | xfit sets the width of the displayable, so it’s incompatible with any other properties attempting to set the width. |
yfit | ymaximum, yminimum, ysizeyfill, fit_firstarea | yfit sets the height of the displayable, so it’s incompatible with any other properties attempting to set the height. |
area | pos, xpos, yposalign, xalign, yalignxycenter, xcenter, ycenterxysize, xsize, ysizeminimum, xminimum, yminimummaximum, xmaximum, ymaximumxfill, yfill, xfit, yfit, fit_first | area sets both xysize and pos, so it’s incompatible with any other properties that set those values or control size. |
size_group | xfit, yfit, xfill, yfill, fit_first | size_group is incompatible with the fit and fill properties because those properties can only apply to fixed containers, and size_group can only apply to frames, windows, labels, buttons, and textbuttons.Note that while you can apply size properties like xminimum and ysize to a container with a size_group, it may not always affect the other containers with the same size_group in intuitive ways. Make sure you’re saving and testing your changes often! |
Conclusion
And that’s all for this article! I hope this is a useful source to return to if you’re having trouble with error messages like “properties xalign and xpos conflict with each other” and aren’t sure why. In the next tutorial, we’ll start looking at frame, which lets you add backgrounds and padding to your containers. Find it here: Ren’Py Screen Language Basics – Frames
You might also be interested in my tool release from last week, which makes it simple to add blinking to character sprites! Find it on itch.io:
