FMV Injector lets you set up various methods for modifying content in the Farm Merge Valley Discord game. This project is based on @wooslow's repository on the same subject. For best results, perform these steps using Google Chrome. There is no guarantee that these methods will work on other browsers.
These methods violate the game developers' rules, and many bans have already occurred. I take no responsibility for your actions. Use this tool only if you fully understand the risks involved.
- - giveInventoryItem - Obtain unlimited quantities of any item.
- - spawnUpgradeCard - Spawn an upgrade card.
- - spawnBubbledObject - Spawn a bubble object (gifts, coins, gems, energy, crates, chests, keys, decorations).
- - removeAllObstacles - Remove all obstacles (trees and stones) from the map.
- - setLuckyMergeChance - Set the lucky merge chance of objects.
All methods rely on pausing the game at a precise moment to access normally restricted elements. The difference between methods lies in the specific data retrieved, the exact breakpoint timing, and the injection commands. The initial setup is the same for all methods.
- Launch Farm Merge Valley on Discord and do not close it until you finish.
- Open the browser DevTools (press
CTRL
+SHIFT
+I
on Windows/Linux orCmd
+Opt
+I
on Mac). - The game should now be paused. In the CONSOLE tab, enter:
Function.prototype.constructor = function() {};
- Click the Resume script execution button (the blue
▶️ button) (see image below)
Make sure these steps are followed exactly before proceeding to any method-specific instruction
Items you can obtain with this method
Parameter | Description |
---|---|
coins |
Yellow coins |
gems |
Purple gems |
exp |
Experience |
level |
Level |
crates |
Crates with items |
energy |
Energy for activities |
tickets |
Train tickets |
wheat |
Wheat |
egg |
Egg |
sunflower |
Sunflower |
milk |
Milk |
sugarcane |
Sugarcane |
bacon |
Bacon |
carrot |
Carrot |
goatmilk |
Goat milk |
soybeans |
Soybeans |
wool |
Wool |
corn |
Corn |
fur |
Fur |
coffeebeans |
Coffee beans |
tomato |
Tomato |
avocado |
Avocado |
truffle |
Truffle |
Click to expand detailed instructions
- Go to the SOURCE tab.
- Open the file search panel (
CTRL
+P
). - Search for the file
AutoPlaceSystem.ts
.
Note: Full path:
/farm-merge-game/src/core/gameobjects/systems/AutoPlaceSystem.ts
- Inside
AutoPlaceSystem.ts
, open the search panel (CTRL
+F
). - Search for:
const originCell
- There will be only one result. Set a breakpoint on this line by clicking in the gray area to the left.

Full line:
const originCell: GridCell | undefined = this.services.mapGrid.getCell(autoPlaceBehavior.rootPosition.column, autoPlaceBehavior.rootPosition.row);
- Return to the game and move an object (or place it on another object). The game should pause again.
- In the CONSOLE tab, enter:
worldServices = this.services
- Go back to the
AutoPlaceSystem.ts
file in the SOURCE tab, remove the breakpoint (click it again), then clickResume script execution
.
- In the CONSOLE, enter:
let giveInventoryItem = (target, amount) => {
return worldServices.rewardService.giveInventoryReward({
"reward": {"key": target, "amount": amount},
"parent": worldServices.mapGridView._view.parent.parent.parent
});
}
- Now, in the CONSOLE, run:
giveInventoryItem("item", amount);
Replace "item"
with one of the parameters from the table above, and amount
with your desired quantity.
Click to expand detailed instructions
- Go to the SOURCE tab.
- Open the file search panel (
CTRL
+P
). - Search for the file
AutoPlaceSystem.ts
.
Note: Full path:
/farm-merge-game/src/core/gameobjects/systems/AutoPlaceSystem.ts
- Inside
AutoPlaceSystem.ts
, open the search panel (CTRL
+F
). - Search for:
['_forc' + 'edLoo' + 't'] = []
Set a breakpoint on this line by clicking in the gray area to the left.
- Return to the game and merge three objects (e.g., eggs or wheat). The game will pause only if you merge tier 3 objects.
- In the SOURCE tab, locate the loot array at
Local/this/_data/loot
.

- Replace one element with
"upgrade_card_1"
,"upgrade_card_2"
, or"upgrade_card_3"
depending on your needs.

- Go back to
main.js
in SOURCE, remove the breakpoint, then clickResume script execution
. - Click the merged item in-game; the upgrade card will spawn.
Items you can obtain with this method
Click to expand detailed instructions
- Go to the SOURCE tab.
- Open the file search panel (
CTRL
+P
). - Search for the file
AutoPlaceSystem.ts
.
Note: Full path:
/farm-merge-game/src/core/gameobjects/systems/AutoPlaceSystem.ts
- Inside
AutoPlaceSystem.ts
, open the search panel (CTRL
+F
). - Search for:
const originCell
- There will be only one result. Set a breakpoint on this line by clicking in the gray area to the left.

Full line:
const originCell: GridCell | undefined = this.services.mapGrid.getCell(autoPlaceBehavior.rootPosition.column, autoPlaceBehavior.rootPosition.row);
- Return to the game and move an object (or place it on another object). The game should pause again.
- In the CONSOLE tab, enter:
worldServices = this.services
- Go back to the
AutoPlaceSystem.ts
file in the SOURCE tab, remove the breakpoint (click it again), then clickResume script execution
.
- In the CONSOLE, enter:
let spawnBubbledObject = (target) => {
return worldServices.rewardService.giveObjectReward({
"rewards": [target],
"container": worldServices.mapGridView._view.parent.parent.parent,
"animationEndEvent": null,
"bubblePosition": {"x": 0, "y": -200}
});
}
- Now run in the CONSOLE:
spawnBubbledObject("item");
Replace "item"
with the desired object key.
Click to expand detailed instructions
- Go to the SOURCE tab.
- Open the file search panel (
CTRL
+P
). - Search for the file
AutoPlaceSystem.ts
.
Note: Full path:
/farm-merge-game/src/core/gameobjects/systems/AutoPlaceSystem.ts
- Inside
AutoPlaceSystem.ts
, open the search panel (CTRL
+F
). - Search for:
const originCell
- There will be only one result. Set a breakpoint on this line by clicking in the gray area to the left.

Full line:
const originCell: GridCell | undefined = this.services.mapGrid.getCell(autoPlaceBehavior.rootPosition.column, autoPlaceBehavior.rootPosition.row);
- Return to the game and move an object (or place it on another object). The game should pause again.
- In the CONSOLE tab, enter:
worldServices = this.services
- Go back to the
AutoPlaceSystem.ts
file in the SOURCE tab, remove the breakpoint (click it again), then clickResume script execution
.
- In the CONSOLE, enter:
worldServices = this.services
- Return to
AutoPlaceSystem.ts
, remove the breakpoint, then resume execution.
- In the CONSOLE, run:
worldServices.world.getAllGameObjects()
.filter(x => x.hasBehavior("hitpoints") && !x.hasBehavior("shovelable") && !x.hasBehavior("movable"))
.forEach(x => worldServices.world.removeGameObject(x))
Click to expand detailed instructions
- Go to the SOURCE tab.
- Open the file search panel (
CTRL
+P
). - Search for the file
AutoPlaceSystem.ts
.
Note: Full path:
/farm-merge-game/src/core/gameobjects/systems/AutoPlaceSystem.ts
- Inside
AutoPlaceSystem.ts
, open the search panel (CTRL
+F
). - Search for:
const originCell
- There will be only one result. Set a breakpoint on this line by clicking in the gray area to the left.

Full line:
const originCell: GridCell | undefined = this.services.mapGrid.getCell(autoPlaceBehavior.rootPosition.column, autoPlaceBehavior.rootPosition.row);
- Return to the game and move an object (or place it on another object). The game should pause again.
- In the CONSOLE tab, enter:
worldServices = this.services
- Go back to the
AutoPlaceSystem.ts
file in the SOURCE tab, remove the breakpoint (click it again), then clickResume script execution
.
- In the CONSOLE, enter:
let setLuckyMergeChance = (percentage) => worldServices.mapGridView._view.parent.parent.parent._systems.find(x => x._luckyMergeChance)._luckyMergeChance = percentage;
- Run in the CONSOLE:
setLuckyMergeChance(percentage);
Replace percentage
with a number between 0 and 100.
100
means the lucky merge always happens.0
means it never happens (default is 5).
- Changes to XP Level won't update on-screen until you exit and relaunch FMV. However, effects like unlocking new plots apply immediately.
- Using negative values for level will reduce XP Level; similarly, negative amounts for resources will remove them.
- Be aware that FMV will become unstable/unplayable if XP Level exceeds 70 (FMV v1.62.6). You can reduce level by adding negative values to fix this. (See issue 7)
- Need help? Join the Discord Server.
- Contributions welcome! Open issues or create pull requests.