The 2017 Drug Update

Official server feature documentation can be found here

Moderators: Junior Developers, Lead Admins, Developers

The 2017 Drug Update

Postby otter on Sun Dec 25, 2016 1:00 am

2017 DRUG UPDATE DEVELOPMENT BLOG

07 APRIL 2017 — PUSHING THE BOAT OUT:
One aspect of development that is often overlooked is the constant flow of ideas. What may have seemed like a fantastic implementation at one point in time can eventually be overshadowed by a bigger and better concept. The complication here is that such thoughts can come at any time during the development process and you then have a dilemma on your hands... do I stick with what I've got? Or do I go back and revisit certain things with the end of goal of making something more substantial. Sometimes the cons outweigh the pros; making changes further down the line of development can have unintended consequences: existing features may break, a domino effect may require you to then make significant changes to other parts of the script, you may lose your train of thought... the list goes on and on. Making the right choice isn't always easy, but you've got to look at the bigger picture. "Will this greatly impact the feature that's being developed? Would taking a step back be fruitful, or a waste of time?" Many questions, many clouded answers. In this case, the answer was yes, and no - it would not be a waste of time.

Several members of the community have expressed issues about the arbitrary nature of drugs on the server. You have a finite number of "slots" which are occupied by a drug. There's no real script support for the role-play surrounding these "slots" which is, in some respects, a double edged sword. Sure, it might leave things to a player's imagination a bit more - but it doesn't do much for immersion. Let's say you have access to a production facility; you obtain X amount of Y in bulk and then from there, you just give smaller amounts of Y to whoever else. You could role-play the initial batch of Y being in say, brick form, and then transferring it into smaller baggies - but that's about it. The effect of that role-play doesn't really have much of a presence anywhere else and isn't entirely relevant further down the line. Another qualm players have had is how common measurements such as eightballs, teeners, dime bags, dubs (the list goes on, I'm no drug aficionado) are difficult to emulate in your everyday role-play.

At first, I didn't do much to address these issues - in part due to the lack of tangible ideas. That said, after going through masses of PMs and combing through the various threads scattered around the forums, I went back to the drawing board and came back with this.

In an effort to do away with an arbitrary slot based system, I've added some more substance to the front and back-end of the script to make everything a little more interactive. There are three categories of storage solutions: small, medium and large. The maximum capacity of each category varies from drug to drug, meaning that where five grams of one drug may exceed the maximum capacity of a given storage solution, another will not. For the purpose of showcasing the feature in this thread, the following will be used:

STORAGE_TYPE_SMALL:
  • Small Zip-Loc Bag

STORAGE_TYPE_MEDIUM:
  • Cling Film Ball (I realised after taking the screenshots that this is an entirely British term, do not fear - it's just a placeholder for the purpose of testing!!!)

STORAGE_TYPE_LARGE:
  • Brick
Each drug will have a default storage option which, in the case of a base drug, will be the form it comes in from a drug production facility. For this example, we'll use Cocaine as our drug of choice. When obtained through a production facility, the drug will, by default, come in the form a 1KG (1,000 grams) brick. That's not very practical, of course, and for distribution purposes you'd probably want to break it down into smaller measurements. An eight-ball (3.5 grams) is fairly standard so, for the sake of an example, we'll assume you want to make one out of that brick. The next step would be to transfer that amount into say, a cling film plastic / saran wrap ball. Sure, you could probably pack a bit more into that ball, but that'll do. Out of the blue, you get a hot-call and one of your customers wants just a gram. What a schmuck! But hey, you've still got that brick - why not throw a bit into a baggie you have laying around? It's almost too easy.

Image

The final list of storage options is far from complete and I'm certainly going to incorporate more categories to allow for further diversity, but right now - the priority is ensuring this new implementation is consistent throughout the script (plants, mixes, dropped drug packages etc.) and fine-tuning where needed. Once this is done, the focus will be shifted to incorporating effects and addressing addictions (which, by the way - will probably be tailored towards promoting actual role-play as opposed to frustrating repercussions).

If you have any feedback regarding these changes, throw it at me! I look forward to showing you what else I've got brewing.

23 MARCH 2017 — WEEK ??? (THIS IS STILL A THING):
My commitment to releasing these updates has admittedly (and quite blatantly) faltered and the idea of consistently posting them here crashed and burned in a spectacular fashion. I've been pretty quiet about the progress made on this project for a while and I wouldn't say I'm proud of that. There are a few reasons for this - namely my commitments outside of LS:RP and some unexpected hitches along the way. To expand on the latter, I'll offer a bit of transparency. As time has gone on and the scale of this project has grown, some issues with the overall development process came to light. I'm not going to go in to specifics as that's not entirely relevant, but it was difficult for me to gain any real momentum which meant my ability to effectively commit my time to this update was not at its peak. This wasn't really anyone's fault in particular, but fortunately - Mmartin & I have been able to come together and come up with a resolution that will prevent this from happening in the future and, above all else, will allow me to go full steam ahead with this update.

That's not to say no progress has been made since my last post here! I can safely say that the vast majority of this update's features have been introduced to the script and I'm at a point where the brunt of the remaining workload is tackling intricacies such as the effects drugs will have on players and the way in which addictions will be dealt with. The first stages of testing will soon be commencing and the features that are already complete will be fine-tuned based on the feedback obtained along the way. I've put together a small group of staff members who, starting from Monday (27 March 2017), will be working with me daily to ensure that any issues can be stubbed at the roots and to help pull together ideas that will further benefit the project. This group will expand over the next fortnight and more players with extensive knowledge of drug role play (perhaps both inside the staff team and out) will be invited to participate. Stay tuned for more information on that front.

On the subject of drug effects - I want to get some community feedback. What do you guys want to see? What are your biggest qualms with the current system in place? Aside from the obvious health-point bonus, what other effects do you think would make drugs a bit more interesting?

To make my stance on the matter clear, I'll go ahead and say that I'm really not a fan of effects that pull the focus away from role-play and make drugs a commodity that is only attractive for their out-of-character perks. There is a necessity for some out-of-character perks because, as much as I'd like it if everyone dabbled with drugs for the sole purpose of role-play, there is a significant portion of the player-base that need some sort of incentive (which is understandable). What do you feel I can do to find the right balance without making drug consumption to annoying or, on the flip side, overpowered?

This area of the project is about to become my primary focus so I welcome all suggestions with open arms. Should you have any queries or concerns, feel free to drop me a private message. I'm not going to speculate about potential release dates yet and any rumors that go around will bare no credibility. When I have a proper estimate? You'll know about it, but for the time being? I don't. That said, there are lots of other things I want to work on throughout 2017 and freeing up the second quarter is something I intend on doing - so there's that!

Until next time.

09 JANUARY 2017 — WEEK TWO:
Have, again, had a lot of commitments outside of LS:RP this week which has hindered progress. I've spent the vast majority of the time I've had available compiling ideas and reviewing community feedback thus far. My schedule has been freed up now which means this time next week, I'll have some new stuff to show you. Stay tuned.

02 JANUARY 2017 — WEEK ONE:
If you're hoping for some tremendously exciting news in this week's entry then I'm afraid I'm going to disappoint. The holidays have been very hectic for me out-of-game and finding the time to get any real work done has proven to be a challenge. Where possible, I've been going through and refactoring odd bits of code & in general, making attempts to tidy it all up. Aside from that and some other boring back-end changes, I've made significant progress on the prescription medication front. There really isn't all that much to it to be honest! Similar to how a player in a production facility can view a list of obtainable drugs through /druglist, the Los Santos Fire Department can get a list of prescription medication through /prescribe. The next step's going to be integrating support for a prescription database accessible through Mmartin's new MDC system.

January is going to be work, work, work for me; I'll be sinking more hours than ever into this project and will be working towards the end goal of getting this project rolled out in the first quarter of 2017. I've said it before and I'll say it again: I am not yet setting a definitive release date. I understand that this update is highly sought after by a significant portion of the community, but getting this right is my priority - not meeting an arbitrary deadline. The feedback I've received in the general discussion thread is all being taken into account as the development progresses. I've read every single response the thread has received and will continue to do so. Every PM that has been sent to me has been replied to (I think!!!) and that too will continue to be the case. All I can say is: keep it coming. This may be the most significant project I've ever worked on to date, but it's not about me - it's about meeting the demands of the community. Feedback in any capacity is appreciated and will be taken seriously.

I hope you all had a good Christmas and I wish you a happy new year. Stay tuned for more news pertinent to this update.

25 DECEMBER 2016 — DAY ZERO:
Hey,

So, without beating around the bush - let's dive straight in. It's important that this thread is seen for what it really is: the announcement of an upcoming feature. I'm not putting a definitive release date on this yet as I don't want the pressure of conforming to a specific deadline when I'm dealing with such a vital element of the script. I do however ask that you have faith in me and believe me when I say that I am pouring several hours of my time into this project on a day-to-day basis. This thread will ultimately be serving as a weekly development blog for the final stages of the project, and I guarantee that you - the community - will be involved every step of the way moving forward. Your feedback is imperative to ensuring that the end product is something people are happy with and whilst it's impossible to please everyone, I'm going to try my hardest to get as close to doing so as I can.

This feature has been in development for the past four months and planning has been going on for significantly longer. A lot of the ideas conveyed in this thread have come from the many insightful minds in the Faction Management Public group; without their knowledge & experience, I would probably still be at the drawing board right now. Whilst there are far too many names for me to mention and it would be unfair for me to single too many people out, I would like to give special thanks to KaylaSpace: she was of immense help during the planning stage and fought tooth and nail for this area of the script to get the attention it deserves.

Yes, there are still a few things that I haven't touched upon here. Addictions, the general effects that drugs will have on a player and several other consequential factors of using a drug in-game are still being worked out along with other minor aspects of the script. Trying to find the right balance between delegating responsibility to the player to adequately role-play the consequences of drug use and forcing effects through the script is very, very difficult. There are so many variables to take into account and it's going to take time for things to fall into place. On the other hand, I've kept this project under wraps for a while now and I wouldn't be posting this up if I didn't feel I was reaching the final stages of development. All in all, I ask that you're patient. That may be a lot to ask for from some people and that's OK, I understand.

If you have feedback, please send me a forum PM (I promise you'll get a reply). I'm adding a new layer of transparency to this whole process and you'll have to work with me for it to flow smoothly.
User avatar
otter
Developer
 
Posts: 5433
Joined: Thu Oct 25, 2012 5:53 pm

Re: The 2017 Drug Update

Postby otter on Sun Dec 25, 2016 1:00 am

THIS FEATURE IS NOT YET COMPLETE.

THIS IS AN INITIAL FEATURE ANNOUNCEMENT. ANYTHING WITHIN THIS THREAD IS SUBJECT TO CHANGE AT ANY GIVEN TIME. WHATEVER IS HERE NOW MAY NOT BE A FULL REPRESENTATION OF THE END PRODUCT.


Script name: The 2017 Drug Update
Script author: otter
Current Development Phase: PRE-TESTING


Introduction | Foundations | Production Facilities | Ingredients | Mixing Drugs | Drug Packages | Cutting Drugs | Plant | Addressing Drug Stockpiles | Miscellaneous


Introduction:
The drug system is arguably one of the most dated scripts on the server. It was initially developed in 2011 and since then, there really hasn't been that much change to it. Over the years, the suggestions board has been filled to the brim with all sorts of ideas to improve the existing system and to help carry the role-play surrounding drugs to a new level. Up until now, that section has been heavily neglected and an abundance of great suggestions have been left to rot away. For a script that plays such a significant part in the server's economy and day-to-day role-play, this cannot be the case; it is for that reason that I have made it my mission to give it the love and attention that it needs.

There was always the option of building upon the existing system and - in some respects - it may have been a little easier to do so. It wouldn't, however, have addressed many of the broader issues that exist in the current iteration of the drug system and it would be impossible to adequately fulfil the demands of the community. That's why I started from scratch, and that's why I'm able to unveil to you today a completely new update that caters to the needs of those who actively role-play around narcotics.

Some of the most significant changes are not cosmetic: going into this, I had the ambition to create a strong back-end that could power the system in ways that could otherwise never be imagined. Similar to how I envisioned that the detective update I released earlier on this year would have some longevity to it, one of my primary goals with this update was to make the need for another update ever again in the future to be eliminated. I wanted this script to be one for the ages and one that no matter how many years go by, would continue to positively support any and all role-play surrounding drugs on the server.

Image

The Foundations:
Some of you may not have understood what I meant when I said how I wanted to build a powerful back-end for the script. Doing so was vital to ensuring that - as mentioned previously - drug role-play can continue to be supported in all sorts of ways in the future. The most fundamental aspect of this was to devise a way in which drugs can be introduced to the server without the need for adjustments to the script. I'm not referring to drug factories and the general production of narcotics that are distributed to other players - I'm going back a step to the the most basic level.

There have been countless suggestions over the years to implement new drugs and adjust the properties of the existing ones. Hard-coding drugs into the script means that the code itself needs to be altered to actually achieve the aforementioned feats. There are pros and cons to this, but ultimately, I've opted for an option that I believe will support everything far better. With this revision, I will be able to add new drugs to the script and modify all* aspects of the existing drugs in-game without any changes to the actual code being necessary. What this means is that new drugs can be implemented on the fly and tweaks can be made seamlessly: the server does not even need to restart.

When created through the administration menu, drugs are put into one of two categories — recreational or pharmaceutical; said drug is then assigned a create type which dictates how it's introduced to the server:

  • Base Drugs — obtained through a drug production facility. Equivalent to the way in which the vast majority of drugs are currently introduced to the server.
  • Home Produced Drugs — can be mixed by any player on the server if they have the right ingredients as long as they are in a property.
  • Prescribed Drugs — only applicable to pharmaceutical drugs. Can also be obtained the a drug production facility to allow an alternative means of obtaining it.
A significant aspect of the existing implementation is the way in which players can obtain a health point bonus. The health point bonus you get from taking a drug is entirely dependent on its strength. Through the drug administration menu, two values are assigned to each tier of strength (1-20, 21-50, 51-75, 79-90, 91-99, 100). The bonus is then randomised based on the two values assigned (e.g. a random number between X and X). Whilst I plan on looking at additional consequences for taking drugs in-game, the health point bonus is obviously something that makes narcotics enticing for your average Joe and, like it or not, contributes to the activity of the market in a fairly significant way.

Production Facilities:
Production Facilities (formerly referred to as drug factories) have had a complete overhaul. Whilst I will not go into too much detail as this only really applies to those in official factions, I will touch base on it a little to give everyone an idea of what's to come. Cosmetically, not all that much has been changed. The system now runs through dialogs and is a little more intuitive to the user. Arguably the most significant change is that - through the drug administration menu - the production facilities in which a drug can be produced are able to be specified; this will have an effect on the way in which drugs are brought into the server and will open up more doors for role-play. The black market dependency has completely eradicated and ingredients can now be obtained through production facilities in the same way that drugs can.

Commands:

  • N/A

Ingredients:
Ingredients can, just like drugs, be created & amended in game. They have several uses, the most significant of which include the mixing of drugs and ability to be used as cutting agents. Ingredients in general are going to play a much bigger part with this new revision. Ingredients will primarily be obtained from production facilities though I will look at the feasibility of making will be made available in twenty four seven stores.

Commands:

  • /myingr - used to view (or show other players) the ingredients you have on your character.
  • /giveingr - used to pass ingredients from one player to another.
  • /dropingr - used to drop an ingredient that is on your character (permanent).

Mixing Drugs:
In its current iteration - the system has a base formula for a drug which can be tweaked to get the perfect, one hundred strength, outcome. Whilst the concept is pretty neat, it's something that I felt was detrimental to the overall integrity of the role-play. Once peopled figured out the perfect formula for their drug, they'd tell their friends who would then tell their friends etc. etc. and then before you know it, the market is completely flooded with the purist form of mixed drugs. Drug strength is going to play such an important part in the market that allowing any player on the server to consistently produce flawless mixes would undermine the core values that the market will be built upon. In response to this, I've decided that a new approach is necessary.

Image

The recipe for home produced drugs will be available to players through /mixdrug. A list of mixable drugs and the ingredients required will be presented to the player and from there, a mix can be initiated. Drugs can only be mixed inside properties that have the right equipment (objects in /furniture) or businesses. The time it takes for a mix to complete can be set through the drug administration menu. Whilst I'm generally against the idea of relying on randomly generated numbers in games, I felt that (at least for the time being) it'd be the best route to go down. I want the focal point of drug mixes to be the role-play surrounding it regardless.

Image

Commands:

  • /mixdrug - displays a menu used to initialise a drug mix.
  • /mixinfo - used to see details pertaining to the mix in progress.
  • /collectmix - used to collect a completed mix once the process is complete.
  • /cancelmix - used to cancel a mix in progress.

Drug Packages:
A problem that players have always had with the existing drug system is how dependent their role-play is on the concept of stash cars. This has hindered the ability for those pushing drugs on corners to do so realistically and has proven, on several occasions, to be very problematic. Additionally, the way in which narcotics can be exchanged has also been very limited as player-on-player interaction has always been a necessity and it's never been possible to properly role-play a dead drop or any other realistic alternative to doing a hand-to-hand exchange. In response to this and as per popular demand, the ability to leave drug packages on the ground in the form of an object has been added in this update with a limit of three drug packages per player.

There are several objects that a player can use including (but not limited to): burger boxes, milk cartons, cups, boxes, wrapped packages and more. Players can adjust these objects however they wish, however, the usage of all commands pertaining to this aspect of the script is heavily logged and monitored even when administrators aren't in-game meaning that any attempted abuse will be picked up on and anyone that does so will face a year long server ban, no questions asked. Some may argue that this sort of thing opens doors for potential abuse, however, I feel that penalising the entire community on the basis that some bad apples may try to exploit systems that are in place to support role-play is the wrong road to go down.

Image

Commands:

  • /leavedrug - used to leave a drug package on the ground in the form of an object.
  • /checkpackage - used to check the contents of a package left on the ground.
  • /adjustdrug - used to adjust the position of your drug package.
  • /grabdrugs - used to pick up a drug package left on the ground.

Cutting Drugs:
In the real world, making use of cutting agents to dilute a drug is very common. This is an aspect of drug role-play that has never been supported by the script up until now and was added with the intention of allowing for a more realistic drug economy to prosper. Whilst the implementation may seem a little complex to some, it's actually very simple. When cutting a drug, you must specify a drug ratio and an ingredient ratio: the ratio you choose is what will dictate the quality and quantity of the drug that comes out at the end. If you dilute a drug with a higher ingredient ratio, you will end up with a higher quantity of the drug in question, but at the expense of strength (quality). If you have a higher drug ratio, you will retain more strength - however, the overall yield in terms of quantity will not be as significant.

Whilst the exact technicalities are not entirely relevant to your average Joe, I will touch base on what goes on behind the scenes. The overall yield in terms of quantity is decided by the following formula: (drug_amount) / 100) * ratio_ingr. For instance, if I have a ten grams of a drug and I dilute it with an ingredient ratio of 60:40, I would obtain an additional six grams (6 /100 = 0.01 -> 0.01 * 60 = 6). The strength of the drug is decided by the following formula: (drug_strength) / 100) * ratio_drug. If I were to cut that same ten grams with an ingredient ratio of 90:10 and a starting strength of 80 - I would obtain an additional nine grams but would end up with a strength of nine (85 / 100 = 0.85 -> 0.85 * 10 = 8.5 -> 8.5 ≈ 9). When you're working with lower quantities, the cutting of the drugs may not be so relevant, but further up the food chain when you have say, two hundred grams of a drug - you're looking at some pretty significant gains.

You can repeatedly cut a drug to cater to your needs, but if you do so to the point that its strength reaches zero it will be rendered useless and you will lose the drug - so you've got to make sure you're tactful.

Commands:

  • /cutdrug - used to cut a drug with a cutting agent.

Plants:
Up until now, there have been several limitations in place pertaining to the way in which players can grow cannabis; this has - in the sense that the role-play has been exclusive to a small minority of the player-base - been very damaging to the overall role-play surrounding the growth process. Any player that possesses the right ingredient will be able to plant seeds as long as it's done in a property / business.

When planting an ingredient, you have the choice to plant it individually or in a batch of nine. Whilst this may sound fairly random, I wanted the actual growth to reflect the objects being used reasonably well. For each plant that you harvest, you will receive five grams of the drug. At one time, a player may not have more than three plants growing. The time it takes for the plant to grow will, in the same way that it does in the context of mixing drugs, be adjusted on a drug-to-drug basis through the drug administration menu.

Commands:

  • /plantingr - used to plant an ingredient.
  • /plantinfo - used to see details pertaining to the growth in progress.
  • /harvestplant - used to harvest a plant once it has grown.
  • /cancelmix - used to cancel a growth that is in progress.
  • /adjustplant - used to adjust the position of your plant(s).
Image
(click)

ImageAddressing Drug Stockpiles:
Drug stockpiles are something that have plagued the server for as long as I can remember. Some players are able to obtain drugs in bulk through a medium that allows them to make a one time payment and then never really have to worry about buying again. What this results in is a stagnant and inactive market which decreases in value as time goes by which, ultimately, makes it difficult for the the role-play surrounding drugs to really prosper. I put a lot of thought into deciding how to combat this issue and eventually settled on the idea of a drug's strength dictating its life-time. What this means is that with every day that goes by, the strength of a drug will decay by a given value; when a drug's strength reaches zero, it is rendered useless and is completely removed from the server. This may seem like an extreme step for me to take, however - after consulting with several very experienced members of the community - I decided that it'd be the best road to go down. In practice, this will have several implications.

At the top of the chain, those who posses drug production facilities will have a choice to make: do they sell their product at its raw strength of 100 or do they maximise profits by cutting it down to allow for a higher yield? How will their choice then influence the attitudes of their buyers? Will their choice be influenced by the needs of their clients? Will their buyers then choose to cut the drug down further or will they continue to push it down the chain at its raw strength? When it hits the dealer on the street corner, will they try and stretch their profits further? All of a sudden, the market has a completely new depth to it and there is a whole new world of possibilities.

Miscellaneous:
Aside from large overhauls being made to existing systems within the drug script, there are several minor changes that will effect the way in which you interact with drugs on a day-to-day basis. Now that the strength of a drug plays such an important factor, I had to think about the way in which it'll effect dealings with other players. When showing another player your drugs through /mydrugs, its strength will not be displayed; the only person that can see a drug's strength is the person that's holding it. This means that establishing a level of trust with your dealer is going to be far more important as it'll be very easy for you to be given a shoddy batch. Aside from that, there are several other minor additions that have been made such as the implementation of a /mergedrug command and the ability to alter the form of a drug through /crushdrug. I want to make this new drug script as user friendly as I possibly can, so keep your eyes peels for any amendments made to this section.

Commands:

  • /mydrugs - used to view (or show other players) the drugs you have on your character.
  • /givedrug - used to pass drugs from one player to another.
  • /crushdrug - used to crush a drug from a pill form into a powder.
  • /dropdrug - used to drop a drug that is on your character (permanent).
  • /mergedrug - used to merge two packages containing the same drug into one: overall strength of the new package is averaged out.

THIS IS AN INITIAL FEATURE ANNOUNCEMENT. ANYTHING WITHIN THIS THREAD IS SUBJECT TO CHANGE AT ANY GIVEN TIME. WHATEVER IS HERE NOW MAY NOT BE A FULL REPRESENTATION OF THE END PRODUCT.

THIS FEATURE IS NOT YET COMPLETE.
User avatar
otter
Developer
 
Posts: 5433
Joined: Thu Oct 25, 2012 5:53 pm

Re: The 2017 Drug Update

Postby otter on Mon Jan 02, 2017 9:47 pm

[BLOG ENTRY] 02 JANUARY 2017 — WEEK ONE
User avatar
otter
Developer
 
Posts: 5433
Joined: Thu Oct 25, 2012 5:53 pm

Re: The 2017 Drug Update

Postby otter on Thu Mar 23, 2017 3:52 pm

[BLOG ENTRY] 23 MARCH 2017 — WEEK ??? (THIS IS STILL A THING)
User avatar
otter
Developer
 
Posts: 5433
Joined: Thu Oct 25, 2012 5:53 pm

Re: The 2017 Drug Update

Postby otter on Fri Apr 07, 2017 10:48 pm

[BLOG ENTRY] 07 APRIL 2017 — PUSHING THE BOAT OUT
User avatar
otter
Developer
 
Posts: 5433
Joined: Thu Oct 25, 2012 5:53 pm


Return to Feature documentation

Who is online

Users browsing this forum: No registered users and 1 guest