ID:841533
 
(See the best response by Albro1.)
When I create a new instance of an object under a mob's proc, the argument I am passing in is src. This is so I can set the object's owner to the mob as so

mob/proc/tester()
var/obj/z = new(src)

obj
var/mob/owner

New(o)
owner = o


The "problem" I am experiencing is that I'd like to designate a mob's list to have this object be added to, instead of adding it directly to the mob's contents. Instead, two instances of the object are created when I attempt to do so. One is in my mob's contents, and one is in the list that I add the object to.

mob/list/special_objs = new

mob/proc/tester()
var/obj/z = new(src)

obj
var/mob/owner

New(o)
owner = o
owner.special_objs += src

// owner.contents -= src
// A workaroud I DO NOT want to use

My question is, how may I add, upon creation, an object to it's "owner mob"'s specified list, without adding it to the mobs contents?

Where do you want them to go, if not the contents? Adding them to a list is a reference, not a location. They are going to have a loc one way or another.
In response to Albro1 (#1)
What do you mean? A list is a location. Contents is a list.
Best response
obj
var/mob/owner
New(location_override,mob/m)
if(!m) del src
owner = m
owner.special_objs += src

mob
var/list/special_objs = list()
Login()
new /obj(0, src)
for(var/v in contents)
src << v


This won't add them to the contents. new() takes the location as the default argument, so when you send src to it, it pops it in src and then does the New(). Override the first argument, problem solved.

Of course, at the very least, this would mean having to do new(,src) every time.
Thanks Albro1 (btw, if you saw that first post I deleted...I mistook you for someone else xD)
You're welcome. Please vote up my response to help others!