LightoftheWorld added a new file:
QuotePort of "Hall of Fame Improvements" by Utjan. See original mod description: Hall of Fame Improvements
THANK YOU Utjan FOR ORIGINALLY CREATING AND ALLOWING ME TO UPDATE THIS MOD!
LightoftheWorld added a new file:
QuotePort of "Hall of Fame Improvements" by Utjan. See original mod description: Hall of Fame Improvements
THANK YOU Utjan FOR ORIGINALLY CREATING AND ALLOWING ME TO UPDATE THIS MOD!
LightoftheWorld added a new version:
QuoteThis is an incredibly small QOL update for quest creators. You do not need this version unless you are using this mod to create quests and want the single thing it adds.
-Added "QuestName" as a field for the .json files (It isn't used by anything, it's merely there for ease of looking at larger files)
LightoftheWorld added a new version:
QuoteWe skipped 1.1.1 for some reason. Oh well.
-Possibly fixed some issues with the plugin, especially related to the hideout
LightoftheWorld added a new version:
QuoteDisplay MoreThis mod is officially completed in my eyes. I will still maintain it, make some new conditions here and there, fix bugs, but as far as massive changes go, this is it. I want to give a massive thanks to:
Cj -Original creator of this mod, and put up with me as I worked on it, as well as assisting me on rare occasion. This mod would not even be here if he did not allow me to maintain. Thank you, CJ.
DrakiaXYZ, Apex Predator (Jehree), AcidPhantasm -All three of them helped me time and time again as I suffered through learning server modding, learning about BSG's... interesting quest code. I truly do not think this mod would be in this state (at least this soon) if even one of you weren't there for me. Thank you Drakia, Jehree, and Acid!
----------------------------------------------------------------------------------------------
-Added "Multiple Choice Quests". You may now create quests with any number of conditions that each start any amount of quests when you complete them, creating true branching paths. See the "Quests with multiple choices" tab for more information.
LightoftheWorld added a new version:
QuotePenultimate update that I have planned for QuestsExtended. That does NOT mean I am just dropping QE off a cliff after the next massive update, it simply means that my vision for this mod will be "complete" and update will become smaller and less frequent.
-Added 'CompleteOptionals' condition (see the "Quests with optional objectives" tab). This means that, in short, you can create quests in which the player only has to complete a certain number of conditions on that quest, instead of needing to complete ALL conditions on that task.
The above is a standalone feature, but is also a framework for the "last" update, which is to add multiple choice quests. I do not know how long this will take to implement, I have some framework stuff already.
LightoftheWorld added a new version:
QuoteDisplay MoreAdded the following quest conditions:
DestroyEnemyBodyParts
KillsWhileADS
KillsWhileCrouched
KillsWhileProne
KillsWhileMounted
KillsWhileSilent
KillsWhileBlindFiring
MountedKillsWithLMG
DestroyLegsWithSMG
RevolverKillsWithoutADS
LightoftheWorld added a new version:
QuoteOne fix and one addition:
-Fixed "DamageToArmour" incorrectly calculating the amount of damage dealt. It now properly detects how much damage was dealt to the armour itself, aka durability lost.
-Added "DamageToArmourWithShotguns" as a quest condition
LightoftheWorld added a new file:
QuoteDisplay MoreTHIS MOD DOES NOTHING BY ITSELF AND THERE ARE CURRENTLY NO TRADERS THAT USE THIS. YOU DO NOT NEED THIS MOD UNLESS YOU ARE DEVELOPING QUESTS WITH QE.
Quests Extended is a client mod, originally authored by CJ, that expands the list of conditions that can be used within quests, with the goal of allowing for more unique / interesting quest designs. There are currently 32 additional conditions, including things like activating power switches, restoring health, and searching containers.
Please install this mod before installing a trader that utilizes this mod.
I will create a proper wiki on GitHub eventually, but for now, here's a speedrun of the absolute basics:
When creating a quest. create a CounterCreator condition that looks something like the following (expand image):
hub.sp-tarkov.com/attachment/10378/
What's most important is that the condition itself is impossible to complete; in this case, you are required to kill a pmc from 5555 meters away. This prevents accidental progress on quests. The bottom 'value' just under the 'type' is important, however, as that will determine how many times your custom condition needs to be met. For example, if you want the player to heal 300 health, set that value to 300.
Keep the id that's highlighted in mind when we go to the next step. The id in that spot (and only that spot, of the three ids that exist per counter creator) is important.
Create a new .json file and place it in ../BepInEx/plugins/QuestsExtended/Quests. If this new json is anywhere else, it will not be registered. Within this .json, you want something akin to this for each quest (expand image):
hub.sp-tarkov.com/attachment/10380/
The id outside the brackets and the id next to "QuestId" should be the same, and are the id of the quest itself. For each CounterCreator task you have in your quest, create the condition like you see in the image. Remember that highlighted id I mentioned earlier? Place it in the "ConditionId" spot. Check the "Conditions List" tab to see a full list of all custom conditions currently in the mod. The "Locations" can be multiple locations; if you want to have a quest that tracks on Interchange and Customs, but nowhere else, that will work.
Certain quest conditions have additional features. For example, most of the health-related quests can utilize "IncludeBodyParts" (See image below)
hub.sp-tarkov.com/attachment/10381/
When you are creating a release of your mod, I highly recommend you pre-include the .json in its correct path in your download, as that will minimize work on the end user and should prevent complications if the end user downloads your mod first and this one second.
The following is a list of conditions currently in a mod. Some extra comments might be on conditions if they need more explaining. They are separated into "General", "Combat", and "Medical" for sorting purposes, but implementing any of them is the exact same: Simply copy the Exact Spelling And Capitalization into the "ConditionType".
General:
EncumberedTimeInSeconds //If the weight indicator in the inventory is yellow or orange, this will increase.
OverEncumberedTimeInSeconds //If the weight indicator in the inventory is red, this will increase.
MoveDistance //None of the "MoveDistance" tasks are mutually exclusive. If the player is moving quietly while crouched, all three of the conditions will increase
MoveDistanceWhileCrouched
MoveDistanceWhileProne
MoveDistanceWhileSilent //'Moving Silently' means the player is moving slow enough to gain CovertMovement experience. Roughly speaking, if the sound icon in the bottom left is in the left third of the bar, this should increase.
SearchContainer
LootItem
ActivatePowerSwitch
CompleteWorkout//WILL BE ADDED IN 2.0.3
CompleteOptionals //See the dedicated "Quests with optional tasks" tab
Combat:
DamageWithAny
DamageWithAR
DamageWithDMR
DamageWithGL
DamageWithLMG
DamageWithMelee
DamageWithPistols
DamageWithRevolvers
DamageWithShotguns
DamageWithSMG
DamageWithSnipers
DamageWithThrowables
DamageToArmour //This tracks the amount of durability lost on the enemy armour.
DestroyEnemyBodyParts //Blacking any body part, including the head or thorax.
KillsWhileADS
KillsWhileCrouched
KillsWhileProne
KillsWhileMounted
KillsWhileSilent //See comment on "MoveDistanceWhileSilent"
KillsWhileBlindFiring
MountedKillsWithLMG
DestroyLegsWithSMG
RevolverKillsWithoutADS //AKA hipfire kills with Revolvers
DamageToArmourWithShotguns
TotalShotDistanceWithSnipers //Every time damage with a sniper rifle is dealt, the distance between the player and the target will be added to this condition. If I hit one bot at 30m and a second at 50m, this condition will be at 80/x. If I then hit someone at 65 m next raid, this task will be at 145/x.
Medical:
FixLightBleed
FixHeavyBleed
FixAnyBleed
FixFracture
HealthLoss
HealthGain
DestroyBodyPart //This means the PLAYER gets a blacked limb, this is not a "destroy limbs on the enemy". That is in Combat
RestoreBodyPart //Fun fact: A 'UseItem' task set to trigger on the use of either surgical kit will accomplish the same thing.
1.7.5 introduces the "CompleteOptionals" condition, which allows you to create a list of 'optional' conditions under one main condition and have the player complete X amount of the 'optional's. To create an optional task , you simply add the id of the parent condition to the "parentId" spot when creating the 'optional' condition (this is a vanilla feature in Tarkov). The optional tasks may be vanilla conditions or QE conditions, both work. When the player completes an optional objective, only the quest that the completed optional objective is in will increase. In the future, I might add a "CompleteAnyOptionals", but for now it is only per-quest.
While I have tested this condition a fair amount, it is still experimental. Use with caution.
Create an impossible "AvailableForStart" task (similar to creating an impossible "AvailableForFinish" condition). I recommend a simple "level 99" condition:
hub.sp-tarkov.com/attachment/10419/
Within your custom conditions json, you will need to add some things (click to enlarge):
hub.sp-tarkov.com/attachment/10484/
You will notice that this quest has an extra line defined BEFORE the "condition:[]": "IsMultipleChoiceStarter": true. You only need this line if the quest is actually an MCS, it's assumed false for other quests. Additionally, *most* conditions have an additional thing: "QuestsToStart": [""]. You made add one or more QUEST Ids to this list, and those quests will automatically be started as soon as the quest is finished (happens before the quest is technically turned in, btw). You will notice that the "CompleteOptionals" itself doesn't have a QuestsToStart; this is because that condition will always be completed, so any ids you might put there will always be triggered (so if you want a certain quest after this one no matter what, have it unlock normally upon quest completion.) You need to place every condition in a quest that is marked as "IsMultipleChoiceStarter" into this .json. If a specific condition does not start a task, leave QuestsToStart empty for that condition.
You will additionally notice that there is an "EmptyWithQuestStarter" condition type. Use "EmptyWithQuestStarter" if the task is a vanilla condition, and not a QE condition. The reason you need to include the condition in the json is so that your multiple choice quest will actually work.
LightoftheWorld added a new version:
QuoteDisplay MoreA few significant changes in this version based off feedback. Please read carefully so as not to be confused:
1: Your character's Attention, Perception, and Search skills now affect the identification in various ways:
-Attention lowers the base time it takes for identification to be completed (0.7 - (Attention / 100), so a level 30 attention skill sets the base timer to 0.4 seconds)
-Perception lowers the distance penalty (bots that are far away take more time to identify, by default each meter adds roughly .015 seconds. A higher Perception skill lowers this factor)
-Search increases the max range of the identifier (100 + (Search *2), so at level 30 search the range is set to 160 meters)
-At max attention, identification within 15 meters is instantaneous.
-At max perception, the penalty for distance is halved on top of the level bonuses (Long distance is basically ignored at this point).
-At max search, the range is multiplied by 1.5 (making max range 304 meters at level 51, which is elite. Thank you BSG for making the level caps 51.)
2: To accompany these changes, the base ("level 0") times have generally been increased. Base time is now .7 seconds instead of .5, though distance is slightly less taxing. However...
2.1: Within 15 meters, identification time is halved
3: Refined the Raycast and Layermasking. While still not perfect, identification should generally be more reliable. (Currently as well as previously, the ray is based off the center of your screen. Due to how Tarkov simulates weapon movement, the exact middle of your sight is rarely the exact middle of your screen. Generally speaking, in my limited testing, this isn't that big of a deal... just know that if you can only see a tiny bit of an enemy or if you're being shot, identification will probably be difficult.)
Please provide ideas or changes for the next update! This is a fun mod for me, I enjoy working on it
LightoftheWorld added a new file:
QuoteExtremely lightweight mod that checks if a bot is friendly or hostile. The identification process takes a short amount of time, and takes longer if the bot is far away. Once a bot is identified, it will remain identified for roughly a minute; lose it for too long, and you'll have to re-identify.
Due to the jank of how Tarkov builds its levels, you might be able to identify bots though certain small structures, details, etc. that would theoretically block your LOS. This was preferable to the identifier not working in places with a perfectly clear LOS due to a horribly constructed LowPolyCollider.
Example video:
LightoftheWorld added a new file:
QuoteDisplay MoreThis mod allows you to add customs sounds, voicelines, etc. to trader interactions, including:
-Buying an item
-Selling an item
-Accepting a quest
-Completing (turning in) a quest
This mod is intended to be utilized alongside custom traders, though it functions as a standalone.
USERS:
Simply download this mod, extract into your root Tarkov folder, and then follow the instructions given by the mod you are combining this with for implementing their voicelines (ideally, you would be extracting into the root folder or into the BepInEx->plugins folder). There is a config file located in the LightsVoiceActing folder within plugins that allows you to disable the quest sounds and / or transaction sounds individually.
MODDERS:
Adding voicelines, sounds, or whatever you want is incredibly easy! Here is all you need to do on your end:
Step 1:
Create a .wav file with whatever voice or sound you wish. It has to be a .wav
Step 2:
If you are creating a QUEST sound file: Begin the filename with that quest's id and place it in LightsVoiceActing->SoundFiles->QuestVoicelines
If you are creating a TRANSACTION sound file: Begin the filename with the trader's id and place it in LightsVoiceActing->SoundFiles->BuySellVoicelines
Step 3:
Place an underscore _ after the id, and add the following suffix based on when the sound is meant to play:
PURCHASE FROM TRADER: BuyVoice# (Adjust the number as needed) Example: 54cb50c76803fa8b248b4571_BuyVoice1.wav
SELLING TO TRADER: SellVoice# (Adjust the number as needed) Example: 5a7c2eca46aef81a7ca2145d_SellVoice3.wav
ACCEPT QUEST: AcceptVoice Example: 675f8d2a30cca3c591eb2374_AcceptVoice.wav
COMPLETE QUEST: CompleteVoice Example: 675f8d2a30cca3c591eb2374_CompleteVoice.wav
LightoftheWorld added a new version:
QuoteTook out the unfinished search quest, hoping to fix the incompatibilities with UI Fixes. Continue reporting bugs
LightoftheWorld added a new version:
QuoteDisplay More3.11 support
EXPERIMENTAL CHANGES WERE MADE. THIS MAY NOT WORK. I HAVE NOT BEEN ABLE TO TEST THEM.
If the mod breaks, and there are less than three comments saying the mod is broken, please leave a comment yourself.
-Possibly fixed bots spawning with the special item
-Added all new weapons to the weapon quests
-Adjusted "Chaos" to use a placeholder instead of an item that doesn't exist.
-Fixed being able to sell items to the traders (You are not supposed to be able to)
-Russian translation properly implemented
-Removed a lot of old test code (it will be back one day)
I have not gotten a chance to fix some of the bugs that have been mentioned because I do not have 3.11 installed right now. I am aware of them and will fix this eventually. These bugs include:
-FL quests retroactively failing once the GL quest is completed even if you already completed the FL choice
-Jammers on the radar dishes acting weird
-Probably other bugs that aren't coming to mind at this moment
You would not have this update this early if it were not for the assistance of Pyr0 and especially Gumbo. If you see them in the discord, show them some appreciation.
LightoftheWorld added a new version:
QuoteI have no words.
Thank you X-Static.
LightoftheWorld added a new version:
QuoteA few fixes.
I know it's been a while, friends. Do not worry.
Awesome, thanks! Starting tomorrow, I'm gonna work on fixing / updating this mod, so if you find any other bugs like this, please let me know!
LightoftheWorld added a new version:
QuoteI changed the second quest to have a fail condition... and didn't make it restartable. Incredible.
Also, since I forgot to mention it the past 2 uploads... all Mag Drills quests work with MagTape and BlackCore
LightoftheWorld added a new version:
QuoteFixed the folder name
Originally I would have just edited the previous update, but with 200 downloads already on it, I figure it's best just to push a new version so that everyone sees it.
I also slightly changed the first couple quests so that it's now based on not killing anything instead of getting a run-through, just makes things easier imo