forked from OpenWF/SpaceNinjaServer
		
	fix: more accurate inventory after skipTutorial (#755)
This commit is contained in:
		
							parent
							
								
									701cd19a17
								
							
						
					
					
						commit
						10100ae2ca
					
				@ -776,7 +776,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
 | 
				
			|||||||
        RewardSeed: Number,
 | 
					        RewardSeed: Number,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //Credit
 | 
					        //Credit
 | 
				
			||||||
        RegularCredits: { type: Number, default: 3000 },
 | 
					        RegularCredits: { type: Number, default: 0 },
 | 
				
			||||||
        //Platinum
 | 
					        //Platinum
 | 
				
			||||||
        PremiumCredits: { type: Number, default: 50 },
 | 
					        PremiumCredits: { type: Number, default: 50 },
 | 
				
			||||||
        //Gift Platinum(Non trade)
 | 
					        //Gift Platinum(Non trade)
 | 
				
			||||||
@ -787,18 +787,18 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
 | 
				
			|||||||
        PrimeTokens: { type: Number, default: 0 },
 | 
					        PrimeTokens: { type: Number, default: 0 },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //Slots
 | 
					        //Slots
 | 
				
			||||||
        SuitBin: slotsBinSchema,
 | 
					        SuitBin: { type: slotsBinSchema, default: { Slots: 3 } },
 | 
				
			||||||
        WeaponBin: slotsBinSchema,
 | 
					        WeaponBin: { type: slotsBinSchema, default: { Slots: 10 } },
 | 
				
			||||||
        SentinelBin: slotsBinSchema,
 | 
					        SentinelBin: { type: slotsBinSchema, default: { Slots: 10 } },
 | 
				
			||||||
        SpaceSuitBin: slotsBinSchema,
 | 
					        SpaceSuitBin: { type: slotsBinSchema, default: { Slots: 4 } },
 | 
				
			||||||
        SpaceWeaponBin: slotsBinSchema,
 | 
					        SpaceWeaponBin: { type: slotsBinSchema, default: { Slots: 4 } },
 | 
				
			||||||
        PvpBonusLoadoutBin: slotsBinSchema,
 | 
					        PvpBonusLoadoutBin: { type: slotsBinSchema, default: { Slots: 0 } },
 | 
				
			||||||
        PveBonusLoadoutBin: slotsBinSchema,
 | 
					        PveBonusLoadoutBin: { type: slotsBinSchema, default: { Slots: 0 } },
 | 
				
			||||||
        RandomModBin: slotsBinSchema,
 | 
					        RandomModBin: { type: slotsBinSchema, default: { Slots: 15 } },
 | 
				
			||||||
        OperatorAmpBin: slotsBinSchema,
 | 
					        OperatorAmpBin: { type: slotsBinSchema, default: { Slots: 8 } },
 | 
				
			||||||
        CrewShipSalvageBin: slotsBinSchema,
 | 
					        CrewShipSalvageBin: { type: slotsBinSchema, default: { Slots: 8 } },
 | 
				
			||||||
        MechBin: slotsBinSchema,
 | 
					        MechBin: { type: slotsBinSchema, default: { Slots: 4 } },
 | 
				
			||||||
        CrewMemberBin: slotsBinSchema,
 | 
					        CrewMemberBin: { type: slotsBinSchema, default: { Slots: 3 } },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //How many trades do you have left
 | 
					        //How many trades do you have left
 | 
				
			||||||
        TradesRemaining: { type: Number, default: 0 },
 | 
					        TradesRemaining: { type: Number, default: 0 },
 | 
				
			||||||
@ -814,20 +814,20 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
 | 
				
			|||||||
        //Syndicates Missions complate(Navigation->Syndicate)
 | 
					        //Syndicates Missions complate(Navigation->Syndicate)
 | 
				
			||||||
        CompletedSyndicates: [String],
 | 
					        CompletedSyndicates: [String],
 | 
				
			||||||
        //Daily Syndicates Exp
 | 
					        //Daily Syndicates Exp
 | 
				
			||||||
        DailyAffiliation: { type: Number, default: 0 },
 | 
					        DailyAffiliation: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationPvp: { type: Number, default: 0 },
 | 
					        DailyAffiliationPvp: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationLibrary: { type: Number, default: 0 },
 | 
					        DailyAffiliationLibrary: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationCetus: { type: Number, default: 0 },
 | 
					        DailyAffiliationCetus: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationQuills: { type: Number, default: 0 },
 | 
					        DailyAffiliationQuills: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationSolaris: { type: Number, default: 0 },
 | 
					        DailyAffiliationSolaris: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationVentkids: { type: Number, default: 0 },
 | 
					        DailyAffiliationVentkids: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationVox: { type: Number, default: 0 },
 | 
					        DailyAffiliationVox: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationEntrati: { type: Number, default: 0 },
 | 
					        DailyAffiliationEntrati: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationNecraloid: { type: Number, default: 0 },
 | 
					        DailyAffiliationNecraloid: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationZariman: { type: Number, default: 0 },
 | 
					        DailyAffiliationZariman: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationKahl: { type: Number, default: 0 },
 | 
					        DailyAffiliationKahl: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationCavia: { type: Number, default: 0 },
 | 
					        DailyAffiliationCavia: { type: Number, default: 16000 },
 | 
				
			||||||
        DailyAffiliationHex: { type: Number, default: 0 },
 | 
					        DailyAffiliationHex: { type: Number, default: 16000 },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //Daily Focus limit
 | 
					        //Daily Focus limit
 | 
				
			||||||
        DailyFocus: { type: Number, default: 250000 },
 | 
					        DailyFocus: { type: Number, default: 250000 },
 | 
				
			||||||
@ -948,7 +948,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
 | 
				
			|||||||
        //Item Mastery Rank exp
 | 
					        //Item Mastery Rank exp
 | 
				
			||||||
        XPInfo: [TypeXPItemSchema],
 | 
					        XPInfo: [TypeXPItemSchema],
 | 
				
			||||||
        //Mastery Rank next availability
 | 
					        //Mastery Rank next availability
 | 
				
			||||||
        TrainingDate: Date,
 | 
					        TrainingDate: { type: Date, default: new Date(0) },
 | 
				
			||||||
        //Retries rank up(3 time)
 | 
					        //Retries rank up(3 time)
 | 
				
			||||||
        TrainingRetriesLeft: Number,
 | 
					        TrainingRetriesLeft: Number,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -974,7 +974,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
 | 
				
			|||||||
        CompletedAlerts: [String],
 | 
					        CompletedAlerts: [String],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //Warframe\Duviri
 | 
					        //Warframe\Duviri
 | 
				
			||||||
        StoryModeChoice: String,
 | 
					        StoryModeChoice: { type: String, default: "WARFRAME" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //Alert->Kuva Siphon
 | 
					        //Alert->Kuva Siphon
 | 
				
			||||||
        PeriodicMissionCompletions: [periodicMissionCompletionsSchema],
 | 
					        PeriodicMissionCompletions: [periodicMissionCompletionsSchema],
 | 
				
			||||||
 | 
				
			|||||||
@ -74,16 +74,38 @@ const apartmentSchema = new Schema<IApartment>(
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    { _id: false }
 | 
					    { _id: false }
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					const apartmentDefault: IApartment = {
 | 
				
			||||||
 | 
					    Rooms: [
 | 
				
			||||||
 | 
					        { Name: "ElevatorLanding", MaxCapacity: 1600 },
 | 
				
			||||||
 | 
					        { Name: "ApartmentRoomA", MaxCapacity: 1000 },
 | 
				
			||||||
 | 
					        { Name: "ApartmentRoomB", MaxCapacity: 1600 },
 | 
				
			||||||
 | 
					        { Name: "ApartmentRoomC", MaxCapacity: 1600 },
 | 
				
			||||||
 | 
					        { Name: "DuviriHallway", MaxCapacity: 1600 }
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    FavouriteLoadouts: [],
 | 
				
			||||||
 | 
					    Gardening: {}
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const orbiterSchema = new Schema<IOrbiter>(
 | 
					const orbiterSchema = new Schema<IOrbiter>(
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        Features: [String],
 | 
					        Features: [String],
 | 
				
			||||||
        Rooms: [roomSchema],
 | 
					        Rooms: [roomSchema],
 | 
				
			||||||
        ContentUrlSignature: String,
 | 
					        ContentUrlSignature: { type: String, required: false },
 | 
				
			||||||
        BootLocation: String
 | 
					        BootLocation: String
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    { _id: false }
 | 
					    { _id: false }
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					const orbiterDefault: IOrbiter = {
 | 
				
			||||||
 | 
					    Features: [],
 | 
				
			||||||
 | 
					    Rooms: [
 | 
				
			||||||
 | 
					        { Name: "AlchemyRoom", MaxCapacity: 1600 },
 | 
				
			||||||
 | 
					        { Name: "BridgeRoom", MaxCapacity: 1600 },
 | 
				
			||||||
 | 
					        { Name: "LisetRoom", MaxCapacity: 1000 },
 | 
				
			||||||
 | 
					        { Name: "OperatorChamberRoom", MaxCapacity: 1600 },
 | 
				
			||||||
 | 
					        { Name: "OutsideRoom", MaxCapacity: 1600 },
 | 
				
			||||||
 | 
					        { Name: "PersonalQuartersRoom", MaxCapacity: 1600 }
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const favouriteLoadoutSchema = new Schema<IFavouriteLoadoutDatabase>(
 | 
					const favouriteLoadoutSchema = new Schema<IFavouriteLoadoutDatabase>(
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@ -114,18 +136,9 @@ const tailorShopDefault: ITailorShopDatabase = {
 | 
				
			|||||||
    CustomJson: "{}",
 | 
					    CustomJson: "{}",
 | 
				
			||||||
    LevelDecosVisible: true,
 | 
					    LevelDecosVisible: true,
 | 
				
			||||||
    Rooms: [
 | 
					    Rooms: [
 | 
				
			||||||
        {
 | 
					        { Name: "LabRoom", MaxCapacity: 4000 },
 | 
				
			||||||
            Name: "LabRoom",
 | 
					        { Name: "LivingQuartersRoom", MaxCapacity: 3000 },
 | 
				
			||||||
            MaxCapacity: 4000
 | 
					        { Name: "HelminthRoom", MaxCapacity: 2000 }
 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            Name: "LivingQuartersRoom",
 | 
					 | 
				
			||||||
            MaxCapacity: 3000
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            Name: "HelminthRoom",
 | 
					 | 
				
			||||||
            MaxCapacity: 2000
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -133,8 +146,8 @@ export const personalRoomsSchema = new Schema<IPersonalRoomsDatabase>({
 | 
				
			|||||||
    personalRoomsOwnerId: Schema.Types.ObjectId,
 | 
					    personalRoomsOwnerId: Schema.Types.ObjectId,
 | 
				
			||||||
    activeShipId: Schema.Types.ObjectId,
 | 
					    activeShipId: Schema.Types.ObjectId,
 | 
				
			||||||
    ShipInteriorColors: colorSchema,
 | 
					    ShipInteriorColors: colorSchema,
 | 
				
			||||||
    Ship: orbiterSchema,
 | 
					    Ship: { type: orbiterSchema, default: orbiterDefault },
 | 
				
			||||||
    Apartment: apartmentSchema,
 | 
					    Apartment: { type: apartmentSchema, default: apartmentDefault },
 | 
				
			||||||
    TailorShop: { type: tailorShopSchema, default: tailorShopDefault }
 | 
					    TailorShop: { type: tailorShopSchema, default: tailorShopDefault }
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,4 @@
 | 
				
			|||||||
import { Inventory, TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
 | 
					import { Inventory, TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
 | 
				
			||||||
import postTutorialInventory from "@/static/fixed_responses/postTutorialInventory.json";
 | 
					 | 
				
			||||||
import { config } from "@/src/services/configService";
 | 
					import { config } from "@/src/services/configService";
 | 
				
			||||||
import { Types } from "mongoose";
 | 
					import { Types } from "mongoose";
 | 
				
			||||||
import { SlotNames, IInventoryChanges, IBinChanges, ICurrencyChanges } from "@/src/types/purchaseTypes";
 | 
					import { SlotNames, IInventoryChanges, IBinChanges, ICurrencyChanges } from "@/src/types/purchaseTypes";
 | 
				
			||||||
@ -46,25 +45,90 @@ export const createInventory = async (
 | 
				
			|||||||
    defaultItemReferences: { loadOutPresetId: Types.ObjectId; ship: Types.ObjectId }
 | 
					    defaultItemReferences: { loadOutPresetId: Types.ObjectId; ship: Types.ObjectId }
 | 
				
			||||||
): Promise<void> => {
 | 
					): Promise<void> => {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const inventory = config.skipTutorial
 | 
					        const inventory = new Inventory({
 | 
				
			||||||
            ? new Inventory({
 | 
					 | 
				
			||||||
            accountOwnerId: accountOwnerId,
 | 
					            accountOwnerId: accountOwnerId,
 | 
				
			||||||
            LoadOutPresets: defaultItemReferences.loadOutPresetId,
 | 
					            LoadOutPresets: defaultItemReferences.loadOutPresetId,
 | 
				
			||||||
            Ships: [defaultItemReferences.ship],
 | 
					            Ships: [defaultItemReferences.ship],
 | 
				
			||||||
                  ...postTutorialInventory
 | 
					            PlayedParkourTutorial: config.skipTutorial,
 | 
				
			||||||
              })
 | 
					            ReceivedStartingGear: config.skipTutorial
 | 
				
			||||||
            : new Inventory({
 | 
					 | 
				
			||||||
                  accountOwnerId: accountOwnerId,
 | 
					 | 
				
			||||||
                  LoadOutPresets: defaultItemReferences.loadOutPresetId,
 | 
					 | 
				
			||||||
                  Ships: [defaultItemReferences.ship],
 | 
					 | 
				
			||||||
                  TrainingDate: 0
 | 
					 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (config.skipTutorial) {
 | 
				
			||||||
 | 
					            const defaultEquipment = [
 | 
				
			||||||
 | 
					                // Awakening rewards
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Powersuits/Excalibur/Excalibur" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Weapons/Tenno/Melee/LongSword/LongSword" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Weapons/Tenno/Pistol/Pistol" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Weapons/Tenno/Rifle/Rifle" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem1" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem2" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem3" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem4" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Types/Restoratives/LisetAutoHack" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // Vor's Prize rewards
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarHealthMaxMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarShieldMaxMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarAbilityRangeMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarAbilityStrengthMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarAbilityDurationMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarPickupBonusMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarPowerMaxMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Warframe/AvatarEnemyRadarMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Melee/WeaponFireRateMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Melee/WeaponMeleeDamageMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Rifle/WeaponFactionDamageCorpus" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Rifle/WeaponFactionDamageGrineer" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Rifle/WeaponDamageAmountMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Pistol/WeaponFireDamageMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Pistol/WeaponElectricityDamageMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Upgrades/Mods/Pistol/WeaponDamageAmountMod" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Types/Recipes/Weapons/BurstonRifleBlueprint" },
 | 
				
			||||||
 | 
					                { ItemCount: 1, ItemType: "/Lotus/Types/Items/MiscItems/Morphic" },
 | 
				
			||||||
 | 
					                { ItemCount: 400, ItemType: "/Lotus/Types/Items/MiscItems/PolymerBundle" },
 | 
				
			||||||
 | 
					                { ItemCount: 150, ItemType: "/Lotus/Types/Items/MiscItems/AlloyPlate" }
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            for (const equipment of defaultEquipment) {
 | 
				
			||||||
 | 
					                await addItem(inventory, equipment.ItemType, equipment.ItemCount);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Missing in Public Export
 | 
				
			||||||
 | 
					            inventory.Horses.push({
 | 
				
			||||||
 | 
					                ItemType: "/Lotus/Types/NeutralCreatures/ErsatzHorse/ErsatzHorsePowerSuit"
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            inventory.DataKnives.push({
 | 
				
			||||||
 | 
					                ItemType: "/Lotus/Weapons/Tenno/HackingDevices/TnHackingDevice/TnHackingDeviceWeapon",
 | 
				
			||||||
 | 
					                XP: 450000
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            inventory.Scoops.push({
 | 
				
			||||||
 | 
					                ItemType: "/Lotus/Weapons/Tenno/Speedball/SpeedballWeaponTest"
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            inventory.DrifterMelee.push({
 | 
				
			||||||
 | 
					                ItemType: "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords"
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            inventory.QuestKeys.push({
 | 
				
			||||||
 | 
					                Completed: true,
 | 
				
			||||||
 | 
					                ItemType: "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain"
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            const completedMissions = ["SolNode27", "SolNode89", "SolNode63", "SolNode85", "SolNode15", "SolNode79"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            inventory.Missions.push(
 | 
				
			||||||
 | 
					                ...completedMissions.map(tag => ({
 | 
				
			||||||
 | 
					                    Completes: 1,
 | 
				
			||||||
 | 
					                    Tag: tag
 | 
				
			||||||
 | 
					                }))
 | 
				
			||||||
 | 
					            );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            inventory.RegularCredits = 25000;
 | 
				
			||||||
 | 
					            inventory.FusionPoints = 180;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        await inventory.save();
 | 
					        await inventory.save();
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
        if (error instanceof Error) {
 | 
					        throw new Error(`Error creating inventory: ${error instanceof Error ? error.message : "Unknown error"}`);
 | 
				
			||||||
            throw new Error(`error creating inventory" ${error.message}`);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        throw new Error("error creating inventory that is not of instance Error");
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,6 @@ import { createShip } from "./shipService";
 | 
				
			|||||||
import { Document, Types } from "mongoose";
 | 
					import { Document, Types } from "mongoose";
 | 
				
			||||||
import { Loadout } from "@/src/models/inventoryModels/loadoutModel";
 | 
					import { Loadout } from "@/src/models/inventoryModels/loadoutModel";
 | 
				
			||||||
import { PersonalRooms } from "@/src/models/personalRoomsModel";
 | 
					import { PersonalRooms } from "@/src/models/personalRoomsModel";
 | 
				
			||||||
import new_personal_rooms from "@/static/fixed_responses/personalRooms.json";
 | 
					 | 
				
			||||||
import { Request } from "express";
 | 
					import { Request } from "express";
 | 
				
			||||||
import { config } from "@/src/services/configService";
 | 
					import { config } from "@/src/services/configService";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -42,10 +41,21 @@ export const createLoadout = async (accountId: Types.ObjectId): Promise<Types.Ob
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export const createPersonalRooms = async (accountId: Types.ObjectId, shipId: Types.ObjectId): Promise<void> => {
 | 
					export const createPersonalRooms = async (accountId: Types.ObjectId, shipId: Types.ObjectId): Promise<void> => {
 | 
				
			||||||
    const personalRooms = new PersonalRooms({
 | 
					    const personalRooms = new PersonalRooms({
 | 
				
			||||||
        ...new_personal_rooms,
 | 
					 | 
				
			||||||
        personalRoomsOwnerId: accountId,
 | 
					        personalRoomsOwnerId: accountId,
 | 
				
			||||||
        activeShipId: shipId
 | 
					        activeShipId: shipId
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					    if (config.skipTutorial) {
 | 
				
			||||||
 | 
					        // Vor's Prize rewards
 | 
				
			||||||
 | 
					        const defaultFeatures = [
 | 
				
			||||||
 | 
					            "/Lotus/Types/Items/ShipFeatureItems/EarthNavigationFeatureItem",
 | 
				
			||||||
 | 
					            "/Lotus/Types/Items/ShipFeatureItems/MercuryNavigationFeatureItem",
 | 
				
			||||||
 | 
					            "/Lotus/Types/Items/ShipFeatureItems/ArsenalFeatureItem",
 | 
				
			||||||
 | 
					            "/Lotus/Types/Items/ShipFeatureItems/SocialMenuFeatureItem",
 | 
				
			||||||
 | 
					            "/Lotus/Types/Items/ShipFeatureItems/FoundryFeatureItem",
 | 
				
			||||||
 | 
					            "/Lotus/Types/Items/ShipFeatureItems/ModsFeatureItem"
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					        personalRooms.Ship.Features.push(...defaultFeatures);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    await personalRooms.save();
 | 
					    await personalRooms.save();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ import { Model, Types } from "mongoose";
 | 
				
			|||||||
export interface IOrbiter {
 | 
					export interface IOrbiter {
 | 
				
			||||||
    Features: string[];
 | 
					    Features: string[];
 | 
				
			||||||
    Rooms: IRoom[];
 | 
					    Rooms: IRoom[];
 | 
				
			||||||
    ContentUrlSignature: string;
 | 
					    ContentUrlSignature?: string;
 | 
				
			||||||
    BootLocation?: TBootLocation;
 | 
					    BootLocation?: TBootLocation;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -28,7 +28,7 @@ export interface IShip {
 | 
				
			|||||||
    ShipId: IOid;
 | 
					    ShipId: IOid;
 | 
				
			||||||
    ShipInterior: IShipInterior;
 | 
					    ShipInterior: IShipInterior;
 | 
				
			||||||
    Rooms: IRoom[];
 | 
					    Rooms: IRoom[];
 | 
				
			||||||
    ContentUrlSignature: string;
 | 
					    ContentUrlSignature?: string;
 | 
				
			||||||
    BootLocation?: TBootLocation;
 | 
					    BootLocation?: TBootLocation;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -58,7 +58,7 @@ export interface IPlanters {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IGardening {
 | 
					export interface IGardening {
 | 
				
			||||||
    Planters: IPlanters[];
 | 
					    Planters?: IPlanters[];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
export interface IApartment {
 | 
					export interface IApartment {
 | 
				
			||||||
    Gardening: IGardening;
 | 
					    Gardening: IGardening;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,23 +1,42 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "Inbox": [
 | 
					  "Inbox": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "sndr": "/Lotus/Language/Bosses/Ordis",
 | 
					      "sub": "/Lotus/Language/Inbox/DarvoWeaponCraftingMessageBTitle",
 | 
				
			||||||
      "msg": "/Lotus/Language/Inbox/ThankYouFreeMultipleContent",
 | 
					      "sndr": "/Lotus/Language/Bosses/Darvo",
 | 
				
			||||||
 | 
					      "msg": "/Lotus/Language/Inbox/DarvoWeaponCraftingMessageBDesc",
 | 
				
			||||||
 | 
					      "icon": "/Lotus/Interface/Icons/Npcs/Darvo.png",
 | 
				
			||||||
      "countedAtt": [
 | 
					      "countedAtt": [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          "ItemType": "/Lotus/Upgrades/Skins/Promo/Twitch/OgrisTwitchSkin",
 | 
					          "ItemCount": 1,
 | 
				
			||||||
          "ItemCount": 1
 | 
					          "ItemType": "/Lotus/Types/Recipes/Weapons/BurstonRifleBlueprint"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          "ItemType": "/Lotus/Weapons/ClanTech/Chemical/RocketLauncher",
 | 
					          "ItemCount": 1,
 | 
				
			||||||
          "ItemCount": 1
 | 
					          "ItemType": "/Lotus/Types/Items/MiscItems/Morphic"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "ItemCount": 400,
 | 
				
			||||||
 | 
					          "ItemType": "/Lotus/Types/Items/MiscItems/PolymerBundle"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "ItemCount": 150,
 | 
				
			||||||
 | 
					          "ItemType": "/Lotus/Types/Items/MiscItems/AlloyPlate"
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
      "sub": "/Lotus/Language/Inbox/ThankYouFreeMultipleSubject",
 | 
					 | 
				
			||||||
      "icon": "/Lotus/Interface/Icons/Npcs/Ordis.png",
 | 
					 | 
				
			||||||
      "highPriority": true,
 | 
					      "highPriority": true,
 | 
				
			||||||
      "messageId": "removed",
 | 
					      "messageId": "66d651800000000000000000",
 | 
				
			||||||
      "date": { "$date": { "$numberLong": "removed" } },
 | 
					      "date": { "$date": { "$numberLong": "1725321600000" } },
 | 
				
			||||||
 | 
					      "r": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      "sub": "/Lotus/Language/G1Quests/Beginner_Growth_Inbox_Title",
 | 
				
			||||||
 | 
					      "sndr": "/Lotus/Language/Menu/Mailbox_WarframeSender",
 | 
				
			||||||
 | 
					      "msg": "/Lotus/Language/G1Quests/Beginner_Growth_Inbox_Desc",
 | 
				
			||||||
 | 
					      "icon": "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
 | 
				
			||||||
 | 
					      "transmission": "/Lotus/Sounds/Dialog/VorsPrize/DLisetPostAssassinate110Lotus",
 | 
				
			||||||
 | 
					      "highPriority": true,
 | 
				
			||||||
 | 
					      "messageId": "66d651810000000000000000",
 | 
				
			||||||
 | 
					      "date": { "$date": { "$numberLong": "1725321601000" } },
 | 
				
			||||||
      "r": true
 | 
					      "r": true
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
 | 
				
			|||||||
@ -1,131 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "SubscribedToEmails": 0,
 | 
					 | 
				
			||||||
  "Created": { "$date": { "$numberLong": "removed" } },
 | 
					 | 
				
			||||||
  "SubscribedToEmailsPersonalized": 0,
 | 
					 | 
				
			||||||
  "RewardSeed": -123123123123123,
 | 
					 | 
				
			||||||
  "CrewMemberBin": { "Slots": 3 },
 | 
					 | 
				
			||||||
  "CrewShipSalvageBin": { "Slots": 8 },
 | 
					 | 
				
			||||||
  "DrifterMelee": [
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords",
 | 
					 | 
				
			||||||
      "ItemId": { "$oid": "removed" }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  ],
 | 
					 | 
				
			||||||
  "FusionPoints": 0,
 | 
					 | 
				
			||||||
  "MechBin": { "Slots": 4 },
 | 
					 | 
				
			||||||
  "OperatorAmpBin": { "Slots": 8 },
 | 
					 | 
				
			||||||
  "PveBonusLoadoutBin": { "Slots": 0 },
 | 
					 | 
				
			||||||
  "PvpBonusLoadoutBin": { "Slots": 0 },
 | 
					 | 
				
			||||||
  "RandomModBin": { "Slots": 15 },
 | 
					 | 
				
			||||||
  "RegularCredits": 0,
 | 
					 | 
				
			||||||
  "SentinelBin": { "Slots": 10 },
 | 
					 | 
				
			||||||
  "SpaceSuitBin": { "Slots": 4 },
 | 
					 | 
				
			||||||
  "SpaceWeaponBin": { "Slots": 4 },
 | 
					 | 
				
			||||||
  "SuitBin": { "Slots": 2 },
 | 
					 | 
				
			||||||
  "WeaponBin": { "Slots": 8 },
 | 
					 | 
				
			||||||
  "LastInventorySync": { "$oid": "removed" },
 | 
					 | 
				
			||||||
  "NextRefill": { "$date": { "$numberLong": "removed" } },
 | 
					 | 
				
			||||||
  "ActiveLandscapeTraps": [],
 | 
					 | 
				
			||||||
  "ChallengeProgress": [],
 | 
					 | 
				
			||||||
  "CrewMembers": [],
 | 
					 | 
				
			||||||
  "CrewShips": [],
 | 
					 | 
				
			||||||
  "CrewShipHarnesses": [],
 | 
					 | 
				
			||||||
  "CrewShipSalvagedWeapons": [],
 | 
					 | 
				
			||||||
  "CrewShipSalvagedWeaponSkins": [],
 | 
					 | 
				
			||||||
  "CrewShipWeapons": [],
 | 
					 | 
				
			||||||
  "CrewShipWeaponSkins": [],
 | 
					 | 
				
			||||||
  "DataKnives": [],
 | 
					 | 
				
			||||||
  "DrifterGuns": [],
 | 
					 | 
				
			||||||
  "Drones": [],
 | 
					 | 
				
			||||||
  "Horses": [],
 | 
					 | 
				
			||||||
  "Hoverboards": [],
 | 
					 | 
				
			||||||
  "KubrowPets": [],
 | 
					 | 
				
			||||||
  "KubrowPetEggs": [],
 | 
					 | 
				
			||||||
  "KubrowPetPrints": [],
 | 
					 | 
				
			||||||
  "LongGuns": [],
 | 
					 | 
				
			||||||
  "MechSuits": [],
 | 
					 | 
				
			||||||
  "Melee": [],
 | 
					 | 
				
			||||||
  "MoaPets": [],
 | 
					 | 
				
			||||||
  "OperatorAmps": [],
 | 
					 | 
				
			||||||
  "OperatorLoadOuts": [],
 | 
					 | 
				
			||||||
  "AdultOperatorLoadOuts": [],
 | 
					 | 
				
			||||||
  "KahlLoadOuts": [],
 | 
					 | 
				
			||||||
  "PendingRecipes": [],
 | 
					 | 
				
			||||||
  "PersonalGoalProgress": [],
 | 
					 | 
				
			||||||
  "PersonalTechProjects": [],
 | 
					 | 
				
			||||||
  "Pistols": [],
 | 
					 | 
				
			||||||
  "QualifyingInvasions": [],
 | 
					 | 
				
			||||||
  "RepVotes": [],
 | 
					 | 
				
			||||||
  "Scoops": [],
 | 
					 | 
				
			||||||
  "Sentinels": [],
 | 
					 | 
				
			||||||
  "SentinelWeapons": [],
 | 
					 | 
				
			||||||
  "Ships": [{ "ItemType": "/Lotus/Types/Items/Ships/DefaultShip", "ItemId": { "$oid": "123123" } }],
 | 
					 | 
				
			||||||
  "SpaceGuns": [],
 | 
					 | 
				
			||||||
  "SpaceMelee": [],
 | 
					 | 
				
			||||||
  "SpaceSuits": [],
 | 
					 | 
				
			||||||
  "SpecialItems": [],
 | 
					 | 
				
			||||||
  "StepSequencers": [],
 | 
					 | 
				
			||||||
  "Suits": [],
 | 
					 | 
				
			||||||
  "Upgrades": [],
 | 
					 | 
				
			||||||
  "WeaponSkins": [],
 | 
					 | 
				
			||||||
  "Boosters": [],
 | 
					 | 
				
			||||||
  "Consumables": [],
 | 
					 | 
				
			||||||
  "EmailItems": [],
 | 
					 | 
				
			||||||
  "FlavourItems": [],
 | 
					 | 
				
			||||||
  "FocusUpgrades": [],
 | 
					 | 
				
			||||||
  "FusionTreasures": [],
 | 
					 | 
				
			||||||
  "LeagueTickets": [],
 | 
					 | 
				
			||||||
  "LevelKeys": [],
 | 
					 | 
				
			||||||
  "LoreFragmentScans": [],
 | 
					 | 
				
			||||||
  "MiscItems": [],
 | 
					 | 
				
			||||||
  "PendingSpectreLoadouts": [],
 | 
					 | 
				
			||||||
  "Quests": [],
 | 
					 | 
				
			||||||
  "QuestKeys": [],
 | 
					 | 
				
			||||||
  "RawUpgrades": [],
 | 
					 | 
				
			||||||
  "Recipes": [],
 | 
					 | 
				
			||||||
  "Robotics": [],
 | 
					 | 
				
			||||||
  "ShipDecorations": [],
 | 
					 | 
				
			||||||
  "SpectreLoadouts": [],
 | 
					 | 
				
			||||||
  "XPInfo": [],
 | 
					 | 
				
			||||||
  "CrewShipAmmo": [],
 | 
					 | 
				
			||||||
  "CrewShipRawSalvage": [],
 | 
					 | 
				
			||||||
  "EvolutionProgress": [],
 | 
					 | 
				
			||||||
  "Missions": [],
 | 
					 | 
				
			||||||
  "TauntHistory": [],
 | 
					 | 
				
			||||||
  "CompletedSyndicates": [],
 | 
					 | 
				
			||||||
  "UsedDailyDeals": [],
 | 
					 | 
				
			||||||
  "DailyAffiliation": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationPvp": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationLibrary": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationCetus": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationQuills": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationSolaris": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationVentkids": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationVox": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationEntrati": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationNecraloid": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationZariman": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationKahl": 16000,
 | 
					 | 
				
			||||||
  "DailyFocus": 250000,
 | 
					 | 
				
			||||||
  "GiftsRemaining": 8,
 | 
					 | 
				
			||||||
  "LibraryAvailableDailyTaskInfo": {
 | 
					 | 
				
			||||||
    "EnemyTypes": ["/Lotus/Types/Enemies/Orokin/OrokinBladeSawmanAvatar"],
 | 
					 | 
				
			||||||
    "EnemyLocTag": "/Lotus/Language/Game/OrokinBladeSawman",
 | 
					 | 
				
			||||||
    "EnemyIcon": "/Lotus/Interface/Icons/Npcs/Orokin/OrokinBladeSawman.png",
 | 
					 | 
				
			||||||
    "ScansRequired": 4,
 | 
					 | 
				
			||||||
    "RewardStoreItem": "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/UncommonFusionBundle",
 | 
					 | 
				
			||||||
    "RewardQuantity": 10,
 | 
					 | 
				
			||||||
    "RewardStanding": 10000
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "DuviriInfo": { "Seed": 123123123123123123, "NumCompletions": 0 },
 | 
					 | 
				
			||||||
  "TradesRemaining": 0,
 | 
					 | 
				
			||||||
  "HasContributedToDojo": false,
 | 
					 | 
				
			||||||
  "HasResetAccount": false,
 | 
					 | 
				
			||||||
  "PendingCoupon": {
 | 
					 | 
				
			||||||
    "Expiry": { "$date": { "$numberLong": "0" } },
 | 
					 | 
				
			||||||
    "Discount": 0
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "PremiumCreditsFree": 0,
 | 
					 | 
				
			||||||
  "ReceivedStartingGear": true,
 | 
					 | 
				
			||||||
  "StoryModeChoice": "WARFRAME"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,122 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "SubscribedToEmails": 0,
 | 
					 | 
				
			||||||
  "Created": { "$date": { "$numberLong": "1685829131" } },
 | 
					 | 
				
			||||||
  "SubscribedToEmailsPersonalized": 0,
 | 
					 | 
				
			||||||
  "RewardSeed": -5604904486637265640,
 | 
					 | 
				
			||||||
  "CrewMemberBin": { "Slots": 3 },
 | 
					 | 
				
			||||||
  "CrewShipSalvageBin": { "Slots": 8 },
 | 
					 | 
				
			||||||
  "DrifterMelee": [{ "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords", "ItemId": { "$oid": "647bb619e15fa43f0ee4b1b1" } }],
 | 
					 | 
				
			||||||
  "FusionPoints": 0,
 | 
					 | 
				
			||||||
  "MechBin": { "Slots": 4 },
 | 
					 | 
				
			||||||
  "OperatorAmpBin": { "Slots": 8 },
 | 
					 | 
				
			||||||
  "PveBonusLoadoutBin": { "Slots": 0 },
 | 
					 | 
				
			||||||
  "PvpBonusLoadoutBin": { "Slots": 0 },
 | 
					 | 
				
			||||||
  "RandomModBin": { "Slots": 15 },
 | 
					 | 
				
			||||||
  "RegularCredits": 0,
 | 
					 | 
				
			||||||
  "SentinelBin": { "Slots": 10 },
 | 
					 | 
				
			||||||
  "SpaceSuitBin": { "Slots": 4 },
 | 
					 | 
				
			||||||
  "SpaceWeaponBin": { "Slots": 4 },
 | 
					 | 
				
			||||||
  "SuitBin": { "Slots": 2 },
 | 
					 | 
				
			||||||
  "WeaponBin": { "Slots": 8 },
 | 
					 | 
				
			||||||
  "LastInventorySync": { "$oid": "647bb5d79f963c9d24668257" },
 | 
					 | 
				
			||||||
  "NextRefill": { "$date": { "$numberLong": "1685829131" } },
 | 
					 | 
				
			||||||
  "ActiveLandscapeTraps": [],
 | 
					 | 
				
			||||||
  "ChallengeProgress": [],
 | 
					 | 
				
			||||||
  "CrewMembers": [],
 | 
					 | 
				
			||||||
  "CrewShips": [],
 | 
					 | 
				
			||||||
  "CrewShipHarnesses": [],
 | 
					 | 
				
			||||||
  "CrewShipSalvagedWeapons": [],
 | 
					 | 
				
			||||||
  "CrewShipSalvagedWeaponSkins": [],
 | 
					 | 
				
			||||||
  "CrewShipWeapons": [],
 | 
					 | 
				
			||||||
  "CrewShipWeaponSkins": [],
 | 
					 | 
				
			||||||
  "DataKnives": [],
 | 
					 | 
				
			||||||
  "DrifterGuns": [],
 | 
					 | 
				
			||||||
  "Drones": [],
 | 
					 | 
				
			||||||
  "Horses": [],
 | 
					 | 
				
			||||||
  "Hoverboards": [],
 | 
					 | 
				
			||||||
  "KubrowPets": [],
 | 
					 | 
				
			||||||
  "KubrowPetEggs": [],
 | 
					 | 
				
			||||||
  "KubrowPetPrints": [],
 | 
					 | 
				
			||||||
  "LongGuns": [],
 | 
					 | 
				
			||||||
  "MechSuits": [],
 | 
					 | 
				
			||||||
  "Melee": [],
 | 
					 | 
				
			||||||
  "MoaPets": [],
 | 
					 | 
				
			||||||
  "OperatorAmps": [],
 | 
					 | 
				
			||||||
  "OperatorLoadOuts": [],
 | 
					 | 
				
			||||||
  "AdultOperatorLoadOuts": [],
 | 
					 | 
				
			||||||
  "KahlLoadOuts": [],
 | 
					 | 
				
			||||||
  "PendingRecipes": [],
 | 
					 | 
				
			||||||
  "PersonalGoalProgress": [],
 | 
					 | 
				
			||||||
  "PersonalTechProjects": [],
 | 
					 | 
				
			||||||
  "Pistols": [],
 | 
					 | 
				
			||||||
  "QualifyingInvasions": [],
 | 
					 | 
				
			||||||
  "RepVotes": [],
 | 
					 | 
				
			||||||
  "Scoops": [],
 | 
					 | 
				
			||||||
  "Sentinels": [],
 | 
					 | 
				
			||||||
  "SentinelWeapons": [],
 | 
					 | 
				
			||||||
  "Ships": [],
 | 
					 | 
				
			||||||
  "SpaceGuns": [],
 | 
					 | 
				
			||||||
  "SpaceMelee": [],
 | 
					 | 
				
			||||||
  "SpaceSuits": [],
 | 
					 | 
				
			||||||
  "SpecialItems": [],
 | 
					 | 
				
			||||||
  "StepSequencers": [],
 | 
					 | 
				
			||||||
  "Suits": [],
 | 
					 | 
				
			||||||
  "Upgrades": [],
 | 
					 | 
				
			||||||
  "WeaponSkins": [],
 | 
					 | 
				
			||||||
  "Boosters": [],
 | 
					 | 
				
			||||||
  "Consumables": [],
 | 
					 | 
				
			||||||
  "EmailItems": [],
 | 
					 | 
				
			||||||
  "FlavourItems": [],
 | 
					 | 
				
			||||||
  "FocusUpgrades": [],
 | 
					 | 
				
			||||||
  "FusionTreasures": [],
 | 
					 | 
				
			||||||
  "LeagueTickets": [],
 | 
					 | 
				
			||||||
  "LevelKeys": [],
 | 
					 | 
				
			||||||
  "LoreFragmentScans": [],
 | 
					 | 
				
			||||||
  "MiscItems": [],
 | 
					 | 
				
			||||||
  "PendingSpectreLoadouts": [],
 | 
					 | 
				
			||||||
  "Quests": [],
 | 
					 | 
				
			||||||
  "QuestKeys": [],
 | 
					 | 
				
			||||||
  "RawUpgrades": [],
 | 
					 | 
				
			||||||
  "Recipes": [],
 | 
					 | 
				
			||||||
  "Robotics": [],
 | 
					 | 
				
			||||||
  "ShipDecorations": [],
 | 
					 | 
				
			||||||
  "SpectreLoadouts": [],
 | 
					 | 
				
			||||||
  "XPInfo": [],
 | 
					 | 
				
			||||||
  "CrewShipAmmo": [],
 | 
					 | 
				
			||||||
  "CrewShipRawSalvage": [],
 | 
					 | 
				
			||||||
  "EvolutionProgress": [],
 | 
					 | 
				
			||||||
  "Missions": [],
 | 
					 | 
				
			||||||
  "TauntHistory": [],
 | 
					 | 
				
			||||||
  "CompletedSyndicates": [],
 | 
					 | 
				
			||||||
  "UsedDailyDeals": [],
 | 
					 | 
				
			||||||
  "DailyAffiliation": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationPvp": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationLibrary": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationCetus": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationQuills": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationSolaris": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationVentkids": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationVox": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationEntrati": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationNecraloid": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationZariman": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationKahl": 16000,
 | 
					 | 
				
			||||||
  "DailyAffiliationCavia": 16000,
 | 
					 | 
				
			||||||
  "DailyFocus": 250000,
 | 
					 | 
				
			||||||
  "GiftsRemaining": 8,
 | 
					 | 
				
			||||||
  "LibraryAvailableDailyTaskInfo": {
 | 
					 | 
				
			||||||
    "EnemyTypes": ["/Lotus/Types/Enemies/Orokin/OrokinBladeSawmanAvatar"],
 | 
					 | 
				
			||||||
    "EnemyLocTag": "/Lotus/Language/Game/OrokinBladeSawman",
 | 
					 | 
				
			||||||
    "EnemyIcon": "/Lotus/Interface/Icons/Npcs/Orokin/OrokinBladeSawman.png",
 | 
					 | 
				
			||||||
    "ScansRequired": 4,
 | 
					 | 
				
			||||||
    "RewardStoreItem": "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/UncommonFusionBundle",
 | 
					 | 
				
			||||||
    "RewardQuantity": 10,
 | 
					 | 
				
			||||||
    "RewardStanding": 10000
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "DuviriInfo": { "Seed": 5898912197983600352, "NumCompletions": 0 },
 | 
					 | 
				
			||||||
  "TradesRemaining": 0,
 | 
					 | 
				
			||||||
  "HasContributedToDojo": false,
 | 
					 | 
				
			||||||
  "HasResetAccount": false,
 | 
					 | 
				
			||||||
  "PendingCoupon": { "Expiry": { "$date": { "$numberLong": "0" } }, "Discount": 0 },
 | 
					 | 
				
			||||||
  "PremiumCreditsFree": 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,32 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "Ship": {
 | 
					 | 
				
			||||||
    "Features": [
 | 
					 | 
				
			||||||
      "/Lotus/Types/Items/ShipFeatureItems/EarthNavigationFeatureItem",
 | 
					 | 
				
			||||||
      "/Lotus/Types/Items/ShipFeatureItems/ArsenalFeatureItem",
 | 
					 | 
				
			||||||
      "/Lotus/Types/Items/ShipFeatureItems/SocialMenuFeatureItem",
 | 
					 | 
				
			||||||
      "/Lotus/Types/Items/ShipFeatureItems/ModsFeatureItem",
 | 
					 | 
				
			||||||
      "/Lotus/Types/Items/ShipFeatureItems/FoundryFeatureItem",
 | 
					 | 
				
			||||||
      "/Lotus/Types/Items/ShipFeatureItems/MercuryNavigationFeatureItem"
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    "Rooms": [
 | 
					 | 
				
			||||||
      { "Name": "AlchemyRoom", "MaxCapacity": 1600 },
 | 
					 | 
				
			||||||
      { "Name": "BridgeRoom", "MaxCapacity": 1600 },
 | 
					 | 
				
			||||||
      { "Name": "LisetRoom", "MaxCapacity": 1000 },
 | 
					 | 
				
			||||||
      { "Name": "OperatorChamberRoom", "MaxCapacity": 1600 },
 | 
					 | 
				
			||||||
      { "Name": "OutsideRoom", "MaxCapacity": 1600 },
 | 
					 | 
				
			||||||
      { "Name": "PersonalQuartersRoom", "MaxCapacity": 1600 }
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    "ContentUrlSignature": "removed"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "Apartment": {
 | 
					 | 
				
			||||||
    "Rooms": [
 | 
					 | 
				
			||||||
      { "Name": "ElevatorLanding", "MaxCapacity": 1600 },
 | 
					 | 
				
			||||||
      { "Name": "ApartmentRoomA", "MaxCapacity": 1000 },
 | 
					 | 
				
			||||||
      { "Name": "ApartmentRoomB", "MaxCapacity": 1600 },
 | 
					 | 
				
			||||||
      { "Name": "ApartmentRoomC", "MaxCapacity": 1600 },
 | 
					 | 
				
			||||||
      { "Name": "DuviriHallway", "MaxCapacity": 1600 }
 | 
					 | 
				
			||||||
    ],
 | 
					 | 
				
			||||||
    "FavouriteLoadouts": [],
 | 
					 | 
				
			||||||
    "Gardening": {}
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,140 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "SubscribedToEmails": 0,
 | 
					 | 
				
			||||||
  "SubscribedToEmailsPersonalized": 0,
 | 
					 | 
				
			||||||
  "RewardSeed": -5604904486637265640,
 | 
					 | 
				
			||||||
  "CrewMemberBin": { "Slots": 3 },
 | 
					 | 
				
			||||||
  "CrewShipSalvageBin": { "Slots": 8 },
 | 
					 | 
				
			||||||
  "DrifterMelee": [{ "ItemType": "/Lotus/Types/Friendly/PlayerControllable/Weapons/DuviriDualSwords", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
 | 
					 | 
				
			||||||
  "MechBin": { "Slots": 4 },
 | 
					 | 
				
			||||||
  "OperatorAmpBin": { "Slots": 8 },
 | 
					 | 
				
			||||||
  "PveBonusLoadoutBin": { "Slots": 0 },
 | 
					 | 
				
			||||||
  "PvpBonusLoadoutBin": { "Slots": 0 },
 | 
					 | 
				
			||||||
  "RandomModBin": { "Slots": 15 },
 | 
					 | 
				
			||||||
  "SentinelBin": { "Slots": 10 },
 | 
					 | 
				
			||||||
  "SpaceSuitBin": { "Slots": 4 },
 | 
					 | 
				
			||||||
  "SpaceWeaponBin": { "Slots": 4 },
 | 
					 | 
				
			||||||
  "SuitBin": { "Slots": 1 },
 | 
					 | 
				
			||||||
  "WeaponBin": { "Slots": 5 },
 | 
					 | 
				
			||||||
  "DuviriInfo": { "Seed": 5898912197983600352, "NumCompletions": 0 },
 | 
					 | 
				
			||||||
  "Recipes": [{ "ItemCount": 1, "ItemType": "/Lotus/Types/Recipes/Weapons/BoltonfaBlueprint" }],
 | 
					 | 
				
			||||||
  "SeasonChallengeHistory": [
 | 
					 | 
				
			||||||
    { "challenge": "SeasonDailySolveCiphers", "id": "001000220000000000000308" },
 | 
					 | 
				
			||||||
    { "challenge": "SeasonDailyVisitFeaturedDojo", "id": "001000230000000000000316" },
 | 
					 | 
				
			||||||
    { "challenge": "SeasonDailyKillEnemiesWithRadiation", "id": "001000230000000000000317" },
 | 
					 | 
				
			||||||
    { "challenge": "SeasonWeeklyCompleteSortie", "id": "001000230000000000000309" },
 | 
					 | 
				
			||||||
    { "challenge": "SeasonWeeklyVenusBounties", "id": "001000230000000000000310" },
 | 
					 | 
				
			||||||
    { "challenge": "SeasonWeeklyZarimanBountyHunter", "id": "001000230000000000000311" },
 | 
					 | 
				
			||||||
    { "challenge": "SeasonWeeklyCatchRarePlainsFish", "id": "001000230000000000000312" },
 | 
					 | 
				
			||||||
    { "challenge": "SeasonWeeklyKillArchgunEnemies", "id": "001000230000000000000313" },
 | 
					 | 
				
			||||||
    { "challenge": "SeasonWeeklyHardKillSilverGroveSpecters", "id": "001000230000000000000314" },
 | 
					 | 
				
			||||||
    { "challenge": "SeasonWeeklyHardKillRopalolyst", "id": "001000230000000000000315" }
 | 
					 | 
				
			||||||
  ],
 | 
					 | 
				
			||||||
  "StoryModeChoice": "WARFRAME",
 | 
					 | 
				
			||||||
  "ChallengeProgress": [{ "Progress": 2, "Name": "EMGetKills" }],
 | 
					 | 
				
			||||||
  "ChallengesFixVersion": 6,
 | 
					 | 
				
			||||||
  "ActiveQuest": "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain",
 | 
					 | 
				
			||||||
  "Consumables": [{ "ItemCount": 1, "ItemType": "/Lotus/Types/Restoratives/LisetAutoHack" }],
 | 
					 | 
				
			||||||
  "DataKnives": [{ "ItemType": "/Lotus/Weapons/Tenno/HackingDevices/TnHackingDevice/TnHackingDeviceWeapon", "XP": 450000, "ItemId": { "$oid": "647bd274f22fc794a2cd3d33" } }],
 | 
					 | 
				
			||||||
  "FlavourItems": [
 | 
					 | 
				
			||||||
    { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem1" },
 | 
					 | 
				
			||||||
    { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem2" },
 | 
					 | 
				
			||||||
    { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem3" },
 | 
					 | 
				
			||||||
    { "ItemType": "/Lotus/Types/StoreItems/AvatarImages/AvatarImageItem4" }
 | 
					 | 
				
			||||||
  ],
 | 
					 | 
				
			||||||
  "LongGuns": [{ "ItemType": "/Lotus/Weapons/MK1Series/MK1Paris", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
 | 
					 | 
				
			||||||
  "Melee": [{ "ItemType": "/Lotus/Weapons/Tenno/Melee/LongSword/LongSword", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
 | 
					 | 
				
			||||||
  "Pistols": [{ "ItemType": "/Lotus/Weapons/MK1Series/MK1Kunai", "XP": 0, "Configs": [{}, {}, {}], "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
 | 
					 | 
				
			||||||
  "PlayedParkourTutorial": true,
 | 
					 | 
				
			||||||
  "QuestKeys": [{ "ItemType": "/Lotus/Types/Keys/VorsPrize/VorsPrizeQuestKeyChain" }],
 | 
					 | 
				
			||||||
  "RawUpgrades": [{ "ItemCount": 1, "LastAdded": { "$oid": "6450f9bfe0714a4d6703f05f" }, "ItemType": "/Lotus/Upgrades/Mods/Warframe/AvatarShieldMaxMod" }],
 | 
					 | 
				
			||||||
  "ReceivedStartingGear": true,
 | 
					 | 
				
			||||||
  "Scoops": [{ "ItemType": "/Lotus/Weapons/Tenno/Speedball/SpeedballWeaponTest", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
 | 
					 | 
				
			||||||
  "Suits": [{ "ItemType": "/Lotus/Powersuits/Volt/Volt", "XP": 0, "Configs": [{}, {}, {}], "UpgradeVer": 101, "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
 | 
					 | 
				
			||||||
  "TrainingRetriesLeft": 0,
 | 
					 | 
				
			||||||
  "WeaponSkins": [{ "ItemType": "/Lotus/Upgrades/Skins/Volt/VoltHelmet", "ItemId": { "$oid": "647bd27cf856530b4f3bf343" } }],
 | 
					 | 
				
			||||||
  "LastInventorySync": { "$oid": "647bd27cf856530b4f3bf343" },
 | 
					 | 
				
			||||||
  "NextRefill": { "$date": { "$numberLong": "1685829131" } },
 | 
					 | 
				
			||||||
  "ActiveLandscapeTraps": [],
 | 
					 | 
				
			||||||
  "CrewMembers": [],
 | 
					 | 
				
			||||||
  "CrewShips": [],
 | 
					 | 
				
			||||||
  "CrewShipHarnesses": [],
 | 
					 | 
				
			||||||
  "CrewShipSalvagedWeapons": [],
 | 
					 | 
				
			||||||
  "CrewShipSalvagedWeaponSkins": [],
 | 
					 | 
				
			||||||
  "CrewShipWeapons": [],
 | 
					 | 
				
			||||||
  "CrewShipWeaponSkins": [],
 | 
					 | 
				
			||||||
  "DrifterGuns": [],
 | 
					 | 
				
			||||||
  "Drones": [],
 | 
					 | 
				
			||||||
  "Horses": [
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      "ItemType": "/Lotus/Types/NeutralCreatures/ErsatzHorse/ErsatzHorsePowerSuit",
 | 
					 | 
				
			||||||
      "Configs": [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          "Skins": ["", "", "/Lotus/Upgrades/Skins/Horse/ErsatzHorseTailDefault"]
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          "Skins": ["", "", "/Lotus/Upgrades/Skins/Horse/ErsatzHorseTailDefault"]
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          "Skins": ["", "", "/Lotus/Upgrades/Skins/Horse/ErsatzHorseTailDefault"]
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "UpgradeVer": 101,
 | 
					 | 
				
			||||||
      "ItemId": { "$oid": "647bd27cf856530b4f3bf343" }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  ],
 | 
					 | 
				
			||||||
  "Hoverboards": [],
 | 
					 | 
				
			||||||
  "KubrowPets": [],
 | 
					 | 
				
			||||||
  "KubrowPetEggs": [],
 | 
					 | 
				
			||||||
  "KubrowPetPrints": [],
 | 
					 | 
				
			||||||
  "MechSuits": [],
 | 
					 | 
				
			||||||
  "MoaPets": [],
 | 
					 | 
				
			||||||
  "OperatorAmps": [],
 | 
					 | 
				
			||||||
  "OperatorLoadOuts": [],
 | 
					 | 
				
			||||||
  "AdultOperatorLoadOuts": [],
 | 
					 | 
				
			||||||
  "KahlLoadOuts": [],
 | 
					 | 
				
			||||||
  "PendingRecipes": [],
 | 
					 | 
				
			||||||
  "TrainingDate": 0,
 | 
					 | 
				
			||||||
  "PersonalGoalProgress": [],
 | 
					 | 
				
			||||||
  "PersonalTechProjects": [],
 | 
					 | 
				
			||||||
  "QualifyingInvasions": [],
 | 
					 | 
				
			||||||
  "RepVotes": [],
 | 
					 | 
				
			||||||
  "Sentinels": [],
 | 
					 | 
				
			||||||
  "SentinelWeapons": [],
 | 
					 | 
				
			||||||
  "SpaceGuns": [],
 | 
					 | 
				
			||||||
  "SpaceMelee": [],
 | 
					 | 
				
			||||||
  "SpaceSuits": [],
 | 
					 | 
				
			||||||
  "SpecialItems": [],
 | 
					 | 
				
			||||||
  "StepSequencers": [],
 | 
					 | 
				
			||||||
  "Upgrades": [],
 | 
					 | 
				
			||||||
  "Boosters": [],
 | 
					 | 
				
			||||||
  "EmailItems": [],
 | 
					 | 
				
			||||||
  "FocusUpgrades": [],
 | 
					 | 
				
			||||||
  "FusionTreasures": [],
 | 
					 | 
				
			||||||
  "LeagueTickets": [],
 | 
					 | 
				
			||||||
  "LevelKeys": [],
 | 
					 | 
				
			||||||
  "LoreFragmentScans": [],
 | 
					 | 
				
			||||||
  "MiscItems": [],
 | 
					 | 
				
			||||||
  "PendingSpectreLoadouts": [],
 | 
					 | 
				
			||||||
  "Quests": [],
 | 
					 | 
				
			||||||
  "Robotics": [],
 | 
					 | 
				
			||||||
  "ShipDecorations": [],
 | 
					 | 
				
			||||||
  "SpectreLoadouts": [],
 | 
					 | 
				
			||||||
  "XPInfo": [],
 | 
					 | 
				
			||||||
  "CrewShipAmmo": [],
 | 
					 | 
				
			||||||
  "CrewShipRawSalvage": [],
 | 
					 | 
				
			||||||
  "EvolutionProgress": [],
 | 
					 | 
				
			||||||
  "Missions": [],
 | 
					 | 
				
			||||||
  "TauntHistory": [],
 | 
					 | 
				
			||||||
  "CompletedSyndicates": [],
 | 
					 | 
				
			||||||
  "UsedDailyDeals": [],
 | 
					 | 
				
			||||||
  "LibraryAvailableDailyTaskInfo": {
 | 
					 | 
				
			||||||
    "EnemyTypes": ["/Lotus/Types/Enemies/Orokin/OrokinBladeSawmanAvatar"],
 | 
					 | 
				
			||||||
    "EnemyLocTag": "/Lotus/Language/Game/OrokinBladeSawman",
 | 
					 | 
				
			||||||
    "EnemyIcon": "/Lotus/Interface/Icons/Npcs/Orokin/OrokinBladeSawman.png",
 | 
					 | 
				
			||||||
    "ScansRequired": 4,
 | 
					 | 
				
			||||||
    "RewardStoreItem": "/Lotus/StoreItems/Upgrades/Mods/FusionBundles/UncommonFusionBundle",
 | 
					 | 
				
			||||||
    "RewardQuantity": 10,
 | 
					 | 
				
			||||||
    "RewardStanding": 10000
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "PendingCoupon": { "Expiry": { "$date": { "$numberLong": "0" } }, "Discount": 0 }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user