First off, simple parts are some of the best you can do for roblox, the meshes are simple and are low impact.
WHere you have objects taht need to be combined, unions are actually a good alternative, they aren’t ideal for super complex areas, but spots like your pulleys, and other simple areas it’s good enough. If the area is out of reach, set the fidelity to box.
Meshes are the best thing for making detailed works, so your parts of the ship where it’s complex and high in detail and poly, utilize mesh assets there.
On the overall ship, a few tips will be of use for you:
Keep your detailing even across the ship, no single area should be more detailed than another to a high margin.
In areas where players cannot access, turn off collisions and indexing, make parts that can be massless, massless. Doing this reduces the amout of physics based calculations needed to render and simulate the ship.
Don’t make the entire ship enterable unless you intend to do a showcase or want to go to that detail, if you can block of some areas with effects and barriers, doing so will save on the amount needed to render the ship.
Try to repeat meshes where you can, how games in general work is they will render an asset once and where multiple objects call for that asset, it will just duplicate the rendering. This will be less impactful than all mesh assets being unique.