Need help rotating part relative to its own axis instead of the world axis for cannon on MOVING, unanchored ship

Hey guys how do you change a parts orientation to rotate downwards or upwards relative to the parts rotation and not the world axis
I wanna use part.Orientation not cframe or welds. This is because CFrame would rotating everything, even the ship.

How my cannon is structured:
All parts of cannon welded to a main part.
Main part is welded to the ship.

I wanna use it for my cannon barrel, theres a problem, when the ship is rotated upwards and i rotate the cannon, the cannon barrel rotates downwards but on the world axis and not relative its own rotation, so when the ship is back to normal the barrel is actually rotated to the left and the aiming is slanted which causes a huge issue.

Here is an image of the problem:

More images of what i want:
RobloxHelp2

Please help me. Its been months and I cant find a solution. No one gave a reply to my topic and ive searched plenty of communities online.
Someone said translating cframe to orientation but idk.

The best optioj if you dont want to use cframe is converting a cframe to orientation. But i think you are better off using cframe regardless.

If you arent already experiencee at cframe then theres no time like the present to learn it.

If not you would have to add the offset in orientation of the ship to the cannon to get the correct orientation which wont be as acurate and is more bother than its worth.

https://devforum.roblox.com/t/what-is-vectortoobjectspace-used-for/279624?u=thr3star