Thank you so much. This helped out a TON. I was a bit frustrated with this problem.
I even have an extended solution that works very well for me.
First, proper CharacterMovement settings seem very important. My character has a base size of 11x21 pixels. Its shape makes it a bit difficult to determine where to hit a ledge/fall off. Like recommended by OP, use “Use Flat Base for Floor Checks” for walking off ledges (extend walking options). The Perch settings are really important and definetly need to be fine tweaked. I used 2D boxes and build stairs that go steeper and steeper.
Regarding component tags: For testing purposes you can just drag a sprite in the scene and add a Component Tag in the Details tab. If you have many objects in the level you can mass select them and apply it everywhere. But it’s probably better to add the Component Tag later in your Blueprint (or per script?). When you add a PaperSprite component you can go into its Details tab and add the Component Tag there.
I’m using very small values for “Perch Radius Threshold” and “Ledge Check Threshold”. It will determine when your character starts wobbling its way through the edge of the ledge (since the capsule is rounded). If you use a too big value for “Max Step Height” your character will twitch downwards at times.
I then used Mortusnyte method of checking if falling to stop the velocity of the CapsuleComponent, so that you don’t slide off the side of a ledge that you hit when falling on it.
The problem now is that when jumping at an edge from below or on the side of an object you still might get pushed away and bounce off. I added a Box Collision in the base of my character to the Character BP and used its collision to do the same check that Mortusnyte used. But like this the character will already have its velocity reduced before the CapsuleComponent can touch the edge of the object.
I also was able to leave the Falling check out without noticable impact. Keep in mind that it will just work on objects that have the checked Component Tag. I actually just used one tag for my test.
This Box Collision will also change that when you jump at an object (with the Component Tag) from below the character won’t slide along anymore, but stop as if it hit its head (well, it does). If you have a high “Air Control” setting it will just be a small bump and your character continues moving. I like this more.
There is still a problem that if you jump pixel perfect on a ledge you might slide down. I added a video where you can see it at 0:41.
As you can see, works very well.