If you were using a percentage based display, it would make a difference, but with a virtual resolution, it should not make a difference.
We could help more if we could see your code, or at least some example code that shows the problem.
Here is some code that shows the ByOffset working correctly...
+ Code SnippetSetVirtualResolution(800, 600)
SetClearColor(125, 125, 125)
backSpr = CreateSprite(0)
SetSpriteSize(backSpr, 400, 300)
SetSpriteColor(backSpr, 100, 100, 100, 255)
SetSpriteDepth(backSpr, 20)
backSpr = CloneSprite(backSpr)
SetSpritePosition(backSpr, 400, 300)
text1 = CreateText("no offset, sprite x:200, y:150")
SetTextSize(text1, 15)
SetTextAlignment(text1, 1)
SetTextPosition(text1, 200, 20)
sprite1 = CreateSprite(0)
SetSpriteSize(sprite1, 150, 150)
SetSpritePosition(sprite1, 200, 150)
text2 = CreateText("75/75 offset, x:600, y:150")
SetTextSize(text2, 15)
SetTextAlignment(text2, 1)
SetTextPosition(text2, 600, 20)
sprite2 = CloneSprite(sprite1)
SetSpriteOffset(sprite2, 75, 75)
SetSpritePosition(sprite2, 600, 150)
text3 = CreateText("75/75 offset, x:200, y:450 BY OFFSET")
SetTextSize(text3, 15)
SetTextAlignment(text3, 1)
SetTextPosition(text3, 200, 320)
sprite3 = CloneSprite(sprite1)
SetSpriteOffset(sprite3, 75, 75)
SetSpritePositionByOffset(sprite3, 200, 450)
do
Sync()
loop