Overview
Grandpa's Farm (Fazenda do Vovô / La Granja del Abuelo) is an action incremental inspired by Nodebuster. The story: grandpa left the farm overgrown with weeds, and you clear one field at a time. A circle follows your finger/mouse and automatically hits everything inside it; a click/tap does a strong stomp. Plants drop coins, which must be pulled in before your stamina runs out. Between days, coins become upgrades in the shed.
Engine
Godot 4.7 (GDScript, Compatibility renderer). 100% vector art drawn in code, HD cartoon style, with pre-rendered plant sprites.
Platforms
Android, iOS (prepared) and Windows.
Languages
English (default), Portuguese and Spanish, chosen on first launch. Dates and the app name follow the language.
Modes
Story (with an ending and replanting), Arcade (endless Candy Crush-style levels) and Daily challenge.
Data generated automatically from the code on 2026-10-21T08:08:48. To update:
godot --headless --path . -- --doc and then python tools/make_docs.py.
Architecture
Godot 4.7 project in D:\dev\fazenda-vovo. Everything is drawn in code (no .tscn scenes besides the main one):
each screen is a Node2D with _draw(), and the art comes from static functions in Art.
Screen flow (main.gd)
Overlays: Pause (Status / How to play / Settings in tabs), Grandpa's letter, Share.
Autoloads
| Autoload | Script | Role |
|---|---|---|
| Loc | scripts/loc.gd | Text table (EN/PT/ES), dates per language, window title |
| Game | scripts/game.gd | Global state, upgrades, formulas, fields, goals, prestige, settings and save |
| Sound | scripts/sound.gd | Effects and music synthesized at load time; Music/SFX buses |
| Leaderboard | scripts/leaderboard.gd | Local Daily history and stars; prepared for Play Games |
| Sprites | scripts/sprites.gd | Plant texture cache (rendered once in a SubViewport) |
Files
| File | Responsibility |
|---|---|
| main.gd | Screen switching, centers the 1280x720 area in the window, test modes (--smoke, --shots, --balance, --doc, --docimg) |
| run.gd | Weeding day: grid, noise spawn, hits, stomp, chickens, coins, infestation/boss, HUD, summary, touch |
| tree.gd | Shed: tree with pan/zoom and clipping, purchase with animation and tiers, Goals, Seed bank, Replant |
| hud.gd | Panels (tool, attributes, goal, mission card), columns pinned to the edges, text block that shrinks/scrolls |
| art.gd | Palette, outlined primitives, plants, icons, buttons/panels, forest background (static layer) |
| pause.gd | Pause: Status (or mission in Arcade/Daily), How to play, Settings (General/Video/Audio/Controls) |
| title.gd / arcade_map.gd / daily_hub.gd / ending.gd | Title menu, Arcade map, Daily challenge screen, story ending |
| letter.gd / lang_select.gd | Grandpa's letters and language selection |
| modes.gd | Deterministic generation of Arcade and Daily levels |
| bg_layer.gd | Static layer that only redraws when the window changes (background, board) |
| tools/make_docs.py | Builds these two docs (in 3 languages) from docs/game_data.json and docs/img |
Save and settings
JSON file at user://save.json (on Windows: %APPDATA%\Godot\app_userdata\Grandpa's Farm). Main fields:
| Key | Content |
|---|---|
| coins, levels | Coins and level of each shed upgrade |
| day, field, field_cleared, world_seed | Story progress and procedural world seed |
| seeds, safra, seed_levels | Prestige: rare seeds, current harvest, seed bank |
| harvest, harvest_claimed | Harvest goals: plants pulled per type and goals claimed |
| letters_seen, tutorial_done, shed_tutorial_done | Letters read and tutorials |
| final_ready, story_complete, ending_seen | Story ending state |
| arcade_unlocked, arcade_stars, daily, daily_streak | Arcade and Daily challenge |
| settings | Language and options: fullscreen, resolution, vsync, fps, effects, shake, compact, hud, key1/key2, music, sfx |
The Daily leaderboard lives in user://scores.json (best score and attempts per date).
Systems and formulas
Hit
Damage = (1 + 0.25 × Sharp Hoe) × 1.15Steel × 1.2Gold × 1.1Callus × 1.25Deep Roots. Each automatic hit (every 0.5 × 0.9Rhythm × 0.94Clock s) strikes the plants within the radius (40 + 7 × Width + 7 × Rake). Damage varies with distance from the center: 1.3× at the center down to 0.8× at the edge. Sure Strike: 4%/level chance of ×3. Stomp: radius ×1.35, damage × (2 + Stomp + Boot), cooldown 0.35 × 0.92Boot s (click, tap, Space or X; holding repeats). Standing still weakens automatic hits down to 50% after ~2 s (the circle fades and says "Keep moving!"), and whatever it destroys drops +50% coins.
Coins
Plant coins × (1 + 0.15 × Basket) × (1 + 0.12 × Cart) × 1.05Rich Soil × 1.5field × 1.5harvest. Coins fall on the ground and the magnet (50 + 18 × Pocket + 12 × Magnet) pulls them when the cursor passes nearby; Helper Crows fetch coins on their own, and ants from anthills carry off coins left on the ground.
Spawn
Plants sprout in "patches": out of 4 random plots, the one with the highest simplex noise value wins. Rate 1.5 × (1 + 0.35 × Rebel Soil)/s, max 30 + 4 × Rebel Soil plants (7x7 grid = 49).
Big field
The board has a fixed size; at special moments the grid grows and plots/plants shrink: 8x8 in half of the infestations from field 3 on (boss ×1.4 health and double seeds), 9x9 on the final boss, on Arcade boss levels (every 10, +4s) and on the Saturday and Sunday Daily challenge (+10s). Starting plants, board max and flood grow in proportion to the plots. The type comes from the biome mix; golden has a 2%/level chance from Golden Mushroom.
Infestation
The boss spawns in the center with health (40 + type health × 6) × difficulty (×2 on the final), and the board gets 14 plants of the same type plus 5/s for 6s. Each plague plant killed takes (50% of the boss's health × killed / spawned), so clearing all = 50%.
Chickens
Only weeds and burrs, 100% of the damage every 0.9s; each one reserves a different target and only switches when it dies. The plant's side is fixed when the target is picked (fixed the chicken that kept going back and forth).
Stamina
10 + 3 × Lunchbox + 2 × Hearty + 2 × Family Stamina (s). Coffee: +0.1 s × level per plant pulled by the player, with a daily cap.
Day loop and controls
- Weeding day: a 7x7 board of plots. Weeds sprout in patches (procedural noise). The circle hits on its own at the pace of Farm Rhythm, and the center of the circle hits 30% harder than the edge (which hits 20% less), marked by an inner gold ring; the stomp (click/tap) hits with the Stomp multiplier over a 35% larger area, with a short cooldown, and plants destroyed by it drop +50% coins.
- Coins fall on the ground and are pulled by the magnet (Deep Pockets radius) when the cursor passes nearby. Coins left on the ground when the day ends are lost.
- Stamina: when it runs out, the day ends. Then the day summary.
- Shed: buy upgrades, harvest goals and the seed bank. On PC, hovering a node selects it and shows it in the panel (click buys); on mobile, tap to view and tap again to buy. Then, "New day".
Controls
- PC: the circle follows the mouse; click = stomp. Two configurable attack keys (default Space and X; mouse buttons also work) stomp too, and holding repeats the stomp on every cooldown. Esc/P = pause; Space/Enter in the shed = new day.
- Mobile: dragging anywhere moves the circle relatively (like a touchpad), so your finger doesn't cover the area. Quick tap or second finger = stomp. The pause menu shows the info panels (on mobile the interface is compact).
Plants
Base health and coins (field 1, harvest 1). Health is multiplied by the field difficulty; coins by the field bonus and the Basket.
| Plant | Health | Coins | Infestation boss |
|---|---|---|---|
| Weeds (erva) | 3 | 1 | Weed Queen |
| Burrs (carrapicho) | 7 | 3 | Burr Queen |
| Red mushrooms (cogumelo) | 14 | 6 | Mushroom King |
| Golden mushrooms (dourado) | 10 | 25 | — |
| Orange mushrooms (cogumelo_laranja) | 9 | 4 | Orange Duke |
| Stumps (toco) | 40 | 15 | Ancient Stump |
| Rocks (pedra) | 50 | 18 | — |
| Termite mounds (cupinzeiro) | 26 | 12 | — |
| Termites (cupim) | 2 | 1 | — |
| Wasp nests (vespas) | 16 | 10 | — |
| Anthills (formigueiro) | 18 | 8 | — |
| Bottles (garrafa) | 5 | 4 | — |
| Old tires (pneu) | 22 | 10 | — |
| Broken fences (cerca) | 14 | 7 | — |
| Corn (milho) | 5 | 7 | — |
| Pumpkins (abobora) | 14 | 20 | — |
| Carrots (cenoura) | 7 | 10 | — |
Chickens only peck weeds and burrs, with 100% of the damage, one peck every 0.9s, walking at 95 px/s. Mushrooms, stumps and bosses are always up to the player. Each chicken picks a different plant, so they spread across the board.
Fields and biomes (procedural)
Each field asks for a number of pulled plants to be cleared. Difficulty (plant health) grows from field to field and also within a field (+80% by the end). From the 6th field on, biomes repeat with names, weights and colors drawn from the world seed (endless). The story ends on field 5, against the Mushroom King.
Formulas: goal = 300 × 1.55field; health = 1.45field × (1 + 0.8 × progress) × 1.6harvest; coins = 1.5field × 1.5harvest.
| # | Name | Biome | Goal | Health (start → end) | Coins | Seeds/boss | Plant mix |
|---|---|---|---|---|---|---|---|
| 1 | Pasture | Pasture | 300 | x1.00 → x1.80 | x1.00 | 1 | burrs 25, red mushrooms 15, weeds 60, anthills 3, bottles 6 |
| 2 | Orchard | Orchard | 470 | x1.45 → x2.61 | x1.50 | 2 | burrs 20, broken fences 4, orange mushrooms 35, weeds 30, anthills 6, old tires 6, stumps 15 |
| 3 | Swamp | Swamp | 720 | x2.10 → x3.78 | x2.25 | 2 | burrs 15, red mushrooms 35, orange mushrooms 20, weeds 30, bottles 6, wasp nests 6 |
| 4 | Cornfield | Cornfield | 1,120 | x3.05 → x5.49 | x3.38 | 3 | burrs 40, broken fences 6, red mushrooms 15, termite mounds 7, weeds 25, rocks 5, stumps 20 |
| 5 | Woods | Woods | 1,730 | x4.42 → x7.96 | x5.06 | 3 | burrs 20, red mushrooms 30, orange mushrooms 25, termite mounds 6, rocks 8, old tires 5, stumps 25, wasp nests 6 |
| 6 | Pasture of the Old Fig | Pasture | 2,680 | x6.41 → x11.54 | x7.59 | 4 | burrs 31, red mushrooms 14, weeds 61, anthills 5, bottles 7 |
| 7 | Orchard of the Fireflies | Orchard | 4,160 | x9.29 → x16.73 | x11.39 | 4 | burrs 19, broken fences 5, orange mushrooms 48, weeds 47, anthills 5, old tires 6, stumps 8 |
| 8 | Swamp of the Well | Swamp | 6,450 | x13.48 → x24.26 | x17.09 | 5 | burrs 16, red mushrooms 37, orange mushrooms 16, weeds 28, bottles 7, wasp nests 9 |
| 9 | Cornfield of the Fireflies | Cornfield | 9,990 | x19.54 → x35.17 | x25.63 | 5 | burrs 57, broken fences 5, red mushrooms 16, termite mounds 5, weeds 14, rocks 5, stumps 13 |
| 10 | Woods of the Windmill | Woods | 15,490 | x28.33 → x51.00 | x38.44 | 6 | burrs 28, red mushrooms 41, orange mushrooms 13, termite mounds 5, rocks 7, old tires 7, stumps 26, wasp nests 5 |
Upgrade tree
The shed tree. Each node depends on its parent node (having at least 1 level in it) and some only unlock after clearing fields. Cost of the next level = base cost × growthlevel. The second-generation nodes (Steel Hoe, Sure Strike, Big Rake and Calloused Hands) and the third-generation ones (Hearty Lunchbox, Horseshoe Magnet, Steel-Toe Boots, Grandpa's Pocket Watch, Market Cart, Golden Hoe and Rich Soil, endless) unlock from the 2nd to the 4th field, so there is always something to buy. The tree lives in its own area with pan and zoom (drag, mouse wheel, pinch, − + buttons and fit).
| Upgrade | Parent | Unlocks | Max | Base cost | Growth | Total to max | Description |
|---|---|---|---|---|---|---|---|
| Sharp Hoe | — | — | 8 | 4 | 1.5 | 197 | +0.25 damage per hit. |
| Wide Hoe | Sharp Hoe | — | 4 | 12 | 2.1 | 201 | Bigger weeding area. |
| Farm Rhythm | Sharp Hoe | — | 6 | 15 | 1.95 | 852 | Faster automatic hits. |
| Steel Hoe | Sharp Hoe | field 2 | 6 | 600 | 2.1 | 46,237 | +15% damage per level. Unlocks on the 2nd field. |
| Big Rake | Wide Hoe | field 3 | 4 | 1500 | 2.3 | 31,135 | Even bigger weeding area. Unlocks on the 3rd field. |
| Sure Strike | Cluck the Hen | field 2 | 5 | 500 | 2.3 | 24,370 | +4% chance of a x3 hit. Unlocks on the 2nd field. |
| Grandma's Lunchbox | Sharp Hoe | — | 6 | 8 | 1.85 | 368 | +3s of stamina per day. |
| Deep Pockets | Wide Hoe | — | 4 | 30 | 2.3 | 623 | Pulls coins from farther away. |
| Helper Crow | Deep Pockets | field 2 | 4 | 250 | 2.6 | 6,984 | A crow fetches the coins your magnet can't reach and sends them to you. Levels 2-3 bring a 2nd crow and level 4 a 3rd; every level flies faster. Unlocks on the 2nd field. |
| Firm Stomp | Wide Hoe | — | 6 | 30 | 2.1 | 2,311 | Click/tap gets stronger: +1x damage per level. |
| Calloused Hands | Wide Hoe | field 3 | ∞ | 1500 | 1.45 | — | +10% power per level (it stacks). No level cap! Unlocks on the 3rd field. |
| Rebel Soil | Farm Rhythm | — | 5 | 60 | 2.3 | 2,924 | More weeds grow. More weeds, more coins! |
| Golden Mushroom | Rebel Soil | — | 5 | 250 | 2.4 | 14,040 | +2% chance of golden mushrooms (lots of coins). |
| Cluck the Hen | Farm Rhythm | — | 2 | 300 | 3 | 1,200 | +1 hen that pecks weeds, burrs and termites on her own with your full hoe power. |
| Wicker Basket | Grandma's Lunchbox | — | 5 | 150 | 2.4 | 8,425 | +15% coins per weed. |
| Grandpa's Coffee | Grandma's Lunchbox | — | 3 | 400 | 2.8 | 4,656 | Each weed you pull gives back +0.1s of stamina (up to +2.5s per day). |
| Hearty Lunchbox | Grandma's Lunchbox | field 2 | 6 | 300 | 2 | 18,900 | +2s of stamina per day. Unlocks on the 2nd field. |
| Horseshoe Magnet | Deep Pockets | field 2 | 3 | 400 | 2.4 | 3,664 | Pulls coins from even farther. Unlocks on the 2nd field. |
| Steel-Toe Boots | Firm Stomp | field 3 | 5 | 1225 | 2.2 | 51,589 | Stomp x1 stronger and 8% faster to recharge. Unlocks on the 3rd field. |
| Grandpa's Pocket Watch | Farm Rhythm | field 3 | 5 | 2000 | 2.2 | 84,227 | Automatic hits 6% faster. Unlocks on the 3rd field. |
| Market Cart | Wicker Basket | field 3 | 5 | 4977 | 2.3 | 242,584 | +12% coins from every plant. Unlocks on the 3rd field. |
| Golden Hoe | Steel Hoe | field 4 | 6 | 24505 | 2 | 1,543,815 | +20% damage per level. Unlocks on the 4th field. |
| Rich Soil | Rebel Soil | field 4 | ∞ | 5000 | 1.5 | — | +5% coins per level (it stacks). No level cap! Unlocks on the 4th field. |
Levels, costs and effect of each upgrade
Sharp Hoe
| Level | Next cost | Total spent | Damage per hit |
|---|---|---|---|
| 0 | 4 | 0 | 1.00 |
| 1 | 6 | 4 | 1.25 |
| 2 | 9 | 10 | 1.50 |
| 3 | 14 | 19 | 1.75 |
| 4 | 20 | 33 | 2.00 |
| 5 | 30 | 53 | 2.25 |
| 6 | 46 | 83 | 2.50 |
| 7 | 68 | 129 | 2.75 |
| 8 | max | 197 | 3.00 |
Wide Hoe
| Level | Next cost | Total spent | Area radius |
|---|---|---|---|
| 0 | 12 | 0 | 40 |
| 1 | 25 | 12 | 47 |
| 2 | 53 | 37 | 54 |
| 3 | 111 | 90 | 61 |
| 4 | max | 201 | 68 |
Farm Rhythm
| Level | Next cost | Total spent | Hits per second |
|---|---|---|---|
| 0 | 15 | 0 | 2.00 |
| 1 | 29 | 15 | 2.22 |
| 2 | 57 | 44 | 2.47 |
| 3 | 111 | 101 | 2.74 |
| 4 | 217 | 212 | 3.05 |
| 5 | 423 | 429 | 3.39 |
| 6 | max | 852 | 3.76 |
Steel Hoe
| Level | Next cost | Total spent | Damage per hit (hoe 0) |
|---|---|---|---|
| 0 | 600 | 0 | 1.00 |
| 1 | 1,260 | 600 | 1.15 |
| 2 | 2,646 | 1,860 | 1.32 |
| 3 | 5,557 | 4,506 | 1.52 |
| 4 | 11,669 | 10,063 | 1.75 |
| 5 | 24,505 | 21,732 | 2.01 |
| 6 | max | 46,237 | 2.31 |
Big Rake
| Level | Next cost | Total spent | Area radius (width 0) |
|---|---|---|---|
| 0 | 1,500 | 0 | 40 |
| 1 | 3,450 | 1,500 | 47 |
| 2 | 7,935 | 4,950 | 54 |
| 3 | 18,250 | 12,885 | 61 |
| 4 | max | 31,135 | 68 |
Sure Strike
| Level | Next cost | Total spent | x3 hit chance |
|---|---|---|---|
| 0 | 500 | 0 | 0% |
| 1 | 1,150 | 500 | 4% |
| 2 | 2,645 | 1,650 | 8% |
| 3 | 6,083 | 4,295 | 12% |
| 4 | 13,992 | 10,378 | 16% |
| 5 | max | 24,370 | 20% |
Grandma's Lunchbox
| Level | Next cost | Total spent | Stamina (s) |
|---|---|---|---|
| 0 | 8 | 0 | 10 |
| 1 | 15 | 8 | 13 |
| 2 | 27 | 23 | 16 |
| 3 | 51 | 50 | 19 |
| 4 | 94 | 101 | 22 |
| 5 | 173 | 195 | 25 |
| 6 | max | 368 | 28 |
Deep Pockets
| Level | Next cost | Total spent | Magnet radius |
|---|---|---|---|
| 0 | 30 | 0 | 50 |
| 1 | 69 | 30 | 68 |
| 2 | 159 | 99 | 86 |
| 3 | 365 | 258 | 104 |
| 4 | max | 623 | 122 |
Helper Crow
| Level | Next cost | Total spent | Crow speed (1/2/2/3 crows at lv 1-4) |
|---|---|---|---|
| 0 | 250 | 0 | 0 |
| 1 | 650 | 250 | 250 |
| 2 | 1,690 | 900 | 300 |
| 3 | 4,394 | 2,590 | 350 |
| 4 | max | 6,984 | 400 |
Firm Stomp
| Level | Next cost | Total spent | Stomp multiplier |
|---|---|---|---|
| 0 | 30 | 0 | x2 |
| 1 | 63 | 30 | x3 |
| 2 | 132 | 93 | x4 |
| 3 | 278 | 225 | x5 |
| 4 | 583 | 503 | x6 |
| 5 | 1,225 | 1,086 | x7 |
| 6 | max | 2,311 | x8 |
Calloused Hands endless (showing 15)
| Level | Next cost | Total spent | Power bonus |
|---|---|---|---|
| 0 | 1,500 | 0 | x1.00 |
| 1 | 2,175 | 1,500 | x1.10 |
| 2 | 3,154 | 3,675 | x1.21 |
| 3 | 4,573 | 6,829 | x1.33 |
| 4 | 6,631 | 11,402 | x1.46 |
| 5 | 9,615 | 18,033 | x1.61 |
| 6 | 13,941 | 27,648 | x1.77 |
| 7 | 20,215 | 41,589 | x1.95 |
| 8 | 29,311 | 61,804 | x2.14 |
| 9 | 42,501 | 91,115 | x2.36 |
| 10 | 61,627 | 133,616 | x2.59 |
| 11 | 89,359 | 195,243 | x2.85 |
| 12 | 129,571 | 284,602 | x3.14 |
| 13 | 187,878 | 414,173 | x3.45 |
| 14 | 272,423 | 602,051 | x3.80 |
| 15 | 395,013 | 874,474 | x4.18 |
Rebel Soil
| Level | Next cost | Total spent | Plants sprouting/s |
|---|---|---|---|
| 0 | 60 | 0 | 1.50 |
| 1 | 138 | 60 | 2.02 |
| 2 | 317 | 198 | 2.55 |
| 3 | 730 | 515 | 3.08 |
| 4 | 1,679 | 1,245 | 3.60 |
| 5 | max | 2,924 | 4.12 |
Golden Mushroom
| Level | Next cost | Total spent | Golden chance |
|---|---|---|---|
| 0 | 250 | 0 | 0% |
| 1 | 600 | 250 | 2% |
| 2 | 1,440 | 850 | 4% |
| 3 | 3,456 | 2,290 | 6% |
| 4 | 8,294 | 5,746 | 8% |
| 5 | max | 14,040 | 10% |
Cluck the Hen
| Level | Next cost | Total spent | Chickens |
|---|---|---|---|
| 0 | 300 | 0 | 0 |
| 1 | 900 | 300 | 1 |
| 2 | max | 1,200 | 2 |
Wicker Basket
| Level | Next cost | Total spent | Coins (field 1) |
|---|---|---|---|
| 0 | 150 | 0 | x1.00 |
| 1 | 360 | 150 | x1.15 |
| 2 | 864 | 510 | x1.30 |
| 3 | 2,074 | 1,374 | x1.45 |
| 4 | 4,977 | 3,448 | x1.60 |
| 5 | max | 8,425 | x1.75 |
Grandpa's Coffee
| Level | Next cost | Total spent | Daily coffee cap (s) |
|---|---|---|---|
| 0 | 400 | 0 | 0.0 |
| 1 | 1,120 | 400 | 2.5 |
| 2 | 3,136 | 1,520 | 5.0 |
| 3 | max | 4,656 | 7.5 |
Hearty Lunchbox
| Level | Next cost | Total spent | Stamina (s, lunchbox 0) |
|---|---|---|---|
| 0 | 300 | 0 | 0 |
| 1 | 600 | 300 | 0 |
| 2 | 1,200 | 900 | 0 |
| 3 | 2,400 | 2,100 | 0 |
| 4 | 4,800 | 4,500 | 0 |
| 5 | 9,600 | 9,300 | 0 |
| 6 | max | 18,900 | 0 |
Horseshoe Magnet
| Level | Next cost | Total spent | Magnet radius (pocket 0) |
|---|---|---|---|
| 0 | 400 | 0 | 0 |
| 1 | 960 | 400 | 0 |
| 2 | 2,304 | 1,360 | 0 |
| 3 | max | 3,664 | 0 |
Steel-Toe Boots
| Level | Next cost | Total spent | Stomp multiplier (stomp 0) |
|---|---|---|---|
| 0 | 1,225 | 0 | x0 |
| 1 | 2,695 | 1,225 | x0 |
| 2 | 5,929 | 3,920 | x0 |
| 3 | 13,044 | 9,849 | x0 |
| 4 | 28,696 | 22,893 | x0 |
| 5 | max | 51,589 | x0 |
Grandpa's Pocket Watch
| Level | Next cost | Total spent | Hits per second (rhythm 0) |
|---|---|---|---|
| 0 | 2,000 | 0 | 0.00 |
| 1 | 4,400 | 2,000 | 0.00 |
| 2 | 9,680 | 6,400 | 0.00 |
| 3 | 21,296 | 16,080 | 0.00 |
| 4 | 46,851 | 37,376 | 0.00 |
| 5 | max | 84,227 | 0.00 |
Market Cart
| Level | Next cost | Total spent | Coins (field 1, basket 0) |
|---|---|---|---|
| 0 | 4,977 | 0 | x0.00 |
| 1 | 11,447 | 4,977 | x0.00 |
| 2 | 26,328 | 16,424 | x0.00 |
| 3 | 60,555 | 42,752 | x0.00 |
| 4 | 139,277 | 103,307 | x0.00 |
| 5 | max | 242,584 | x0.00 |
Golden Hoe
| Level | Next cost | Total spent | Damage per hit (hoe 0) |
|---|---|---|---|
| 0 | 24,505 | 0 | 0.00 |
| 1 | 49,010 | 24,505 | 0.00 |
| 2 | 98,020 | 73,515 | 0.00 |
| 3 | 196,040 | 171,535 | 0.00 |
| 4 | 392,080 | 367,575 | 0.00 |
| 5 | 784,160 | 759,655 | 0.00 |
| 6 | max | 1,543,815 | 0.00 |
Rich Soil endless (showing 15)
| Level | Next cost | Total spent | Coins (field 1) |
|---|---|---|---|
| 0 | 5,000 | 0 | x0.00 |
| 1 | 7,500 | 5,000 | x0.00 |
| 2 | 11,250 | 12,500 | x0.00 |
| 3 | 16,875 | 23,750 | x0.00 |
| 4 | 25,313 | 40,625 | x0.00 |
| 5 | 37,969 | 65,938 | x0.00 |
| 6 | 56,953 | 103,907 | x0.00 |
| 7 | 85,430 | 160,860 | x0.00 |
| 8 | 128,145 | 246,290 | x0.00 |
| 9 | 192,217 | 374,435 | x0.00 |
| 10 | 288,325 | 566,652 | x0.00 |
| 11 | 432,488 | 854,977 | x0.00 |
| 12 | 648,732 | 1,287,465 | x0.00 |
| 13 | 973,098 | 1,936,197 | x0.00 |
| 14 | 1,459,646 | 2,909,295 | x0.00 |
| 15 | 2,189,469 | 4,368,941 | x0.00 |
Tiers (border color) and purchase animations
Every purchase makes the node bounce, emits particles and a ring. Each node changes its border color every third of its max level: Bronze (1/3), Silver (2/3) and Gold (max, with a spinning shine). Endless ones go up a tier every 5 levels. When a tier goes up, the animation is bigger: rings in the tier color, shake, a star sound and the notice "Name: Bronze!". A pulsing golden halo shows it can be bought.
Other effects
- Sure Strike: each hit has a chance to deal x3 damage, with "x3!" on screen.
- Grandpa's Coffee: each plant that YOU pull gives back 0.1s × level of stamina, with a daily cap (table above).
- Rebel Soil: also raises the maximum number of plants on the board (30 + 4 × level; the grid has 49 plots).
Harvest goals (Story)
The shed's Goals tab. Every plant pulled in Story mode counts toward the goal for its type. When the goal is reached, a "Claim +X" button appears (the tab shows a red badge with how many are ready). Goals go 20, 40, 80, 100, 150, 200, 300, 400, 500, 750, 1000 and then +500 each, divided by the plant's rarity (mushrooms ×0.5, stump ×0.25, golden ×0.1). Reward = plants required × plant coins × 0.3 × current field bonus (it grows with the game). Progress survives replanting. A plant only shows up in the goals after you pull the first one.
In the table: amount required and, below it, the reward on field 1.
| Plant | Goal 1 | Goal 2 | Goal 3 | Goal 4 | Goal 5 | Goal 6 | Goal 7 | Goal 8 | Goal 9 | Goal 10 | Goal 11 | Goal 12 | Goal 13 | Goal 14 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Weeds | 20 +6 | 40 +12 | 80 +24 | 100 +30 | 150 +45 | 200 +60 | 300 +90 | 400 +120 | 500 +150 | 750 +225 | 1,000 +300 | 1,500 +450 | 2,000 +600 | 2,500 +750 |
| Burrs | 20 +18 | 40 +36 | 80 +72 | 100 +90 | 150 +135 | 200 +180 | 300 +270 | 400 +360 | 500 +450 | 750 +675 | 1,000 +900 | 1,500 +1,350 | 2,000 +1,800 | 2,500 +2,250 |
| Red mushrooms | 10 +18 | 20 +36 | 40 +72 | 50 +90 | 75 +135 | 100 +180 | 150 +270 | 200 +360 | 250 +450 | 375 +675 | 500 +900 | 750 +1,350 | 1,000 +1,800 | 1,250 +2,250 |
| Orange mushrooms | 10 +12 | 20 +24 | 40 +48 | 50 +60 | 75 +90 | 100 +120 | 150 +180 | 200 +240 | 250 +300 | 375 +450 | 500 +600 | 750 +900 | 1,000 +1,200 | 1,250 +1,500 |
| Stumps | 5 +23 | 10 +45 | 20 +90 | 25 +113 | 38 +171 | 50 +225 | 75 +338 | 100 +450 | 125 +563 | 188 +846 | 250 +1,125 | 375 +1,688 | 500 +2,250 | 625 +2,813 |
| Golden mushrooms | 2 +15 | 4 +30 | 8 +60 | 10 +75 | 15 +113 | 20 +150 | 30 +225 | 40 +300 | 50 +375 | 75 +563 | 100 +750 | 150 +1,125 | 200 +1,500 | 250 +1,875 |
| Termites | 16 +5 | 32 +10 | 64 +19 | 80 +24 | 120 +36 | 160 +48 | 240 +72 | 320 +96 | 400 +120 | 600 +180 | 800 +240 | 1,200 +360 | 1,600 +480 | 2,000 +600 |
| Bottles | 10 +12 | 20 +24 | 40 +48 | 50 +60 | 75 +90 | 100 +120 | 150 +180 | 200 +240 | 250 +300 | 375 +450 | 500 +600 | 750 +900 | 1,000 +1,200 | 1,250 +1,500 |
| Broken fences | 7 +15 | 14 +29 | 28 +59 | 35 +74 | 53 +111 | 70 +147 | 105 +221 | 140 +294 | 175 +368 | 263 +552 | 350 +735 | 525 +1,103 | 700 +1,470 | 875 +1,838 |
| Old tires | 5 +15 | 10 +30 | 20 +60 | 25 +75 | 38 +114 | 50 +150 | 75 +225 | 100 +300 | 125 +375 | 188 +564 | 250 +750 | 375 +1,125 | 500 +1,500 | 625 +1,875 |
| Anthills | 5 +12 | 10 +24 | 20 +48 | 25 +60 | 38 +91 | 50 +120 | 75 +180 | 100 +240 | 125 +300 | 188 +451 | 250 +600 | 375 +900 | 500 +1,200 | 625 +1,500 |
| Wasp nests | 4 +12 | 8 +24 | 16 +48 | 20 +60 | 30 +90 | 40 +120 | 60 +180 | 80 +240 | 100 +300 | 150 +450 | 200 +600 | 300 +900 | 400 +1,200 | 500 +1,500 |
| Termite mounds | 4 +14 | 8 +29 | 16 +58 | 20 +72 | 30 +108 | 40 +144 | 60 +216 | 80 +288 | 100 +360 | 150 +540 | 200 +720 | 300 +1,080 | 400 +1,440 | 500 +1,800 |
| Rocks | 4 +22 | 8 +43 | 16 +86 | 20 +108 | 30 +162 | 40 +216 | 60 +324 | 80 +432 | 100 +540 | 150 +810 | 200 +1,080 | 300 +1,620 | 400 +2,160 | 500 +2,700 |
| Corn | 10 +21 | 20 +42 | 40 +84 | 50 +105 | 75 +158 | 100 +210 | 150 +315 | 200 +420 | 250 +525 | 375 +788 | 500 +1,050 | 750 +1,575 | 1,000 +2,100 | 1,250 +2,625 |
| Carrots | 8 +24 | 16 +48 | 32 +96 | 40 +120 | 60 +180 | 80 +240 | 120 +360 | 160 +480 | 200 +600 | 300 +900 | 400 +1,200 | 600 +1,800 | 800 +2,400 | 1,000 +3,000 |
| Pumpkins | 5 +30 | 10 +60 | 20 +120 | 25 +150 | 38 +228 | 50 +300 | 75 +450 | 100 +600 | 125 +750 | 188 +1,128 | 250 +1,500 | 375 +2,250 | 500 +3,000 | 625 +3,750 |
Infestations, bosses and prestige
Infestations (bosses)
At some point in the day the board is taken over by a single plant type for 6s, led by a crowned boss in the middle. The first infestation is guaranteed between day 3 and day 6 (so the player learns it exists). After that, the chance is 30% + 4% per field + 12% per Pest Hunter level (max 85%). Boss health = (40 + type health × 6) × difficulty (× 2 on the final boss). Each plant that came with the infestation takes a chunk of the boss's health when pulled: clearing all of them takes 50%. Defeating it gives coins (25× the plant) and Rare Seeds.
Replant (prestige)
From field 3 on you can replant: resets coins, upgrades and fields, earns Rare Seeds and starts a new harvest, harder (health ×1.6) and richer (coins ×1.5). Seeds earned on harvest 1: field 3: 3, field 4: 5, field 5: 9, field 6: 13, field 7: 17, field 8: 22. When replanting unlocks, grandpa sends a letter explaining it, the Seed bank tab gets a "!" badge and the panel shows separately what you lose (coins, upgrades, fields), keep (seeds, bank, goals, story, Arcade and Daily) and gain. When the story is finished (Mushroom King defeated), the ending screen appears with the options replant or continue.
Seed bank (permanent upgrades)
| Upgrade | Max | Costs (seeds) | Description |
|---|---|---|---|
| Deep Roots | ∞ | 2, 3, 5, 8, 13, 21, 34, 54… | +25% power per level, forever. No level cap! |
| Grandpa's Savings | 8 | 1, 2, 3, 6, 10, 19, 34, 61 | Start each harvest with more coins. |
| Family Stamina | 5 | 3, 6, 11, 21, 39 | +2s of stamina every day. |
| Lucky Seed | 8 | 2, 3, 6, 10, 17, 28, 48, 82 | +1% chance of golden mushrooms. |
| Cozy Nest | 2 | 6, 18 | +1 hen that comes with you on every harvest. |
| Pest Hunter | 5 | 3, 6, 11, 21, 39 | More frequent infestations and +25% seeds from bosses. |
Arcade mode
Numbered, endless and deterministic levels (the same on any device), on a Candy Crush-style path. Arcade does NOT use the shed upgrades: each level has fixed gear, the same for everyone, so only skill counts and the stars are fair. The player improves slowly (damage +0.12 per level) and weeds toughen faster (health ×1.045 per level). Goals: pull N plants, pull N of one type, collect N coins; every 10 levels, a boss.
Stars for the stamina left when the goal is met: 1 star = goal met, 2 = 20% left, 3 = 45% left. During the level, the mission card (always visible, on mobile too) shows the goal with an icon, a big progress bar, the stars you'd get if you finished now and how many seconds until you lose the next one. The pause screen shows the mission and the level's gear.
| Level | Goal | Time | Biome | Damage | Area | Hits/s | Health | Chickens |
|---|---|---|---|---|---|---|---|---|
| 1 | Pull 13 plants | 30s | Pasture | 2.12 | 63 | 2.65 | x1.04 | 0 |
| 2 | Pull 14 plants | 32s | Pasture | 2.24 | 64 | 2.66 | x1.09 | 0 |
| 3 | Pull 10 red mushrooms | 29s | Pasture | 2.36 | 64 | 2.67 | x1.14 | 0 |
| 4 | Pull 17 plants | 33s | Pasture | 2.48 | 65 | 2.69 | x1.19 | 0 |
| 5 | Pull 11 weeds | 31s | Pasture | 2.60 | 66 | 2.70 | x1.25 | 0 |
| 6 | Collect 44 coins | 26s | Pasture | 2.72 | 67 | 2.72 | x1.30 | 0 |
| 7 | Harvest 28 crops | 30s | Pasture | 2.84 | 68 | 2.73 | x1.36 | 0 |
| 8 | Pull 23 plants | 32s | Pasture | 2.96 | 68 | 2.75 | x1.42 | 0 |
| 9 | Collect 54 coins | 32s | Pasture | 3.08 | 69 | 2.76 | x1.49 | 0 |
| 10 | Defeat the Burr Queen | 35s | Pasture | 3.20 | 70 | 2.78 | x1.55 | 0 |
| 11 | Collect 60 coins | 29s | Orchard | 3.32 | 71 | 2.79 | x1.62 | 0 |
| 12 | Collect 63 coins | 28s | Orchard | 3.44 | 72 | 2.81 | x1.70 | 0 |
| 13 | Collect 66 coins | 29s | Orchard | 3.56 | 72 | 2.82 | x1.77 | 0 |
| 14 | Harvest 36 crops | 30s | Orchard | 3.68 | 73 | 2.84 | x1.85 | 0 |
| 15 | Collect 72 coins | 32s | Orchard | 3.80 | 74 | 2.86 | x1.94 | 1 |
| 16 | Pull 34 plants | 31s | Orchard | 3.92 | 75 | 2.87 | x2.02 | 1 |
| 17 | Collect 78 coins | 30s | Orchard | 4.04 | 76 | 2.89 | x2.11 | 1 |
| 18 | Pull 19 burrs | 33s | Orchard | 4.16 | 76 | 2.91 | x2.21 | 1 |
| 19 | Pull 20 burrs | 31s | Orchard | 4.28 | 77 | 2.92 | x2.31 | 1 |
| 20 | Defeat the Weed Queen | 36s | Orchard | 4.40 | 78 | 2.94 | x2.41 | 1 |
| 21 | Harvest 45 crops | 30s | Swamp | 4.52 | 79 | 2.96 | x2.52 | 1 |
| 22 | Pull 42 plants | 34s | Swamp | 4.64 | 80 | 2.98 | x2.63 | 1 |
| 23 | Pull 22 red mushrooms | 26s | Swamp | 4.76 | 80 | 2.99 | x2.75 | 1 |
| 24 | Pull 23 red mushrooms | 28s | Swamp | 4.88 | 81 | 3.01 | x2.88 | 1 |
| 25 | Pull 24 orange mushrooms | 27s | Swamp | 5.00 | 82 | 3.03 | x3.01 | 1 |
| 26 | Pull 24 weeds | 34s | Swamp | 5.12 | 83 | 3.05 | x3.14 | 1 |
| 27 | Pull 25 burrs | 30s | Swamp | 5.24 | 84 | 3.07 | x3.28 | 1 |
| 28 | Harvest 53 crops | 30s | Swamp | 5.36 | 84 | 3.09 | x3.43 | 1 |
| 29 | Collect 115 coins | 30s | Swamp | 5.48 | 85 | 3.11 | x3.58 | 1 |
| 30 | Defeat the Mushroom King | 37s | Swamp | 5.60 | 86 | 3.12 | x3.75 | 2 |
| 31 | Pull 55 plants | 32s | Cornfield | 5.72 | 87 | 3.14 | x3.91 | 2 |
| 32 | Pull 56 plants | 29s | Cornfield | 5.84 | 88 | 3.16 | x4.09 | 2 |
| 33 | Collect 128 coins | 27s | Cornfield | 5.96 | 88 | 3.18 | x4.27 | 2 |
| 34 | Pull 29 burrs | 32s | Cornfield | 6.08 | 89 | 3.21 | x4.47 | 2 |
| 35 | Harvest 62 crops | 30s | Cornfield | 6.20 | 90 | 3.23 | x4.67 | 2 |
| 36 | Pull 31 stumps | 32s | Cornfield | 6.32 | 91 | 3.25 | x4.88 | 2 |
| 37 | Collect 140 coins | 34s | Cornfield | 6.44 | 92 | 3.27 | x5.10 | 2 |
| 38 | Collect 143 coins | 31s | Cornfield | 6.56 | 92 | 3.29 | x5.33 | 2 |
| 39 | Collect 146 coins | 30s | Cornfield | 6.68 | 93 | 3.31 | x5.57 | 2 |
| 40 | Defeat the Ancient Stump | 38s | Cornfield | 6.80 | 94 | 3.33 | x5.82 | 2 |
Daily challenge
One match per day, the same board for everyone (seed = date). 40s of stamina, infestation guaranteed at 15s, fixed gear (that of Arcade level 20, with more golden luck). Score = coins. Playing on consecutive days builds a streak.
- The mission card shows the date in the language's format, current points, the day's record and the countdown to the infestation.
- Tapping the Daily challenge card opens the challenge screen: what it is, what today's is like (field, boss and when it arrives), your numbers (today's record, all-time best, streak, days played, attempts today), the history of every day played (date, best score, attempts, a crown on the best) with a chart of the last 14 days, and the play button.
- Share: WhatsApp and X via link; "Copy" copies the text and saves the board image.
- Leaderboard: local for now; prepared for Google Play Games (see docs/RANKING.md).
Layout, input and performance
- Screen: base 1280x720, stretch
canvas_items+expand.main.gdcenters the area viaviewport.canvas_transform;Art.full()returns the visible rectangle so backgrounds fill the edges. - Adaptive HUD:
Hud.column_xf()builds each column's transform (pinned to the edge, scale = Interface size limited to the free space).Art.begin_region()also applies the transform toArt.at(); clicks are converted withHud.to_local(). - Tree: a
Controlwithclip_contents+ aNode2Dwith position/scale (pan/zoom), drawn behind the screen (show_behind_parent). Click only on release without dragging (8 px); wheel, pinch (2 touches), touchpad gestures and buttons. - Text:
Hud.text_block()wraps lines, shrinks the font down to 80% and, if needed, scrolls with a small bar (no lines cut off). - Touch: on the weeding day dragging moves the circle relatively; quick tap or 2nd finger = stomp.
PC: two attack keys (
k:keycodeorm:button), holding repeats the stomp. - Performance: pre-rendered plant sprites (2.5x), background and board in static layers (the shake only moves the layer), cap of 140 particles. Infestation on PC: 25 → 58 fps.
- Audio: 13 effects and a 19.2 s song synthesized into
AudioStreamWAV(thread), per-bus volumes with sliders. - Languages:
Loc.Twith key → [en, pt, es]; the automated test checks every key has all 3. Localized app name (config/name_localized).
Tests, builds and publishing
GODOT="C:/Program Files (x86)/Steam/steamapps/common/Godot Engine/godot.windows.opt.tools.64.exe"
"$GODOT" --headless --path . -- --smoke # automated test of every system
"$GODOT" --path . -- --shots [--pt|--es] [--resolution 1800x810] # screenshots of every screen (user://shots/<lang>)
"$GODOT" --headless --path . -- --balance --mult=3.5 --days=34 # economy simulator
"$GODOT" --headless --path . -- --doc # exports docs/game_data.json
"$GODOT" --path . -- --docimg # icons, plants, bosses, biomes and screenshots (3 languages) in docs/img
python tools/make_docs.py # builds both docs in EN, PT and ES
"$GODOT" --headless --path . --export-debug "Android" build/android/GrandpasFarm-debug.apk
"$GODOT" --headless --path . --export-release "Windows Slim" build/windows-slim/FazendaDoVovo.exe
- Windows Slim: template compiled from D:\dev\godot-src (4.7.2-stable,
custom.pywithout 3D/physics/Vulkan…), ~23 MB. No deprecated APIs (e.g.Image.create_empty). Icon applied with rcedit. - Android: arm64, adaptive icons.
- Publishing:
scpto[email protected]:/var/www/grandpasfarm= https://grandpasfarm.nxs.dev.br (this PC's SSH key).