There's a few things I would change here.
Personally, I would not use MoveTo for the model. I recommend you set the Model's PrimaryPart property to any part (preferably a part closest to the center, or maybe the base) and move the part using :SetPrimaryPartCFrame. I also recommend you use math.floor while incrementing by 0.5 on each dimension to get to the nearest stud. Here's my code:
3 | model:SetPrimaryPartCFrame(CFrame.new(math.floor(mouse.Hit.p.X + 0.5 ), Base.Position.Y, math.floor(mouse.Hit.p.Z + 0.5 ))) |
Eventually you may add a map to your game, so you might want to change Base.Position.Y
to math.floor(mouse.Hit.p.Y + 0.5)
so your part isn't always restrained to the baseplate.