ID:1984332
 
(See the best response by Lummox JR.)
Is it currently possible to create new elements that extend other byondclass elements?

I'm trying to extend the "input" element by copy/pasting everything inside it but it looks like some functionality is handled internally.

If it's not possible to mess with the input element in this way that's ok too, I'm just curious if there's a built-in way to extend classes or if that's not possible.
Ok, so it's possible to define the same class twice. If you define a new "input" class in your own project it'll override BYOND's defaults.

Ideally I don't want to do this, as any changes to the defaults won't propagate to my project by default, so the question is still outstanding. But if anyone else has a similar issue know that overriding the same class works.
Best response
In theory you should be able to override a class by adding a script that gets called later (a control's init might be good). Roughly it'd look something like this:

var classDefaults = byond.skin.getClass('input');
byond.extend(classDefaults.fn, myObject.fn);
byond.extend(classDefaults.winsetfn, myObject.winsetfn);
byond.extend(classDefaults, myObject.procs);

That being said, I'm not actually sure this would do anything for existing objects. Maybe I should ponder a way to make it easier to override a class.