Version 1.0.0. For non-programmers: which file to change for every part of the screen, and step-by-step recipes. Works offline, without JavaScript.
Step-by-step recipes for people who do not program. Every part of the screen has a number on the real
screenshots below and the exact file that controls it. Work in the source/ folder of the
download, then run npm run build (or copy the changed files) and upload. You can also edit the
files inside game/ directly: they are the same files.
source/ folder in your editor (VS Code: File > Open Folder).source/, run npm run dev and open
http://localhost:5190/ (the game does not run from a double-clicked index.html). Without
Node.js you can use the free "Live Server" extension of VS Code. Press Ctrl+F5 after each change.
npm run build and upload the contents of dist/ (or upload only the
files you changed, at the same paths, into your game folder on the host).
| Tool | What for |
|---|---|
| VS Code or Notepad++ |
Edit texts, settings, levels and code (free). VS Code: File > Open Folder >
source/.
|
| Photopea (photopea.com) or GIMP | Edit pictures and export WebP/PNG (free). |
| Squoosh (squoosh.app) | Convert PNG/JPG to WebP and make files smaller (free, in the browser). |
| Audacity | Edit sounds and music, export MP3 (free). |
| FileZilla | Upload the game to your host by FTP (free). |
| Node.js 26.13 or newer (nodejs.org) | Optional: local server, tests, level tools and the build copy. |
Texts are in src/locales/<language>.js (shown here for English,
src/locales/en.js). Pictures are WebP files in assets/art/; replace them keeping the
same name and size.
12345678
| # | Part of the screen | File to change |
|---|---|---|
| 1 | Logo picture (the red barn with the game name painted on a ribbon), the menu picture (the chicken on its pumpkin cannon) and the farm scene behind them |
assets/art/logo.webp, assets/art/menu-hero.webp, background
assets/art/bg.webp
|
| 2 | Play button (gold plate) and its text |
picture assets/art/btn-play-wide.webp; texts play and
continueLevel in src/locales/en.js
|
| 3 | Levels button (red wood plate + map icon) |
assets/art/btn-wood.webp, assets/art/icon-map.webp; text levels
|
| 4 | Skins button (tomato icon) | assets/art/icon-ball.webp; text skins |
| 5 | Score button (trophy icon) | assets/art/icon-trophy.webp; text ranking |
| 6 | Settings button (small gold plate) | assets/art/btn-gold.webp |
| 7 | Stars, total score and coins line |
icons assets/art/icon-star.webp, assets/art/icon-trophy.webp,
assets/art/coin.webp
|
| 8 | Language picker (14 languages) | list in src/locales.js; texts in src/locales/ |
123456789
| # | Part of the screen | File to change |
|---|---|---|
| 1 | Left card: level badge, name, hint, cargo left, chapter strip |
card assets/art/panel-tall.webp, badge assets/art/wheel.webp, hint note
assets/art/hint-plaque.webp, hay bale icon assets/art/icon-crate.webp; names
and hints l1..l50, h1..h50 in
src/locales/en.js
|
| 2 | Score box | assets/art/score-box.webp |
| 3 | Pause button | assets/art/hud-btn.webp |
| 4 | Settings button | assets/art/hud-btn.webp |
| 5 | Right card: volley number and the star goals |
assets/art/panel-tall.webp, rows assets/art/row-plaque.webp, stars
assets/art/star-big.webp, assets/art/star-empty.webp; goals from
par in src/levels.js
|
| 6 | Stars still possible | assets/art/star-big.webp, assets/art/star-empty.webp |
| 7 | Bomb button |
assets/art/pulse-idle.webp, assets/art/pulse-armed.webp, label
assets/art/label.webp; text pulse
|
| 8 | Speed 1x/2x button | assets/art/btn-speed.webp |
| 9 | Arena: frame, field, blocks, cannon, tomatoes |
frame assets/art/frame.webp, sky and field behind the blocks
assets/art/interior.webp, field and fence scene assets/art/scene.webp,
blocks assets/art/crate.webp (and the others in the picture table), pumpkin cannon
assets/art/barrel-gun.webp, assets/art/carriage.webp,
assets/art/breech.webp; drawn by src/render/view-arena.js
|
1234567
| # | Part of the screen | File to change |
|---|---|---|
| 1 | Level name on the red ribbon | assets/art/ribbon-red.webp; card assets/art/card-parchment.webp |
| 2 | Stars won |
assets/art/star-big.webp, assets/art/star-empty.webp,
assets/art/stars-decor.webp
|
| 3 | Score and best | scoring rules in src/sim/config.js |
| 4 | Coins earned | winCoins in src/modes.js; coin assets/art/coin.webp |
| 5 | Next | assets/art/btn-play.webp; text next |
| 6 | Retry | assets/art/btn-wood.webp; text retry |
| 7 | Levels | assets/art/btn-wood.webp; text levels |
1234
| # | Part of the screen | File to change |
|---|---|---|
| 1 | Title and message |
card assets/art/card-dark.webp; chicken assets/art/parrot-sad.webp; texts in
src/locales/en.js
|
| 2 | One more chance (costs coins) | RESCUE_COST in src/modes.js |
| 3 | Try again | text retry |
| 4 | Levels | text levels |
123
| # | Part of the screen | File to change |
|---|---|---|
| 1 | Cannon upgrades |
prices in UPGRADES of src/modes.js; icons
assets/art/icon-ball.webp, assets/art/pulse-armed.webp,
assets/art/icon-spyglass.webp; texts up_balls, up_fuse,
up_sight
|
| 2 | Ball skins (tomato, pumpkin, potato, egg, gold, blueberry) |
SKINS in src/render/palette.js (colours, stars needed), pictures
assets/art/ball-spark.webp ... assets/art/ball-prism.webp, price
skinPrice in src/modes.js; names skin_spark ...
skin_prism
|
| 3 | Coins and stars | assets/art/coin.webp, assets/art/icon-star.webp |
12345
| # | Part of the screen | File to change |
|---|---|---|
| 1 | Music volume | default volumes at the top of src/main.js (music: 0.55) |
| 2 | Effects volume | sfx: 0.85 in src/main.js |
| 3 | Narration volume | voice: 0.9 in src/main.js |
| 4 | Language | src/locales/ |
| 5 | Close | assets/art/btn-x.webp |
123
| # | Part of the screen | File to change |
|---|---|---|
| 1 | Chapter fields (fenced farm plots) and level markers |
assets/art/map-isle1-wide.webp ... assets/art/map-isle10-wide.webp (desktop)
and -tall (phones), signs assets/art/sign-chapter.webp,
assets/art/map-sign.webp, grass assets/art/map-sea.webp
|
| 2 | Coins and stars | assets/art/label.webp |
| 3 | Close | assets/art/btn-x.webp |
| File | What it shows |
|---|---|
assets/art/crate.webp, assets/art/barrel.webp,
assets/art/chest.webp
|
Hay bale, apple barrel and reinforced chest (the regular and reinforced blocks); -d1 /
-d2 are the cracked versions shown as they lose hit points
|
assets/art/keg.webp |
Chili barrel (explodes its 8 neighbours) |
assets/art/rum.webp, assets/art/anchor-block.webp,
assets/art/treasure.webp
|
Fuel can (burns its row), iron block with a horseshoe (indestructible), treasure chest (+2 balls) |
assets/art/kraken.webp, assets/art/boss2.webp ...
assets/art/boss10.webp
|
The ten bosses (kraken.webp is the chapter 1 boss, the Giant Mole); -hurt is
the picture shown when hit
|
assets/art/parrot-happy.webp, assets/art/parrot-sad.webp,
assets/art/parrot-cheer.webp, assets/art/parrot-scared.webp,
assets/art/parrot-perch.webp
|
The mascot, a chicken in a straw hat, in its poses |
assets/art/ball-spark.webp ... assets/art/ball-prism.webp |
Ball skins (tomato, pumpkin, potato, egg, gold, blueberry) |
assets/art/bg.webp, assets/art/menu-hero.webp,
assets/art/logo.webp, assets/art/logo-band.webp
|
Menu background (farm path and red barn), menu picture (the chicken on its pumpkin cannon), logo, logo band of the phone layout |
assets/art/frame.webp, assets/art/interior.webp,
assets/art/scene.webp, assets/art/wood.webp
|
Arena frame (red barn posts), sky and field behind the blocks, field and fence scene, wood texture |
assets/art/coin.webp, assets/art/hand.webp |
Coin (with a golden egg), tutorial hand |
assets/icons/icon-512.png, favicon.ico |
App icon and browser tab icon (all sizes in assets/icons/) |
Every sound the game plays is listed in assets/audio-manifest.json. Replace a file keeping its
name; the description says what the original sounds like.
| Name | File | Description |
|---|---|---|
anchor |
assets/sfx/anchor.mp3 |
Tomato splatting against a heavy block of iron, short dull metallic clank with a low thump, no ring, isolated game sound |
ball_return |
assets/sfx/ball_return.mp3 |
Soft short thunk of a small iron ball dropping into a wooden bucket, gentle, single sound |
boss_hit |
assets/sfx/boss_hit.mp3 |
Heavy thud of a tomato hitting a big furry farm monster, soft low splat thump with a small surprised grunt, short |
boss_roar |
assets/sfx/boss_roar.mp3 |
Cartoon big monster roar, deep gruff growl of a huge beast, short, funny, not scary, game sound effect |
break_glass |
assets/sfx/break_glass.mp3 |
Hay bale bursting apart, a short rope snap followed by a crunchy rustle of straw flying, short, punchy, game sound effect |
break_heavy |
assets/sfx/break_heavy.mp3 |
Treasure chest bursting open, heavy wood crack with a metal latch clank and a quick jingle of spilling gold coins, short and punchy, game sound effect |
coin |
assets/sfx/coin.mp3 |
Single gold coin clink landing on a pile of coins, bright short metallic clink, isolated |
combo |
assets/sfx/combo.mp3 |
Short rising run of three quick bright gold coin clinks, arcade combo sound |
core_boom |
assets/sfx/core_boom.mp3 |
Big cartoon barrel explosion, heavy deep bass boom with a bright fiery burst, wooden splinters scattering and a quick sizzle, punchy and satisfying, short, arcade game sound, no long rumble |
danger |
assets/sfx/danger.mp3 |
Short urgent warning, two quick dings of a metal cowbell, not harsh, isolated game sound |
descend |
assets/sfx/descend.mp3 |
Wooden farm cart rolling down one step, a short low wooden creak ending in a soft thud, dry, isolated game sound |
hit_glass |
assets/sfx/hit_glass.mp3 |
Single short thump of a tomato hitting a tight bale of hay, soft dry straw thud with a clear pitch, very short, no reverb, isolated game sound |
hit_heavy |
assets/sfx/hit_heavy.mp3 |
Single dull heavy knock on an iron-banded wooden chest, wood thud with a short metallic ring, isolated game impact sound |
launch |
assets/sfx/launch.mp3 |
Single short soft cartoon cannon shot, a round low thoomp with a quick puff of air, like a tomato fired from a toy pumpkin cannon, tight and dry, no echo, no sharp crack, game sound effect |
lose |
assets/sfx/lose.mp3 |
Short sad descending tune on a harmonica, three falling notes ending low with a soft upright bass note, gentle cartoon game over |
pulse_charge |
assets/sfx/pulse_charge.mp3 |
Bomb fuse being lit, quick match strike then a fast sizzling sparkling fuse rising in intensity, short, cartoon game |
pulse_hit |
assets/sfx/pulse_hit.mp3 |
Big cartoon bomb explosion, deep bass boom with a bright crackle and falling debris, short, arcade game |
rum |
assets/sfx/rum.mp3 |
Whoosh of fire racing along spilled fuel, quick bright flame swoosh with a crackle, short, cartoon game |
splash |
assets/sfx/splash.mp3 |
Small object landing in a pile of hay on the grass, a soft low thump with a little straw rustle, short, cartoon game sound effect |
star |
assets/sfx/star.mp3 |
Bright shiny gold coin ding, single high metallic chime for awarding a star, short |
tap_start |
assets/sfx/tap_start.mp3 |
Short cowbell ding with a chunky wooden thump, satisfying start game confirm, short |
ui_back |
assets/sfx/ui_back.mp3 |
Soft low muted wooden knock, short |
ui_click |
assets/sfx/ui_click.mp3 |
Soft short wooden button tap, pleasant woody click |
unlock |
assets/sfx/unlock.mp3 |
Treasure chest opening reward, wooden creak then shimmering ascending chimes and coin sparkle, short |
wall_tick |
assets/sfx/wall_tick.mp3 |
Single short dry woody tick of a small iron ball bouncing off a wooden post, isolated game sound |
whoosh |
assets/sfx/whoosh.mp3 |
Quick rope and sail swoosh, airy cloth whoosh, smooth, short |
win |
assets/sfx/win.mp3 |
Short cheerful country victory fanfare, banjo and fiddle playing a quick rising four-note phrase with a hand clap, ending on a bright bell, joyful, game level complete jingle |
cove-game-a |
assets/music/cove-game-a.mp3 |
Music track |
cove-game-b |
assets/music/cove-game-b.mp3 |
Music track |
cove-kraken |
assets/music/cove-kraken.mp3 |
Music track |
cove-menu |
assets/music/cove-menu.mp3 |
Music track |
assets/art/ and look at the thumbnails.crate-original.webp, outside the game folder).
source/assets/art/ (and in game/assets/art/ if you upload
directly), then reload with Ctrl+F5.
assets/art/parrot-*.webp pictures keeping their sizes (each pose has its own
file: happy, sad, cheer, scared, perched). The file names are internal; the player never sees them.
assets/voice/en/, assets/voice/pt/ and
assets/voice/es/ (one MP3 per line; what each line says is listed in
assets/audio-manifest.json). Replace them keeping the names, or set the narration volume to 0
by default in src/main.js.
assets/sfx/.assets/icons/*.png and favicon.ico (the current
ones are the game's own icon: the chicken in its straw hat holding a tomato, with the red barn behind).
assets/art/crate.webp (hay bale, low hit points),
assets/art/barrel.webp (apple barrel), assets/art/chest.webp (reinforced chest)
and their -d1 / -d2 cracked versions; assets/art/keg.webp for the
chili barrel.
src/render/sprites.js and
src/render/palette.js.
hit_glass, hit_heavy, break_glass and
break_heavy in assets/sfx/.
assets/art/kraken.webp (chapter 1, the Giant Mole) and
assets/art/boss2.webp ... assets/art/boss10.webp, each with a
-hurt version.
boss1 ... boss10 in src/locales/en.js (and in the
other languages).
bossHp, ESCORT and RAGE in
src/modes.js; run node tools/check-modes.mjs after changing them.
assets/music/cove-kraken.mp3; roar and hit sounds: boss_roar,
boss_hit in assets/sfx/.
assets/audio-manifest.json: under sfx each sound has a name, its file in
assets/sfx/ and a short description.
assets/music/cove-menu.mp3 (menus),
assets/music/cove-game-a.mp3 and assets/music/cove-game-b.mp3 (levels,
alternating) and assets/music/cove-kraken.mp3 (bosses and the last level). The file names are
internal; the player never sees them.
dur (seconds) in the
music list of assets/audio-manifest.json.
src/locales/en.js (English) in VS Code or Notepad++. Each line is
key: 'text'.
{n} and similar markers. Save as UTF-8.src/locales/pt.js, src/locales/es.js ...). A
key missing in a language shows the English text.
index.html (<title>,
<meta name="description">) and manifest.webmanifest.
style.css and barnyard.css (for
example --gold, --cream, --brown, --amber,
--danger). Change the hex value, save, reload.
THEMES in
src/render/palette.js; block tints and ball skins are in the same file.
assets/art/wood.webp, assets/art/panel-tall.webp,
assets/art/card-parchment.webp and the button plates.
assets/fonts/ together with its licence.@font-face rule at the top of barnyard.css (titles, Fraunces) or
style.css (numbers, Chakra Petch) and the --font variable.
FONT in src/render/view-shared.js: put the same family name
first.
BALLS in src/sim/config.js (10).par of each level in src/levels.js (volleys allowed for 3 stars).src/levels.js; boss health:
bossHp in src/modes.js.
node tools/validate.mjs --solve <n> (see "Editing levels" in
the main guide) and npm test.
src/modes.js: START_COINS,
RESCUE_COST, winCoins, BOSS_COINS, DAILY_COINS,
STAR_MILESTONES, UPGRADES (prices per level), MISSIONS (goals and
rewards), skinPrice.
stars in SKINS of src/render/palette.js.
npm test afterwards.barnyard-boom.config.js, change provider, tapToStart or
fullscreen as explained in its comments, save and reload. See "Settings file and optional ads"
in the main guide.
source/, run npm test (if you changed code, levels or prices) and
npm run build.
dist/ to your game folder on the host (FileZilla or the host file
manager), replacing the old files. Keep the same web address so players keep their progress.
Some code names come from the first version of the engine. The player never sees them: all visible names come
from src/locales/.
| In the code | In the game |
|---|---|
targets, cargo, crystal, gem, armor
|
The blocks the tomatoes break (hay bales, barrels, chests); gem and
armor pick the block look
|
core, CORE, sound core_boom, picture keg |
Chili barrel (explodes its 8 neighbours) |
rum, anchor-block / anchor, treasure |
Fuel can (burns its row), iron block with a horseshoe (indestructible), treasure chest (+2 balls) |
pulse, Pulse, btn-pulse, pulse-armed |
The Bomb power (opens a 3x3 hole) |
volley, balls |
A volley of tomatoes (10 at the start) |
kraken, boss2 ... boss10 (pictures in assets/art/)
|
The ten chapter bosses; kraken is the chapter 1 boss, the Giant Mole (names from
boss1 ... boss10 in src/locales/)
|
skins |
Ball looks sold in the shop |
coins |
Coins |
parrot-* pictures; Rico in setRicoDrawer,
drawRotRico, res-rico, rot-rico
|
The mascot, a chicken in a straw hat |
rank, ranking, btn-rank |
The local score screen (no online leaderboard in this edition) |
MOCK in src/render/view-shared.js |
Reference measurements of the portrait layout |
theme keys ice, geode, forge, ... in
src/render/palette.js
|
The 10 chapters (Sunny Farm, Apple Orchard, Chili Field, ... County Fair) |
level ids in src/levels.js (first-spark ... heart-of-the-farm)
|
Save keys of each level's record |
music cove-menu, cove-game-a, cove-game-b,
cove-kraken
|
Menu, two gameplay tracks, boss track |
Main guide: documentation/index.html (installation, settings, levels, economy, languages, troubleshooting). Questions and custom work: willian@polargames.com.br.