A Small Favor - Duplicate Cigars
https://www.newgrounds.com/portal/view/495164/format/flash?emulate=flash
At the start of the game, collect the gun and cigar at the bottom left of the screen. Exit the room through the door at the top. Come back into the room. The gun and cigar are on the table again. If you pick up the cigar again you will get a second (and then a third) in your inventory.
In the Flash player version, the gun and cigar are gone after you've collected them the first time.
I've added some traces in function onLoad() located in \__Packages\item:
trace("this.id: " + this.id);
trace("this.collectable: " + this.collectable);
In Ruffle, this.id will always be undefined and this.collectable always false.
Flash seems to change the values if these properties are declared as variables or properties inside a DefineSprite (eg. \DefineSprite (611: item_gun)\frame 1\DoAction for the gun).
Also worth noting that wrapping the onLoad() function inside a setTimeout fixes the issue - with a little delay of course.
In this case, the onLoad should run after the frame 1 actions, but Ruffle runs it in the wrong order.
Some quick testing makes it seem like if there are no onClipEvents placed on a timeline sprite, then the frame actions should run first; otherwise, for example if you add onClipEvent(load), the load events run first. Need to do a little more investigation.