ID:2166828
 
(See the best response by Lummox JR.)
Code:
obj/pickups/Oil_LanternO
icon='equipment.dmi'
icon_state="lantern"
verb/Interact()
set src in oview(1)
set hidden = 1
if(usr.LanternGrabbed==TRUE)
usr<<"You already have a lantern. Don't hog them."
return
if(usr.InventoryCap == usr.InventoryCapMax)
usr<<"You're out of inventory space."
else
usr.contents += Lantern
usr.InventoryCap += 1
usr.LanternGrabbed = TRUE
del src
return


Problem description: The run time error is below. I have no idea what's happening. Been messing with it all morning.

runtime error: cannot append to list
proc name: Interact (/obj/pickups/Oil_LanternO/verb/Interact)
source file: The Black Death.dm,364


What is 'Lantern' in the 'usr.contents += Lantern' line?

Throw a
  world << Lantern

in there right before you add it to contents.

I assume that is line 364?
In response to Flick
EDIT: Got it all sorted.
Best response
Wouldn't you be a whole lot better off with a generic Get() routine that you can call? It seems like you'd want to add all kinds of things to your inventory, so repeating the same code for each would be a very bad idea. Plus, that limits what you can do as far as updating a HUD and managing inventory and whatnot.
In response to Lummox JR
I just re-worked the entire inventory system to make it more manageable. Loads better.