From ba2e100c39a75b85d54d0653241344ce36f8e774 Mon Sep 17 00:00:00 2001 From: PRO100KatYT Date: Tue, 1 Feb 2022 08:23:15 +0100 Subject: [PATCH 1/7] Added proper Quest objectives remade the quests.json file and removed some Save the World daily quests that would appear in the side quests tab on some builds making them unreplacable. --- index.js | 19 ++-- responses/quests.json | 245 +++++++++++++++++++++++++++++++++++------- 2 files changed, 217 insertions(+), 47 deletions(-) diff --git a/index.js b/index.js index a2e5b28..f762fe1 100644 --- a/index.js +++ b/index.js @@ -1704,7 +1704,7 @@ express.post("/fortnite/api/game/v2/profile/*/client/FortRerollDailyQuest", asyn var randomNumber = Math.floor(Math.random() * QuestIDS.length); for (var key in profile.items) { - while (QuestIDS[randomNumber].toLowerCase() == profile.items[key].templateId.toLowerCase()) { + while (QuestIDS[randomNumber].templateId.toLowerCase() == profile.items[key].templateId.toLowerCase()) { randomNumber = Math.floor(Math.random() * QuestIDS.length); } } @@ -1715,10 +1715,9 @@ express.post("/fortnite/api/game/v2/profile/*/client/FortRerollDailyQuest", asyn delete profile.items[req.body.questId]; profile.items[NewQuestID] = { - "templateId": QuestIDS[randomNumber], + "templateId": QuestIDS[randomNumber].templateId, "attributes": { "creation_time": new Date().toISOString(), - "completion_complete": 0, "level": -1, "item_seen": false, "playlists": [], @@ -1739,6 +1738,10 @@ express.post("/fortnite/api/game/v2/profile/*/client/FortRerollDailyQuest", asyn "quantity": 1 }; + for (var objective in QuestIDS[randomNumber].objectives) { + profile.items[NewQuestID].attributes[`completion_${QuestIDS[randomNumber].objectives[objective]}`] = 0 + } + StatChanged = true; } @@ -1905,16 +1908,15 @@ express.post("/fortnite/api/game/v2/profile/*/client/ClientQuestLogin", async (r var randomNumber = Math.floor(Math.random() * QuestIDS.length); for (var key in profile.items) { - while (QuestIDS[randomNumber].toLowerCase() == profile.items[key].templateId.toLowerCase()) { + while (QuestIDS[randomNumber].templateId.toLowerCase() == profile.items[key].templateId.toLowerCase()) { randomNumber = Math.floor(Math.random() * QuestIDS.length); } } profile.items[NewQuestID] = { - "templateId": QuestIDS[randomNumber], + "templateId": QuestIDS[randomNumber].templateId, "attributes": { "creation_time": new Date().toISOString(), - "completion_complete": 0, "level": -1, "item_seen": false, "playlists": [], @@ -1934,6 +1936,11 @@ express.post("/fortnite/api/game/v2/profile/*/client/ClientQuestLogin", async (r }, "quantity": 1 }; + + for (var objective in QuestIDS[randomNumber].objectives) { + profile.items[NewQuestID].attributes[`completion_${QuestIDS[randomNumber].objectives[objective]}`] = 0 + } + profile.stats.attributes.quest_manager.dailyLoginInterval = new Date().toISOString(); ApplyProfileChanges.push({ diff --git a/responses/quests.json b/responses/quests.json index 7e7a668..8615819 100644 --- a/responses/quests.json +++ b/responses/quests.json @@ -1,47 +1,210 @@ { "SaveTheWorld": [ - "Quest:Daily_DestroyTVs", - "Quest:Daily_DestroyTransformers", - "Quest:Daily_DestroyServerRacks", - "Quest:Daily_DestroySeesaws", - "Quest:Daily_DestroyPropaneTanks", - "Quest:Daily_DestroyGnomes", - "Quest:Daily_DestroyFireTrucks", - "Quest:Daily_DestroyBears", - "Quest:Daily_DestroyArcadeMachines", - "Quest:Daily_PartyOf50", - "Quest:Daily_Mission_Specialist_TwinePeaks", - "Quest:Daily_Mission_Specialist_Stonewood", - "Quest:Daily_Mission_Specialist_Soldier", - "Quest:Daily_Mission_Specialist_Plankerton", - "Quest:Daily_Mission_Specialist_Outlander", - "Quest:Daily_Mission_Specialist_Ninja", - "Quest:Daily_Mission_Specialist_Constructor", - "Quest:Daily_Mission_Specialist_CannyValley", - "Quest:Daily_HuskExtermination_Soldier", - "Quest:Daily_HuskExtermination_Outlander", - "Quest:Daily_HuskExtermination_Ninja", - "Quest:Daily_HuskExtermination_Constructor", - "Quest:Daily_HuskExtermination_AnyHero", - "Quest:Daily_High_Priority", - "Quest:Daily_GateCrasher", - "Quest:Daily_DataRetrieval", - "Quest:Daily_ALittleVanThatCould" + { + "templateId": "Quest:Daily_DestroyArcadeMachines", + "objectives": [ + "quest_reactive_destroyarcade_v4" + ] + }, + { + "templateId": "Quest:Daily_DestroyBears", + "objectives": [ + "quest_reactive_destroybear_v3" + ] + }, + { + "templateId": "Quest:Daily_DestroyFireTrucks", + "objectives": [ + "quest_reactive_destroyfiretruck_v2" + ] + }, + { + "templateId": "Quest:Daily_DestroyGnomes", + "objectives": [ + "quest_reactive_destroygnome_v2" + ] + }, + { + "templateId": "Quest:Daily_DestroyPropaneTanks", + "objectives": [ + "quest_reactive_destroypropane_v2" + ] + }, + { + "templateId": "Quest:Daily_DestroySeesaws", + "objectives": [ + "quest_reactive_destroyseesaw_v3" + ] + }, + { + "templateId": "Quest:Daily_DestroyServerRacks", + "objectives": [ + "quest_reactive_destroyserverrack_v2" + ] + }, + { + "templateId": "Quest:Daily_DestroyTransformers", + "objectives": [ + "quest_reactive_destroytransform_v3" + ] + }, + { + "templateId": "Quest:Daily_DestroyTVs", + "objectives": [ + "quest_reactive_destroytv_v2" + ] + }, + { + "templateId": "Quest:Daily_High_Priority", + "objectives": [ + "questcollect_survivoritemdata" + ] + }, + { + "templateId": "Quest:Daily_HuskExtermination_AnyHero", + "objectives": [ + "kill_husk" + ] + }, + { + "templateId": "Quest:Daily_HuskExtermination_Constructor", + "objectives": [ + "kill_husk_constructor_v2" + ] + }, + { + "templateId": "Quest:Daily_HuskExtermination_Ninja", + "objectives": [ + "kill_husk_ninja_v2" + ] + }, + { + "templateId": "Quest:Daily_HuskExtermination_Outlander", + "objectives": [ + "kill_husk_outlander_v2" + ] + }, + { + "templateId": "Quest:Daily_HuskExtermination_Soldier", + "objectives": [ + "kill_husk_commando_v2" + ] + }, + { + "templateId": "Quest:Daily_Mission_Specialist_Constructor", + "objectives": [ + "complete_constructor" + ] + }, + { + "templateId": "Quest:Daily_Mission_Specialist_Ninja", + "objectives": [ + "complete_ninja" + ] + }, + { + "templateId": "Quest:Daily_Mission_Specialist_Outlander", + "objectives": [ + "complete_outlander" + ] + }, + { + "templateId": "Quest:Daily_Mission_Specialist_Soldier", + "objectives": [ + "complete_commando" + ] + }, + { + "templateId": "Quest:Daily_PartyOf50", + "objectives": [ + "questcollect_survivoritemdata_v2" + ] + } ], "BattleRoyale": [ - "Quest:AthenaDaily_Outlive_Solo", - "Quest:AthenaDaily_Outlive_Squad", - "Quest:AthenaDaily_Outlive", - "Quest:AthenaDaily_PlayMatches", - "Quest:AthenaDaily_Solo_Top25", - "Quest:AthenaDaily_Squad_Top6", - "Quest:AthenaDailyQuest_InteractAmmoCrate", - "Quest:AthenaDailyQuest_InteractTreasureChest", - "Quest:AthenaDailyQuest_PlayerElimination", - "Quest:AthenaDailyQuest_PlayerEliminationAssaultRifles", - "Quest:AthenaDailyQuest_PlayerEliminationPistols", - "Quest:AthenaDailyQuest_PlayerEliminationShotguns", - "Quest:AthenaDailyQuest_PlayerEliminationSMGs", - "Quest:AthenaDailyQuest_PlayerEliminationSniperRifles" + { + "templateId": "Quest:AthenaDaily_Outlive_Solo", + "objectives": [ + "daily_athena_outlive_solo_players" + ] + }, + { + "templateId": "Quest:AthenaDaily_Outlive_Squad", + "objectives": [ + "daily_athena_outlive_squad_players_v2" + ] + }, + { + "templateId": "Quest:AthenaDaily_Outlive", + "objectives": [ + "daily_athena_outlive_players_v3" + ] + }, + { + "templateId": "Quest:AthenaDaily_PlayMatches", + "objectives": [ + "daily_athena_play_matches_v3" + ] + }, + { + "templateId": "Quest:AthenaDaily_Solo_Top25", + "objectives": [ + "daily_athena_solo_top25_v2" + ] + }, + { + "templateId": "Quest:AthenaDaily_Squad_Top6", + "objectives": [ + "daily_athena_squad_top6_v2" + ] + }, + { + "templateId": "Quest:AthenaDailyQuest_InteractAmmoCrate", + "objectives": [ + "athena_daily_loot_ammobox_v2" + ] + }, + { + "templateId": "Quest:AthenaDailyQuest_InteractTreasureChest", + "objectives": [ + "daily_athena_loot_chest_v2" + ] + }, + { + "templateId": "Quest:AthenaDailyQuest_PlayerElimination", + "objectives": [ + "athena_daily_kill_players_v2" + ] + }, + { + "templateId": "Quest:AthenaDailyQuest_PlayerEliminationAssaultRifles", + "objectives": [ + "athena_daily_kill_players_assault_rifles" + ] + }, + { + "templateId": "Quest:AthenaDailyQuest_PlayerEliminationPistols", + "objectives": [ + "athena_daily_kill_players_pistol_v3" + ] + }, + { + "templateId": "Quest:AthenaDailyQuest_PlayerEliminationShotguns", + "objectives": [ + "athena_daily_kill_players_shotgun_v2" + ] + }, + { + "templateId": "Quest:AthenaDailyQuest_PlayerEliminationSMGs", + "objectives": [ + "athena_daily_kill_players_smg_v2" + ] + }, + { + "templateId": "Quest:AthenaDailyQuest_PlayerEliminationSniperRifles", + "objectives": [ + "athena_daily_kill_players_sniper_v2" + ] + } ] } \ No newline at end of file From 4c9282ea2758f530a87eee23ed6c2eb8e42597e1 Mon Sep 17 00:00:00 2001 From: PRO100KatYT Date: Tue, 1 Feb 2022 08:29:31 +0100 Subject: [PATCH 2/7] oops I forgor about one thing :skull: --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index f762fe1..707a508 100644 --- a/index.js +++ b/index.js @@ -1769,7 +1769,7 @@ express.post("/fortnite/api/game/v2/profile/*/client/FortRerollDailyQuest", asyn Notifications.push({ "type": "dailyQuestReroll", "primary": true, - "newQuestId": QuestIDS[randomNumber] + "newQuestId": QuestIDS[randomNumber].templateId }) fs.writeFileSync(`./profiles/${req.query.profileId || "athena"}.json`, JSON.stringify(profile, null, 2)); From 8f50b8508f7961e6d70ee81fee469a72730c1e5e Mon Sep 17 00:00:00 2001 From: PRO100KatYT Date: Tue, 1 Feb 2022 09:35:09 +0100 Subject: [PATCH 3/7] Replaced the current campaign locker with the default one and fixed the infinite banner loading glitch on builds with locker in StW. --- profiles/campaign.json | 59 ++++++++++++++---------------------------- 1 file changed, 20 insertions(+), 39 deletions(-) diff --git a/profiles/campaign.json b/profiles/campaign.json index 317bb3d..72bf3fc 100644 --- a/profiles/campaign.json +++ b/profiles/campaign.json @@ -180,59 +180,40 @@ "attributes": { "locker_slots_data": { "slots": { - "Pickaxe": { + "Dance": { "items": [ - "AthenaPickaxe:Pickaxe_ID_041_PajamaParty" - ] - }, - "ItemWrap": { - "items": [ - "AthenaItemWrap:Wrap_237_NeonPulse", - "AthenaItemWrap:Wrap_237_NeonPulse", - "AthenaItemWrap:Wrap_237_NeonPulse", - "AthenaItemWrap:Wrap_237_NeonPulse", - "AthenaItemWrap:Wrap_237_NeonPulse", - "AthenaItemWrap:Wrap_237_NeonPulse", - "AthenaItemWrap:Wrap_237_NeonPulse", + "AthenaDance:eid_dancemoves", + null, + null, + null, + null, + null + ], + "activeVariants": [ + null, + null, + null, + null, + null, null ] }, - "LoadingScreen": { + "Pickaxe": { "items": [ - "AthenaLoadingScreen:LSID_026_S4Cumulative8" - ] - }, - "Dance": { - "items": [ - "AthenaDance:EID_JumpStyleDance", - "AthenaDance:EID_CrazyFeet", - "AthenaDance:EID_MechPeely", - "AthenaDance:EID_IndigoApple", - "AthenaDance:EID_RunningMan", - "AthenaDance:EID_MonteCarlo" - ] - }, - "MusicPack": { - "items": [ - "AthenaMusicPack:MusicPack_015_GoodVibes" + "AthenaPickaxe:pickaxe_id_stw001_tier_1" ] }, "Backpack": { "items": [ - "AthenaBackpack:BID_168_CupidWinterMale" - ] - }, - "Character": { - "items": [ - "" + "AthenaBackpack:bid_stwhero" ] } } }, "use_count": 0, - "banner_icon_template": "brs9worldcup2019", - "banner_color_template": "defaultcolor1", - "locker_name": "", + "banner_icon_template": "SurvivalBannerStonewoodComplete", + "locker_name": "LawinServer", + "banner_color_template": "DefaultColor15", "item_seen": false, "favorite": false }, From b8ecf0caf8ff17347a96ef2e5ea588c64cb96b0d Mon Sep 17 00:00:00 2001 From: PRO100KatYT Date: Tue, 1 Feb 2022 09:48:35 +0100 Subject: [PATCH 4/7] Lowered the research stats to 120 (max lvl) and the stat items so the 225 power level that appeared on some builds is fixed. --- profiles/campaign.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/profiles/campaign.json b/profiles/campaign.json index 72bf3fc..da3eb0d 100644 --- a/profiles/campaign.json +++ b/profiles/campaign.json @@ -394,7 +394,7 @@ "xp": 0, "favorite": false }, - "quantity": 5000 + "quantity": 540 }, "a43eb922-b295-4482-9257-7739385e9f92": { "templateId": "Quest:starlightquest_complete_all", @@ -978,7 +978,7 @@ "xp": 0, "favorite": false }, - "quantity": 5000 + "quantity": 224 }, "7a367ed2-ac89-4ca5-8bbd-3476e2b1c68a": { "templateId": "Quest:plankertonquest_filler_3_d4", @@ -3493,7 +3493,7 @@ "xp": 0, "favorite": false }, - "quantity": 5000 + "quantity": 540 }, "ac278b23-e943-4ee7-ac4d-9a539c7cb5a0": { "templateId": "Quest:challenge_holdthedoor_20", @@ -4067,7 +4067,7 @@ "xp": 0, "favorite": false }, - "quantity": 5000 + "quantity": 540 }, "13eb4f9d-d65e-4c3d-841f-d1de2963859b": { "templateId": "Quest:challenge_missionaccomplished_5", @@ -4176,7 +4176,7 @@ "xp": 0, "favorite": false }, - "quantity": 5000 + "quantity": 540 }, "19b4591e-ed2f-4b9a-b21c-ea7bc193e236": { "templateId": "Worker:workerbasic_vr_t01", @@ -4635,7 +4635,7 @@ "xp": 0, "favorite": false }, - "quantity": 5000 + "quantity": 224 }, "e245fbb8-a31e-41f8-a16e-bacd1ea6fab9": { "templateId": "HomebaseNode:questreward_plankerton_squad_ssd4", @@ -6088,7 +6088,7 @@ "xp": 0, "favorite": false }, - "quantity": 5000 + "quantity": 224 }, "8211bfac-bc99-4128-a49f-3936dcec2e0d": { "templateId": "Quest:weeklyquest_tiered_completemissionalerts_t10", @@ -10876,7 +10876,7 @@ "xp": 0, "favorite": false }, - "quantity": 5000 + "quantity": 224 }, "06ce3df0-1405-4d1e-8d30-2a641a109afe": { "templateId": "HomebaseNode:questreward_cannyvalley_squad_ssd2", @@ -63305,10 +63305,10 @@ "pinnedQuestInstances": [] }, "research_levels": { - "technology": 5000, - "fortitude": 5000, - "offense": 5000, - "resistance": 5000 + "technology": 120, + "fortitude": 120, + "offense": 120, + "resistance": 120 }, "level": 309, "xp_overflow": 0, From 29cde8993c8baa19a38a223839e301fc94b155e1 Mon Sep 17 00:00:00 2001 From: PRO100KatYT Date: Tue, 1 Feb 2022 11:21:09 +0100 Subject: [PATCH 5/7] Fixed the Theater mission level not displaying correctly on v15.30+ --- index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/index.js b/index.js index 707a508..fa2a300 100644 --- a/index.js +++ b/index.js @@ -6418,6 +6418,7 @@ function getTheater(req) { try { if (seasondata.season >= 16 || seasondata.build == 15.30 || seasondata.build == 15.40 || seasondata.build == 15.50) { theater = theater.replace(/\/Game\//ig, "\/SaveTheWorld\/"); + theater = theater.replace(/\"DataTable\'\/SaveTheWorld\//ig, "\"DataTable\'\/Game\/"); } } catch (err) {} From e8f8f280beb0ba1b20fc6896f41464476f4b9169 Mon Sep 17 00:00:00 2001 From: PRO100KatYT Date: Tue, 1 Feb 2022 11:27:50 +0100 Subject: [PATCH 6/7] Fixed the Twine Endurance wave count not displaying on the Twine Storm Shield theater info. --- profiles/campaign.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/profiles/campaign.json b/profiles/campaign.json index da3eb0d..dc06586 100644 --- a/profiles/campaign.json +++ b/profiles/campaign.json @@ -63074,6 +63074,30 @@ "favorite": false }, "quantity": 1 + }, + "71b49db4-23f3-4a16-9bc8-9e20b7f4c3c3": { + "templateId": "Quest:outpostquest_t4_endless", + "attributes": { + "creation_time": "min", + "level": -1, + "item_seen": false, + "playlists": [], + "sent_new_notification": true, + "challenge_bundle_id": "", + "xp_reward_scalar": 1, + "challenge_linked_quest_given": "", + "quest_pool": "", + "quest_state": "Active", + "bucket": "", + "last_state_change_time": "2019-06-18T12:25:25.593Z", + "challenge_linked_quest_parent": "", + "max_level_bonus": 0, + "xp": 0, + "quest_rarity": "uncommon", + "favorite": false, + "completion_complete_outpost_4_endless": 0 + }, + "quantity": 1 } }, "stats": { From bd1a3b994c3591b0d40ef70a0b024bd730a40a11 Mon Sep 17 00:00:00 2001 From: PRO100KatYT Date: Tue, 1 Feb 2022 17:27:35 +0100 Subject: [PATCH 7/7] Fix for the StW Cosmetic Locker. --- profiles/campaign.json | 57 ++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/profiles/campaign.json b/profiles/campaign.json index dc06586..a51cda5 100644 --- a/profiles/campaign.json +++ b/profiles/campaign.json @@ -180,40 +180,59 @@ "attributes": { "locker_slots_data": { "slots": { - "Dance": { - "items": [ - "AthenaDance:eid_dancemoves", - null, - null, - null, - null, - null - ], - "activeVariants": [ - null, - null, - null, - null, - null, - null - ] - }, "Pickaxe": { "items": [ "AthenaPickaxe:pickaxe_id_stw001_tier_1" ] }, + "ItemWrap": { + "items": [ + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "LoadingScreen": { + "items": [ + "" + ] + }, + "Dance": { + "items": [ + "AthenaDance:eid_dancemoves", + "", + "", + "", + "", + "" + ] + }, + "MusicPack": { + "items": [ + "" + ] + }, "Backpack": { "items": [ "AthenaBackpack:bid_stwhero" ] + }, + "Character": { + "items": [ + "" + ] } } }, "use_count": 0, "banner_icon_template": "SurvivalBannerStonewoodComplete", - "locker_name": "LawinServer", "banner_color_template": "DefaultColor15", + "locker_name": "LawinServer", "item_seen": false, "favorite": false },