feat(ref)

This commit is contained in:
GetParanoid 2025-07-18 16:16:49 -05:00
parent c51b14873d
commit bc46905c9a
16 changed files with 2934 additions and 0 deletions

View file

@ -0,0 +1,39 @@
{
"668caeedbdb70c05d702f184": "Eliminate PMCs",
"668caeedbdb70c05d702f17f name": "To Great Heights! - Part 4",
"668caeedbdb70c05d702f17f description": "How's the mood? Battle-ready? Ready to shine in the Arena once more? Ready to shred some motherfuckers? The odds are still stacked against you, so don't let the audience down! Speaking of that. You got some money? You gotta bet on yourself and then win six times. You'll make tons of cash, and you'll be famous. Bring the money, I'll organize everything. Just be warned: if you lose five times, you start again.",
"668caeedbdb70c05d702f17f successMessagetext": "Here's your paycheck. I deducted all my services from it straight away: bribing opponents, fees, and all that. What, you thought I work for free?",
"668caeedbdb70c05d702f1bb": "Eliminate PMCs",
"668caeedbdb70c05d702f1b6 name": "To Great Heights! - Part 5",
"668caeedbdb70c05d702f1b6 description": "I have good news! Excellent news, in fact! I hope you've already picked out a little apartment in Tarkov's elite neighborhood, because you'll have it soon with all this money! Kidding. All the houses in those neighborhoods are soon gonna collapse anyway. Anyway, some very powerful people from across the border are interested in you. Powerful and wealthy. I can't tell you their names, it's a business secret, and I'm not violating what I signed. So, these people are ready to take you under their wing and sponsor you heavily, but first they want guarantees. You need to become the champion. Fly high, soar above the rest. You're gonna have to spend more time in the Arena. I can see it in your eyes that you're ready.",
"668caeedbdb70c05d702f1b6 successMessagetext": "You're really good. A very famous French man — I won't tell you his name for privacy — is interested in you. Lispy as hell, but he's offering good money. I've already arranged for your sponsorship.",
"668caeedbdb70c05d702f1ea": "Locate the old champion's room on Customs",
"668caeedbdb70c05d702f1ed": "Find out what happened to the champion",
"668caeedbdb70c05d702f1f1": "Survive and extract from the location",
"668caeedbdb70c05d702f1e6 name": "Against the Conscience - Part 1",
"668caeedbdb70c05d702f1e6 description": "Hello. I hear you're working for Ref now. I've been keeping tabs on you for a while. I used to know a man who got tangled up just like you. He was Ref's previous champion for a while and then all of a sudden he disappeared. And I know for sure this had nothing to do with Kaban and Kollontay. If you don't want to vanish the same way this guy did, look for the last champion's apartment. I believe there's something of interest left there. The champion used to hang out with the smugglers in Dorms on Customs. Maybe you'll find some clues on how to get into the apartment.",
"668caeedbdb70c05d702f1e6 successMessagetext": "You want to ask Ref yourself? Well, it was nice knowing you.",
"668caeedbdb70c05d702f200": "Eliminate targets while using an Assault carbine",
"668caeedbdb70c05d702f203": "Eliminate targets while using an Assault rifle",
"668caeedbdb70c05d702f206": "Eliminate targets while using a Large machine gun",
"668caeedbdb70c05d702f209": "Eliminate targets while using a Marksman rifle",
"668caeedbdb70c05d702f20c": "Eliminate targets while using a Shotgun",
"668caeedbdb70c05d702f20f": "Eliminate targets while using an SMG",
"668caeedbdb70c05d702f1fc name": "Against the Conscience - Part 2",
"668caeedbdb70c05d702f1fc description": "So you're saying you were in the last champion's apartment? All right then. I'll pretend like it never happened. Just remember, curiosity killed the cat. And the last champion, too. He was a good guy, I liked him, but he got soft, lost his touch. You should be practicing more, not wandering around the city. Otherwise, your ranking will start to drop.",
"668caeedbdb70c05d702f1fc successMessagetext": "There you go! Time should be spent improving your skills. Who knows what happens if you don't?",
"668caeedbdb70c05d702f21e": "Return to the old champion's hideout on Customs",
"668caeedbdb70c05d702f21f": "Locate and obtain the compromising information on Ref",
"668caeedbdb70c05d702f220": "Handover the found info",
"668caeedbdb70c05d702f219 name": "Decisions, Decisions",
"668caeedbdb70c05d702f219 description": "I've been hearing rumors... Very unpleasant rumors. They say you're trying to dig my business up. Look, we've known each other for a while. You're like a brother to me! Don't do something you'll regret later. The less you know, the better you sleep, you hear that? Until I'm absolutely confident in you, I'm gonna have my men watching you. I don't want you pulling any stunts, champ. And if you find anything during your little date with the old champion, bring it to me. Then we can forget about this happy little accident.",
"668caeedbdb70c05d702f219 successMessagetext": "You made the right choice. Never doubted you, brother. All right, no more funny business from now on, you hear me?",
"668caeedbdb70c05d702f219 failMessagetext": "You bastard! I did everything for you, I got you out of the mud, I made you a real man, and you... You son a bitch!",
"668caeedbdb70c05d702f22d": "Return to the old champion's hideout on Customs",
"668caeedbdb70c05d702f22e": "Locate and obtain the compromising information on Ref",
"668caeedbdb70c05d702f22f": "Handover the found info",
"668caeedbdb70c05d702f228 name": "Between Two Fires",
"668caeedbdb70c05d702f228 description": "So you saw a dead body. Did you search it? Did you check around it? I'm just pointing out that you're blind. The champion, as far as I know, kept a journal. Yeah, like some teenager, but that's actually working in your favor. Why don't you go over there again and take a closer look? There's got to be more information in the journal about Ref, some dirt on him. Do that if you want to stop being expendable in the Arena. And one more thing: if you bring me any info on Ref that'll be worthy of my time, I'll pay you well.",
"668caeedbdb70c05d702f228 successMessagetext": "Well done. Glad you took your fate by the balls.",
"668caeedbdb70c05d702f228 failMessagetext": "You want to stay under Ref's skirt? You do you then."
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,52 @@
[
{
"ZoneId": "ref_overseer_room_find",
"ZoneName": "ref_overseer_room_find",
"ZoneLocation": "bigmap",
"ZoneType": "visit",
"FlareType": "",
"Position": {
"X": "176.9949",
"Y": "3.831572",
"Z": "166.1052",
"W": "0"
},
"Rotation": {
"X": "0",
"Y": "0.05233596",
"Z": "0",
"W": "0.9986295"
},
"Scale": {
"X": "1.75",
"Y": "2",
"Z": "1.5",
"W": "0"
}
},
{
"ZoneId": "ref_overseer_room_inside",
"ZoneName": "ref_overseer_room_inside",
"ZoneLocation": "bigmap",
"ZoneType": "visit",
"FlareType": "",
"Position": {
"X": "181.5675",
"Y": "3.807981",
"Z": "163.6602",
"W": "0"
},
"Rotation": {
"X": "0",
"Y": "0.06322598",
"Z": "0",
"W": "0.9979993"
},
"Scale": {
"X": "1.5",
"Y": "2",
"Z": "2",
"W": "0"
}
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 acidphantasm
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -0,0 +1,809 @@
{
"66058cc1da30b620a34e6e86": {
"QuestName": "To Great Heights - Part 1",
"_id": "66058cc1da30b620a34e6e86",
"acceptPlayerMessage": "66058cc1da30b620a34e6e86 acceptPlayerMessage",
"acceptanceAndFinishingSource": "eft",
"arenaLocations": [],
"canShowNotificationsInGame": true,
"changeQuestMessageText": "66058cc1da30b620a34e6e86 changeQuestMessageText",
"completePlayerMessage": "66058cc1da30b620a34e6e86 completePlayerMessage",
"conditions": {
"AvailableForFinish": [
{
"completeInSeconds": 0,
"conditionType": "CounterCreator",
"counter": {
"conditions": [
{
"bodyPart": [],
"compareMethod": ">=",
"conditionType": "Kills",
"daytime": {
"from": 0,
"to": 0
},
"distance": {
"compareMethod": ">=",
"value": 0
},
"dynamicLocale": false,
"enemyEquipmentExclusive": [],
"enemyEquipmentInclusive": [],
"enemyHealthEffects": [],
"id": "668caeedbdb70c05d702f0fa",
"resetOnSessionEnd": false,
"savageRole": [],
"target": "AnyPmc",
"value": 1,
"weapon": [],
"weaponCaliber": [],
"weaponModsExclusive": [],
"weaponModsInclusive": []
}
],
"id": "668caeedbdb70c05d702f0fb"
},
"doNotResetIfCounterCompleted": false,
"dynamicLocale": false,
"globalQuestCounterId": "",
"id": "668caeedbdb70c05d702f0fc",
"index": 0,
"oneSessionOnly": false,
"parentId": "",
"type": "Elimination",
"value": 10,
"visibilityConditions": []
}
],
"AvailableForStart": [
{
"availableAfter": 0,
"conditionType": "Quest",
"dispersion": 0,
"dynamicLocale": false,
"globalQuestCounterId": "",
"id": "668caeedbdb70c05d702f0f9",
"index": 0,
"parentId": "",
"status": [
4
],
"target": "66058cbf2f19c31a5a1337ec",
"visibilityConditions": []
}
],
"Fail": []
},
"declinePlayerMessage": "66058cc1da30b620a34e6e86 declinePlayerMessage",
"description": "66058cc1da30b620a34e6e86 description",
"failMessageText": "66058cc1da30b620a34e6e86 failMessageText",
"gameModes": [],
"image": "/files/quest/icon/66562bb83e8d4075e2354446.png",
"instantComplete": false,
"isKey": false,
"location": "any",
"name": "66058cc1da30b620a34e6e86 name",
"note": "66058cc1da30b620a34e6e86 note",
"progressSource": "eft",
"rankingModes": [],
"restartable": false,
"rewards": {
"Fail": [],
"Started": [],
"Success": [
{
"availableInGameEditions": [],
"id": "668caeedbdb70c05d702f0fd",
"index": 0,
"type": "Experience",
"value": "5600"
},
{
"availableInGameEditions": [],
"id": "668caeedbdb70c05d702f0fe",
"index": 1,
"target": "6617beeaa9cfa777ca915b7c",
"type": "TraderStanding",
"value": "0.03"
},
{
"availableInGameEditions": [],
"findInRaid": false,
"id": "668caeedbdb70c05d702f0ff",
"index": 2,
"items": [
{
"_id": "668caeedbdb70c05d702f100",
"_tpl": "5d235b4d86f7742e017bc88a",
"upd": {
"StackObjectsCount": 32
}
}
],
"target": "668caeedbdb70c05d702f100",
"type": "Item",
"value": "32"
},
{
"availableInGameEditions": [],
"findInRaid": true,
"id": "668caeedbdb70c05d702f101",
"index": 3,
"items": [
{
"_id": "668caeedbdb70c05d702f102",
"_tpl": "5bfea6e90db834001b7347f3",
"upd": {
"Repairable": {
"MaxDurability": 100,
"Durability": 100
},
"FireMode": {
"FireMode": "single"
},
"StackObjectsCount": 1
}
},
{
"_id": "668caeedbdb70c05d702f103",
"_tpl": "5cde739cd7f00c0010373bd3",
"parentId": "668caeedbdb70c05d702f102",
"slotId": "mod_stock"
},
{
"_id": "668caeedbdb70c05d702f104",
"_tpl": "5bfebc320db8340019668d79",
"parentId": "668caeedbdb70c05d702f102",
"slotId": "mod_barrel"
},
{
"_id": "668caeedbdb70c05d702f105",
"_tpl": "5cde7b43d7f00c000d36b93e",
"parentId": "668caeedbdb70c05d702f102",
"slotId": "mod_mount"
},
{
"_id": "668caeedbdb70c05d702f106",
"_tpl": "5a339805c4a2826c6e06d73d",
"parentId": "668caeedbdb70c05d702f103",
"slotId": "mod_pistol_grip"
},
{
"_id": "668caeedbdb70c05d702f107",
"_tpl": "5cde7afdd7f00c000d36b89d",
"parentId": "668caeedbdb70c05d702f103",
"slotId": "mod_handguard"
},
{
"_id": "668caeedbdb70c05d702f108",
"_tpl": "5dfa3cd1b33c0951220c079b",
"parentId": "668caeedbdb70c05d702f104",
"slotId": "mod_muzzle"
},
{
"_id": "668caeedbdb70c05d702f109",
"_tpl": "6567e751a715f85433025998",
"parentId": "668caeedbdb70c05d702f105",
"slotId": "mod_scope"
},
{
"_id": "668caeedbdb70c05d702f10a",
"_tpl": "59e0bed186f774156f04ce84",
"parentId": "668caeedbdb70c05d702f107",
"slotId": "mod_foregrip"
},
{
"_id": "668caeedbdb70c05d702f10b",
"_tpl": "655dccfdbdcc6b5df71382b6",
"parentId": "668caeedbdb70c05d702f10a",
"slotId": "mod_foregrip"
},
{
"_id": "668caeedbdb70c05d702f10c",
"_tpl": "5dfa3d2b0dee1b22f862eade",
"parentId": "668caeedbdb70c05d702f108",
"slotId": "mod_muzzle"
},
{
"_id": "668caeedbdb70c05d702f10d",
"_tpl": "5b3b99475acfc432ff4dcbee",
"parentId": "668caeedbdb70c05d702f109",
"slotId": "mod_scope",
"upd": {
"Sight": {
"ScopesCurrentCalibPointIndexes": [
0
],
"ScopesSelectedModes": [
0
],
"SelectedScope": 0
}
}
}
],
"target": "668caeedbdb70c05d702f102",
"type": "Item",
"value": "1"
},
{
"availableInGameEditions": [],
"findInRaid": true,
"id": "668caeedbdb70c05d702f10e",
"index": 4,
"items": [
{
"_id": "668caeedbdb70c05d702f10f",
"_tpl": "5ce69cbad7f00c00b61c5098",
"upd": {
"StackObjectsCount": 2
}
}
],
"target": "668caeedbdb70c05d702f10f",
"type": "Item",
"value": "2"
},
{
"availableInGameEditions": [],
"findInRaid": true,
"id": "668caeedbdb70c05d702f110",
"index": 5,
"items": [
{
"_id": "668caeedbdb70c05d702f111",
"_tpl": "5e023e6e34d52a55c3304f71",
"upd": {
"StackObjectsCount": 30
}
}
],
"target": "668caeedbdb70c05d702f111",
"type": "Item",
"value": "30"
},
{
"availableInGameEditions": [],
"findInRaid": false,
"id": "668caeedbdb70c05d702f236",
"index": 6,
"items": [
{
"_id": "668caeedbdb70c05d702f237",
"_tpl": "6656560053eaaa7a23349c86",
"upd": {
"StackObjectsCount": 1
}
}
],
"target": "668caeedbdb70c05d702f237",
"type": "Item",
"value": "1"
}
]
},
"secretQuest": false,
"side": "Pmc",
"startedMessageText": "66058cc1da30b620a34e6e86 startedMessageText",
"successMessageText": "66058cc1da30b620a34e6e86 successMessageText",
"traderId": "6617beeaa9cfa777ca915b7c",
"type": "Elimination"
},
"66058cc208308761cf390993": {
"QuestName": "To Great Heights! - Part 2",
"_id": "66058cc208308761cf390993",
"acceptPlayerMessage": "66058cc208308761cf390993 acceptPlayerMessage",
"acceptanceAndFinishingSource": "eft",
"arenaLocations": [],
"canShowNotificationsInGame": true,
"changeQuestMessageText": "66058cc208308761cf390993 changeQuestMessageText",
"completePlayerMessage": "66058cc208308761cf390993 completePlayerMessage",
"conditions": {
"AvailableForFinish": [
{
"completeInSeconds": 0,
"conditionType": "CounterCreator",
"counter": {
"conditions": [
{
"bodyPart": [],
"compareMethod": ">=",
"conditionType": "Kills",
"daytime": {
"from": 0,
"to": 0
},
"distance": {
"compareMethod": ">=",
"value": 0
},
"dynamicLocale": false,
"enemyEquipmentExclusive": [],
"enemyEquipmentInclusive": [],
"enemyHealthEffects": [],
"id": "668caeedbdb70c05d702f114",
"resetOnSessionEnd": false,
"savageRole": [],
"target": "AnyPmc",
"value": 1,
"weapon": [],
"weaponCaliber": [],
"weaponModsExclusive": [],
"weaponModsInclusive": []
}
],
"id": "668caeedbdb70c05d702f116"
},
"doNotResetIfCounterCompleted": false,
"dynamicLocale": false,
"globalQuestCounterId": "",
"id": "662ba78e19c86d3199ae0a93",
"index": 0,
"oneSessionOnly": false,
"parentId": "",
"type": "Elimination",
"value": 15,
"visibilityConditions": []
}
],
"AvailableForStart": [
{
"availableAfter": 0,
"conditionType": "Quest",
"dispersion": 0,
"dynamicLocale": false,
"globalQuestCounterId": "",
"id": "668caeedbdb70c05d702f113",
"index": 0,
"parentId": "",
"status": [
4
],
"target": "66058cc1da30b620a34e6e86",
"visibilityConditions": []
}
],
"Fail": []
},
"declinePlayerMessage": "66058cc208308761cf390993 declinePlayerMessage",
"description": "66058cc208308761cf390993 description",
"failMessageText": "66058cc208308761cf390993 failMessageText",
"gameModes": [],
"image": "/files/quest/icon/66562bb83e8d4075e2354446.png",
"instantComplete": false,
"isKey": false,
"location": "any",
"name": "66058cc208308761cf390993 name",
"note": "66058cc208308761cf390993 note",
"progressSource": "eft",
"rankingModes": [],
"restartable": false,
"rewards": {
"Fail": [],
"Started": [],
"Success": [
{
"availableInGameEditions": [],
"id": "668caeedbdb70c05d702f13c",
"index": 0,
"type": "Experience",
"value": "6500"
},
{
"availableInGameEditions": [],
"id": "668caeedbdb70c05d702f13d",
"index": 1,
"target": "6617beeaa9cfa777ca915b7c",
"type": "TraderStanding",
"value": "0.03"
},
{
"availableInGameEditions": [],
"findInRaid": false,
"id": "668caeedbdb70c05d702f13e",
"index": 2,
"items": [
{
"_id": "668caeedbdb70c05d702f13f",
"_tpl": "5d235b4d86f7742e017bc88a",
"upd": {
"StackObjectsCount": 36
}
}
],
"target": "668caeedbdb70c05d702f13f",
"type": "Item",
"value": "36"
},
{
"availableInGameEditions": [],
"findInRaid": true,
"id": "668caeedbdb70c05d702f140",
"index": 3,
"items": [
{
"_id": "668caeedbdb70c05d702f141",
"_tpl": "62e7c4fba689e8c9c50dfc38",
"upd": {
"Repairable": {
"MaxDurability": 100,
"Durability": 100
},
"FireMode": {
"FireMode": "fullauto"
},
"StackObjectsCount": 1
}
},
{
"_id": "668caeedbdb70c05d702f142",
"_tpl": "62e7c98b550c8218d602cbb4",
"parentId": "668caeedbdb70c05d702f141",
"slotId": "mod_magazine"
},
{
"_id": "668caeedbdb70c05d702f143",
"_tpl": "62e7c880f68e7a0676050c7c",
"parentId": "668caeedbdb70c05d702f141",
"slotId": "mod_charge"
},
{
"_id": "668caeedbdb70c05d702f144",
"_tpl": "62ea7c793043d74a0306e19f",
"parentId": "668caeedbdb70c05d702f141",
"slotId": "mod_reciever",
"upd": {
"Sight": {
"ScopesCurrentCalibPointIndexes": [
0,
0
],
"ScopesSelectedModes": [
0,
0
],
"SelectedScope": 0
}
}
},
{
"_id": "668caeedbdb70c05d702f145",
"_tpl": "62e7c7f3c34ea971710c32fc",
"parentId": "668caeedbdb70c05d702f144",
"slotId": "mod_barrel"
},
{
"_id": "668caeedbdb70c05d702f146",
"_tpl": "630f2872911356c17d06abc5",
"parentId": "668caeedbdb70c05d702f145",
"slotId": "mod_muzzle_000"
},
{
"_id": "668caeedbdb70c05d702f147",
"_tpl": "634e61b0767cb15c4601a877",
"parentId": "668caeedbdb70c05d702f145",
"slotId": "mod_foregrip"
}
],
"target": "668caeedbdb70c05d702f141",
"type": "Item",
"value": "1"
},
{
"availableInGameEditions": [],
"findInRaid": true,
"id": "668caeedbdb70c05d702f148",
"index": 4,
"items": [
{
"_id": "668caeedbdb70c05d702f149",
"_tpl": "62e7c98b550c8218d602cbb4",
"upd": {
"StackObjectsCount": 3
}
}
],
"target": "668caeedbdb70c05d702f149",
"type": "Item",
"value": "3"
},
{
"availableInGameEditions": [],
"findInRaid": true,
"id": "668caeedbdb70c05d702f14a",
"index": 5,
"items": [
{
"_id": "668caeedbdb70c05d702f14b",
"_tpl": "59e6920f86f77411d82aa167",
"upd": {
"StackObjectsCount": 120
}
}
],
"target": "668caeedbdb70c05d702f14b",
"type": "Item",
"value": "120"
},
{
"availableInGameEditions": [],
"findInRaid": false,
"id": "668caeedbdb70c05d702f238",
"index": 6,
"items": [
{
"_id": "668caeedbdb70c05d702f239",
"_tpl": "6656560053eaaa7a23349c86",
"upd": {
"StackObjectsCount": 1
}
}
],
"target": "668caeedbdb70c05d702f239",
"type": "Item",
"value": "1"
}
]
},
"secretQuest": false,
"side": "Pmc",
"startedMessageText": "66058cc208308761cf390993 startedMessageText",
"successMessageText": "66058cc208308761cf390993 successMessageText",
"traderId": "6617beeaa9cfa777ca915b7c",
"type": "Elimination"
},
"66058cc5bb83da7ba474aba9": {
"QuestName": "To Great Heights! - Part 3",
"_id": "66058cc5bb83da7ba474aba9",
"acceptPlayerMessage": "66058cc5bb83da7ba474aba9 acceptPlayerMessage",
"acceptanceAndFinishingSource": "eft",
"arenaLocations": [],
"canShowNotificationsInGame": true,
"changeQuestMessageText": "66058cc5bb83da7ba474aba9 changeQuestMessageText",
"completePlayerMessage": "66058cc5bb83da7ba474aba9 completePlayerMessage",
"conditions": {
"AvailableForFinish": [
{
"completeInSeconds": 0,
"conditionType": "CounterCreator",
"counter": {
"conditions": [
{
"bodyPart": [],
"compareMethod": ">=",
"conditionType": "Kills",
"daytime": {
"from": 0,
"to": 0
},
"distance": {
"compareMethod": ">=",
"value": 0
},
"dynamicLocale": false,
"enemyEquipmentExclusive": [],
"enemyEquipmentInclusive": [],
"enemyHealthEffects": [],
"id": "668caeedbdb70c05d702f14e",
"resetOnSessionEnd": false,
"savageRole": [],
"target": "AnyPmc",
"value": 1,
"weapon": [],
"weaponCaliber": [],
"weaponModsExclusive": [],
"weaponModsInclusive": []
}
],
"id": "668caeedbdb70c05d702f150"
},
"doNotResetIfCounterCompleted": false,
"dynamicLocale": false,
"globalQuestCounterId": "",
"id": "662ba61d3ed61b6b78187b71",
"index": 0,
"oneSessionOnly": false,
"parentId": "",
"type": "Elimination",
"value": 25,
"visibilityConditions": []
}
],
"AvailableForStart": [
{
"availableAfter": 0,
"conditionType": "Quest",
"dispersion": 0,
"dynamicLocale": false,
"globalQuestCounterId": "",
"id": "668caeedbdb70c05d702f14d",
"index": 0,
"parentId": "",
"status": [
4
],
"target": "66058cc208308761cf390993",
"visibilityConditions": []
}
],
"Fail": []
},
"declinePlayerMessage": "66058cc5bb83da7ba474aba9 declinePlayerMessage",
"description": "66058cc5bb83da7ba474aba9 description",
"failMessageText": "66058cc5bb83da7ba474aba9 failMessageText",
"gameModes": [],
"image": "/files/quest/icon/66562bb83e8d4075e2354446.png",
"instantComplete": false,
"isKey": false,
"location": "any",
"name": "66058cc5bb83da7ba474aba9 name",
"note": "66058cc5bb83da7ba474aba9 note",
"progressSource": "eft",
"rankingModes": [],
"restartable": false,
"rewards": {
"Fail": [],
"Started": [],
"Success": [
{
"availableInGameEditions": [],
"id": "668caeedbdb70c05d702f176",
"index": 0,
"type": "Experience",
"value": "6500"
},
{
"availableInGameEditions": [],
"id": "668caeedbdb70c05d702f177",
"index": 1,
"target": "6617beeaa9cfa777ca915b7c",
"type": "TraderStanding",
"value": "0.04"
},
{
"availableInGameEditions": [],
"findInRaid": false,
"id": "668caeedbdb70c05d702f178",
"index": 2,
"items": [
{
"_id": "668caeedbdb70c05d702f179",
"_tpl": "5d235b4d86f7742e017bc88a",
"upd": {
"StackObjectsCount": 38
}
}
],
"target": "668caeedbdb70c05d702f179",
"type": "Item",
"value": "38"
},
{
"availableInGameEditions": [],
"findInRaid": true,
"id": "668caeedbdb70c05d702f17a",
"index": 3,
"items": [
{
"_id": "ad53e556fa161840b02650bb",
"_tpl": "588892092459774ac91d4b11",
"upd": {
"Repairable": {
"MaxDurability": 100,
"Durability": 100
},
"Foldable": {
"Folded": false
},
"FireMode": {
"FireMode": "single"
},
"StackObjectsCount": 1
}
},
{
"_id": "a8a98181420c0c90736afcc7",
"_tpl": "5888988e24597752fe43a6fa",
"parentId": "ad53e556fa161840b02650bb",
"slotId": "mod_magazine"
},
{
"_id": "47b688abc1eccc7c16bca391",
"_tpl": "5888956924597752983e182d",
"parentId": "ad53e556fa161840b02650bb",
"slotId": "mod_barrel"
},
{
"_id": "10a378e43adb1e79d408b1ab",
"_tpl": "57c55f172459772d27602381",
"parentId": "ad53e556fa161840b02650bb",
"slotId": "mod_pistol_grip"
},
{
"_id": "1ad4aaba1447ddab21bcc0cb",
"_tpl": "58889d0c2459775bc215d981",
"parentId": "ad53e556fa161840b02650bb",
"slotId": "mod_stock"
},
{
"_id": "8905bb1b19f57a8c29edefb0",
"_tpl": "5888996c24597754281f9419",
"parentId": "47b688abc1eccc7c16bca391",
"slotId": "mod_muzzle"
},
{
"_id": "e39d147f3e215e5d118a0783",
"_tpl": "5888976c24597754281f93f5",
"parentId": "47b688abc1eccc7c16bca391",
"slotId": "mod_handguard"
}
],
"target": "ad53e556fa161840b02650bb",
"type": "Item",
"value": "1"
},
{
"availableInGameEditions": [],
"findInRaid": true,
"id": "668caeedbdb70c05d702f17b",
"index": 4,
"items": [
{
"_id": "668caeedbdb70c05d702f17c",
"_tpl": "5888988e24597752fe43a6fa",
"upd": {
"StackObjectsCount": 2
}
}
],
"target": "668caeedbdb70c05d702f17c",
"type": "Item",
"value": "2"
},
{
"availableInGameEditions": [],
"findInRaid": true,
"id": "668caeedbdb70c05d702f17d",
"index": 5,
"items": [
{
"_id": "668caeedbdb70c05d702f17e",
"_tpl": "5e023e6e34d52a55c3304f71",
"upd": {
"StackObjectsCount": 40
}
}
],
"target": "668caeedbdb70c05d702f17e",
"type": "Item",
"value": "40"
},
{
"availableInGameEditions": [],
"findInRaid": false,
"id": "668caeedbdb70c05d702f23a",
"index": 6,
"items": [
{
"_id": "668caeedbdb70c05d702f23b",
"_tpl": "6656560053eaaa7a23349c86",
"upd": {
"StackObjectsCount": 1
}
}
],
"target": "668caeedbdb70c05d702f23b",
"type": "Item",
"value": "1"
}
]
},
"secretQuest": false,
"side": "Pmc",
"startedMessageText": "66058cc5bb83da7ba474aba9 startedMessageText",
"successMessageText": "66058cc5bb83da7ba474aba9 successMessageText",
"traderId": "6617beeaa9cfa777ca915b7c",
"type": "Elimination"
}
}

View file

@ -0,0 +1,30 @@
{
"name": "RefSPTFriendlyQuests",
"version": "1.3.0",
"sptVersion": "~3.11",
"loadBefore": [],
"loadAfter": [],
"incompatibilities": [],
"isBundleMod": false,
"main": "src/mod.js",
"scripts": {
"setup": "npm i",
"build": "node ./build.mjs",
"buildinfo": "node ./build.mjs --verbose"
},
"devDependencies": {
"@types/node": "22.10.5",
"@typescript-eslint/eslint-plugin": "7.2",
"@typescript-eslint/parser": "7.2",
"archiver": "^6.0",
"eslint": "8.57",
"fs-extra": "11.2",
"ignore": "^5.2",
"tsyringe": "4.8.0",
"typescript": "5.7.3",
"winston": "3.17.0"
},
"author": "acidphantasm",
"contributors": [],
"license": "MIT"
}

View file

@ -0,0 +1,41 @@
import { DependencyContainer } from "tsyringe";
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
import { DatabaseService } from "@spt/services/DatabaseService";
import { IDatabaseTables } from "@spt/models/spt/server/IDatabaseTables";
import { IQuest } from "@spt/models/eft/common/tables/IQuest";
class RefSPTFriendlyQuests implements IPostDBLoadMod
{
private customQuestTable: Record<string, IQuest> = require("../db/Ref_quests.json")
public postDBLoad(container: DependencyContainer): void
{
const databaseService = container.resolve<DatabaseService>("DatabaseService");
const tables: IDatabaseTables = databaseService.getTables();
const localeTable = tables.locales.global;
const questTable = tables.templates.quests;
const refTraderID = "6617beeaa9cfa777ca915b7c";
const refBase = tables.traders[refTraderID].base;
const refQuestAssort = tables.traders[refTraderID].questassort;
//Update assort to have quest reward
refQuestAssort["success"]["66c1beaefa6e5a0c120f0d08"] = "668caeedbdb70c05d702f1b6" ;
questTable["66058cc1da30b620a34e6e86"] = this.customQuestTable["66058cc1da30b620a34e6e86"]; //tgh p1
questTable["66058cc208308761cf390993"] = this.customQuestTable["66058cc208308761cf390993"]; //tgh p2
questTable["66058cc5bb83da7ba474aba9"] = this.customQuestTable["66058cc5bb83da7ba474aba9"]; //tgh p3
for (const language in localeTable)
{
localeTable[language]["668caeedbdb70c05d702f0fc"] = "Eliminate PMCs" // tgh p1
localeTable[language]["662ba78e19c86d3199ae0a93"] = "Eliminate PMCs" // tgh p2
localeTable[language]["662ba61d3ed61b6b78187b71"] = "Eliminate PMCs" // tgh p3
}
// Change LL4 requirements for Ref to be 1.00
refBase.loyaltyLevels[3].minStanding = 1.0;
}
}
export const mod = new RefSPTFriendlyQuests();