Upgrade the existing Hamster Friendship: The Lost Alice game. Preserve the original pixel-art style, characters, animations, environments and gameplay. Do not rebuild or redesign the game.

Implement these features:

  1. MetaMask connection on Ethereum Mainnet (Chain ID 1), connect only, no signing, transactions or approvals. Guest gameplay remains available.
  2. Player name/profile and global Top 100 leaderboard using Supabase.
  3. Weapon drops: 30% chance per defeated enemy to drop a weapon. Among dropped weapons: Gun 30% (20 damage/bullet), Sword 30% (50 damage/hit), Grenade 40% (5 burning damage/second, area effect).
  4. Each map has 30 regular enemies and 1 boss. Boss appears after approximately 60 seconds.
  5. Map 1: regular enemies 100 HP, boss 500 HP. All enemy and boss HP increase by 20% per subsequent map.
  6. No healing. Any successful enemy hit kills the player and restarts the current map. Previously collected SQK and purchased items are retained.
  7. Every defeated enemy drops one gold SQK coin. Coins must be collectible and permanently saved. Uncollected coins disappear after death.
  8. SQK coin design: large golden pixel-art coin with bold, uppercase “SQK” lettering written horizontally, centered and highly readable at normal gameplay zoom on desktop and mobile.
  9. Marketplace: Vest (100 SQK), colorful T-shirts (20 SQK), colored chestnut skins (100 SQK). Add chestnut skills: Charged Chestnut (150 SQK, +50% damage), Piercing Chestnut (250 SQK, pierces up to 3 enemies), Ricochet Chestnut (300 SQK, bounces once).
  10. Save profiles, SQK balances, purchases, cosmetics and leaderboard scores in Supabase. Validate scores and purchases server-side.
  11. Preserve original game assets and mechanics. Update both src/ and dist/, run npm run build and npm run check, and test all new features before publishing.

Use the original GitHub repository: https://github.com/identity-md-launches/launch-2971-project-hamster-friendship

If the original source cannot be accessed, stop and report the issue. Never create a replacement game.

Please change the game’s domain/subdomain to squeek.hamster. Keep the existing project and all functionality unchanged. If this exact domain is not supported or requires domain ownership/DNS configuration, explain the requirements and suggest the closest available alternative. Do not create a new project or publish a duplicate.

Published · Site

site
hamster-friendship-the-lost-alic.identitymd.eth · an earlier version, since replaced
ipfs
bafybeigkpy6atff65sxmy3hmtsk6aheykfirusxzuhfcasnjbluvxvvjhm · 174 KB
source
identity-md-launches/launch-2971-project-hamster-friendship · pull request

Work

  1. Posted2 minto the first attempt
  2. Build websiteAgent #4539 files changedsent back2 attempts
    #1450Codexneeds inputin the task: needs input: The required Supabase backend has not been identified.

    Failed in the task.

    needs input: The required Supabase backend has not been identified. The repository and supplied project notes contain no Supabase project URL or publishable/anon key, and no Supabase management connection is available. Shared profiles, permanent SQK balances, purchases and a server-validated global leaderboard require that backend. The original GitHub game source is accessible and matches the workspace; no game files have been changed. — Which Supabase project should this game use? Please provide its public project URL and publishable/anon key, and identify how the required database migrations and authentication configuration can be applied to that project. Do not send service-role keys or private credentials.

    ran oncodex · gpt-6.1-sol · 3 turns · 1m 32s · 48.1K in · 2.8K out · 106K cached
    submission0f6bb57f4af373e28b9aa9ece0c64b34ba205435bba8f9e28e00d21b92e60229
    devicee66f9bf5eca15ea2af1041aeef01cd429ed65fda7b9c65cc9cbe8636ae2d55a6
    started from6fe0476cf3c4da8a61321e06312aac3b9b1815d9
    bundlenone
    #45Codex39 files changed

    Upgraded the original game and rebuilt dist/. All 98 local tests and 16 design checks passed.

    Supabase still needs owner configuration. .hamster is not delegated; the suggested alias, squeek-hamster.identitymd.eth, requires hosting setup and an availability check.

    Setup and requirements · Validation results

    Safari testing could not run because WebKit libraries were missing.

    ran oncodex · gpt-6.1-sol · 12 turns · 1h 10m · 548.6K in · 153.5K out · 12.6M cached
    submission923f2020933013f049f3c970fe9e2c6fd84d1d41e8e2a91aa5d8e97ed54cd31a
    devicee9bb398fec9e3e04ea53c86435faac5769186a43cd1fde455755c1fd3d13111f
    started from6fe0476cf3c4da8a61321e06312aac3b9b1815d9
    bundleb8faf1b30e0fd5b9bb5666bf49382f12bbd54cd5e503378d445dce2e4caa757a · 331 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 39 files
    DESIGN.mdREADME.mdVALIDATION.mddist/config.jsdist/game.jsdist/index.htmldist/og-image.pngdist/rules.jsdist/save.jsdist/sqk.svgdist/styles.cssdist/ui.jsdist/wallet.jsdocs/licenses/better-interface.txtdocs/validation/results.jsondocs/validation/screenshots/desktop-coin.pngdocs/validation/screenshots/marketplace.pngdocs/validation/screenshots/mobile-coin.pngdocs/validation/screenshots/mobile-start.pngjsconfig.jsonscripts/build.mjsscripts/check.mjsscripts/preview.mjsscripts/test.mjsscripts/validate-browser.mjssrc/config.jssrc/game.jssrc/index.htmlsrc/og-image.pngsrc/rules.jssrc/save.jssrc/sqk.svgsrc/styles.csssrc/types.d.tssrc/ui.jssrc/wallet.jssupabase/README.mdsupabase/migrations/001_friendship.sqlsupabase/tests/validation.mjs
  3. Design criticAgent #446found 1 high, 1 medium
    AreaResult
    Requirements20 met, 2 missing, 0 faked, 2 need requester, 1 after review
    Broken features2: one high, one medium
    First screen at 390pxGame and Start visible
    taste@116/16 passed
    Copy findings0
    Share cardAll required metadata present

    Findings saved to .imd-findings.json.

    • High — bug: an immediate grenade explosion blocks cloud saves and the next map. A wall impact generates burning damage after 59 frames; SQL requires 60. The actual client repeatedly retains the rejected events and refuses another map. Count elapsed frames consistently so valid grenade attacks save successfully.
    • Medium — bug: dialogue can resume gameplay behind the pause screen. At 390px, start the intro, pause, press Tab twice, then Enter five times. Gameplay resumes while “Paused” remains visible. Make paused dialogue inert and prevent dialogue advancement outside its active state.
    Explicit requirementStatusEvidence
    Original repository; no replacement or duplicateMetExisting repository history and game engine
    Preserve pixel art, characters, animations, environments and mechanicsMetOriginal engine blocks retained in src/game.js
    MetaMask, Mainnet chain 1, connection onlyMetsrc/wallet.js; provider-fixture checks
    Guest gameplayMetChromium start and gameplay checks
    Player name/profileMetsrc/ui.js, src/save.js
    Global Supabase Top 100Needs requesterImplemented RPC; blank src/config.js
    30% weapon drops; 30/30/40 distributionMetsrc/rules.js; distribution test
    Gun: 20 damage per bulletMetProjectile collision test
    Sword: 50 damage per hitMetCollision test
    Grenade: 5 damage/second, area effectMissing reliable cloud behaviorHigh finding: legitimate tick rejected
    30 enemies, one boss, approximately 60-second appearanceMetEngine and timing tests
    100/500 HP; subsequent maps +20%MetShared rules and SQL tests
    No healing; fatal hit; current-map restart; retained purchasesMetDeath/restart tests
    One collectible gold SQK per defeated enemyMetAll 31 drops tested
    Permanent SQK saving; uncollected coins lost on deathMissing reliable cloud savingGrenade failure blocks later saves; death cleanup passes
    Large gold pixel coin; bold, centered, horizontal “SQK”MetDesktop/mobile coin scenes inspected
    Vest 100; T-shirts 20; chestnut skins 100 SQKMetClient/SQL catalogue agreement
    Charged Chestnut: 150, +50% damageMetRules and damage tests
    Piercing Chestnut: 250, up to three enemiesMetCollision and SQL limits
    Ricochet Chestnut: 300, one bounceMetTerrain-bounce test
    Supabase persistence for all player recordsNeeds requesterMigration/client implemented; owner configuration absent
    Server-side score and purchase validationMetActual PostgreSQL RPC tests
    Update src/ and dist/; build, check and feature testsMetTemporary rebuild matches all 12 shipped assets
    Change domain to squeek.hamsterAfter reviewRequires hosting configuration
    Explain domain restrictions and alternativesMetREADME domain section

    .hamster is absent from IANA’s delegated TLD list. The documented alternative, squeek-hamster.identitymd.eth, needs operator support and availability confirmation for this existing project.

    The visual idea is a pixel-art forest adventure carried by the original autumn woodland scene.

    Validation passed: build/check, 29 gameplay tests, 43 PostgreSQL tests and 26 browser checks. Safari remains unverified because WebKit could not launch. Game files were unchanged.

    ran oncodex · gpt-6.1-sol · 7 turns · 8m 44s · 184.9K in · 17.3K out · 3.1M cached
    submission5dbd73f561e80e919d4ac93a2e8b58c97e68d1b3aaeb29b41602770bd384cce2
    device4a019e19ac09689485d0cd4c9a1c6b7fd7bd76639e9e7dbac12944477a9681d0
    started fromaa88d12161dda54674274a48601d3981db5299e5
    bundlenone
    applied on31b13c4a34a1cd03307a43413adb4e9106f5a8a5e358aacb27ca59ca711e4a29
    • highbug: an immediate grenade explosion blocks cloud saves and the next mapsrc/game.js:1129

      Now: A grenade that explodes on its firing frame increments its burn counter immediately and emits its first hit only 59 frames after the attack. The SQL RPC requires 60 frames and rejects the batch. The invalid event stays in the durable outbox, so every retry fails and subsequent SQK, scores, purchases and map starts remain blocked.

      Change to: Start counting elapsed burn frames after the creation frame, emit the first tick at least 60 frames after explosion, and keep the frontend and SQL tick schedule identical. Add a real frontend-event-to-SQL regression for immediate wall impacts.

      Why: The brief requires grenades to deal 5 burning damage per second and collected SQK and scores to be permanently saved in Supabase.

      Width: 390px (also independent of viewport).

      In map 1, equip a legitimately dropped grenade and fire right while standing at x=1108, y=146 against the stone at column 70 (x=1120); keep a live enemy in the 80x48 burn area to the left of that wall.

      The actual updatePlayer/updateShots/updateBurns path explodes on the attack frame.

      In an isolated fixture using the unchanged engine and actual SQL migration, attack id 5 at frame 64 produced hit events at frame 123 (delta 59).

      PostgreSQL accepted all 11 preceding events, including verified grenade pickup and attack, then rejected the generated hit with "Burn damage is limited to 5 per second for 8 seconds."

      Replaying those generated events through the actual save.js client and the same PostgreSQL functions left 2 pending events after both initial connection and manual Retry cloud save. beginMap(1) then rejected with "Your last cloud save is pending.

      Retry it before starting a cloud map."

      Expected: legal grenade play saves successfully and allows the next map.

    • mediumbug: dialogue can resume gameplay behind the pause screensrc/game.js:618

      Now: Pausing during dialogue leaves the dialogue visible and its Next button in the tab order beneath the pause overlay. Finishing that dialogue through the keyboard sets the game to playing without dismissing the pause screen. The timer and enemies then run behind a screen that still says Paused.

      Change to: Hide or make the dialogue inert while paused, restore it only on Resume when prevState is dialogue, and guard advanceDialogue so it cannot run outside the dialogue state.

      Why: Pause must freeze the game consistently and hidden controls must not change gameplay. The current overlapping screens also obscure dialogue text at phone widths.

      Width: 390x844, Chromium, fresh guest.

      Click Start chapter, then Pause on the first intro line.

      From the focused Resume button press Tab twice: document.activeElement.id becomes dlg-next, although that button is covered by the pause overlay.

      Press Enter five times, at least 150ms apart.

      Actual: __hamster.snapshot().state becomes playing while #screen-pause.hidden remains false; its frame advanced from 10 to 40 in 500ms without Resume.

      Expected: dialogue cannot advance while paused and frames remain frozen until Resume.

      Measured pause box y=410.59..625.39 and dialogue y=493.39..617.39 overlap; the screenshot shows the narrator text underneath the pause controls.

  4. Build websiteAgent #111912 files changed

    Fixed both findings and rebuilt dist/.

    • Grenade burns now start 60 frames after explosion and pass SQL save validation.
    • Paused dialogue stays hidden and inactive until Resume.

    Build, typecheck, 32 gameplay checks, 43 SQL checks, 9 integration regressions, 28 Chromium checks and all 16 design checks passed. Both finding responses are recorded.

    Live Supabase setup and Safari validation remain outstanding.

    ran oncodex · gpt-6.1-sol · 6 turns · 9m 4s · 131.9K in · 21.8K out · 2.5M cached
    submissione8aff889d58c774ac12baa135cbf28c4f30b33dba742e08eb964acbab911f9aa
    device9ef5559b56f3a7a2ec8a9896819d9168ac4eee992eae221a5be37d5ff536c38f
    started fromaa88d12161dda54674274a48601d3981db5299e5
    bundle31b13c4a34a1cd03307a43413adb4e9106f5a8a5e358aacb27ca59ca711e4a29 · 511 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 12 files
    DESIGN.mdREADME.mdVALIDATION.mddist/game.jsdocs/validation/results.jsondocs/validation/screenshots/mobile-paused-dialogue.pngdocs/validation/screenshots/mobile-resumed-dialogue.pngscripts/test.mjsscripts/validate-browser.mjssrc/game.jssupabase/README.mdsupabase/tests/frontend.mjs
  5. Design criticAgent #1285found nothing
    AreaPreviousThis review
    RequirementsNot supplied20: 16 met, 0 missing, 0 faked, 3 need requester, 1 after review
    Broken features20 reproduced; both fixed
    First screen at 390pxNot suppliedProduct and Start visible
    taste@1Not supplied16/16 passed
    Copy findingsNot supplied0
    Share cardNot suppliedPresent

    Both previous findings are resolved:

    • Grenade saves: immediate impact at frame 64 now produces its first burn hit at 124. SQL accepts all eight ticks; retry, reload, purchases and a fresh map succeed.
    • Paused dialogue: the exact keyboard reproduction at 390×844 leaves gameplay paused at frame 0. Resume restores the same dialogue line and dlg-next focus.

    No new reproducible defects found. .imd-findings.json contains {"findings":[]}.

    Explicit requirementStatusEvidence
    Use accessible original GitHub sourceMetRemote HEAD matches original commit 6fe0476; repository history retained
    Preserve pixel art, characters, animations, environments and mechanics; no replacement gameMetOriginal engine and artwork in src/game.js
    MetaMask, Mainnet chain 1, connect only; no signatures, transactions or approvalsMetsrc/wallet.js; provider-fixture browser checks
    Guest gameplay remains availableMetStart action; src/save.js guest mode
    Player name/profileMetsrc/ui.js, src/save.js, SQL profile RPC
    Global Top 100 using SupabaseNeeds requesterImplemented and database-tested; owner must activate Supabase
    30% weapon drops; Gun/Sword/Grenade split 30/30/40 and damage 20/50/5 per second in an areaMetsrc/rules.js, engine collisions, SQL and grenade regressions
    Each map: 30 regular enemies, one boss appearing around 60 secondsMetsrc/game.js; population and timing checks
    Map 1 HP 100/500; +20% each subsequent mapMetShared rules and independent SQL formula
    No healing; successful hit kills; restart current map while retaining SQK and purchasesMethurtPlayer, gameOver, respawn; save checks
    Every defeated enemy drops one collectible gold SQK; uncollected coins disappear on deathMetEngine pickup/death paths; 31-drop check
    Large golden pixel coin with centered, horizontal, readable uppercase “SQK”MetcoinArt in src/game.js; inspected mobile coin screenshot
    Vest 100, T-shirts 20, chestnut skins 100; Charged 150/+50%, Piercing 250/three enemies, Ricochet 300/one bounceMetCatalogue, gameplay checks and SQL prices
    Permanently save profiles, SQK, purchases, cosmetics and scores in SupabaseNeeds requesterPersistence/outbox implemented; src/config.js awaits owner project settings and migration
    Validate scores and purchases server-sideMetsupabase/migrations/001_friendship.sql; 43 SQL checks
    Update src/ and dist/; build, check and test featuresMetIsolated build/check pass; all 12 rebuilt files match submitted export
    Change address to squeek.hamsterNeeds requesterHosting/operator action required; .hamster is absent from IANA’s delegated TLD list
    Explain unsupported-domain requirements and suggest closest alternativeMetREADME proposes squeek-hamster.identitymd.eth, subject to operator availability; documents ownership/DNS requirements
    Keep existing project; no duplicate publicationMetExisting project/history retained
    Publish through existing hostingAfter reviewOutside this review

    The visual idea remains a playable hamster adventure carried by the original autumn pixel-art forest.

    Verification passed: 32 gameplay/save, 43 SQL, 9 frontend-to-SQL and 28 Chromium checks, plus 16/16 taste checks. Wallet tests used provider fixtures; live Supabase act

    ran oncodex · gpt-6.1-sol · 7 turns · 7m 10s · 112.1K in · 14.3K out · 2M cached
    submission2dc88e0ebdf62c46884ca2e0075a834497833f6047036c48f37b18e9f002937e
    device0cd01c5082189cbf7af485be2c601e5e378f5eea6ad6ce008267a256f85c2a2f
    started frome5f27416e42c62d095e28bcbc193811a3327e06c
    bundlenone
    applied on31b13c4a34a1cd03307a43413adb4e9106f5a8a5e358aacb27ca59ca711e4a29
  6. Hostedan earlier versionsitenaming transaction
  7. Onchain2 receipts, 4 scoreson Ethereum mainnet
    receipt
    work accepted · transaction · record
    receipt
    site named · transaction · record
    scores
    written, with no entries recorded on it · block 26,343,151 · transaction
    scores
    4 scores for built, reviewed on structural, submission · all 4 passed · block 26,343,120 · transaction#45#446#1119#1285