1# Objects should retain their rotation they had when put in the bag... so if you drop a token in it in face up, it will be face up when you pull it out. If the object is changing rotation, I would assume it could be in your code. When I take from a bag witch scripting I personally like to use setPostion and setRotation or the smooth vertsion instead of the "parameters" for takeObject.
something like this...
Code:
local object = bag.takeObject({})
pos = bag.getPosition()
pos.y = pos.y + bag.getBounds().size.y + 0.5
obj.setPosition(pos)
obj.setPositionSmooth(????)
This code (not tested just off the top of my head) should take a object, move it instantly above the bag, and then smoothly move it to whereever you tell it. As we never used any parameters at all, there is no place in this code to change the rotation. Basically I only use takerObject(prams) to define GUID or a Index or a callback function.
2# Not sure why this is happening either. I did have a issue like this once... but only with dice. The tags should be saved and be the same when you come out of the bag. The quickest work around would be to add a onLeaveContainer or w/e it is called and just set the obj.use_snap = true to force it to always be on.
Also, snaps do not work on setPosition and stuff. If you code a setPosition it will go to that exact place, regardless of it a snap is close to it. It "sounds" like maybe the snap is working. When you pick up the card and drop it again, it is moving to the snap.. if your setPosition went to the correct spot, it would place it at that same place.. so the user would nevr know the snap is not being used, and if they manually move it, then snaps are working then. You can check this by printing out if the use_snap == true on the frame function *the one that triggers every frame).. to tracj exact when, if it is at all, the snap is turning off. Or just right click and see if the snap option is ticked.