Drugs drugs drugs drugs drugs drugs (long post)

I mentioned it in an earlier suggestion but I’d like to see the pharmaceuticals standardized and improved.

First off, all the brand name drugs should be standard generic - brand name drugs are actually fairly rare except for more recent ones where their monopoly hasn’t expired yet. There is a difference between brand names, brand drugs, generic names and generic drugs – a brand drug is one made by the original researcher and producer. They have a patent for a certain period before other companies are allowed to produce generic drug equivalents. This is why brand drugs are more expensive; during the patency period they can basically charge whatever they want, and rarely change prices even after the patency period is over.

A brand name is whatever shows up on the bottle, and are used for both brand drugs and generic drugs – for example, Zoloft (a brand name for a brand drug) is sertraline, the original, but might be sold by the company. The Apotex version (a company that only produces generic drugs) might have the brand name Apo-Sertraline, and the generic name sertraline. Generic names are internationally recognized while brand names often change and might be unrecognizable around the world; some drugs are just so well-known that it becomes a household name. Ie. Aspirin is a brand name, the generic name is acetylsalicylic acid, which you’ll see on every bottle. Advil is a brand name, the generic name is ibuprofen. Then you get even more confusion at the same drug with different specific uses-- Advil and Motrin are the exact same thing, but marketed towards different “types” of pain (inflammation vs. muscle pain mostly).

It might be a bit confusing because the some of the generic names are unfamiliar, but so are a lot of things to a lot of people in Cataclysm. Just look at the description and it tells you exactly what it is. Your character in Cataclysm would 90% of the time be picking up a jug, bottle or vial labeled with the GENERIC name, not the brand name.

So anyway, a list of drugs that I’d like to see changed, taken from jsons. Capital letters are brand names:

Ambien: zolpidem
Xanax: alprazolam
Adderall: dextroamphetamine
Thorazine: chlorpromazine
Prozac: fluoxetine

All the rest are already generics.

A second suggestion: drug interactions.

Many drugs interact with not only drugs but also over the counter or unscheduled food/drink. There are different types of interactions possible:

  • Synergistic: Two chemicals combine to have an effect in one or more drugs greater than the sum of the parts. Think of it like 1 + 1 = 3. Biggest examples by Cataclysm standards: Alcohol + benzodiazepines or narcotics (alcohol actually beefs up the effect of MANY drugs) will cause extreme sedative effects on the central nervous system and can cause respiratory paralysis, coma or death.

  • Additive: Two chemicals, while not interacting in a direct way, have a combined effect on the body. 1 + 1 = 2. A stimulant like methamphetamine won’t directly interact with methylphenidate, but take them both and you’ll see a proportionate increase in CNS stimulation. This typically causes fewer harmful side effects than synergistic interactions and can be controlled much easier. Taking both aspirin and ibuprofen will be more effective against pain than either alone but also cause more liver, kidney, and gastro toxicity.

  • Potentiation: Two (or more) drugs interact to form effects that otherwise wouldn’t happen when the drugs are taken individually, usually one of the drugs is inactive and harmless normally. 1 + 0 = 2. Consider it a ‘catalyst’ for side effects- this is one of the most dangerous interactions possible. Grapefruit juice potentiates a lot of drugs, due to it having strong effects on the metabolism of chemicals in the liver. It can have wildly different effects on many drugs, including narcotics, benzos, blood pressure medications, etc.

  • Antagonistic: The effect of one drug cancels out, minimizes, or otherwise reduces the effect of another. 1 + 1 = 0. These are used typically as antidotes in the case of overdose. Example - ethanol antagonizes the effect of methanol poisoning, the drug naloxone is used as an antidote in case of heroin overdose.

The most obvious way to include drug interactions in Cataclysm is to start with these 4 different types and add them to the json entries to link them together-- though having not looked at the drug code myself I’m not even sure how it’s handled. Sight unseen I’m going to assume they’re simply a counter on the player object; for a synergistic effect it’s an easy thing to simply dramatically boost up the level of the drug in the body – leading to very easy accidental overdose, which is exactly what happens in RL. In the json you could include either a type of consumable (the flag) or a specific one-- let’s use alcohol and morphine as an example.

The USE_ACTION of all alcohols is ALCOHOL, so it’s easy to just change morphine rather than all the alcohols. Let’s also add an additive reaction for all other opiates. At the end of the morphine entry you could add:

"interaction_synergistic" : ["ALCOHOL"], "interaction_additive" : ["OPIATE"],

To make it more complex, you could change it to WEAK, STRONG interactions - strong obviously being more dangerous.

One more thing - every drug has a ceiling effect, this is where therapeutic benefits stop and side effects start increasing. Adding side effects to every drug entry would be fairly easy, and have their chance of occuring rise the more you go into overdose, giving people a warning that they’re sucking back far, far too many opiates before their breathing stops, for example. Ideally you would have flags for every drug giving ALL of their effects- opioid analgesia for example - and then compare and contrast the effects when you take them. Taking 2 different types of analgesics would be more effective than taking 2 opioids, because the body can only work with a certain amount in the body at once. Stimulants, taken together, with alcohol, or in large doses, causes heart palpitations (flutter), chest pain, pupil dilation, and other effects and eventually heart attack and/or death. There’s no need to hard code anything but the actual effects, and shift the rest to jsons.

Anyway, just some ideas.

1 Like

i support this

it needs lots of work to standarize, balance, integrate and jsonize this for all drugs, but i do support it… It is realism and it is interesting. All this translates to depth.

Moreover, the player will not know all of this when trying drugs upon himself, but there could be mentions of some interactions in the medical books.

As a project, it could also be broken into small pieces and done over a period if the powers that be are also in support.

Brand name use is usually because:

  1. That’s the common name for the type of the drug in the US, where the majority of players lurk and where the game setting is. They are also often shorter and easier to remember for those not intricately familiar with the medicine. I don’t know about you, but I can remember “Adderall” much better than "dextroamphetamine " (which is only 25% of Adderall anyways, being mixed with 3 other chemicals with equally long or longer names). Sure they may require the player to learn something new, but a significant portion of the playerbase is going to have to learn a new name for that effect anyways, so they might as well be able to learn the smaller one.

  2. Interactions is something that’s easy to add, but extremely difficult to complete. This is because while it’s easy to code a 1+1 interaction, interaction definitions are by nature exponential. If I currently have N drugs defined in the code, and I add 1 more, that adds a potential of 2N more interactions to code as well. If we currently have 30 different medicinal effects, that means there are a total of 30*29 = 870 potential interactions, and to add one more interaction you need to potentially code up to 60 more interactions into the files. Even if we assume that 4/5ths of drugs don’t have any interaction at all, that still means the person who puts the feature in is going to need to code some 174 interactions. It’s just not something that is easy to do and display for modding “well”, and it’s a lot of work for a rather low payoff. (Which is really me saying: “we’ll probably merge it if someone wants to make the large effort required to code it up, but it’s certainly above the ‘do this’ limit on the work/reward ratio for me”.)

  3. This, on the other hand, is relatively easy to do and grants a lot of modding benefits. It’s something we already have a bit of the base in place for and are definitely planning to put into the game, since it’s very closely related to the moddable effects that I’m currently working on, and very near the moddable diseases from comestibles that is already in the game.

  1. Easy enough and realistic to keep the old names, but also use the generic ones in the item’s description (on the bottle usually the generic name / active ingredient is included, besides the brand name)

  2. I agree, problematic to just hard code interactions between all drugs.
    But it can be done within a “drug system” :
    A function that handles all drug effects and interactions:
    Let us standarize most drugs effect by separating them into categories (eg. stimulant). Let us allow drugs to be in more than one category if it is so IRL.
    Then all drugs of the ‘stimulant’ category have the same general effect, while their potency can be jsonized.

So, we can handle interactions by specifying in the json the categories in which a drug acts synergistically, antagonistically, etc. and the effect’s potency
Even better, we can also specify specifically the drug, drug category and type of interaction that a drug has with another drug, making it all easily moddable and tweakable.

We 'd only need to handle the categories effects code wise, and add new categories when needed.

  1. Pretty good idea, and definitely easy to do, I’ll get a github issue up to remind people.

  2. Definitely easier and would probably make something like that feasible to do. Still a fair amount of work, but if someone wants to work on it that would probably be the way to go forwards with the idea.

What is the rationale for the name change? it looks like the primary effect is fewer people recognizing them by name.

Something you’re ignoring is that the effects of all the drugs in the game are highly exaggerated and for the most part far more positive than they should be. Making the names even more precise just exascerbates this disconnect.

Not much feedback on the interactions other than it still sounds complicated.

my rationale is that (1) people non-usa based will also recognize them.
well, tbh we will not mostly, but we might find it fun to look up the names in the wiki and learn something more than what we knew before.

This brings me to (2): It is depth added. Something like the feeling in DF when you are googling to learn what each ore contains when mining.

Besides, i think we agree in not changing the name of the item, only adding the generic name in the drugs description. This is realistic since the generic name is always written in the bottle/instructions.

As for interactions… i’m no pharmacologist, and to do that we’d need a pharmacologist to:
a) categorize all drugs based on what they do.
b) analyze their potency at what they do.
c) specify interactions between drugs and even interaction between drug categories.

You ask me, the game shouldn’t require googling or wiki checks in order to ID items. I have piles of saved pages (there was a time when I did NOT have ready access to the net, and that time may return) of various wikis for games I’ve been interested in.

But in the end, I simply can’t be bothered to play Nethack or DF, both of which I accumulated quite the “manual” on.

Agreed, no problem there.

[quote=“jcd, post:8, topic:7537”]As for interactions… i’m no pharmacologist, and to do that we’d need a pharmacologist to:
a) categorize all drugs based on what they do.
b) analyze their potency at what they do.
c) specify interactions between drugs and even interaction between drug categories.[/quote]
I’m not sure you’re getting me, even if someone handed me such a list, it sounds like something I wouldn’t want to mess with except on the simplest of levels.

The idea of category-based interactions cuts the number of interaction types down enough that I could see how you could potentially build a table that could be easily expanded in the future with further interactions. It would be a fairly large project, but most of it would just be busy-work JSON stuff instead of actual coding work (though that’s assuming you had a list, of course, the building of which is something that people could construct through tools like webmd.com, but would be a large compilation to build). For player display you could probably just pull something similar to tool qualities, where each item would list what drug categories it falls into and which ones you should avoid mixing it with.

It’s something that I could see adding to my list of eventual things too do, but there’s a fair bit of things that I’ve got in front of it.

Well as it just so happens I’m a pharmacy technician, so I’d be happy to standardize drug effects/interactions to make them more realistic. I just don’t know jack about the hardcoding aspects or even how the drug system is currently handled. But I can definitely mock up some pseudocode if I knew someone was going to work on it.

I’ll putter around some jsons and see what I can come up with.

We wouldn’t really need any real coding from you, even at the JSON level, but what would be extremely helpful would be a basic list of descriptive categories (i.e. blood thinner, etc.) with a list of interactions between categories and a drug category breakdown with each one listed as strong or weak (for interactive purposes) in a given category. Use as many categories as you feel you need, but the fewer categories you can fit things into the easier the coding side of the work becomes.


Category A Category B Category C drug A (strong) drug F (weak) ... drug B (strong) drug H (strong) ... drug C (weak) drug Y (weak) ... . . . . . .
Category A + C interact to cause heavy bleeding
Category B + C cancel each other’s effects

With a list like that the problem becomes, as I said earlier, mostly simply busywork, and while I can’t do it right now since I’m reworking effects ATM (moddable effects, yay!) it would lower the work/reward ratio enough I could probably get to it pretty quickly.

Mmmm… how important is it to have accurate reactions? Because if it’s not that important, it might be easier to assign maybe 2 - 3 ‘react’ flags that are compared somehow to the drugs already ‘in situ’ to produce a reaction on consumption. Maybe combine the flags with a potency indicator (for each flag?/for the complete drug?). This way, we can balance the existing drugs with flags that simulate somewhat proper behavior. New drugs would have to fit into that matrix somehow.

Alternatively, drugs could be composed of chemicals and it is the chemicals that have the flags (and a potency indicator).

As for the assignment of flags for new/improved drugs, I would recommend a spreadsheet app with solver functionality.