You probably already know that Space Station 13 has been largely developed by amateurs over the course of a couple of decades.
Here's a little story about how decisions made by folks like us who don't know any better can lead to Fun Consequences down the line. It also highlights some of the impossible to predict edgecases you deal with when working with twenty years worth of interacting systems.
So, to give a player character an ability you have to give them an ability holder that fits. For example, changeling antagonists need a changeling ability holder in order to do all their fun DNA sucking and shapeshifting.
We use the same structure for assigning abilities to administrators and developers, who are assigned the ability to do almost anything, like kick, ban, gib, reduce players to a pile of ash/goo/spiders and so on.
That makes enough sense and works largely the same today as it did way back in the early days (pre-2013) with one major difference.
These days the path for an ability holder might be:
/datum/abilityHolder/admin
But they used to be:
/obj/abilityHolder/admin
What's the difference? Well, a datum is just data whereas an object can be physically present in the gameworld.
At the same time there also used to be a bug where when a player was gibbed, they could drop more than just the usual pile of organs and whatever they were holding. They could also drop anything contained within their character's body. This includes their ability holders. This includes the admin ability holder.
So a nefarious player would:
- Identify an admin or a dev's player character,
- Kill them and explode their corpse, dropping their admin holder,
- Pick it up themselves and be suddenly granted the entire suite of administration tools, up to and including the ability to restart the server at will.
This was patched fairly quick, but for a time you could really Attack and Dethrone God in SS13.
