Question About DontDestroyOnLoad

I declared DontDestroyOnLoad on a GameObject that hold my Menu script. However in that script, it creates and reference both monobehaviors and standard type script. When the scene changes, do the references inside the menu script get destroyed?

Yes if the referenced MonoBehaviors belong to other game objects (and are not children of the object).

Careful: the referenced components may be destroyed when you change the scene, but the references themselves will NOT be set to null automatically! This can lead to “MissingReferenceException” or “ObjectDisposedException” types when you try to access these references. It still remains your job to set those references to null or other (valid) references when changing scenes.