ScriptableObjects can separate reusable data from scene behavior.

[CreateAssetMenu]
public class WeaponData : ScriptableObject
{
    public int damage;
    public float speed;
}

Useful for:

A common distinction:

MonoBehaviour
→ scene behavior

ScriptableObject
→ reusable asset data