Berry Match Three: PRO

Berry Match Three: PRO

Single App License

With the Single app license you can make use of the purchased product for personal or commercial uses with no need to pay extra fees or charges except for the initial purchase price.

You are allowed to use the product for one project of your own or on behalf of your customer (personal, commercial, non profit).

You or your client cannot resale the purchased item again not on its own neither as a part of a project.

The purchased items under this license type must not be resold or redistributed "AS IS" or as a part of a bundle of files.

You can use this license for:

  • integrate the product in one app.
  • you can distribute the product only as binary (distributing the source code is forbidden).
  • you can make a commercial use of the product.
  • you can further develop or edit the code

Multiple App License

The multiple app license allows you to make a personal and commercial use for a project that will be sold with no need to pay extra fees or charges except for the initial purchase price.

The purchased items under this license type must not be resold or redistributed "AS IS".

You can use this license for:

  • You can integrate the product in an unlimited number of projects
  • You can redistribute or sublicense it in a project.
  • You can further develop and edit the code

Time is money! We can help you launch your app.

Our team has experience of more that 5 years in building and reskinning mobile apps. We can work for you and produce amazing graphic design and smooth functionality!

Take a look at our design capabilities:

This is what you get by purchasing our Reskin & Launch service:

Top quality HD graphics production for all of your app assets.

High quality screenshots & icons for your app.

Advertising integration into your app.

100% bug free code and warranty for 3 months.

We will submit the app to the Appstore/Google Play.

A professional dedicated project manager.

+ $1249
Add to cart If you need a custom quotation, contact us

The Best, Fastest and most reliable service to launch your own App or Game

Top quality HD graphics production for all of your app assets.

High quality screenshots & icons for your app.

Advertising integration into your app.

100% bug free code and warranty for 3 months.

We will submit the app to the Appstore/Google Play.

A professional dedicated project manager.

We know that you want things done fast and in the highest quality possible and that's exactly what we are here to provide! Our Team has successfully reskinned & Launched more than 1000 projects.


Add to wishlist

current version : 26.09.16 – Version 4.2.1

bugs that were found in bug fixer are now all 100% fixed.

Source code is now running on unity 5.4


Berry Match Three is the best Match-3 open source code engine you can find. This game has a very nice graphic design that you can substitute with your own original graphics. In this game you will also find a multitude of play modes and power ups.
The project contains a series of tools for fast project setup. They include a global settings editor, level editor, rules editor, localization editor etc. The project is in active development, so this list will be appended.


The the demo is available via the link below.

Google Play: DEMO


  • Powerful Level Editor. Import/export of levels into individual files.

  • Level types: Target Score – collect the specified number of points, Jelly Crush – clear the level of jelly, Block Crush – clear the level of wooden blocks, Sugar Drop – drop all sugar chips, Color Collection – destroy the specified number of chips, Jam – fill the level with jam, Duel with Ted – fill the level with jam before your opponent.

  • Level limitations: Moves – the player has a limited number of moves, Timer – the player has a limited amount of time.

  • Power ups: CrossBomb – destroys all berries in its row and column. SimpleBomb – destroys all neighboring berries. ColorBomb – destroys all berries of its own color, VLineBomb and HLineBomb – destroys the corresponding horizontal and vertical rows of berries. Ladybird – a smart bomb that searches for the most attractive berry and destroys it, UltraColorBomb – a bomb that, at the player’s will, destroys all berries of the same color as one of the neighboring berries. LightningBomb – a bomb creating a chain reaction of destroying chips.

  • A huge number of mixing effects. The player may mix any pair of power ups, thus creating a unique effect with more powerful destructive capability.

  • Obstacles: Wood Block – a destroyable block, Stone – a chip that behaves like a destroyable block, Weed – a destroyable block that creates new blocks of the same type with each move. Branch – a block that contains a berry – it may be destroyed if you try to destroy the berry it contains.

  • Other mechanics: Teleport – allows to link remote slots to each other, as a result the berries begin to teleport, Wall – unbreakable obstacle, that blocks the movement of chips from one slot to the next. Gravity Direction – you may specify the direction of chips falling for each slot.

  • Easily expandable level map. You may create a huge level map using repeating parts.

  • 75 ready-made levels.

  • Built-in In-App Purchases system, as well as an in-game shop that allows the player to buy in-game goods. For real money and for in-game currency.

  • Built-in advertisement networks: Chartboost, UnityAds, AdColony and AdMob. They allow to monetize your application by means of showing video ads. There is also a way to reward the player for viewing an extra ad video.

  • A system of cut-scenes. You may write a short dialog between the two players that will play back every time you launch a pre-selected level. This allows to introduce exciting tutorial moments into the game as well as enrich the game with a plot.

  • Daily rewards. The project contains a mini-game – the Wheel of Fortune that allows the player to win a random prize once a day. In addition to that, the player may purchase tickets for this mini-game for in-game currency.

  • The energy system. Each unsuccessful attempt of passing one or another level reduces the life of a player. Life regenerates with time. This technique keeps the player interested longer. Besides, lives can be bought in the shop, or won at the Wheel of Fortune.

  • Gameplay synchronization. By player’s wish he can connect the game to his Facebook profile and save the progress in the cloud and, as a result, play on multiple devices. This is made possible by the Backendless cloud database service.

  • Leaderloards. Each level has its own list of leaders, where the player may compete with his Facebook friends as well as with fake players from the Berry Match-Three universe.

  • Text localization. The project has already been translated into English and Russian, and you may easily add additional language. The player may select any language available right in the game’s settings.

  • Local notifications. The player will always know it’s time to play again. Each time when the player’s lives will be refilled, he will receive a message on his/her telephone. This concerns the daily rewards too. Also, the game will wish the player good morning if he ever forgets to play it :)

  • The user interface is adapted for various screen resolutions, for portrait as well as landscape screen orientation as well as for digitizer and mouse controls.

  • The game is abundant with nice sounds. All effects are provided with a sound, and are accompanied with two beautiful melodies.

  • BerryPanel. The most part of the main settings is located on one panel. There you will also find a way to send an email to the creator of the game with a question or a bug report, and receive an email in reply.

  • Fixer. A fast error fixing module allows you to instantly get a list of all bugs known to the author and fix them in one click without diving into the source code.

  • The game has been tested on Android and iOS platforms.

Feel free to ask the developer an additional question related to the project’s capabilities.
The the demo is available via the link below.

Google Play: DEMO

Changes log

12.07.17 – Version 4.2.6

Fixed a couple of major bugs.

20.06.17 – Version 4.2.5

Fixed a couple of major bugs.

26.11.16 – Version 4.2.4

Fixed problem with friends invitation.

Fixed some more major bugs.

03.11.16 – Version 4.2.3

Folder with sounds and music is restored

Bounce effect when chips is falling on the field is added.

20.10.16 – Version 4.2.2

Removed test level from level list

Fixed a bug, when first cutscene doesn’t work

26.09.16 – Version 4.2.1

bugs that were found in bug fixer are now all 100% fixed.

Source code is now running on unity 5.4

15.08.15 – Version 4.2 

Initial release


5 Reviews

In order to ask a question you need to log in or register as a user for free.

Trung Kien Buyer on 25 Jun 2017, 07:28:37

How to make a purchase so you can send the latest sourcode to me.

Viktor Yurov Author on 25 Jun 2017, 07:33:32

Just purchase it here, and contact me through the Contact form right in the project.

Window > BerryPanel > Contact

Ian M Buyer on 09 Jun 2017, 13:23:39

Hello, very nice product and very big work!
Please help me. How I can fix these errors? 
1.    How to fix a bug with filling bushes. It is necessary to add one bush to the field if the player has not destroyed more than one cuscent per turn. If a player destroys a bush then the bush is not added? Now 1-3 bushes are added per course. Sometimes bushes are not destroyed by a spoon.
      Screen lvl structure::

2.    How to make the bushes do not fill empty cells – without berry
3.    Sometimes, after interaction with the LB, the bombs do not explode, but disappear
Screen lvl structure: 
4.    Sometimes the level hangs, the application crashes when you combine LB with other bombs
    Screen lvl structure:
5.    Sometimes after loading the level, the application hangs up and it is not possible to move the berries. Sometimes it takes a very long time 3 – 5 minutes, after which you can make moves
Screen lvl structure:
6.    How to change the condition of victory in a duel? It is necessary that after the last move, if the player’s jam level is more than the opponent’s, the player wins. Now the player wins in a duel if he fills the whole level with jam.
Screen lvl structure:
7.    How to hide the frame on the sides of the level.
8.    Add please the player + player mode on the same device. To be able to play a duel with each other on one device.
     9. Very rarely, when combining HB and VB bombs, they do not explode, only HB  remains on the field. Further, if it is combined with the berries of its color, it explodes as CB.

10.    In comparison with the other Unity engine match three games, there are frequent small friezes and hangs, even on powerful devices, if this is a proximity game it will be almost perfect.

Viktor Yurov Author on 12 Jun 2017, 14:32:57



Thank you this big bug report. I am going to make new version with fixes today or tomorrow. You will be able to download it. Or if you want just a list of codefixes, then contact me throught the Contact form in the project. I will send you them.

1. Yes, it adds a weed after each move, if player has not destroy any weed.  While I tried to fix all bugs that you described, I didn’t found the usecase of this bug? Maybe you can make a video? And if there is any errors in the console, it would be very useful.

2. This is not a bug, so I am not decided to put it in the update or not. This is an instuction.

You need edit Weed.cs. Change this line

Slot target = slots.GetRandom();

to this line

Slot target = slots.Where(x => x.chip != null).ToList().GetRandom();

Also you need to add “using System.Linq;” in the top of the file.

3. This is antifreez effect. It just removes a problematic chips, when they have an exception. I found some usecases, I hope you will not see this effect anymore.

4. Is there any errors in the Console? This is a problem only of the game or of whole editor?

5. The same question as previous one. Unfortunately I never seen this before.

6. SessionAssistant.cs file. Replace this code:

  success: () => {return DuelTargetPanel.jamBcount == 0;},

  failed: () => {return DuelTargetPanel.jamAcount == 0;}

to this code:

  success: () => {return DuelTargetPanel.jamBcount == 0 || (DuelTargetPanel.jamBcount < DuelTargetPanel.jamAcount && movesCount == 0);},

   failed: () => {return !CutScene.isPlaying && DuelTargetPanel.jamAcount == 0;}

7. FieldAssistant.cs file. Add this line:

   if (Slot.GetSlot(slot.coord + side) == null) continue;

below this this line:

   if (slot[side] != null) continue;

8. I will try, but only after BMTE v5 release. Unfortunately I am very busy now for development of the next project and BMTE v5.

9. Hm.. It is very strange. A Horizontal Bomb explodes like a Color Bomb? I have not found a usecase of these bombs mixing. I hope to find it today.

10. I know about this problem. I hope to optimize it in the next major version.

Ian M Buyer on 19 Jun 2017, 15:41:12

Thank you very much, that responded!

1. Error of the weed – fills on the two cells. It only happens on the levels with blocks. The problem is solved if you change the line in SessionAssistant.cs SessionAssistant.cs

Weed.seed += swapEvent – Weed.lastWeedCrush;


Weed.seed = swapEvent – Weed.lastWeedCrush;

maybe it’s not true?

video error


4. If you combine LB+ UC it hangs level. The console sometimes generates errors – in the video below. The problem only occurs on this level. On the device (Samsung Galaxy Tab S2 Android 6 ) the application hangs. These errors are emitted in the interaction of other bombs with UC.

video eroor


5. After running this level, the application freezes in the editor, after 2-5 minutes it generates an error (OutOfMemoryException: Out of memory). Sometimes this level is started, but very slow (large friezes 5-20 seconds). When you run the application at this level, ceases to respond.




OutOfMemoryException: Out of memory

System.Array.Resize[Chip] (.Chip[]& array, Int32 length, Int32 newSize) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Array.cs:1929)

System.Array.Resize[Chip] (.Chip[]& array, Int32 newSize) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Array.cs:1913)

System.Collections.Generic.List`1[Chip].set_Capacity (Int32 value) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:622)

System.Collections.Generic.List`1[Chip].GrowIfNeeded (Int32 newCount) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:100)

System.Collections.Generic.List`1[Chip].AddCollection (ICollection`1 collection) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:121)

System.Collections.Generic.List`1[Chip].AddRange (IEnumerable`1 collection) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:140)

UltraColorBomb.GetDangeredChips (System.Collections.Generic.List`1 stack) (at Assets/_Yurowm/Match-Three Engine/Scripts/Chip/UltraColorBomb.cs:50)

Chip.GetDangeredChips (System.Collections.Generic.List`1 stack) (at Assets/_Yurowm/Match-Three Engine/Scripts/Chip/Chip.cs:430)

CrossBomb.GetDangeredChips (System.Collections.Generic.List`1 stack) (at Assets/_Yurowm/Match-Three Engine/Scripts/Chip/CrossBomb.cs:131)

Chip.GetDangeredChips (System.Collections.Generic.List`1 stack) (at Assets/_Yurowm/Match-Three Engine/Scripts/Chip/Chip.cs:430)

CrossBomb.GetDangeredChips (System.Collections.Generic.List`1 stack) (at Assets/_Yurowm/Match-Three Engine/Scripts/Chip/CrossBomb.cs:131)

Chip.GetDangeredChips (System.Collections.Generic.List`1 stack) (at Assets/_Yurowm/Match-Three Engine/Scripts/Chip/Chip.cs:430)

CrossBomb.GetDangeredChips (System.Collections.Generic.List`1 stack) (at Assets/_Yurowm/Match-Three Engine/Scripts/Chip/CrossBomb.cs:131)

Chip.GetDangeredChips (System.Collections.Generic.List`1 stack) (at Assets/_Yurowm/Match-Three Engine/Scripts/Chip/Chip.cs:430)

Chip.GetPotencial () (at Assets/_Yurowm/Match-Three Engine/Scripts/Chip/Chip.cs:284)

SessionAssistant.MatchAnaliz (.Slot slot) (at Assets/_Yurowm/Match-Three Engine/Scripts/Assistants/SessionAssistant.cs:1232)

SessionAssistant.FindMoves () (at Assets/_Yurowm/Match-Three Engine/Scripts/Assistants/SessionAssistant.cs:825)

SessionAssistant+<Shuffle>c__Iterator28.MoveNext () (at Assets/_Yurowm/Match-Three Engine/Scripts/Assistants/SessionAssistant.cs:1047)

UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)


<ShuffleRoutine>c__Iterator27:MoveNext() (at Assets/_Yurowm/Match-Three Engine/Scripts/Assistants/SessionAssistant.cs:1023)

UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)


Viktor Yurov Author on 20 Jun 2017, 06:43:01


1. Yes, it is absolutelly right fix! It was not a bug. It was should accumulate growings if it can create new weed. But as I see now, it looks pretty strange. I will add this fix in the update.

4. I found the solution. And will add it in the update. It is major bug.

5. Right. It creates a list of ~25M chips. Wrong logic. As I said I have fixed it.

I will prepare to submit the update now.

Thanks for great bugs report!


Ian M Buyer on 20 Jun 2017, 12:47:57

Thank you for the update! The error disappeared. But sometimes it stops working weed – not absorbs the berries under this condition. No bug  and with bug
In the console this error occurs:
NullReferenceException: Object reference not set to an instance of an object
Weed.Grow () (at Assets/_Yurowm/Match-Three Engine/Scripts/Slot/Weed.cs:76)
SessionAssistant+<IllnessRoutine>c__Iterator23.MoveNext () (at Assets/_Yurowm/Match-Three Engine/Scripts/Assistants/SessionAssistant.cs:652)
UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

Viktor Yurov Author on 21 Jun 2017, 04:54:05

Hi Ian,

First of all there is another bug with spoon booster. I don’t know why it works on your video, but I have a trouble with crushing blocks by spoon.

In the IBoosterLogic.cs file the 37th line must be chenged. From this one


to this one



As for the issue you described. Fix for Weed.cs file.

After this line

Slot target = slots.Where(x => x.chip != null).ToList().GetRandom();

You need to add this one

if (target == null) break;


Ian M Buyer on 22 Jun 2017, 11:21:01

Thank you very much. Everything works perfectly!
Two more quick questions.
1. Help to correct the appearance of sugar. For example, if in a condition to collect 3 sugar, place 3 sugar level in advance, the game generates 3 and 6 pieces, how can I fix it? Video

2. When using a shaker getting in the way all berries including bombs and stones. How to prevent mixing of the bombs, stones, and sugar.
I changed in SessionAssistant.cs
   void RawShuffle(List<Slot> slots) {
int targetID;
for (int j = 0; j < slots.Count; j++) {
targetID = Random.Range(0, j – 1);
if (!slots[j].chip || !slots[targetID].chip)
if (slots[j].chip.chipType == “Sugar” || slots[targetID].chip.chipType == “Sugar”)
Swap(slots[j].chip, slots[targetID].chip);

   void RawShuffle(List<Slot> slots) {
int targetID;
for (int j = 0; j < slots.Count; j++) {
targetID = Random.Range(0, j – 1);
if (!slots[j].chip || !slots[targetID].chip)
if (slots[j].chip.chipType == “Sugar” || slots[targetID].chip.chipType == “Sugar”)
if (slots[j].chip.chipType == “Stone” || slots[targetID].chip.chipType == “Stone”)
if (slots[j].chip.chipType == “SimpleBomb” || slots[targetID].chip.chipType == “SimpleBomb”)
if (slots[j].chip.chipType == “CrossBomb” || slots[targetID].chip.chipType == “CrossBomb”)
if (slots[j].chip.chipType == “ColorBomb” || slots[targetID].chip.chipType == “ColorBomb”)
if (slots[j].chip.chipType == “UltraColorBomb” || slots[targetID].chip.chipType == “UltraColorBomb”)
if (slots[j].chip.chipType == “HLineBomb” || slots[targetID].chip.chipType == “HLineBomb”)
if (slots[j].chip.chipType == “VLineBomb” || slots[targetID].chip.chipType == “VLineBomb”)
if (slots[j].chip.chipType == “Ladybird” || slots[targetID].chip.chipType == “Ladybird”)
if (slots[j].chip.chipType == “RainbowHeart” || slots[targetID].chip.chipType == “RainbowHeart”)
Swap(slots[j].chip, slots[targetID].chip);

Perhaps there is an easier way?

Viktor Yurov Author on 23 Jun 2017, 07:18:10

Hey Ian,

I just wrote you a reply, but the message was removed for some unknown reason. Please contact me through the Contact form in the BerryPanel. In the same time I will type the reply again…

Aldevi apps Buyer on 13 May 2017, 16:53:44

hi i would like to upgrade to multiple license can you add more Target Combinations like hidden objects to collect and fix admob.

Viktor Yurov Author on 15 May 2017, 05:46:48


Sorry for late reply.

I will add more targets in the next major update. I will try to check abmob in a few days.


Wadja Buyer on 05 May 2017, 12:30:55


If I upgrade my license to “Multiple app license”, could you please:

– Help me to create a mixed target levels.

– Help me to set multiple ingredients that needs to be dropped to clear a level.

– Provide a fix for some bugs like when mixing a HLineBomb with a VLineBomb.

– Provide a final fix of the freeze bug instead of the “Universal fix for the game freezes” workaround.





Viktor Yurov Author on 05 May 2017, 13:11:58


Levels with multiple targets will be added in 5th version, when it will work on Gemstone code base. Now it is pretty hard task.

What does multiple ingredients mean? Different random sprites for sugar chips?

As for the bugs, I need certain use cases (or video demonstration), for fix it. I don’t have any problems with mixing these bombs, and I don’t see freezings a long time.

Wadja Buyer on 05 May 2017, 19:48:30

Hi Viktor,

Thanks for your response, I hope 5th version will be prioritized a bit more in your todo list.

About the multiple ingredients feature, I want for example to be able to set the target to drop 2 sugar + 3 nuts, can you help me to do this?

For the freeze bug, you’re using the this function as a temporary fix “IEnumerator AntifreezeRoutine()”, when the game freeze for 3 second, this function destroy some elements to unfreeze the game. Can you provide a definitive fix for this bug instead of this workaround?

About the bug of mixing a HLineBomb with a VLineBomb, it happens very randomly, it’s not easy to reproduce, but it happens. I’ll see if I can send you a video showing this bug.




Viktor Yurov Author on 07 May 2017, 07:24:36


Sorry for the late reply. I was sure that I replied you. Maybe there is a some kind of bug…

I will try to add multiple ingredients feature in Monday. If you want to add it in your own project, send me your sources, otherwise, I will add it in the clear project.

As for freezings issue, currently the usiversal soulution is the best solution that we have. This issue is not just a bug. As you know I am trying to resolve it last two years, and each time we found new usecases, which makes new freezings. This is a code structure issue, in the fifth version it will be resolve at all, because it will be based on Gemstone code, which doesn’t have this problem.


prodigy on 03 May 2017, 19:29:48

I own the ‘standard’ version, does the pro version include full source code (editor and runtime) ?, because on ‘standard’ version the there is editor.dll.

Viktor Yurov Author on 04 May 2017, 05:39:24


The standard version doesn’t include any editor.dll. The pro doesn’t include it too.

Yes, these is full source code.

Payners Buyer on 30 Apr 2017, 17:02:40

Only unity ads are showing. Why does not Admob ads come out?

Viktor Yurov Author on 01 May 2017, 05:33:33



Try to update AdMob plugin

Jamal Laham Buyer on 23 Apr 2017, 23:29:40


Aldevi apps Buyer on 08 Mar 2017, 16:49:56

Hi in iOS the game works perfectly, but for android it need some update to the new google play service library. i’m not able to make apk after sdk updates

Viktor Yurov Author on 10 Mar 2017, 03:51:09


Why you need to update it? And why you can’t make an apk?

Aldevi apps Buyer on 10 Mar 2017, 10:52:33

hi i did manage to make an apk now but only with chartboost ads. the aar file there is some conflict!. i think this game it needs some fix updates from you. Ex level 30 when target is reached it continious to play by it self for another 20min! or so.

Viktor Yurov Author on 11 Mar 2017, 04:50:27


As for level 30, you can change this level self. You have the level editor for doing this.

If you have a problem with this project, please, provide me all information about it that you have. Logs, screenshots, etc.


1 2 3 4 5 6 7 8 9 10 11 12
14 days Money back guarantee policy

14 Days buyer protection

When you buy an item on Sell My App you can rest assure you will get exactly what you paid for!

We offer buyer protection for cases in which the product doesn’t work as advertised in the product description page.

Terms to request a refund:

  • You must request the refund no longer than 14 days of the original purchase date.
  • You must request the refund by addressing to our support only at [email protected].
  • The product doesn't work as advertised on the listing page.
  • You must detail the issues experienced using the comments tab on the product page.
  • The author or our team didn't reply to your message in the inbox within your dashboard within 48 hours.
4.8 average based on 5 ratings
Category Casual
Platforms Unity 5.4
Frameworks Unity
Related search terms

Similar Apps