I'll explain everything just in case there is a better way to do what I'm trying to do:
I have a lot of pre-built parts that basically make a big hollow shape. Each part MUST retain its exact position. I've recently come to the conclusion that I need to name each part individually in order to do what I want. There are thousands of parts, so I obviously don't want to do this manually.
So, I created this little script to rename the parts for me:
for i,v in pairs(parts:GetChildren()) do
v.Name = "Part"..i
end
I guess I should also note that I didn't really want to just rename the parts in a script (like I had), what I really want is to have them already pre-Named before the game even starts.
While the game was still running I copied all the parts so that the parts had the updated names. I stopped the game, then deleted the original pre-built parts and pasted the named parts into the game. For some reason (maybe because of terrain collisions or something) the parts appeared on top of the terrain instead of exactly where I wanted them.
To solve this I started over and used Union on the pre-built parts to make one big part and copied the position. I separated them, ran the script, copied the named parts, stopped the script, deleted the original parts, pasted the named parts, unioned them, changed the Unions position to equal what I copied from the pre-built parts, and separated them.
It looked like it worked, until I clicked on the named parts and noticed that about 30% of them are off by a fraction of a stud for ONLY the Y axis. I have absolutely no idea what to do about this now and I'm officially stumped.
I've also tested creating a Union on all the pre-built parts, moving the union, then separating them and they retained their positions perfectly. For some reason it only messes up when I copy/paste the named parts into the Workspace.
I could really use some help with this. If anyone has any suggestions for any aspect of this, then I'm all ears. Thank You.

6 comments
Don't run the game just to run a script and then copy the result. If you want something done by code, use the Command Box, paste all your code in there and press enter, it should work exactly as if you ran the game
I've never seen a point to using the command bar before this, and actually completely forgot about it. It worked perfectly, thank you, you saved me some headache! Post this as the answer and I'll accept it.
Most of my testing and tasks involve remotes/bindables, so it's probably why I got into the habit of just clicking run/start. Again, thank you!
I'll just feel greedy if I post it as an answer just to get the points, why don't you just edit your question, add [SOLVED] or something
It was a legitimate problem that you solved, greed has nothing to do with it if I want to give you the credit you deserve.
I have it set to Solved so that other people don't waste their time reading all of this. I don't ask too many questions any more, so it'd be nice to accept an answer for a change.