First thought: in the font.ttf there are several hearts, even a broken heart and and a heart hit by an arrow ;).
Instead of the last line
you may use
font = pygame.freetype.Font(etc.mode_root + "../FONT/font.ttf", R)
unistr = unichr(0x1680)
color = etc.color_picker()
(text, textpos) = font.render(unistr, (color,color,color))
This is completely without beeing tested. (I don’t have the ETC here).
I see two pitfalls at the moment:
1.) “R” in the first line is the value for the radius of the circle, used int the original code. I am definitely not sure, whether this is a suitable value for the font size.
2.) The string 0x1680 in the second line defines the character (I took this example from “t - font recedes”). “0x” means it is Hexadecimal. So each digit in the four-digit number 1680 can have any value out of 012345789ABCDEF. You now have to find the right code for the “heart” character.