Arma 3
30 ratings
Misery
By TenuredCLOUD and 1 collaborators
This is a guide going over some great details on Scenario development utilizing Misery mod.
3
   
Award
Favorite
Favorited
Unfavorite
Starting out
Notice: Pre-Misery 2.0 Guide

Please be aware that this guide will become obsolete upon the release of Misery 2.0. The 2.0 build is a complete refactor with entirely new scenario designs. As such, this guide will be removed from Steam once 2.0 is launched.

Thank you for your understanding and support!


In order for Misery to initialize properly you will need to place the following modules:

  • Survival (Main framework)

  • Data

  • Fear Framework

  • HUD options

Each of these modules settings must be defined to prevent certain RPT errors that will continually spam if these modules aren't placed and have their settings defined by a scenario designer. If you aren't wanting any of the systems to be used simply disable them or "un-tick" their options...

Before enabling every option you see for each module please read the tool tips provided for each setting! Failing to do so can easily produce errors, Misery is compatible with different mods when being used properly!

If you end up changing data points for Misery persistence values (ex. switching from ACE persistence to Ravage persistence) you WILL need to wipe your character data! You can easily do so by enabling the player data actions. Failing to do so will consistently provide errors to your HUD and game!

Important Notice:

When engaging with Misery in any single-player scenarios, please be aware that the loading times may be slightly longer than anticipated. This is a result of Misery’s extensive use of global variables for numerous data types, which also provides streamlined control of Misery’s critical systems. Future updates may include modifications to the code structures, potentially shifting these data types to a different data structure for enhanced optimization.
EDIT: This issue has been mitigated, Misery now utilizes namespace values rather than pure Global variable data


It is also crucial to note that Misery’s essential loop systems will not pause during single-player scenarios, even when the game is paused. This characteristic is a product of the unique code structure in which Misery was developed. Please keep this in mind while playing.
Advanced refuel framework
  • You will need to Check the advanced refuel option in the Survival (Main framework) module


  • This ensures that Ravage equipment for refueling gets switched to Misery gear as well if picked up and fully enables the system

  • As of Misery Framework V1.1.7.3 You no longer need to sync Vehicles to a Module, and the old Refuel sync module has been removed from the mod regardless, so the old refueling framework setup will not work anyways...

  • Instead simply do the following in your initserver.sqf file:

//Format for parsing data to the framework: // Vehicle classname // | Fuel type (0 = Diesel, 1 = Petrol, 2 = Jetfuel) // | | Distance away From vehicle to be able to refuel in meters // | | | How much fuel is added on Jerry Can use // | | | | //["Veh_class",0,0,0], //Code example that is placed inside initserver.sqf: (Same For SP & MP) waitUntil {sleep 1; isnil "Misery_Veh_Type"}; if (isnil "Misery_Veh_Type") then { Misery_Veh_Type = [ ["RHS_A10",2,15,0.1], ["RHS_AH1Z_wd",2,15,0.2], ["rhs_uaz_open_MSV_01",1,6,0.25] //<-- Make sure last input class doesn't have ending comma! ]; publicVariable "Misery_Veh_Type"; //<-- Parse data across network };

If you are utilizing the Advanced Refueling Framework, you will need to place down a Jet fuel refueling station in the editor! It is the only location where the player can collect Jet fuel!




Ambient Animals module
  • Ambient animals module:


    The ambient animals module is a setup module that will spawn ambient animals across the map of your scenario.

    Currently Misery only supports 3 animal types Sheep, Goat, and Chickens.

    This module's input settings are pretty self explanatory so this guide won't cover it too much...
Custom action module
  • Custom action module:


    The Custom action module defines what type of custom action's you'd like to display in the inventory GUI.

  • Inventory GUI:


    Your custom action input will be added to this GUI ^* (when inventory is open)
Custom item usage module
  • Custom item usage module:


  • The Custom item usage module enables the scenario designer to easily manipulate item usage for click-able items within player's inventories...

  • This module will override any item's action when you input it into this module, this is because Misery checks if a custom action is available for every item once they are clicked on in the inventory...

  • You can place as many of these modules as you wish into the editor
Data module
  • Data module:


  • The Data module is a very powerful tool for scenario developers, it enables many unique and very useful quick saving actions for designers.

  • Data module options:


    If you have further questions regarding this module please ask in the community Discord server, most options are explained decently well within the module, but there's always possibilities for some confusion...



Script examples:
Using HALs store funds as an example, but any variable can be used

The custom saving scripts can be run async with the other persistence settings in the module, no need to put everything in these scripts, only client data you want Misery to handle that isn't a vanilla Misery variable / data value.

Misery is very flexible with saving custom data values to clients, however you shouldn't hammer the system with code that is heavy, running heavy function checks or other code other than setting variables or retrieving them usually results in massive lag spikes every save cycle etc... You should use these scripts to primarily set and retrieve variables. The Key-handle custom script option is much more flexible than the Save / Load scripts due to it only running on a client when they trigger the key-handle (ESC, etc...) this can be used to run more complex code, but still care and testing should be done after inputting values to these settings.


Save script (example)
//This will save for the client on EACH save cycle waitUntil {!isNull player}; //HALS money _moneys = (player getVariable "HALs_money_funds"); profileNamespace setVariable ["HALs_money_funds", _moneys]; //Put other variables as needed...

Load script (example)
//This will run ONCE on client reload waitUntil {!isNull player}; //HALs funds if (isNil {profileNamespace getVariable "HALs_money_funds"}) then { profileNamespace setVariable ["HALs_money_funds", 0]; }; _profile = (profileNamespace getVariable "HALs_money_funds"); player setVariable ["HALs_money_funds", _profile]; //Put other variables as needed...

Key-handle script (example)
Using GRAD client data saving function PER Keypress handle
//GRAD Player save: [player,true] remoteExecCall ["grad_persistence_fnc_savePlayer"]; //Put other functions, etc...

Vanilla Misery functions for player data management:
//Save: [player] call Misery_fnc_MiserySerializeplayer; //Load: [player] call Misery_fnc_MiseryDeserializeplayer; //Delete: [player] call Misery_fnc_DeleteData;
Dynamic economy module
  • Dynamic economy module:


  • The Dynamic economy module allows scenario designers to change the sell rates of items on the fly with specific inputs to a timed change + sell rate values ( 0 - 1, a value of 1 = 100% sell rate)



  • This module requires the use of HallyG's HALs store modification. It can easily be found on Github.

  • Bohemia interactive forums HALs store thread:
    HALs store[forums.bohemia.net]
Fear Framework module
  • Fear Framework module:


  • The Fear framework module enables a unique psychological system towards players, once they are in a fear inducing event. Each event can be chosen to be true or false depending on the scenario designers layout or what they want...



  • Keep in mind you will also need to enable the Fear framework START option in the Survival (Main framework) module!


  • Under the Fear framework enable option in the Survival (main framework) module you will also find the fear reduction input setting (this setting controls how much fear will be removed when the player is no longer in a fear induced environment)


    This module is entirely compatible with DSA - Drongo's spooks and anomalies, as well as Halek's Remnant mod, and of course Ravage zombies, it even allows specific tuning of night time fear. Care should be taken when setting unique values to each fear event, and you should thoroughly test your setting prior to a release for a scenario
Gear equip module
  • Gear equip module:


  • The Gear equip / Gear equip (sync module) allows the scenario designer to automatically equip gear to units that are synced to it.



  • Once the modules arrays are filled out with gear you'd like to possibly see on an entity you simply just sync the entities you want to the module: (you can sync an unlimited amount of units to this module)


    Multiple Gear equip modules can be placed around the editor, each runs it's own separate code on it's synced entities, Keep in mind the array inputs are randomized to the synced entities equipment.
HUD options module
  • HUD options module:


  • The HUD options module is a very unique module, it allows scenario devs to decide what type of HUD layout they want, Numeric or bar styled HUD, as well as for what mods they want it to run for (Misery, Ravage, ACE)

  • It also enables or disables the customized PDA / and Geiger displays as well as the unique gasmask filter degradation display.



  • If you are enabling the gasmask cartridge display or the Geiger and PDA display's you will also need to enable these features START options in the Survival (Main framework) options as well




  • As of the Misery Framework Version 1.0.5.0 the module defined Bar or Integer style options are no longer supported... The settings have been reworked to adjust on the fly by clients. (See below for CBA settings example)



  • The CBA settings for the HUD client settings ONLY displays WHILE in game since it is client defined.

  • To change the color of a specific HUD type you will need to utilize HTML color codes, you can find some here:

    HTML color codes[html-color.codes]
Terrain De-Clutter system


The Terrain De-Clutter System is a powerful tool that actively scans the map and identifies specific object models such as trash, craters, and wrecks. Once identified, these objects are hidden from view, creating a cleaner and less cluttered map environment.

In addition to hiding unwanted objects, the system also disables the simulation of these objects. This means that these objects will not interact with the game environment or the player, further reducing unnecessary clutter, and CPU load.

One of the significant benefits of this system is the potential increase in framerate. By reducing the number of active objects and simulations, the system can help to improve the game’s performance. This feature is especially useful on maps densely populated with trash objects.

The Terrain De-Clutter System is particularly beneficial for terrains like Chernarus Redux, which are known for their high density of trash objects. By decluttering these terrains, players can enjoy a smoother and more immersive gaming experience.

This system is run on the server, and the option is synced to all clients so the effects are global.
Kill zone create module
  • Kill zone creation module:


  • The Kill zone creation module creates immediate death locations across the scenario, these modules are extremely useful for restricting access to certain locations for not only players but also AI.



    Multiple of these modules can be placed throughout the editor
Medical Gear Random module
  • Medical gear random (sync module):


  • The Medical gear random module allows random medical gear to be generated and then equipped to a synced entities inventory


    (you can sync an unlimited amount of units to this module)


    Multiple of these modules can be placed throughout the editor
PDA notification create module
  • PDA notification create module:


  • The PDA notification creation module allows scenario devs to create PDA alert zones within the map, once a player enters the activation radius of a PDA alert zone they will be notified of whichever Notification the scenario developer decides to utilize.


    Multiple of these modules can be placed throughout the editor
Psyfield modules
  • Psyfield creation module:


  • The Psyfield creation module will create a Psyfield area - Psyfields are very dangerous areas that can cause severe brain trauma if the player stays inside of one too long...


    Multiple of these modules can be placed throughout the editor

  • Psyfield protection module:


  • The Psyfield protection module is an array input / building module where the Scenario designer can input an array of headgear that they wish to be required to be used so players can actively travel within Psyfield zones


    Only ONE Psyfield protection module can be placed within the editor
Ravage Loot Defines module
  • Ravage loot defines module:


  • The Ravage loot defines module enables the scenario designer a very complex set of arrays that when populated will override the Ravage loot pool arrays from search-able loot to bandit / equipment loot


    There are multiple ways to operate this module:

  • You can populate the Ravage gear pool module with weapons, items that you'd like to see in the searchable loot pools and then place this module afterwards and only fill in what you're wanting to override.

  • Or You can simply place a blank Ravage gear pool module and then populate this module to your needs, care should be taken when populating this module as it can easily break the loot tables!!! It is recommended to test after adjusting this!

    Take note:

  • Follow each name of the arrays, for example the "weapon" input should only contain weapon classed items, the "magazine" input should only contain magazines... Etc... You WILL need to override some of these arrays if you're wanting to remove any Ravage loot from the default arrays...

  • Adding items into the "Ravage rare items" array can make items exceedingly rare almost to the point where they will seemingly not spawn at all.

    Only ONE of these modules can be placed within the editor, and the Ravage gear pool module + the Ravage Loot system modules are required to utilize this module!
Survival Main framework module
  • Survival (Main framework) module:


  • The Survival (Main framework) module is the MAIN module used by Misery mod, it is a required module that needs to be placed within the editor.



  • This module controls a lot of Misery mod, and actually is run on start of all scenario's utilizing Misery mod.

  • Most settings in this module are pretty self explanatory, however, designers also have the option to completely re-build the defined items code structure.


    Once you enter your define script file destination you need to follow the code structure inside your define items script:(only needed if defined items script has an input in the module)

    //Format: // className // | hunger increase / decrease // | | thirst increase / decrease // | | | add to debuffs // | | | | remove from debuffs // | | | | | script on use // | | | | | | KEEP or remove on use ("KEEP" / "") // | | | | | | | sound played on use (Must be defined) // | | | | | | | | check for gasmask (BOOL) // | | | | | | | | | check for canopener (BOOL) // | | | | | | | | | | delay (numeric value) // | | | | | | | | | | | rads remove // | | | | | | | | | | | | rads add // | | | | | | | | | | | | | fever remove // | | | | | | | | | | | | | | cold remove // | | | | | | | | | | | | | | | //["",0,0,[],[],"","","",false,false,0,0,0,0,0]; private _items=[ ["classname1",0,0,[],[],"scriptfile","KEEP","",false,false,0,0,0,0,0], ["classname2",0,0,[],[],"scriptfile","KEEP","",false,false,0,0,0,0,0] ]; MiserySurvivalItemEffects=[]+_items; {MiserySurvivalItems pushBackUnique(toUpper(_x select 0));}forEach _items; MiserySurvivalItems
Temperature module
  • Temperature module:


  • The Temperature module defines the temperatures that will be active during different seasonal changes / months throughout a year in-game


    Only ONE Temperature module can be placed within the editor
HallyG's Store and Misery Mod Compatibility
HallyG's store is a third-party mod that is fully compatible with Misery mod. However, it's important to note that it isn't affiliated with Misery mod, nor is it baked into the mod.

Accessing HallyG's Store

You can access HallyG's store through the following link: HALs store[github.com]

Setting Up Your Scenario

If you're interested in setting up your scenario to be similar to 'The Burning Rain' or 'Not Alone', you can use the provided config. Please note that you will need the RHS + ACE3 mods if you want to utilize the entire store, or you can edit them out.

TBR & NA Misery Shop (uses RHS compats)[github.com]
Item Classnames
  • Item classnames for developers:

Misery_Pickaxe Misery_Pickaxebroken Misery_fishingpole Misery_fishingspool Misery_personalgeiger Misery_personalgeigernobattery Misery_personalgeigerOFF Misery_Headlamp_NB Misery_antibiotic Misery_antibioticpill Misery_antiparasitic Misery_antiparasiticpill Misery_Clozapinebox Misery_ClozapinePill Misery_Clozapine Misery_caffetin Misery_caffetincaps Misery_caffeine Misery_charcoaltabs Misery_pain Misery_painpill Misery_cocaine Misery_Thrombomodulin Misery_ThrombomodulinStimpack Misery_Cenestin Misery_Cenestinbottle Misery_randommedication Misery_fishhook Misery_worms Misery_lithiumbattery Misery_Bearenergy Misery_leadcontaineropen Misery_leadcontainerclosed Misery_artifact01 Misery_artifact02 Misery_artifact03 Misery_artifact04 Misery_artifact05 Misery_artifact06 Misery_artifact07 Misery_artifact08 Misery_artifact09 Misery_artifact10 Misery_Heatpack Misery_Coldpack Misery_WaterJerryF Misery_WaterJerryFD Misery_WaterJerryE Misery_castironpot Misery_cookedfish Misery_rawfish_1 Misery_vodkafull Misery_vodka34 Misery_vodka12 Misery_vodka14 Misery_guitar Misery_coffeemug Misery_coffeebrewed Misery_coffeegrounds Misery_wolfbeer Misery_gasmaskempty Misery_gascartridge Misery_18vbat Misery_Ducttape Misery_Pscrewdriver Misery_Fscrewdriver Misery_pliers Misery_camonet Misery_9vbat Misery_CoppWire Misery_Rope Misery_Needlethread Misery_circuitboard Misery_DeadGeiger Misery_DragonVase Misery_Matryoshka Misery_OldWatch Misery_Phone Misery_Photos Misery_ToySoldier Misery_VintageShipBottle Misery_zombiehead Misery_zombiehand Misery_Zombieeye Misery_Zombiefoot Misery_Zombiebrain Misery_Zombieskin Misery_BONEsaw Misery_GuttingKnife Misery_Woodaxe Misery_Sledghammer Misery_lighter Misery_tinder Misery_CBRNparts Misery_Chainsaw Misery_Chainsawempty Misery_sawfuel Misery_woodplank Misery_woodnail Misery_firewood Misery_woodenlog Misery_boxnails Misery_craftinghammer Misery_Anvilhammer Misery_electrichandsaw Misery_electrichandsawnobattery Misery_wrench Misery_glucose Misery_electrolyte Misery_PDA Misery_PDA_off Misery_PDA_NB Misery_cigarettepack Misery_cigar Misery_EmptyJet Misery_EmptyDiesel Misery_EmptyPetrol Misery_JetFuelF Misery_DieselF Misery_PetrolF Misery_AutoBatt Misery_Stonechunk Misery_Ironingot Misery_Ironore Misery_Ironpiece Misery_Goldingot Misery_Goldore Misery_Goldpiece Misery_Coalore Misery_Malachite Misery_Ruby Misery_Sapphire Misery_Amethyst Misery_Diamond Misery_Emerald Misery_RFHighNobattery Misery_RFHighrangeOFF Misery_RFHighrangeON Misery_woodensticks Misery_sleeppack Misery_sleeppill
Misery variables
Misery Variables for developers:

MiseryHunger MiseryThirst MiserySleepiness MiseryPoison MiseryInfection MiseryExposure Miserycartridge MiseryFear

How to work with Misery variables, examples:

MiseryHunger is what we're gonna work with for examples, you can use any other Misery variable...

//Addition / subtraction: private _MHunger = player getVariable "MiseryHunger" or private _MHunger = player getVariable ["MiseryHunger",100]; // With default value player setVariable ["MiseryHunger", (_MHunger - 5)]; player setVariable ["MiseryHunger", (_MHunger + 5)]; //Randomization: player setVariable ["MiseryHunger", (_MHunger + (random 20))]; player setVariable ["MiseryHunger", (_MHunger - (random 20))]; //Resetting variables: player setVariable ["MiseryHunger", 100]; player setVariable ["MiseryHunger", 0];

Some variables are added differently to your debuffs, for those you will need to do the following:

Utilizing the MiseryDebuffs variable

private _MDebuffs = player getVariable "MiseryDebuffs"; _MDebuffs pushBackUnique "PARASITES"; player setVariable ["MiseryDebuffs", _MDebuffs];

Debuffs variable can contain ANY unique variable - this is extremely useful for developers if they're wanting to add more ailments etc... to Misery.

To remove Debuffs you simply do the following:

private _MDebuffs = player getVariable "MiseryDebuffs"; if (_MDebuffs find "PARASITES" != -1) then {_MDebuffs deleteAt (_MDebuffs find "PARASITES"); player setVariable ["MiseryDebuffs", _MDebuffs];}; //If it's active, we remove it
Misery Functions
Itemswapping (automated)
//params: [_unit, _olditem, _newitem] call Misery_fnc_ItemSwap; //Usage example: [player, "rvg_notepad", "acex_intelitems_notepad"] call Misery_fnc_ItemSwap; //Already built for ACE3 compat for rvg_notepads

WeaponSwapping (automated)
//params: [_unit, _oldWeapon, _newWeapon] call Misery_fnc_WeapSwap; //Usage example: [player, "Misery_Woodaxe", "WBK_axe"] call Misery_fnc_WeapSwap; //Already built for IMS compat

Both will automatically drop item / weapon on the ground if no room in inventory etc... It automates processing so if you want quick switching of items these make life easier...

For a scenario probably would need to just pop your customized functions inside an InventoryOpened EH and go from there.
Misery Compatibility for Other mods
List of Compatible mods:
  • ACE3 - Features fully functional ACE medical persistence

  • Nerdmod's iBuild - Features unique actions, and crafting for base building.

  • Ravage - Misery mod was built primarily with Ravage in mind, a lot of functionality is aimed at making Ravage designed scenarios feature a much more unique and rich environment

  • HALs store - Features a dedicated module for a dynamically adjusted economy system

  • TTS_Emissions (TheTimidShade’s Emission storms) - Features unique alert system for his emission storms

  • Halek's Remnant mod - Multiple features aimed towards the use of Phantoms

  • DSA - Drongo's Spooks & Anomalies - Misery Fear framework is compatible with DSA

  • GRAD Persistence - Misery auto-parses data to GRAD’s blacklist. Regenerative data structures are auto-blacklisted from save / reload processing, reducing errors

  • WebKnight's Improved Melee System - Misery features multiple built in compats for IMS Melee

  • Vandeansons Apocalypse - As of Misery Survival framework 1.1.6.+ VA Should be compatible with Misery

  • Antistasi & Misery Integration:
    If you are constructing a new Antistasi scenario from the 3DEN editor, you should be able to place Misery's modules on the map.

    Misery should function with Antistasi. However, you may need to adjust some settings to ensure compatibility. This could involve mixing and matching data tables so that Misery's data integrates smoothly with Antistasi.

    It is recommended to test the integration in Single Player (SP) mode within the editor. In previous tests, this setup has proven to work.

    You may need to modify the loot tables and arsenals to ensure they align with the integrated scenario. This step may require some trial and error to achieve the desired balance.

    Please note that this is a general overview of integrating Antistasi to play with Misery. You may need to adjust these steps based on your specific scenario and requirements.

Misery is highly flexible and offers unique variables that designers can use when working with other mod systems, or even checking whether certain mods are active.

Here's a useful compiled list for scenario designers to utilize with some examples you can freely use when designing scenarios.


//Most of these are Global variables, to make life easier when running conditional checks MiseryMP //Checks if current scenario is multiplayer MiseryRavage //Checks if Ravage Mod is actively loaded MiseryVA //Checks if Vandeanson's apocalypse is actively loaded MiseryACE //Checks if ACE mod is loaded (this is good for running ACE medical code) MiseryUsingiBuild //Checks if iBuild is actively loaded MiseryRemnant //Checks if Haleks Remnant mod is actively loaded MiseryDSA //Checks if Drongo's spooks and anomalies is actively loaded MiseryWBKIMS //Checks if Webknight's Improved Melee System is Actively loaded //To check variable condition: if ((!isNil "MiseryACE") && MiseryACE) then {}; //Will run code if ACE is loaded if ((!isNil "MiseryACE") && !MiseryACE) then {}; //Will run code is ACE is NOT loaded //The isNil check, runs a check to make sure the gvar exists prior to checking it's value //Examples are similar for the rest //Some useful code for Designers: //This will automatically populate the "MiseryWeapons" & "MiseryWeaponsM" loot arrays if IMS is loaded & you are utilizing the Misery groundloot framework: ///WBKIMS compat (adds melee weapons to weapon loot lists) if ((!isNil "MiseryWBKIMS") && MiseryWBKIMS) then { waitUntil {sleep 1; (!isNil "MiseryWeapons" && !isNil "MiseryWeaponsM")}; _weaponClasses = ["Pipe_aluminium", "WBK_axe", "Bat_Clear", "Bat_Spike", "WBK_BrassKnuckles", "WBK_brush_axe", "WBK_craftedAxe", "Crowbar", "CrudeAxe", "FireAxe", "WBK_survival_weapon_2", "WBK_survival_weapon_1", "IceAxe", "WBK_Katana", "Weap_melee_knife", "Knife_kukri", "Knife_m3", "WBK_pipeStyledSword", "Police_Bat", "Rod", "Sashka_Russian", "Shovel_Russian", "Shovel_Russian_Rotated", "Axe", "WBK_SmallHammer", "WBK_ww1_Club", "UNSC_Knife", "UNSC_Knife_reversed", "WBK_survival_weapon_4", "WBK_survival_weapon_4_r", "WBK_survival_weapon_3", "WBK_survival_weapon_3_r"]; { _class = _x; if (!isNil "_class") then { if (!(MiseryWeapons find _class >= 0)) then { MiseryWeapons pushBack _class; }; if (!(MiseryWeaponsM find _class >= 0)) then { MiseryWeaponsM pushBack _class; }; }; } forEach _weaponClasses; publicVariable "MiseryWeapons"; publicVariable "MiseryWeaponsM"; }; //This can be run in MP or SP it doesn't matter, just make sure in MP you run the above code in initserver.sqf ^**

I hope these examples are of great help!

Cheers
Ailments / HUD Notifications


Certain ailments are only visible when certain parameters are met by the player:

  • Temperature drop - The players temperature will drop after the player has reached an exposure temperature of less than 20C or 68F (the exposure value is then dynamically calculated based on the players exposure temperature)
    - (Keep in mind the Temperature value is ONLY displayed if the player possesses a PDA, if they do not possess one then only fever / cold notifiers will be displayed)

  • Temperature increase - The players exposure level will increase if the players exposure temperature reaches a value of 33C or 91.4F (the exposure value is again dynamically calculated based on players exposure temperature) - Players exposure level will also increase if they are sick with an ailment (Parasites or bacterial infection)

  • Parasites - Parasites are a tricky one, they do not go away on their own and do not have a "healing" value that the designer can punch in for them to heal away, instead parasites require medical treatment, anti parasite pills will remove them, or if the player has exceeded a certain radiation value there is a chance for them to go away due to radiation killing them. (parasites as stated above can cause a fever to the player)

  • Bacterial infection - infection is treated by antibiotic pills, unlike parasites a bacterial infection can heal / go away on it's own, but depending on the scenario designer the rate at which it will go away is purely dependent on the infection healing value. (infection, like parasites can cause a fever to the player)

  • Parasites and bacterial infections also double your hunger and thirst decrease rates, this is due to the player being sick.

  • Poison - although rare to get poison heals on it's own, via the healing value input by scenario designers, and has a chance to kill the player if it exceeds a certain value (does not cause fever)

  • Designers do have the ability to create their own debuffs / ailments to players, should this be the case their debuffs may cause different effects than vanilla Misery debuffs
Scenario links:
The Burning Rain Single Player version

Not Alone Multiplayer version
GRAD PERSISTENCE
GRAD Persistence is not affiliated with Misery in any way, but it is HIGHLY recommended for those utilizing Misery, and wanting a Persistent world for servers... Thier source Github page can be found here:
GRAD Persistence[github.com]

iBuild with Misery mod / Multiplayer persistence:
If you want iBuild to be persistent with Misery mod you will need these variables for GRAD persistence's custom vars saving:

class NMIB_KeypadCreateKey { varName = "NMIB_KeypadCreateKey"; varNamespace = "static"; public = 1; }; class NMIB_TargetDoor { varName = "NMIB_TargetDoor"; varNamespace = "static"; public = 1; }; class NMIB_DoorKey { varName = "NMIB_DoorKey"; varNamespace = "static"; public = 1; }; class iBuildObjectType { varName = "iBuildObjectType"; varNamespace = "static"; public = 1; }; class NMIB_ItemsList { varName = "NMIB_ItemsList"; varNamespace = "player"; public = 1; }; class NMIB_Workbench { varName = "NMIB_Workbench"; varNamespace = "static"; public = 1; }; class NMIB_Plot_Workbench { varName = "NMIB_Plot_Workbench"; varNamespace = "container"; public = 1; }; class NMIB_Plot { varName = "NMIB_Plot"; varNamespace = "static"; public = 1; }; class NMIB_PlotSize { varName = "NMIB_PlotSize"; varNamespace = "static"; public = 1; }; class PLOT_SIZE { varName = "PLOT_SIZE"; varNamespace = "static"; public = 1; }; class PLOT_OBJ { varName = "PLOT_OBJ"; varNamespace = "static"; public = 1; }; class PLOT_ID { varName = "PLOT_ID"; varNamespace = "static"; public = 1; }; class DisplayPlotBounds { varName = "DisplayPlotBounds"; varNamespace = "player"; public = 1; }; class NMIB_ClassName { varName = "NMIB_ClassName"; varNamespace = "static"; public = 1; };

Not Alone and The Burning Rain Scenarios:
Not Alone

  • The ultimate end user (the host) also has easy access to this Database and can at anytime perform a server wipe with the following snippet inputted into the Debug console and using "Server exec" command:

  • ["Not Alone"] call grad_persistence_fnc_clearMissionData;

    Also while admin using the A3 chat you can use GRAD's extensions (CBA) and call a forced save via #grad (you will see the save mission command appear) see image


  • With GRAD Persistency players can expect roughly 95% of all server data to be stored safely in a database that GRAD stores.

  • Player data: (temperature, hunger, thirst, gear, etc...) is all stored LOCALLY to the clients computer, this prevents any issues that can arise from a server wipe and gives players 100% control over their own characters data. Thanks to utilizing Ravage's MP saver and a mixed of multiple playernamespace syntax code.

  • The other 5% of things that will NOT be saved are things like certain ACE actions (ACE_gunbags, etc...) it's a very minimal list of things that are basically "not needed"

  • Along with that minimal list of things NOT saved; ACE cargo is one of them. This is due to the work needed to get it saving properly, I have to attach variables to vehicles all over the map, and then reload those vars on scenario reload which is a bit tedious, this may never be fixed. Until then extra care should be taken when transporting stuff within ACE cargo

  • It should also be noted that GRAD's Fortification framework DOES save! This is an entirely different ACE action / framework than ACE cargo; and it even has a GRAD saving setting!

  • 'The Burning Rain' is not effected by these flaws, unless you do a scenario restart and expect GRAD persistence to reload items in your vehicles ACE cargo menu, then they will NOT reload, however, normal reloading of a continued save should NOT be affected.

    Some important things to note:

  • Server owners using a Hosting service (payed hosting) should look into "persistent" like structure for their server this enables GRAD to consistently save even if no players are online and keep the Database up to date

  • If hosting via TADST you SHOULD UTILIZE any "persistent battlefield" or "auto init" options, persistent battlefield settings seem to have an effect on whether or not certain variables save or not... It also ensures the Database is kept up to date if no-one is online. (previously thought to have caused issues)

  • If you are HOSTING meaning running a server off YOUR Computer, for friends, etc... You should make it a very strong habit to manually save after everyone logs off; This will properly ensure that the Database is fully up to date before the last player logs out.

--------------------------------------------------------------------------------------------------------------------------------

The Burning Rain

  • Since version 4.1.2 The Burning rain has had GRAD persistency implemented into the scenario file. The reason for doing such is to allow players the freedom to freely restart the scenario when performance get's a little bit cruddy, or if there was a recent update to the scenario file and they'd like to play the latest build...

    Some things to note with GRAD being implemented:

  • (optional via radio menu) All things referring to the world state will save every 20 minutes

  • Players have the choice to either utilize this system or completely void it from their game

  • If you want to just save when you leave the scenario, simply use the radio menu to utilize a forced save (explained below)

  • Money (if stored in the bank), placed fortifications, vehicles, and stored items in containers will ALL carry over to your new session if the player has conducted GRAD saves or 20 minute auto saves are enabled and have recently saved

    Things that will NOT SAVE include:

  • Fortifications (NOT PLACED), Money (ON YOUR CHARACTER), And Character progress, this is why before you restart to another session you should stash your belongings and store your money in the BANK!

  • Remember, you can always do a manual save if you go into your radio menu and utilize the "Save world state" option!



  • If you'd like to wipe your SP Database you can also do so within your radio menu!

Any questions can be directed to me via PM or General chat channels in the Wasteland walkers Discord (Link to join at bottom of guide)

Setting up Server via TADST
First you'll need to grab TADST from this link:

https://forums.bohemia.net/forums/topic/101123-tophes-arma-dedicated-server-tool-tadst/

#1

#2

Set the Message of the Day to your own desire. (it's displayed upon joining the lobby)

#3

For custom difficulty see #5, and make sure your mission is SELECTED, (just click on it and then select the level of difficulty you want)

#4

Your mods are in Arma !Workshop folder, just as displayed on the picture. Load the mods you want and then tick their boxes.

#5

If you want custom difficulty make sure your AI LEVEL PRESET IS SET TO 3 (Which is Custom), tick the boxes you want, set the AI skill/precision and you're all set.

#6

Set your distance to your wish. I'd recommend 1500 or 2250 (if you prefer flying a lot).

#7

Additional parameters.
Credits / HUGE Thanks
    Misery Mod credits:
  • Drongo for massively supporting development with code systems from DYEL + DMP systems, they were used to build some of Misery's frameworks (Inventory GUI, module design, etc...)

  • Haleks For tons of help with some iterations of mod code as well as allowing me to expand on multiple Ravage systems

  • Nomisum For help with Audio termination code concepts, etc... As well as some code structural changes

  • Salbei For the extra help with getting most the CBA code structures up and running for multiple redundant loops, and overall code performance optimizations

  • George Floros For his Temperature system, as well as his ambient audio system

  • The OST / Sound work is done by ReasonUnknown - Audio design | Art design | Discord ADMIN

  • Some sound samples used are taken directly from GSC Gameworlds LEGENDARY S.T.A.L.K.E.R series. Permission to use their sound samples was requested before use. GSC Gameworld [www.gsc-game.com]

  • Ambient Animals / Boars mod implementation done by EO Permission to utilize his mod was requested and granted before use

  • Gorkas and gear mod by EO

  • Slay no More for help with certain code concepts - object orientations, etc...

    Scenario Credits: (The Burning rain + Not Alone)

  • NerdMod for the Legendary iBuild modification (optional compatible mod)

  • HallyG for the HALs store system

  • RHS team for AFRF and USAF and GREF assets

  • ACE team for the ACE mod, ACE medical, and all it's features / functions / framework

  • GRAD team for GRAD Fortifications, as well as other systems

  • Seth Duda for reppelling, Advanced towing, and Slingloading

  • Advanced Arma 3 chat by ConnorAU (Not alone)

  • TheTimidShade for Emissions / blowouts events

  • EO for ambient wildlife systems

    Sourced Model | Asset Credits

  • Some Model Assets have been directly ported from Sketchfab [sketchfab.com]

    - Attribution page can be found inside:
    - /Misery_items/data/models/other/LICENSE - Directory

    These models are licensed under the (CC : BY) License | Creative Commons Attribution |
    CC : BY 4.0 [creativecommons.org]
Join the Community Discord if you have questions feel free to post them!
Wasteland Walkers [discord.gg]

If you like our content, Please leave us a thumbs up!