I have sprites of a spider with arms that extend out then contract back in when it's walking, the problem is that godot assumes all the sprites are the same size so I get bits of "walking2"'s arms inside of "walking1" and vice versa. I've looked online for a bit and all I can find is one answer saying "use region" with no extra context or details as to how that's supposed to work. I figured out how to enable region but I have no idea how to actually animate with it, since I can only draw one region at a time meaning I can't just manually cut the squares I need unless I missed something...

but feel free to inform me of a better answer if region's not the best one. I'm really just winging it right now because of how little I can find pertaining to my problem.

Usually sprite sheets work with rectangles all of the same size. This is the easiest thing (for example, you can fix the image in Photoshop/GIMP).

Otherwise, you can create a sprite animation in the animation editor, with each frame as a separate image of any size. However, this is very time consuming for large animations.

    cybereality if I'm understanding you right, I have to use blank space to make them all the same square size? I tried something like that before and because I couldn't eyeball the exact space I needed it ended up cutting them funky. ...actually now I remember that's what led to me pushing them all right next to each other, it was the only way to gaurantee it wouldn't do that. and now it's doing it again but for a different reason!

    you know what screw it, I'm going back to doing it the non-spritesheet way. this is just extra headache for no real reward honestly.

    I think usually what people do is use sprite editors (like this: https://www.aseprite.org/ ).

    Or you can create all the frames on top of each other on separate layers in Photoshop/GIMP and write a script that exports them.

    2 months later

    If you have the sprites, I pushed a tool online that resizes sprites to the same final size and creates a spritesheet from these resized sprites : https://resizer-js.vercel.app