Ah I done that already I think she's on the island so she must be there lol thanks for letting us know lol![]()
![]()
For the building items, I've decided to change the approach. This is because a bulk-add method also includes problematic items such as: houses for unreleased characters, normally unobtainable buildings that become impossible to remove once placed, and very intrusive debug-only items that cannot be hidden, unlike other item types. As a note on the character houses, I did test this before Vanellope's building quest started and was able to complete it without any problems.
// ============================================================================
// Unlock All Buildings (PlayerHouse subtype only) + Dev-Check Bypass
// Goal: Hook WardrobeMenu::OnFocusIn ("MOV X0, X19") → jump to a code cave that
// grants all unowned building entries of subtype PlayerHouse routed to
// the Buildings ListInventory, then restore X0←X19 and return. Also NOP
// the developer-flag check guarding DebugAddItem so item granting proceeds.
//
// Uses the closed generic:
// GetAllByType<BuildingItemData, BuildingItemType>(ItemType.Building, subEnumPtr, method)
// with correct argument setup:
// - X2 = pointer to 32-bit subtype value stored on stack
// - X3 = MethodInfo* loaded from the Method$ slot (after warming it up)
//
// ============================================================================
// --- [Block A] Hook Patch (WardrobeMenu::OnFocusIn) -------------------------
// Original at hook site: 0x710717107C MOV X0, X19
0x710717107C BL 0x710821C60C // hook: replace MOV X0, X19 and branch to code cave
// --- [Block B] Developer Check Bypass (Meta.DebugAddItem.Types.Response$$ApplyThis) ---
0x710471A654 NOP // disable dev-flag gate so DebugAddItem can run
// --- [Block C] Code Cave Start (RVA: 0x821C60C, Abs: 0x710821C60C) ----------
// Save/restore regs; finally load saved X19 into X0 to recreate "MOV X0, X19".
// [Prologue & Saves]
0x710821C60C STP X19, X30, [SP, #-0x10]! // push old X19 and LR
0x710821C610 STP X19, X20, [SP, #-0x10]! // push working X19 and Client*
0x710821C614 STP X21, X22, [SP, #-0x10]! // push list base and length
0x710821C618 STP X23, X24, [SP, #-0x20]! // push loop index and temp itemId (and make 0x20 scratch)
// [Acquire Client*]
0x710821C61C BL 0x71032357A0 // get_MetaClient() → X0
0x710821C620 MOV X20, X0 // X20 = Client*
// [Acquire Buildings (ListInventory*)]
0x710821C624 BL 0x7103235880 // get_Profile() → X0
0x710821C628 BL 0x7104E05220 // Profile.get_Buildings() → X0
0x710821C62C MOV X19, X0 // X19 = ListInventory* (Buildings)
// --- [Warm up Method$ slot for the closed generic] ---------------------------
// Method$ slot absolute address: 0x7109EED2D0 (page 0x7109EED000 + 0x2D0)
0x710821C630 ADRP X0, 0x7109EED000 // page of Method$ slot
0x710821C634 ADD X0, X0, #0x2D0 // X0 = 0x7109EED2D0 (Method$ slot)
0x710821C638 DMB ISH
0x710821C63C MOV W1, #1
0x710821C640 BL 0x7100AA7760 // metadata warm-up helper
// --- [GetAllByType<T,Sub>] X2=&subEnum(32-bit), X3=MethodInfo*, W1=itemType --
0x710821C644 BL 0x71044980E0 // ItemDatabase.Instance → X0 (this)
0x710821C648 MOV W1, #2 // ItemType.Building
0x710821C64C MOV W8, #5 // BuildingItemType.PlayerHouse (subtype)
0x710821C650 STR W8, [SP, #0x10] // write 32-bit enum value to our scratch
0x710821C654 ADD X2, SP, #0x10 // X2 = &subEnum (stack address)
0x710821C658 ADRP X8, 0x7109EED000 // page of Method$ slot
0x710821C65C LDR X3, [X8, #0x2D0] // X3 = *(0x7109EED2D0) (MethodInfo*)
0x710821C660 BL 0x71032F4570 // GetAllByType<T,Sub>(itemType, &subEnum, method) → X0 (array)
// [Array layout] size @ +0x18 (W), data @ +0x20 (ptr)
0x710821C664 ADD X21, X0, #0x20 // X21 = &elements[0]
0x710821C668 LDR W22, [X0, #0x18] // W22 = length
0x710821C66C MOV W23, #0 // i = 0
// --- [Loop] for (i = 0; i < len; ++i) ----------------------------------------
0x710821C670 LDR X0, [X21, X23, LSL #3] // X0 = BuildingItemData* (element)
0x710821C674 BL 0x7103F24BB0 // ItemData.get_Item() → W0 (itemId)
0x710821C678 MOV W24, W0 // W24 = itemId
// [KnowsItem?] skip if already owned in Buildings
0x710821C67C MOV X0, X19 // this = Buildings (ListInventory*)
0x710821C680 MOV W1, W24 // itemId
0x710821C684 BL 0x710482C180 // ListInventory.KnowsItem(int) → W0
0x710821C688 TBNZ W0, #0, 0x710821C6A0 // if owned, jump to loop-next
// [Grant Item] add via DebugAddItem(itemId, 1, default CancellationToken)
0x710821C68C MOV X0, X20 // this = Client*
0x710821C690 MOV W1, W24 // itemId
0x710821C694 MOV W2, #1 // amount = 1
0x710821C698 MOV X3, XZR // CancellationToken = 0
0x710821C69C BL 0x71053832E0 // Client.DebugAddItem(int,int,CancellationToken)
// [Loop next]
0x710821C6A0 ADD W23, W23, #1 // i++
0x710821C6A4 CMP W23, W22 // i < len ?
0x710821C6A8 B.LO 0x710821C670 // continue loop
// [Epilogue & Return]
0x710821C6AC LDP X23, X24, [SP], #0x20 // pop temps/scratch
0x710821C6B0 LDP X21, X22, [SP], #0x10 // pop list meta
0x710821C6B4 LDP X19, X20, [SP], #0x10 // pop inv and client
0x710821C6B8 LDP X0, X30, [SP], #0x10 // X0 ← (first-saved X19), restore LR
0x710821C6BC RET // return to original function
// --- [Block D] Reference (targets used above) --------------------------------
// Method$ slot (closed generic) absolute address 0x7109EED2D0 (page 0x7109EED000 + 0x2D0)
// metadata warm-up helper 0x7100AA7760
// get_MetaClient() 0x71032357A0
// get_Profile() 0x7103235880
// Profile.get_Buildings() 0x7104E05220
// ItemDatabase.Instance 0x71044980E0
// ItemDatabase.GetAllByType<T,Sub>(Building, PlayerHouse)0x71032F4570
// ItemData.get_Item() 0x7103F24BB0
// ListInventory.KnowsItem(int) 0x710482C180
// Client.DebugAddItem(int,int,CancellationToken) 0x71053832E0
// ============================================================================
// Unlock All Companions (Pet subtype only) via DebugAddItem
// • Enumerate Pet items with GetAllByType<PetItemData, CompanionItemType>
// • OWNERSHIP CHECK: ProfilePlayer.GetPetProfile(petItem)
// • ADD: use Client.DebugAddItem(itemId,1,default) — Profile.AddItem routes to UnlockPet
// • Warm up Method$ slot for the closed generic before loading MethodInfo*
// ============================================================================
// --- [Block A] Hook Patch (WardrobeMenu::OnFocusIn) -------------------------
// Original at hook site: 0x710717107C MOV X0, X19
0x710717107C BL 0x710821C60C // hook: replace MOV X0, X19 and branch to code cave
// --- [Block B] Developer Check Bypass (Meta.DebugAddItem.Types.Response$$ApplyThis) ---
0x710471A654 NOP // allow DebugAddItem to proceed
// --- [Block C] Code Cave Start (RVA: 0x821C60C, Abs: 0x710821C60C) ----------
// [Prologue & Saves] (unchanged register set/order)
0x710821C60C STP X19, X30, [SP, #-0x10]! // push old X19 and LR
0x710821C610 STP X19, X20, [SP, #-0x10]! // push working X19 and Client*
0x710821C614 STP X21, X22, [SP, #-0x10]! // push array base and length
0x710821C618 STP X23, X24, [SP, #-0x20]! // push loop index and temp itemId (and make 0x20 scratch)
// [Acquire Client*]
0x710821C61C BL 0x71032357A0 // get_MetaClient() → X0
0x710821C620 MOV X20, X0 // X20 = Client*
// [Acquire ProfilePlayer*] (repurposing X19 slot used by inventories before)
0x710821C624 BL 0x7107118250 // Profile.get_ProfilePlayer() → X0 (Abs)
0x710821C628 MOV X19, X0 // X19 = ProfilePlayer*
// --- [Warm up Method$ slot for PetItemData×CompanionItemType] ---------------
// Method$Definitions.Items.ItemDatabase.GetAllByType_PetItemData__CompanionItemType___
// Absolute address = 0x7109EED378 (page 0x7109EED000 + 0x378)
0x710821C62C ADRP X0, 0x7109EED000 // page of Method$ slot
0x710821C630 ADD X0, X0, #0x378 // X0 = 0x7109EED378 (Method$ slot)
0x710821C634 DMB ISH
0x710821C638 MOV W1, #1
0x710821C63C BL 0x7100AA7760 // metadata warm-up helper
// --- [GetAllByType<T,Sub>] X2=&subEnum(32-bit), X3=MethodInfo*, W1=itemType --
0x710821C640 BL 0x71044980E0 // ItemDatabase.Instance → X0 (this)
0x710821C644 MOV W1, #12 // ItemType.Companion
0x710821C648 MOV W8, #0 // CompanionItemType.Pet (subtype)
0x710821C64C STR W8, [SP, #0x10] // write 32-bit enum into our scratch
0x710821C650 ADD X2, SP, #0x10 // X2 = &subEnum (stack address)
0x710821C654 ADRP X8, 0x7109EED000 // page of Method$ slot
0x710821C658 LDR X3, [X8, #0x378] // X3 = *(0x7109EED378) (MethodInfo*)
0x710821C65C BL 0x71032F4570 // GetAllByType<PetItemData,CompanionItemType>(...) → X0 (array)
// [Array layout] size @ +0x18 (W), data @ +0x20 (ptr)
0x710821C660 ADD X21, X0, #0x20 // X21 = &elements[0]
0x710821C664 LDR W22, [X0, #0x18] // W22 = length
0x710821C668 MOV W23, #0 // i = 0
// --- [Loop] for (i = 0; i < len; ++i) ----------------------------------------
0x710821C66C LDR X0, [X21, X23, LSL #3] // X0 = PetItemData* (element)
0x710821C670 BL 0x71041094C0 // PetItemData.get_Item() → W0 (Definitions.Items.Item)
0x710821C674 MOV W24, W0 // W24 = item (pet)
// [OWNERSHIP CHECK] ProfilePlayer.GetPetProfile(item) — non-NULL means owned
0x710821C678 MOV X0, X19 // this = ProfilePlayer*
0x710821C67C MOV W1, W24 // W1 = item (pet)
0x710821C680 BL 0x7104D821B0 // ProfilePlayer.GetPetProfile(item) → X0 (Pet* or NULL)
0x710821C684 CBNZ X0, 0x710821C69C // if already owned, jump to loop-next
// [ADD] Use DebugAddItem (Profile.AddItem internally routes to UnlockPet)
0x710821C688 MOV X0, X20 // this = Client*
0x710821C68C MOV W1, W24 // item (pet)
0x710821C690 MOV W2, #1 // amount = 1
0x710821C694 MOV X3, XZR // CancellationToken = 0
0x710821C698 BL 0x71053832E0 // Client.DebugAddItem(int,int,CancellationToken)
// [Loop next]
0x710821C69C ADD W23, W23, #1 // i++
0x710821C6A0 CMP W23, W22 // i < len ?
0x710821C6A4 B.LO 0x710821C66C // continue loop
// [Epilogue & Return] (unchanged register restore order/sizes)
0x710821C6A8 LDP X23, X24, [SP], #0x20 // pop temps/scratch
0x710821C6AC LDP X21, X22, [SP], #0x10 // pop array meta
0x710821C6B0 LDP X19, X20, [SP], #0x10 // pop profilePlayer and client
0x710821C6B4 LDP X0, X30, [SP], #0x10 // X0 ← (first-saved X19), restore LR
0x710821C6B8 RET // return to original function
// --- [Block D] Reference (targets used above) --------------------------------
// get_MetaClient() 0x71032357A0
// Profile.get_ProfilePlayer() 0x7107118250
// Method$ GetAllByType<PetItemData,CompanionItemType> 0x7109EED378
// metadata warm-up helper 0x7100AA7760
// ItemDatabase.Instance 0x71044980E0
// Generic thunk GetAllByType<T,Sub> 0x71032F4570
// PetItemData.get_Item() 0x71041094C0
// ProfilePlayer.GetPetProfile(Item) 0x7104D821B0
// Client.DebugAddItem(int,int,CancellationToken) 0x71053832E0
// ============================================================================
/* Unlock All Tools (ItemType=Tool) via DebugAddItem
• Enumerate tools with non-generic ItemDatabase.GetAllByType(ItemType.Tool)
• OWNERSHIP CHECK: ProfilePlayer.IsToolUnlocked(Item) (NOT ListInventory)
• ADD: Client.DebugAddItem(item,1,default) — Profile.AddItem routes correctly
*/
// ============================================================================
// --- [Block A] Hook Patch (WardrobeMenu::OnFocusIn) -------------------------
// Original at hook site: 0x710717107C MOV X0, X19
0x710717107C BL 0x710821C60C // hook: replace MOV X0, X19 and branch to code cave
// --- [Block B] Developer Check Bypass (Meta.DebugAddItem.Types.Response$$ApplyThis) ---
0x710471A654 NOP // allow DebugAddItem to proceed
// --- [Block C] Code Cave Start (RVA: 0x821C60C, Abs: 0x710821C60C) ----------
/* Save/restore regs exactly as in your original caves; restore X0←X19 on return. */
// [Prologue & Saves] (unchanged set/order; reduced X23/X24 frame)
0x710821C60C STP X19, X30, [SP, #-0x10]! // push old X19 and LR
0x710821C610 STP X19, X20, [SP, #-0x10]! // push working X19 and Client*
0x710821C614 STP X21, X22, [SP, #-0x10]! // push array base and length
0x710821C618 STP X23, X24, [SP, #-0x10]! // push loop index and temp item
// [Acquire Client*]
0x710821C61C BL 0x71032357A0 // get_MetaClient() → X0
0x710821C620 MOV X20, X0 // X20 = Client*
// [Acquire ProfilePlayer*] (use direct helper per latest address)
0x710821C624 BL 0x7107118250 // Profile.get_ProfilePlayer() → X0
0x710821C628 MOV X19, X0 // X19 = ProfilePlayer*
// --- [Enumerate all Tool items (non-generic overload)] ----------------------
0x710821C62C BL 0x71044980E0 // ItemDatabase.Instance → X0 (this)
0x710821C630 MOV W1, #11 // ItemType.Tool
0x710821C634 MOV X2, XZR // method* = NULL (non-generic thunk expects X2=0)
0x710821C638 BL 0x7104493F40 // ItemDatabase.GetAllByType(ItemType) → X0 (array of ToolItemData*)
// [Array layout] size @ +0x18 (W), data @ +0x20 (ptr)
0x710821C63C ADD X21, X0, #0x20 // X21 = &elements[0]
0x710821C640 LDR W22, [X0, #0x18] // W22 = length
0x710821C644 MOV W23, #0 // i = 0
// --- [Loop] for (i = 0; i < len; ++i) ----------------------------------------
0x710821C648 LDR X0, [X21, X23, LSL #3] // X0 = ToolItemData* (element)
0x710821C64C BL 0x7103F31F00 // ToolItemData.get_Item() → W0 (Definitions.Items.Item)
0x710821C650 MOV W24, W0 // W24 = item (tool)
// [OWNERSHIP CHECK] ProfilePlayer.IsToolUnlocked(item) — true means owned
0x710821C654 MOV X0, X19 // this = ProfilePlayer*
0x710821C658 MOV W1, W24 // W1 = item (tool)
0x710821C65C BL 0x7104D72250 // ProfilePlayer.IsToolUnlocked(Item) → W0 (bool)
0x710821C660 TBNZ W0, #0, 0x710821C678 // if owned, jump to loop-next
// [ADD] Use DebugAddItem (Profile.AddItem internally routes to AddTool)
0x710821C664 MOV X0, X20 // this = Client*
0x710821C668 MOV W1, W24 // item (tool)
0x710821C66C MOV W2, #1 // amount = 1
0x710821C670 MOV X3, XZR // CancellationToken = 0
0x710821C674 BL 0x71053832E0 // Client.DebugAddItem(int,int,CancellationToken)
// [Loop next]
0x710821C678 ADD W23, W23, #1 // i++
0x710821C67C CMP W23, W22 // i < len ?
0x710821C680 B.LO 0x710821C648 // continue loop
// [Epilogue & Return] (unchanged restore order; reduced X23/X24 frame)
0x710821C684 LDP X23, X24, [SP], #0x10 // pop temps
0x710821C688 LDP X21, X22, [SP], #0x10 // pop array meta
0x710821C68C LDP X19, X20, [SP], #0x10 // pop profilePlayer and client
0x710821C690 LDP X0, X30, [SP], #0x10 // X0 ← (first-saved X19), restore LR
0x710821C694 RET // return to original function
// --- [Block D] Reference (targets used above) --------------------------------
// get_MetaClient() 0x71032357A0
// Profile.get_ProfilePlayer() 0x7107118250
// ItemDatabase.Instance 0x71044980E0
// ItemDatabase.GetAllByType(ItemType) (non-generic) 0x7104493F40
// ToolItemData.get_Item() 0x7103F31F00
// ProfilePlayer.IsToolUnlocked(Item) 0x7104D72250
// Client.DebugAddItem(int,int,CancellationToken) 0x71053832E0
Nice work but your cheat for missing clothes mess up the collection tab. When i turn on your cheat my collection goes to 100 procent in total.
Wow, thanks for this! I wasnt sure how to make it work when it seems like 2 addresses needed to be modified together for pet Xp, so i was stuck manually finding and modifying xp for any pet that I had....which was only 1 or 2 because acquiring them sure did get harder in the new updates. One more question. Is it possible to make kaitoB, or patjenova's 'unlock all crafting' code work? It's fun to have the ability to make all materials or enchantments from the start of the game. Enchanting your tools to smash through bone or mushroom barriers from the beginning is nice. Ive only ever had the code partially slightly working before the game freezes or crashes. Frustrating, but it takes a long time for me since i have to manually search out to where i can safely relocate the cheat code. Anyway, thanks a ton for all your work! if you would ever consider making "how to" videos, it would probably be something lots of people would find extremely helpful. I know I would.
It's the collection rate for all categories on the left sideThank you for your feedback on the cheat code.
Are you saying that the "Clothing Sets" collection rate in the collections tab became 100% after acquiring all Clothing items using GetAllMissingClothing? Or the collection rate for all categories on the left side? It's difficult to know for sure if that cheat code is causing a bug with the collection percentage without analyzing how the collection system works. However, it's a possibility, since it also grants you normally unobtainable items like debug items. That being said, the cheat code acquires every item in the game that belongs to the "Clothing" category, so it's natural for the "Clothing Sets" collection rate to become 100% with the code. Some items stored in the "Wardrobe," such as certain gliders, may seem like they are clothing but don't actually belong to the "Clothing" category. Therefore, your clothing collection rate can reach 100% even if you are still missing items that are found in the Wardrobe.
Also, it seems that the overall collection rate can become 100% even if the collection rate for specific categories is less than 100%.
Post automatically merged:
Disney Dreamlight Valley v1.19.1 BID=DD44F396D4C95D6B
[ShowAllCraftingRecipe]
04000000 04D75800 D503201F
[ShowAllCraftingRecipe OFF]
04000000 04D75800 3607F500
This cheat grants access to all crafting recipes. Side effects are minimal as the changes are not saved. However, crafting quest-exclusive items may cause issues.
It's the collection rate for all categories on the left side
Thanks so much. I’m familiar with Edizon but don’t have a clue about making cheats. I’m only marginally concerned about a onlime ban cause I don’t go online often in the game but still hope things go ok
Post automatically merged:
I have a question on get all skins….am I going to break dream bundle quest progress if I use that cheat?
Thanks.I've been playing this game online since early access and have never once been banned. Seeing that no one gets banned for Treasure Valley, neither hosts nor guests, it seems the risk of getting banned for cheating is actually very low. The only thing Gameloft has officially said will trigger a ban or warning is having 'an excessive amount of resources.' So, ironically, it's the players who grind for hours to collect tons of materials legitimately who are at a higher risk of getting banned.
View attachment 533549
I understand that equipping each Dream Styles (skins) is the trigger for all currently released Dream Bundle quests to begin. Since obtaining the skin is simply the triggering mechanism for the quest line, I don't believe owning them already will cause any problems.
Thanks.
I hope you’ll get the ranch dlc. Would love to get Sven but the basic is all I can afford
Thanks. I have used similar cheats but was double checking.I've been playing this game online since early access and have never once been banned. Seeing that no one gets banned for Treasure Valley, neither hosts nor guests, it seems the risk of getting banned for cheating is actually very low. The only thing Gameloft has officially said will trigger a ban or warning is having 'an excessive amount of resources.' So, ironically, it's the players who grind for hours to collect tons of materials legitimately who are at a higher risk of getting banned.
View attachment 533549
I understand that equipping each Dream Styles (skins) is the trigger for all currently released Dream Bundle quests to begin. Since obtaining the skin is simply the triggering mechanism for the quest line, I don't believe owning them already will cause any problems.
Thanks. I have used similar cheats but was double checking.
Also people who visit treasure valleys get banned even if all they want is legit stuff.
I can use Edizon to increase item numbers but last time it didn’t work so the cheat helped there.
I agree.It's probably best to avoid distributing or receiving large quantities of material items, regardless of whether you are using cheats. The most effective way to prevent a ban is not to use the multiplayer feature at all. I have never visited other valleys or opened up my own. I don't think it would be a problem to visit each other's valleys for sightseeing purposes with people you know and trust, where there's no risk of being reported.
I agree.
Is there a way to make a cheat to get premium items like the river kit that aren’t furniture or clothes?
Yes thanks. Do note though that I notice it unlocks a lot of test items in clothingI think you can get the river kit with the cheat code "GetAllMissingFurniture". In fact, I have already confirmed that I was able to obtain the river kit by using the "GetAllMissing~" code. It should show up if you search within the Furniture tab using the keyword "river".
Yes thanks. Do note though that I notice it unlocks a lot of test items in clothing
Silly question these codes for like skins and player houses are they what you unlock in the game and premium items? Sorry if it doesn't make sense, I don't know how to ask it
i never asked but did other people also got the 100% glitch and can you restore it with your latest [R SelectToRemove] cheat?These cheats unlock all in-game items, including rewards from quests, level-ups, the Premium Shop, and the Star Path. Be aware of a key difference: normally, Premium Shop and Star Path items are tied to your online account and can be recovered. Items you add with these cheats are not synced online.

