Give_Spells(mob/M as mob in world)
set category = "-G(v)-"
switch(input("Spells", "[]") in list("Lightning Bolt", "All", "Cancel"))
if("Lightning Bolt")
M.contents += new/obj/showskill/lightning
M << "You have been granted Lightning Bolt!"
usr << "Ok."

M.contents += new/obj/showskill/lightning
M << "You have been granted all spells!"
usr << "Ok."

usr << "Cancelled."

usr << "Error."

Everytime I use the verb is just goes straight to "Error". Why is this? Appreciate the help. I can't work it out.

NOTE: All is there for future purposes, like when I add more skills etc., so please don't flame the fact that it's there. It is there for a purpose. ;)
Tried it. It works.
Well as far as I know input only automatically returns if there is either 0 or 1 list items.

In the case of no items it returns null and if there is only one item to choose from it automatically returns with that single item.

So if it does work as Garthors says then in your copy you probably have only provided one option which it automatically selects or you built the list wrong.