Quick answer: Pygame image.save dropping the alpha channel when saving PNG? Default surface flatten on save - call surface.convert_alpha() before save to preserve.

Saved screenshot uses pygame.image.save(surface, 'shot.png'). Result has opaque background.

Convert before save

alpha_surf = surface.convert_alpha()
pygame.image.save(alpha_surf, "shot.png")

Convert_alpha preserves the per-pixel alpha channel through the save.

Save as full-color PNG

Force 32-bit save: pygame 2.5+ supports a kwarg save_format='PNG' with alpha preservation.

Use Pillow as backend

For complex saves, pygame.surfarray + PIL.Image. PIL handles RGBA cleanly.

“Pygame surfaces have multiple alpha modes. The default save assumes none.”

If you save screenshots for bug reports, test the path once. Players will use whatever you ship; the transparency bug is invisible until it isn't.