For the complete documentation index, see llms.txt. This page is also available as Markdown.

Adding medications

Advanced Roleplay Environment supports modular medications. This means you can easily add medications or edit them accordingly.

Adding medications

In order to add a medication we just need to add the medication inside the medications file and configure the properties accordingly.

Adding the medication

Since all medications are saved inside script/entities/medications.lua, we will open this file. This should look like this:

script/entities/medications.lua

Now we will scroll to the bottom and just copy a medication from above and edit it to our needs so it should look like this:

script/entities/medications.lua

Configuring the medication

There are many options available for us to configure the medication perfectly to our needs.

Option
Description
Example

painReduce

This property is a number and contains the value of how much the pain get reduced.

painReduce = 0.3 The pain get reduced by 0.3 * effectRatio per second.

hrIncreaseLow

This property is a table contains a table { minIncrease, maxIncrease } how much the heart rate will increase or decrease if the heart rate is below 55 bpm.

hrIncreaseLow = { -10, 10 } The heart rate will in minimum decrease by 10 or in maximum increase by 10 if the heart rate is below 55 bpm.

hrIncreaseNormal

This property is a table contains a table { minIncrease, maxIncrease } how much the heart rate will increase or decrease if the heart rate is >= 55 bpm and <= 110 bpm.

hrIncreaseNormal = { 5, 20 } The heart rate will in minimum increase by 5 and in maximum by 20 if the heart rate is >= 55 bpm and <= 110 bpm.

hrIncreaseHigh

This property is a table contains a table { minIncrease, maxIncrease } how much the heart rate will increase or decrease if the heart rate is > 110 bpm

hrIncreaseHigh = { 2, 7 } The heart rate will in minimum increase by 2 and in maximum by 7 if the heart rate is above 110 bpm.

timeInSystem (maxTimeInSystem)

This property is a number and contains the value how long a medication is kept in the system before removing it. Also it will be used to calculate the effect ratio. (in seconds)

timeInSystem = 1800 The medication is kept 1800 seconds in system before removing it. Calculation for the effect ratio: effectRatio = min((timeInSystem / timeTillMaxEffect) ^ 2, 1) * (maxTimeInSystem - timeInSystem) / maxTimeInSystem To understand the effect ratio formula we need to define the values where: - timeInSystem is variable and describes the current time in the system in seconds. - timeTillMaxEffect is a constant and describes the time till the effect ratio reaches 1. - maxTimeInSystem is a constant and describes how long the medication will stay in the system until it reaches 0.0 effect ratio at the end. - min(valueA, valueB) will always return the lowest value of both so if valueA is 5 and valueB is 8 it will return 5. In our example it is a calculation and 1 so it will always be less <= 1.

timeTillMaxEffect

This property is a number and contains the value when the max effect ratio is reached. (in seconds)

timeTillMaxEffect = 30 The medication will reach its max effect after 30 seconds so a effect ratio of 1.

maxDose

This property is a number and contains the value after how many medications in system the function onOverDose will be triggered.

maxDose = 5 The property onOverDose will be triggered after 5 times of injection of this medication.

onOverDose

This property is a function and will be triggered if the number of the same medication in the system is >= maxDose

onOverDose = function() print("hello!") end The function will print "hello" after this function has been triggered.

viscosityChange

The viscosity of a fluid is a measure of its resistance to gradual deformation by shear stress or tensile stress. For liquids, it corresponds to the informal concept of "thickness". This value will increase/decrease the viscoty of the blood with the percentage given. Where 100 = max. Using the minus will decrease viscosity.

viscosityChange = -10 The peripheral resistance will reduce by maximum 10 and viscosityChange * effectRatio per second.

Last updated