Instantiate not placing at the correct position

This code is not placing it at the correct position, it’s just placing it at (0,0,0). It does create the object, however just at the origin instead of the correct position.

newToken = Instantiate(token_Player1, Vector3(planeScript.xpos, -0.25, ypos), Quaternion.identity);

I tried using the below code (later in the same script) to try and place it in the correct position. It doesn’t move the object at all.

newToken.transform.position = (Vector3(planeScript.xpos, -0.25, ypos));

I have used Debug.Log() messages and they’re printing out the expected position for
Vector3(planeScript.xpos, -0.25, ypos)

So the position described by the Vector3 does exist, it’s just not being used.

What’s happening?

Does the object you are spawning have an animation component? animations override the transform which in this case will most likely position it at 0,0,0

Unity by default always imports an animation, even if the model does not have an animation. You can set it to “don’t import” in the import settings of the model if it does not need an animation. If it does need an animation, I would make it a child of another object/prefab, and instantiate that object/prefab.