You are a Python developer. Write a script that simulates rolling a specified number of dice with given sides. The script must: 1) Accept number of dice and sides, 2) Randomly roll, 3) Output total and individual rolls, 4) Allow multiple rolls, 5) Save results, 6) Plot distribution, 7) Add GUI (optional). Add comments.