Arcynex
Home About Contact
🎮 Game Player
Share
Casual Puzzle Family Collection

Jelly Doll Merge Quest

Fast Labs 2026-07-20
Advertisement

Reviews

Jelly Doll Merge Quest offers a calm, satisfying puzzle experience that stands out for its clever use of a claw machine. The core matching mechanic is simple but engaging, and the collection album gives each session a clear purpose. The bright, cheerful visuals and lack of time pressure make it ideal for unwinding. While the strategic depth is light, the game's charm and steady progression keep you coming back to fill that album.

About This Game

Core Matching Mechanics

At its heart, this game revolves around a simple but satisfying action: releasing soft jelly dolls from the top of the screen and guiding them to land near identical dolls. When two matching dolls touch, they combine into a new character, and you earn coins. This process repeats as you work through each level, with the goal of merging specific dolls to clear objectives. The physical bounce and roll of the dolls add a playful unpredictability to each drop, making every move feel slightly different.

Strategic Use of the Claw Machine

Coins you earn from merges can be spent in a special claw machine. This tool lets you select a specific doll from a prize pool and drop it onto the board. Using the claw machine wisely is key when you need a particular doll to complete a level goal or fill a gap in your collection. Planning when to spend coins versus saving them adds a light strategic layer to the otherwise relaxed gameplay.

Collection Album and Progression

Every new doll you unlock is recorded in a collection album. This book tracks which characters you have discovered and which ones remain hidden. Filling the album becomes a long-term goal that gives each session a sense of purpose beyond just clearing levels. The album also serves as a visual reward, showing off the variety of dolls you have gathered over time.

Visual Style and Atmosphere

The game world is bright and cheerful, with soft colors and friendly character designs. The dolls themselves are round and squishy-looking, with simple faces that make them easy to distinguish. The overall visual tone is warm and inviting, suitable for players of any age. The gentle background music and subtle sound effects for merges and coin collection create a calm, focused environment.

Level Structure and Goals

Each level presents a unique set of objectives, such as merging a certain number of a specific doll or reaching a target coin total. The board layout and the sequence of dolls released change from level to level, keeping the challenge fresh. There is no time limit, so players can take as long as they need to plan their drops and make efficient merges. This relaxed pace makes the game accessible to both casual players and those looking for a gentle mental exercise.

Compatibility

✅ This game supports:
- Desktop browsers (Chrome, Edge, Safari)
- Mobile browsers (Chrome on Android, Safari on iOS)
❌ Does NOT support: - Internet Explorer - Very old browser versions
👉 Try refreshing or updating your browser

FAQ

Is there a time limit in Jelly Doll Merge Quest?
No, there is no time limit. You can take as long as you need to plan each drop and merge. This makes the game suitable for relaxed play sessions, whether you have a few minutes or an hour to spare.
How do I earn coins in the game?
Coins are earned every time you merge two identical jelly dolls into a new character. The more merges you perform, the more coins you accumulate. These coins can then be used in the claw machine to obtain specific dolls you need.
Can I play Jelly Doll Merge Quest offline?
The game is designed to be played without an internet connection for its core mechanics. However, some features like cloud saves or updates may require connectivity. Check the app settings for offline availability.
What happens when I complete the collection album?
Completing the album is a long-term goal that gives a sense of achievement. While the game may continue with new levels or events, finishing the album often unlocks a special reward or cosmetic item. The exact reward varies by version.
Are there any in-app purchases?
Some versions of the game may offer optional in-app purchases for coin packs or cosmetic items. These are not required to progress, and all core content can be unlocked through regular gameplay.
Is the game suitable for young children?
Yes, the game is designed for players of all ages. The visuals are bright and friendly, there is no violence or scary content, and the simple tap-to-drop mechanic is easy for young children to understand.

Player Comments

0 comments
U
User
Loading comments...
// Favorite var isFavorited = false; var isToggling = false; function showToast(message, type) { type = type || 'success'; var toast = document.querySelector('.pl-toast'); if (!toast) { toast = document.createElement('div'); toast.className = 'pl-toast'; document.body.appendChild(toast); } toast.textContent = message; toast.className = 'pl-toast ' + type; setTimeout(function () { toast.classList.add('pl-show'); }, 10); setTimeout(function () { toast.classList.remove('pl-show'); }, 3000); } async function checkFavoriteStatus() { var btn = document.getElementById('favoriteBtn'); if (!btn) return; var gameId = btn.dataset.gameId; if (typeof apiService === 'undefined' || !apiService.isLoggedIn()) return; try { var fav = await apiService.checkFavorite(gameId); isFavorited = fav; updateFavoriteButton(); } catch (e) { } } function updateFavoriteButton() { var btn = document.getElementById('favoriteBtn'); if (!btn) return; var icon = btn.querySelector('i'); var label = btn.querySelector('.fav-label'); if (isFavorited) { btn.classList.add('active'); if (icon) icon.className = 'fa fa-bookmark'; if (label) label.textContent = 'Bookmarked'; } else { btn.classList.remove('active'); if (icon) icon.className = 'fa fa-bookmark-o'; if (label) label.textContent = 'Bookmark'; } } async function toggleFavorite() { var btn = document.getElementById('favoriteBtn'); if (!btn) return; var gameId = parseInt(btn.dataset.gameId); if (typeof apiService === 'undefined' || !apiService.isLoggedIn()) { showToast('Please login first', 'warning'); return; } if (isToggling) return; isToggling = true; try { var result; if (isFavorited) { result = await apiService.removeFavorite(gameId); } else { result = await apiService.addFavorite(gameId); } if (result.code === 0) { isFavorited = !isFavorited; updateFavoriteButton(); showToast(isFavorited ? 'Added to favorites' : 'Removed from favorites', 'success'); } else if (result.code === 401) { showToast('Please login first', 'warning'); } else { showToast(result.msg || 'Operation failed', 'error'); } } catch (e) { showToast('Network error', 'error'); } finally { isToggling = false; } } // ===== Comments System ===== var commentsPage = 1; var hasMoreComments = false; var selectedRating = 5; function initCommentForm() { var form = document.getElementById('commentForm'); var loginHint = document.getElementById('commentLoginHint'); if (!form) return; if (typeof apiService !== 'undefined' && apiService.isLoggedIn()) { form.style.display = ''; if (loginHint) loginHint.style.display = 'none'; var info = apiService.getMemberInfo(); if (info) { var nameEl = document.getElementById('currentUserName'); var avatarEl = document.getElementById('currentUserAvatar'); if (nameEl) nameEl.textContent = info.nickname || 'User'; if (avatarEl) { if (info.avatar) { avatarEl.innerHTML = 'Avatar'; } else { avatarEl.textContent = (info.nickname || 'User').charAt(0).toUpperCase(); } } } setRating(5); } else { form.style.display = 'none'; if (loginHint) loginHint.style.display = ''; var loginLink = loginHint ? loginHint.querySelector('.login-link-hint') : null; if (loginLink) { loginLink.addEventListener('click', function () { loadLoginForm('login'); }); } } } function setRating(rating) { selectedRating = rating; var stars = document.querySelectorAll('.pl-star'); stars.forEach(function (star, index) { if (index < rating) { star.classList.add('pl-on'); } else { star.classList.remove('pl-on'); } }); } async function submitComment() { var commentsSection = document.getElementById('commentsSection'); var gameId = commentsSection ? commentsSection.dataset.gameId : null; if (!gameId) { var favBtn = document.getElementById('favoriteBtn'); gameId = favBtn ? favBtn.dataset.gameId : null; } if (!gameId) { showToast('Game ID not found', 'error'); return; } var content = document.getElementById('commentContent').value.trim(); if (!content) { showToast('Please enter comment content', 'warning'); return; } var submitBtn = document.getElementById('submitComment'); submitBtn.disabled = true; try { var result = await apiService.addComment(gameId, content, selectedRating); if (result.code === 0) { showToast('Comment posted successfully', 'success'); document.getElementById('commentContent').value = ''; setRating(5); commentsPage = 1; loadComments(1); } else if (result.code === 401) { showToast('Please login first', 'warning'); } else { showToast(result.msg || 'Failed to post comment', 'error'); } } catch (e) { console.error('Submit comment error:', e); showToast('Network error', 'error'); } finally { submitBtn.disabled = false; } } async function loadComments(page) { var commentsSection = document.getElementById('commentsSection'); var gameId = commentsSection ? commentsSection.dataset.gameId : null; if (!gameId) { var favBtn = document.getElementById('favoriteBtn'); gameId = favBtn ? favBtn.dataset.gameId : null; } if (!gameId) return; var list = document.getElementById('commentsList'); var loadMoreBtn = document.getElementById('loadMoreComments'); try { if (typeof apiService === 'undefined') return; var result = await apiService.getGameComments(gameId, page, 10); if (result.code === 0) { var data = result.data; var comments = data.list || []; if (page === 1) list.innerHTML = ''; if (comments.length === 0) { if (page === 1) { list.innerHTML = '
💬

No comments yet. Be the first!

'; } if (loadMoreBtn) loadMoreBtn.style.display = 'none'; hasMoreComments = false; return; } comments.forEach(function (c) { var item = document.createElement('div'); item.className = 'pl-comment'; var avatarHtml = '
' + (c.nickname ? c.nickname.charAt(0).toUpperCase() : 'U') + '
'; if (c.avatar) { avatarHtml = '
' + (c.nickname || 'Avatar') + '
'; } item.innerHTML = '
' + avatarHtml + '
' + (c.nickname || 'Anonymous') + '
' + '
' + (c.create_time || '') + '
' + '
' + (c.star_html || '') + '
' + '
' + '
' + (c.content || '') + '
'; list.appendChild(item); }); var countEl = document.getElementById('commentsCount'); if (countEl) countEl.textContent = (data.total || comments.length) + ' comments'; hasMoreComments = data.total > page * 10; if (loadMoreBtn) { loadMoreBtn.style.display = hasMoreComments ? 'inline-block' : 'none'; loadMoreBtn.disabled = false; } } else { if (page === 1) { list.innerHTML = '
Failed to load comments
'; } } } catch (e) { console.error('Load comments error:', e); if (page === 1) { list.innerHTML = '
Network error
'; } } } function _waitForApiService(callback, maxRetries) { maxRetries = maxRetries || 50; var tries = 0; function check() { if (typeof apiService !== 'undefined') { callback(); } else if (tries < maxRetries) { tries++; setTimeout(check, 100); } else { console.warn('apiService not available after retries'); } } check(); } function _initDetailPage() { if (typeof initCommentForm === 'function') initCommentForm(); if (typeof loadComments === 'function') loadComments(1); } document.addEventListener('DOMContentLoaded', function () { var loadMoreBtn = document.getElementById('loadMoreComments'); if (loadMoreBtn) { loadMoreBtn.addEventListener('click', function () { if (hasMoreComments) { commentsPage++; this.disabled = true; loadComments(commentsPage); } }); } _waitForApiService(_initDetailPage); });

Share this page

Copy the link below and share it with your friends!