Quickly Solving Jigidi Puzzles

tl;dr? Just want instructions on how to solve Jigidi puzzles really fast with the help of your browser’s dev tools? Skip to that bit.

This approach doesn’t work any more. Want to see one that still does (but isn’t quite so automated)? Here you go!

I don’t enjoy jigsaw puzzles

I enjoy geocaching. I don’t enjoy jigsaw puzzles. So mystery caches that require you to solve an online jigsaw puzzle in order to get the coordinates really don’t do it for me. When I’m geocaching I want to be outdoors exploring, not sitting at my computer gradually dragging pixels around!

A completed 1000-piece "Where's Wally?" jigsaw.
Don’t let anybody use my completion of this 1000-piece jigsaw puzzle over New Year as evidence that I’m lying and actually like jigsaws.

Many of these mystery caches use Jigidi to host these jigsaw puzzles. An earlier version of Jigidi was auto-solvable with a userscript, but the service has continued to be developed and evolve and the current version works quite hard to make it hard for simple scripts to solve. For example, it uses a WebSocket connection to telegraph back to the server how pieces are moved around and connected to one another and the server only releases the secret “you’ve solved it” message after it detects that the pieces have been arranged in the appropriate relative configuration.

A nine-piece jigsaw puzzle with the pieces numbered 1 through 9; only the ninth piece is detached.
I made a simple Jigidi puzzle for demonstration purposes. Do you think you can manage a nine-piece jigsaw?

If there’s one thing I enjoy more than jigsaw puzzles – and as previously established there are about a billion things I enjoy more than jigsaw puzzles – it’s reverse-engineering a computer system to exploit its weaknesses. So I took a dive into Jigidi’s client-side source code. Here’s what it does:

  1. Get from the server the completed image and the dimensions (number of pieces).
  2. Cut the image up into the appropriate number of pieces.
  3. Shuffle the pieces.
  4. Establish a WebSocket connection to keep the server up-to-date with the relative position of the pieces.
  5. Start the game: the player can drag-and-drop pieces and if two adjacent pieces can be connected they lock together. Both pieces have to be mostly-visible (not buried under other pieces), presumably to prevent players from just making a stack and then holding a piece against each edge of it to “fish” for its adjacent partners.
Javascirpt code where the truthiness of this.j affects whether or not the pieces are shuffled.
I spent some time tracing call stacks to find this line… only to discover that it’s one of only four lines to actually contain the word “shuffle” and I could have just searched for it…

Looking at that process, there’s an obvious weak point – the shuffling (point 3) happens client-side, and before the WebSocket sync begins. We could override the shuffling function to lay the pieces out in a grid, but we’d still have to click each of them in turn to trigger the connection. Or we could skip the shuffling entirely and just leave the pieces in their default positions.

An unshuffled stack of pieces from the nine-piece jigsaw. Piece number nine is on top of the stack.
An unshuffled jigsaw appears as a stack, as if each piece from left to right and then top to bottom were placed one at a time into a pile.

And what are the default positions? It’s a stack with the bottom-right jigsaw piece on the top, the piece to the left of it below it, then the piece to the left of that and son on through the first row… then the rightmost piece from the second-to-bottom row, then the piece to the left of that, and so on.

That’s… a pretty convenient order if you want to solve a jigsaw. All you have to do is drag the top piece to the right to join it to the piece below that. Then move those two to the right to join to the piece below them. And so on through the bottom row before moving back – like a typewriter’s carriage return – to collect the second-to-bottom row and so on.

How can I do this?

If you’d like to cheat at Jigidi jigsaws, this approach works as of the time of writing. I used Firefox, but the same basic approach should work with virtually any modern desktop web browser.

  1. Go to a Jigidi jigsaw in your web browser.
  2. Pop up your browser’s developer tools (F12, usually) and switch to the Debugger tab. Open the file game/js/release.js and uncompress it by pressing the {} button, if necessary.
  3. Find the line where the code considers shuffling; right now for me it’s like 3671 and looks like this:
    return this.j ? (V.info('board-data-bytes already exists, no need to send SHUFFLE'), Promise.resolve(this.j)) : new Promise(function (d, e) {

    Javascirpt code where the truthiness of this.j affects whether or not the pieces are shuffled.
    I spent some time tracing call stacks to find this line… only to discover that it’s one of only four lines to actually contain the word “shuffle” and I could have just searched for it…
  4. Set a breakpoint on that line by clicking its line number.
  5. Restart the puzzle by clicking the restart button to the right of the timer. The puzzle will reload but then stop with a “Paused on breakpoint” message. At this point the application is considering whether or not to shuffle the pieces, which normally depends on whether you’ve started the puzzle for the first time or you’re continuing a saved puzzle from where you left off.
    Paused on breakpoint dialog with play button.
  6. In the developer tools, switch to the Console tab.
  7. Type: this.j = true (this ensures that the ternary operation we set the breakpoint on will resolve to the true condition, i.e. not shuffle the pieces).
    this.j = true
  8. Press the play button to continue running the code from the breakpoint. You can now close the developer tools if you like.
  9. Solve the puzzle as described/shown above, by moving the top piece on the stack slightly to the right, repeatedly, and then down and left at the end of each full row.
    Jigsaw being solved by moving down-and-right.

Update 2021-09-22: Abraxas observes that Jigidi have changed their code, possibly in response to this shortcut. Unfortunately for them, while they continue to perform shuffling on the client-side they’ll always be vulnerable to this kind of simple exploit. Their new code seems to be named not release.js but given a version number; right now it’s 14.3.1977. You can still expand it in the same way, and find the shuffling code: right now for me this starts on line 1129:

Put a breakpoint on line 1129. This code gets called twice, so the first time the breakpoint gets hit just hit continue and play on until the second time. The second time it gets hit, move the breakpoint to line 1130 and press continue. Then use the console to enter the code d = a.G and continue. Only one piece of jigsaw will be shuffled; the rest will be arranged in a neat stack like before (I’m sure you can work out where the one piece goes when you get to it).

Update 2023-03-09: I’ve not had time nor inclination to re-“break” Jigidi’s shuffler, but on the rare ocassions I’ve needed to solve a Jigidi, I’ve come up with a technique that replaces a jigsaw’s pieces with ones that each show the row and column number they belong to, as well as colour-coding the rows and columns and drawing horizontal and vertical bars to help visual alignment. It makes the process significantly less-painful. It’s still pretty buggy code though and I end up tweaking it each and every time I use it, but it certainly works and makes jigsaws that lack clear visual markers (e.g. large areas the same colour) a lot easier.

An almost-solved Jigidi jigsaw striped and painted to make solving easier.

386 replies to Quickly Solving Jigidi Puzzles

  1. You hate jigsaws in the same way you hate popcorn. If either is present you consume them voraciously whilst complaining about them constantly.

  2. This is working when you are logged in to jigidi. But when you are not logged in there is no such part in code. Thats because jigidi does have different script version in use when you are logged in or not.

    • That’s presumably because it doesn’t need to check if you have saved progress if you’re not logged in. A different but related approach could still be made to work, though, I’m sure.

      • Oh, that’s true. I didn’t realize that there is no need to check that thing when you are not logged in.

  3. I found your explanation pretty pretty useful in order to “solve” some jigsaw puzzle caches. Only a few days ago it was working perfectly for me, but today I cannot find the release.js file in the debugger any more, even after logging out and in again to Jigidi and reloading the puzzle several times. Therefore I also was not able to set a breakpoint correctly and skip shuffling.
    Did Jigidi again change their code? Or am I just to blind to find the right line?

    • You’re right, Abraxas: they’ve changed their code. They’re still doing the shuffling client-side though so it remains trivial to bypass it: I’ve updated my instructions above with a new section at the bottom.

      • It looks like they have changed the code again. I cannot find the line.
        I tried to find another line, but don’t know exactly how.

  4. Keep up the good work dude, as a geocacher I love mysteries, Some of my mysteries took weeks of brainstorming and creating them. It’s a bit easy to take an 100 images from the internet put them on jigidi and make a mystery geoart. Solving mysteries is about using tools, just like we use geocachingtoolbox, for me the challenge in those puzzeltrails is to find a solution to be smarter than the geocache creator. I found your website, and I still don’t understand how it works but i’ll try to find it out. Geocachers should create original mysteries from scratch where the clue is only in the head of the creator and not that method that is used over 1000 times before….

    • Hi, i created a mystery jigidi geocache because i love doing jigsaw puzzles and love geocaching so it was great to be able to combine the two. I put a very lot of thought and effort into creating it. It took about six months from first thought to publication. I didn’t pinch a photo from the web, i went to the place with my phone and tripod after waiting a few weeks for the weather to be right. I spent a great deal of time researching the place and writing it all up, editing and re editing until it was just right. I spent a about £35.00 on a container to make it different from other geocache containers so it would be an interesting find. I didn’t wont it found to often so i made it quite difficult, but not to much, so it wouldn’t get muddled. So far it has scored about i think 58% fav points, and it is my one and only geocache. So now you see it from another perspective. Happy geocaching!,

  5. Jigidi changed his code again. The tutorial is out of date and I can no longer find the break point. For example, a 400 piece puzzle does not have 1000 lines of code. Can you check it again, please? Thanks!

  6. Works perfectly for me! Thank you so much. I can now spend my time trying to solve the actual cryptic puzzles, not the jigsaws.

    • It would be great if you could explain how this worked for you after the last change. As Frederick wrote, the code was changed again. I tested it extensively two days ago and couldn’t find the line where the break should be set!

  7. How did it work for you? The code is no longer as described. Need more detail to understand its workings.

  8. Is there a way to get access to each piece’s image? I’m trying to do something with AI to solve the puzzle. It would be nice to get the (x,y) location on the screen and the image of the piece. I’m not sure where they are kept.

    • I was thinking about this and you wouldn’t even need AI, just some good image processing code. There’s a preview of the finished image in the corner, and you can determine the number of rows and columns (it’s a simple columnar jigsaw): only the holes and bumps vary. So if you can set the zoom of the main jigsaw space to match the preview size you could just do some kind of image matching to work out with good confidence exactly where each piece lives, for most jigsaws.

      I’ve got no recent experience in image visualisation code and don’t have time to learn, but somebody might be able to do this. No AI required!

      • Yup. I was using AI as a blanket term. I don’t know JS too well. I was thinking of using python/pyautogui/opencv to do it. Opencv has a pattern matching tool that would work well. Pyautogui let’s you take screenshots and simulate the mouse.

        It would be useful to be able to find a pieces position on the screen. Is the array of piece object kept client-side?

    • Hi Tron2015,
      would you please explain what and how “it” works like a charm? That would be very important to all observers …
      Best regards

      • First things first, jigidi changed the code. Breakpoints are now 1123 and 1124, variable has changed from a.G to a.C

        Works like a charm… means, follow Dan Q’s instructions.
        Start with 1 and 2 under “How can I do this”. Step 3 has changed to 1123. Set the breakpoint. Hit “refresh” in the Jigidi. Code will run to the breakpoint 1123. Hit the run symbol in the debugger (small triangle on the right upper side). Code will run to the same breakpoint again. Click on the breakpoint 1123. Blue mark will disappear. Set a breakpoint at 1124. Hit run in the debugger again. Code will run to breakpoint 1124.
        In the left lower corner of the debugger you see >>.
        (everything as described by Dan Q step 4, 5 and the update 2021-09-22)
        Enter d = a.C and hit return. Press play in the debugger again. Code runs to the end, all the puzzle piece are stapled. Hit F12 to close the debugger.
        Take a look at the video from Dan Q, it will explain what you have to do with the stapled pieces.

  9. First things first, jigidi changed the code. Breakpoints are now 1123 and 1124, variable has changed from a.G to a.C

    Works like a charm… means, follow Dan Q’s instructions.
    Start with 1 and 2 under “How can I do this”. Step 3 has changed to 1123. Set the breakpoint. Hit “refresh” in the Jigidi. Code will run to the breakpoint 1123. Hit the run symbol in the debugger (small triangle on the right upper side). Code will run to the same breakpoint again. Click on the breakpoint 1123. Blue mark will disappear. Set a breakpoint at 1124. Hit run in the debugger again. Code will run to breakpoint 1124.
    In the left lower corner of the debugger you see >>.
    (everything as described by Dan Q step 4, 5 and the update 2021-09-22)
    Enter d = a.C and hit return. Press play in the debugger again. Code runs to the end, all the puzzle piece are stapled. Hit F12 to close the debugger.
    Take a look at the video from Dan Q, it will explain what you have to do with the stapled pieces.

  10. You’re right, seems they didn’t change the code for every puzzle. I found a few where everything worked as the week before.
    Well, as long as there are only minor changes…

  11. It’s definitely line 1795 for the first two breakpoints and line 1796 for the third one.
    Variable changed von a.G to a.J or simply enter d=???, where ??? stands for the number of puzzle pieces
    Version of game/js is 15.3.2284

    • Thanks for that – I’ve looked in firefox and that is the correct row. I had been using chrome previously, and converting the code to a readable format has put that section on a different line.

      Your suggestion of 1795 and 1796 works for firefox, so I’m really grateful for your finding it

  12. 1252 in Chrome’s pretty printing, or just search for Aa(1610) in any browser (breakpoint goes on the line after that)

    • Can you give a more detailed instruction, especially for “Chrome’s pretty printing”.
      If I search for Aa(1610) or only Aa I cannot find the line.were to set the breakpiont.
      “Set breakpoint” means only “clicking its line number”, is that right ?

  13. For the “pretty printing” you only must click {} in the bottom under the window.
    In the moment it is 1252, because in a new version the line code could be different.

    “Set breakpoint” means only “clicking its line number”, is that right ?” Yes, that’s right.

  14. New to trying this method as I have really grown bored of wasting 4/5 hours of my life.

    Been trying to follow and understand everything so I can get the stacking pieces but always seem to get the message The jigsaw could not be restarted.

    I think I have the right process find the breakpoint which seems to be 1795 refresh the jigsaw then in console put d=a.J or d= number of puzzle pieces. Run the process again but it either comes up with the message above, stays at pause or other times the puzzle restarts with the random placement of pieces. Should I be selecting line 1795 and 1796 to pause are there more and is the console section always d= or does that change.

    Is there anything I’m doing wrong I have never even known about the developer tools debugger options before so this is the first time I have ever tried anything like this and barring there being a solver like there was this seems like a good way for me to still do these annoying jigidi puzzles.

    Sorry if i’m being really thick but I really don’t understand this side of things but hope to learn it at a simple form to do these puzzles.

    • Make sure you are following Tron2015’s post from 19 December, the step by step process they provided works for me. Up to that point I wasn’t managing to get it to work, but I wasn’t following the instructions properly, the way it has been laid out there was really clear.

  15. WB… for the Java Code 15.3.2284 gives in the Moment follow solution:

    1. Open the Puzzle
    2. Press F12(or search in your Browser for Developer Mode)
    3. Go to the Source Tab
    4. On the left side you See “Folders” and click on game-js-15.3.2284
    5. At the end of the Source Window click on “{}” (means “pretty printing” )
    6. Go to Line 1252 and click on this Number to Set the Brakepoint
    7. On the Puzzle side Press on Reload on the right side of the timer
    8. In the upper side you can See now a blue Button with yellow background.
    Now you Press one time on it.
    9. Go again to the Line Number 1252 in the Source Window and click again on the Number to deactivate the Brakpoint.
    10. Click now on the next Line Number(1253) to Set the Next Brakepoint
    11. Now click on the left Puzzle side again on the blue Arrow ONE TIME!
    12. Open the Tab Console and write exacly
    without quotes “d = a.G” and Press Enter.
    Now you can See in the Console similar:
    ƒ (a){this.I&&!a||pb(this);return this.I}
    When not, press Enter again.
    13. At least you must Press on the left side on the blue Arrow again.
    Final you must See a stapled Puzzle.

  16. Hello

    I tried the 13 steps to crack puzzle but it’s not working.

    Could you try again with this puzzle and let me knowhttps://www.jigidi.com/solve/pgj4hcuc/epp-poshrule/

    Thanks in advance

    Kind regards

    Didier

  17. The script has now version 15.3.2248 the needed startline is 1795. The input in the Tab Console change to “d = a.J”

    1794 a.log.debug(Aa(1610) + a.X + Aa(4625) + a.time);
    1795 for (var d = c = 0; d < a.J; ++d) { 1796 for (var e = Ma(b), f = Ma(b), g = null, h = Ma(b), k = 0; k < h; ++k) { 1797 var l = J(b);

    • Hi Didier,

      I’ve been working on an alternative “solver” for these puzzles that works in a different way. It’s not ready to share yet, but I used the puzzle you just suggested as a testbed, if you’re interested:

      Didier's partially solved Jigidi #1

      Didier's partially solved Jigidi #2

      Didier's solved Jigidi

      Apparently the password you need is “Dominos”.

      In anticipation that I’m about to receive a barrage of requests to solve everybody else’s puzzles and post images, like this: No, I’m not going to do that. I’m very busy. But I will try to put some time into improving solver tools in general as and when I can.

      • For the technical-minded who are following along: part of my solution involves injecting an ES6 Proxy to override the HTMLImageElement component with one which I control, and then using that to replace the content of the jigsaw image with a known image in which the rows and columns (that will eventually become jigsaw “pieces”) are individually labelled with their coordinates. This makes it possible to solve moderately rapidly as a human even if the computer-aided tools don’t work… and because it runs entirely “on top” of the site, it doesn’t depend on any particular version of Jigidi’s code.

        • Hello Dan

          I understand that you are working on a new solution but not shared yet.

          Could you share your solution even if I must apply break point and modify few data values.

          If you explain me the process, I will be able to reproduce it and solve huge puzzles like this onehttps://www.jigidi.com/solve/x07iovi0/chercher-une-aiguille-dans-une-botte-de-foin/

          Thanks in advance

          Kind regards

          Didier

          • Hi Dan

            I used your process and that is manual but working.

            Let me know when you will have new version.

            Thanks and enjoy your WE.

            Didier

      • Hi Dan,

        If you need any beta testers out in the wild, please do let me know – Would be happy to try and set this up locally for testing.

    • Félicitations !
      Voici la position de Phil, il n’attend plus que votre passage :
      N 47° 33.010 E 001° 16.540
      Bonne découverte !

    • Hi Didier,

      I’m a relative novice to solving Jigidis using the manual methods. To test whether I can still do it with the site updating frequently, I solved your puzzle.

      Félicitations !
      Voici la position de Phil, il n’attend plus que votre passage :
      N 47° 33.010 E 001° 16.540
      Bonne découverte !

  18. Thanks so much for posting this – you’ve saved me probably hundreds of hours of puzzle solving, to work through some Jigidi-heavy series!

    Currently working for me on Chrome. Jigidi version 15.3.2248.a

    Breaks on lines 1252 and 1253

    d = a.J

  19. Anyone noticing the code has changed again

    The “game” section of the code is now suffixed by “/16” and the only js file is a string of numbers and letters.

    I’ve not had any joy yet locating where the breakpoints need to be placed.

    • If you are still looking the breakpoint lines seem to move from puzzle to puzzle do not know if this is based on number of pcs or just what. I search for word debug then click line that has the word time in it. The next 2 lines under that line are your breakpoints. Also the formula is D=j.I Have tested this on a couple of puzzles seems to work.

    • Have not been able to make this work for a while now. the code has changed again, and I do not know enough about how this works to even try and work it out.

  20. Hi dmlookhere

    Could you tell me what is the line number to put break point and and then apply D=J ?

    Thanks in advance

    Didier

    • Sorry I did not back sooner Work got in my way. However it appears Jigidi has changed things up again. I’m not having much luck this time around. The answer to your question was they had put something in that changed the location each time of that line.
      Thanks
      dmlookhere

  21. I still manage to solve the puzzles using the strategy here. You just need to find the correct place to set the breakpoint.

    At the moment I search for the following to find the nested for-loops in the js file (https://www.jigidi.com/game/17/js/)
    Search for:
    for (var D = 0, y = 0; I > y; ++y)
    and then set this in console:
    y = I

    • Hmm. They are getting devious. For me they now they changed the line to:
      for (var D = 0, y = 0; y y” -> “y < I" So maybe better to search for : for (var D = 0

      • It now just looks like a style sheet and I cannot find code anywhere. Have they changed the shuffle to server side?

        • Seems like Chrome will not ask to pretty print the file automatically.
          When you open the the file in (https://www.jigidi.com/game/17/js) – Not css.
          I have to manually click button with label “{}” below the content.
          Then search for “for (var D = 0, y =” still works for me.

      • Great job, Atle.
        your advice from 5 March worked perfectly!
        Breakpoints in Win10/Firefox were at 16231/16232, although I think they have a quite dynmic code right now.
        Keep up the good work

    • I am trying what you mention here, but without success. The breakpoint gets called twice when I reload the puzzle, then it just pops up like it normally would. I have zero knowledge about js, so hopefully there is a workaround? 😦

      • Either you have breakpoint in wrong place (many places with for-loops) or do not set “y = I” in the console at the right time?

        • I guess I don’t have the knowledge to find the correct piece of code then. I see that the code changes from time to time. Is there a specific line still being used, or a certain area in the code where I have to find the line where I have to set the break point?

    • They keep changing it up.
      Now it was X and not y in for loop:
      for (var D = 0, X = 0; X < d; ++X)
      and do X = d in console.

      • And then all new letters:
        for (var J = 1 – 1, v = 0; T > v; ++v) {

        It still works…but this makes it harder for everyone to find correct place.

        • Thanks so much Atle! I followed the directions and it worked like a charm. I had to use Google instead of Firefox to pretty print the file. It seems that they went back to for (var D = 0, y = 0; …

        • Thanks so much. It worked great. I couldn’t find how to pretty print the file in Firefox, so I did it in Chrome.

  22. I still cannot find the right piece of code, probably because the code is dynamic..

    Is there any specific part in the code, or a specific function, where this piece can always be found no matter what? That would sure help me as I know nothing about js code :)

  23. I’ve noticed that they are somehow identifying when this method is used now. When the puzzle completes, you no longer get the success message – ouch! I’m guessing that they keep track of what percentage of the pieces are put together in this linear order. I’ve verified it even with this small puzzle to test. I tried a real one and even mixing up a handful of pieces and waiting a reasonable time to complete it didn’t give me success message (but I get one fine if i do it by hand). https://www.jigidi.com/jigsaw-puzzle/sd32gq5t/easy-9-piece-geocaching-test-puzzle-with-completion-message/

    • You’re right, that happened on 12 March. I tried to do a part of the puzzle with the debugger logged in, then use a VPN and use another browser continuing with the account, it didn’t work. It doesn’t seem to be time-based.
      “Percentage of pieces in a linear order” seems to be a good guess.
      We’ll see…

  24. The guess was a good one. I puzzled 2 pieces at a time and stacked them. When last pair of row was done I connected all the pairs into a complete row.
    I also stacked rows and connected them when I felt like it.
    Took a while longer to complete but at the end I got the success message.
    Tried to add link to image of my puzzle halfway into completion to better illustrate, but seems chat do not allow links to google drive. Hope you all still understand the steps I took.

  25. Hi Atle

    Could you try this puzzle and let me know if your workaround is working to obtain messagehttps://www.jigidi.com/solve/0r2gepbm/01-geo-hound/
    Also this onehttps://www.jigidi.com/solve/7f4q1j8e/the-ultimate-end-geocoin-side-a/

    Thanks in advance

  26. There was a change in the night, to obtain a message you have to be logged in with an account.
    That change has nothing to do with the debugger, seems that you must be logged in to get a message anyway.

    • They were having server problems. Logged-in, I manually completed one that didn’t show the message but re-visiting the jigsaw from within my account then showed the mesaage ok. Apparently they have now fixed the bug and can get back to putting their efforts towards annoying us!!

  27. I could no longer find the right way or variable to put the pieces to stack. Have they changed the code to prevent this completely.

  28. It*s still folder “game/17/js” with the “un-pretty-printed” file containing the js-code.
    As usual in the last weeks the variable names change quite often

    • Oh, that was very helpful. Thanks a lot.

      I know quite well where the actual script is, but I can’t find the right place in the script. That’s why I asked for a variable in the script.

      • This is something that I was not expecting. I found right variable but I don’t get no more messages. I have tried multiple ways but it seems that messages is not coming. There will be no message whether you are logged in or not.

        • Jigidi completion messages might be broken currently (and if it works for you, it doesn’t imply it works for all).

    • @Tron2015 – any chance you can give the current expression to search for plus what to enter in Console? I can’t get any of the previous to work. Thanks.

  29. I also noticed that this method still works to solve the jigidi quickly, but the completion message does not appear anymore.

  30. It is not the completion message itself that does not work as a simple test jigidi with completion message still works like expected if solved the normal way. It certainly detects something.

  31. @rich: sure
    I used this one a few seconds ago:https://www.jigidi.com/solve/7f4q1j8e/the-ultimate-end-geocoin-side-a/
    Breakpoint s were at 16794/16795, variable was f and I, console command would be f = I or f = 40

    @name: that*s no use, variable names and line numbers for breakpoints change dynamically. You have to look for the double “for….” construction as described in the “Update 2021-09-22”. It’s not possible anymore to tell which variable or line as they change all the time.

    @Aleph: you have to do exactly what @Didier wrote at 21 March, 2022 at 20:21

  32. @Aleph: of course Atle described the correct method first. Sorry
    Take a look at @Atle says: 19 March, 2022 at 10:38

  33. @Dan Q

    Hi Dan

    Do you know if there is a tool able to save trace of HTML executed ?

    Thanks in advance

    Didier

    • I was able to do it, but can’t find the code anymore. Can someone help me by telling how the shuffling code looks like today?

      1. What lines are we looking for in the code and what did you ctrl + f.

      2. What did you put in the console?

      Many thanks!

  34. 18:57
    same puzzle
    lines 18232/18233:
    for (var z = 0, f = 2 – 2; Y > f; ++f) {
    console in this case: f = 9 or f = Y

    (sorry, there was something mixed up in the post, but I’m sure you see what I wanted to show you)

  35. 18:57
    https://www.jigidi.com/solve/sd32gq5t/easy-9-piece-geocaching-test-puzzle-with-completion-message/
    lines 18232/18233:
    for (var z = 0, f = 2 – 2; Y > f; ++f) {
    console in this case: f = 9 or f = Y

    19:55
    same puzzle
    lines 20911/20912
    for (var h = 0, x = 0; x < B; ++x) {
    console in this case: x = 9 or x = B

    As you can see, it's no use to look for breakpoints, line numbers, variable names as they change within minutes.
    The only thing is to search for the double for statement as described in former posts.

  36. Yesterday 18:57
    https://www.jigidi.com/solve/sd32gq5t/easy-9-piece-geocaching-test-puzzle-with-completion-message/
    lines 18232/18233:
    for (var z = 0, f = 2 – 2; Y > f; ++f) {
    console in this case: f = 9 or f = Y

    Yesterday 19:55
    same puzzle
    lines 20911/20912
    for (var h = 0, x = 0; x < B; ++x) {
    console in this case: x = 9 or x = B

    As you can see, it's no use anymore to look for breakpoints, line numbers, variable names as they change within minutes.
    The only way is to search for the double for-statement as described in former posts.

    • I believe I am finding the right lines but I don’t understand how to get the right console text. Also what happens when something is “undefined”?

  37. simple rule for finding the necessary lines:

    do a regular search for

    function.*\n *for.*\n *for.*\n *var

    and use the variable in the first for loop behind the ++ in the console…

  38. Hi
    I get to folder game/17/js and open a file in it, but I can see only one line of text and no “{}” option. Do you know what I did wrongly? Do you know how could I enter proper file know?

  39. is there any way you can make this more “for dummies” accessible.
    no idea what to search for, as the code itself has no identifiers or comments
    further, the location is randomized. are the variables randomized too?

  40. Hi all,
    Let me quote this
    ———–
    How can I do this?
    […]
    Go to a Jigidi jigsaw in your web browser.
    Pop up your browser’s developer tools (F12, usually) and switch to the Debugger tab. Open the file game/js/release.js and uncompress it by pressing the {} button, if necessary.
    […]
    Update 2021-09-22:
    […]
    Their new code seems to be named not release.js but given a version number; right now it’s 14.3.1977
    ———–

    Unfortunately I can’t find the required file (14.3.1977 ??) to open.
    What i see is a folder named: game/17/js
    I opened this random puzzle in firefox: https://www.jigidi.com/jigsaw-puzzle/q3s2xlrt/very-amy/
    May I get some up-to-date info how to or where to set the needed break-point?

    thanks a lot

  41. May I get some enlightment where to find the code and the line number to put a break-point in? In my firefox in debugger/sources I can see ‘game/17/js’
    So i guess the infos at the top of this threat aren’t up-to-date anymore…?

    thanks in advanced

    • @DanD
      Your reply from 6 May, 2022 at 12:24: Code changed in February 2022, see @morecanbegeek 20 February 13:32

      Your reply from 6 May, 2022 at 12:59:
      You’re right, that’s the folder. Take a look at the following posts, they are still actual and working:
      – @atle 05 March 10:11
      – @atle 19 March 10:38
      – @Tron2015 30 March 16:12
      – @Herr Ma 16 April 19:07

      • In the folder ‘game/17/js’ all the code is on one line only.
        Is there a way to indent it?

        BTW, I tried to search with the regular expression ‘function.*for.*for.*var’ as suggested in some posts above but cannot find anything.

        • Your browser will probably have a button to “pretty-print” the JavaScript code: it probably looks like a pair of curly braces i.e.: {}

  42. I don’t have/can’t find these curly brackets in Firefox. They are only in Chrome. In Chrome I don’t know how the search can run the regex string. Still, I always find the right place by searching manually.

    Doing a 500+ piece puzzle in about 25-30 minutes is better than nothing. It’s still annoying though

    • I use Firefox as my primary browser. Indeed, all my screenshots above were taken in Firefox (look at the icons on the Inspector and Console tabs, for example).

      The “pretty print” button is here:

      Screenshot showing Firefox's 'JavaScript Pretty Print' button below the Debugger code display

    • I’ve tried multiple times. Finally according to the method described by Atle from 19 March, 2022. I only put two pieces together at a time and later then I connected these pairs to form the whole puzzle. However, I have not received any completion message.

      Btw, in Firefox developer mode I can’t format the javascript. The curly brackets for pretty print are missing here. So I use the developer mode in Google Chrome.

      Even the regex search doesn’t work (neither in Firefox nor in Chrome). Here I help myself with the website regex101. There I paste the copied source text and then I find the double for loop via the regex search.

      Has anyone tried to build a solution using Microsoft Power Automate Desktop?

      • Regarding the curly brackets and the regex search: I have the same situation here. Maybe someone in this thread can show (with pictures?!) how these brackets can be enabled in Firefox. Also how the regex search “should” work.. in the dev tools

        I do solve the puzzles by connecting not all 2-pairs in a line. I connect two 2-pairs in one line, then two 2-pairs in the next line and the next two 2-pairs in 3rd line and so on. I do repeat this over all lines and then start again until I have to connect bigger pieces. This worked all the time.

        @Raas-Algul: No. This thread is definitely not to post a puzzle and retrieve the final coordinates. I just guess that the answers with coordinates came from people with to much time.

        @Tritop99: Microsoft Power Automate Desktop can be worth a try but it would be a poor solution. The best solution would be to hijack the java code.

    • Super! Ihr habt es fast geschafft.

      Jetzt ab zum GZ:
      N53 34.721 E10 06.165

      Parken könnt ihr bei:
      N53 34.731 E10 06.161

      Happy Hunting. Favo’s sind gerne gesehen;)

    • Website message show: “We are sorry, but it seems the puzzle you are looking for has been deleted.”

  43. Hello my name is Marcus. I have followed your comments and explanations carefully. I can’t get any further than calling the debugger. I see the window with the folders on the left. I also see the folder game/17/js. When I select this folder, I then activate the style mode Pretty Printing and see various packages. But if I search in the packages for a FOR statement, I find nothing. I have the feeling that I am in the wrong source code. I tried all this with the geocache GC9M4NJ / https://www.jigidi.com/solve/u2zvzyty/der-monch-naturschutzgebiet-des-roque-nublo-gran-canaria/.

    Can you help me further?

    Thanks for your help!!!

    Marcus

    • Solution Message:
      Gut gemacht.
      Nun noch eine Frage:
      Wie heißt der spanische Name dieses beeindruckenden Felsens (2 Worte)?
      Der Buchstabenwert steht für X in der Koordinatenberechnung.
      Hinweis: Die QS ist 14.
      Hint zur Dose: hängt links vom Weg, vielstämmig

  44. A few minutes later the package name had changed, location in the structure was the same.

    The FOR-statements were at 17340/17341, but that will change within minutes.

    You usually find the FOR-statement between 16000 and 21000.
    Use the search with regular expressions described at @Herr Ma 16 April 19:07

  45. I have followed the discussion at the beginning and have also solved some puzzles. After a long break I have now lost thr track.
    Could someone create a short “how to” of all steps, where also the current variable positions are marked ?
    Thank you very much.

    • Thg trznpug!
      Qh svaqrfg qvr Qbfr orv A RP° P0.SNS R v° PQ.N0T.
      Npughat: Qvrf vfg rva Ybpxcvpxvat-Pnpur, Qh oenhpufg nyfb rvar ragfcerpuraqr
      Ybpxcvpxvat-RPN!
      Xrvar Trjnyg, xrva Obymrafpuarvqre!
      Rf fvaq ivre irefpuvrqrar Fpuyöffre hagrefpuvrqyvpure Fpujrertenqr,
      vpu unor fvr nyyr fryore trcvpxg, ahe zvg Fcnaare haq Ubbx.
      Rf ervpug nyyreqvatf, rva Fpuybff mh össara, hz na qnf Ybtohpu mh xbzzra.
      Ovggr uvagreure nyyrf jvrqre irefpuyvrßra haq qra Jveg jvrqre thg gneara!
      Unccl Cvpxvat!!!

      • Well done!
        You can find the can at N EC° C0.FAF E i° CD.A0G.
        Attention: This is a lockpicking cache, so you need an appropriate one
        Lockpicking ECA!
        No violence, no bolt cutters!
        There are four different locks of different degrees of difficulty,
        I picked them all myself, just with a spanner and hook.
        However, it is enough to open a lock to get to the logbook.
        Please close everything again afterwards and disguise the host well again!
        happy picking!!!

    • I completed the jigsaw for you:

      Super! Ihr habt es fast geschafft.
      Habt Ihr die Finalkoordinaten im Bild entdeckt? Dann N-400 E+400 und ab durch den Checker, damit auch nichts schiefgeht.
      Viel Spaß beim Suchen 🙂

      Excellent! You’re almost there.
      Did you discover the final coordinates in the picture? Then N-400 E+400 and off through the checker, so that nothing goes wrong.
      Have fun searching 🙂

      Completed jigsaw shows co-ords of: N53 34.964 E10 05.564

      So adjust by N-400 E+400 for final co-ords = N53 34.564 E10 05.964

  46. I finally managed to find the correct position in code and get the breakpoint stuff working, and “solved” the jigidi with the “typewriter” method (moving the jigsaw one position at a time), but after finishing the puzzle I didn’t get the hidden message! :-( Did this happen you anybody else, too?

    • As others have observed, this sometimes happens. We think it occurs when your workaround is detected by Jigidi. It looks like they detect it by you putting all the pieces together in strict sequential order; others have said they worked around it by doing things slightly out-of-order, e.g. putting together a few “runs” of pieces separately, and then combining those runs occasionally along the way and/or at the very end. Your mileage may vary! Good luck!

      • Thank you very much! Now I have also found the respective comments. 🙂
        I do now first pairs of two, then pairs of four, etc…. With this it works (still) 🙂

      • Hi Dan Q, a little further up in this thread there was already a question as to whether there was a way to get a point-by-point description (with illustrations if possible…) that even a not so talented person could get User allowed to work out a solution for the Jigidi puzzles. Unfortunately, I myself have not managed to find the exact point where you have to start… That’s a pity, since the jigidy solver with Tampermonkey doesn’t work anymore… But there are so many geocaching puzzles, who are waiting for a solution and I don’t like doing puzzles at all… So the big request for a solution.

        • Perhaps it would be a good idea to explain, where your problem starts and others might guide you through the further steps. Step by step.

  47. Need help withhttps://www.jigidi.com/solve/a4qerydc/my-only-regret-in-life-is-i-never-bought-it/

      • My original comments were: “Solution message: Link 1” and “Next solution message: Link 2”.
        The system complained that the two were too similar. (“Seems you already said that!”)
        So I had to add some extra text to the second comment.
        GeoCacher’s puzzle is part of a looooooong jigsaw marathon …

      • That’s a relief – thought Dan had taken a dislike to me posting, but seems not. Three of my posts disappeared but it still showed as having posted. Strange.

  48. Hello. I tried and it didn’t work for me. I understand almost nothing about it.
    There are so many corrections to the original post here. Can anyone add a complete and up-to-date instruction?

    • Manual solve took a long time!

      Message shows: “How many …” and picture is of many many beehive honey hexagons.

      Post the GC code please.

  49. please update the guide with most recent information. need to know how to do it myself, dumb guy version. too many jigidis, not enough time.

    • WELL DONE……..ON COMPLETING THE PUZZLE…….NOW TO FIND THE CACHE……….

      N 52 54.144 E 001 03.996

      HINT : COVERED IN THE DREADED IVY

  50. Hi all,

    Can anybody explain me how I can set the correct breakpoint for following Jigsaw:
    https://www.jigidi.com/solve/dzpl55ya/5-hannover-charly-maggy/

    I opened the page, pressed F12, switched to Debugger and found the file “game/17/js/e881547a41c2691a73d2a150f8628d07”.
    But the file contains only one line and not several thousands. Also I do not have the function “{}” for this file to make the code nicer.
    And I have only a few places at the beginning of the code where I can set breakpoints.
    And I do not know how I can set the variables if I would be able to set the correct breakpoint.

    I hope somebody can help me with some detailed descriptions because I have to solve 96 jigidi-Geocaches and I don’t like puzzling so much but I want to clear my homezone. Thanks a lot.

    Best regards,
    Roland

    • Everything has been explained above, just check the post above and use Firefox to do the necessary steps…

    • When there’s no prettify-button like “{}” at the bottom of the one-line-code, you will find the module name above the one-line-code. In your example it was “e8815…”

      Right click on this name and the last entry of the new menu will help you. I don’t know the correct english expression, in German firefox it’s called “Quelltext einheitlich formatieren”. In the English version it may be called “pretty-printing” or something like this.

      That should fix the problems with the missing prettify-button.

  51. Hello everyone,

    After several hours of trying I finally made it. For me it did not work with Firefox, because there I did not have the pretty-print-button. But with Google Chrome it finally worked. Here is a detailed desciption of what I did.

    1. Login to Jigidi and open the puzzle in Google Chrome (in my case: https://www.jigidi.com/solve/5bw8d5mn/10-harz-charly-maggy/)
    2. Press F12 and go to tab “Sources”
    3. Open Folder “game\17\js” an click on the file in that folder (in my case the file name was “94868c9d8aca69bb45fbebd2f52d3b0c”)
    The file opens in the editor right beside the folder. In my case it includes only one row.
    4. Below the editor is a Button “{}”. Click on that button. The code is now shown pretty and consists of several thousands of rows. In my case 9455.
    5. Copy-paste the code into notepad++ and search for regular expression:
    function.*\r\n *for.*\r\n *for.*\r\n *var
    6. This should give exactly one result. In my case in rows 1197 to 1200. The code that was found in my case was the following:
    1197 function bQ(F, J, Z, l, I) {
    1198 for (var C = 0, i = 0; J > i; ++i) {
    1199 for (var E = t(F), q = t(F), p = null, Y = t(F), R = 0; R y; ++y) {“. You have to set y=x. So in my case row 1198 ends with “J > i; ++i) {“. Therefore I had to set i=J. To do so, just type in “i=J” in the console and press return. There should now appear the number of puzzle pieces as answer in the console. In my case the console now looks like follows:
    > i=J

    18. At last you have to switch back to the tab “Sources” and once again press the “play/pause”-button.
    19. Now the puzzle-pieces should be shown in a sorted stack except of one piece which is show beside the stack. I assume this is because the for-loop was executed one, which randomized one puzzle-piece.
    20. You can now put the pieces together, but you have to be aware of connecting the pieces in a little chaotic order because otherwise the success message may not show up at the end.

    Hopefully this explanation makes it easier for everyone, who has no idea of Debugging-Consoles and Breakpoints and so on like my.

    Best regards,
    Roland

  52. unfortunately the formatting of the text in my last statement is not shown correctly. The “lower-than” sign could not pe interpreted. Therefore I replace it with “lt”. Hopefully this will work.

    Hello everyone,

    After several hours of trying I finally made it. For me it did not work with Firefox, because there I did not have the pretty-print-button. But with Google Chrome it finally worked. Here is a detailed desciption of what I did.

    1. Login to Jigidi and open the puzzle in Google Chrome (in my case: https://www.jigidi.com/solve/5bw8d5mn/10-harz-charly-maggy/)
    2. Press F12 and go to tab “Sources”
    3. Open Folder “game\17\js” an click on the file in that folder (in my case the file name was “94868c9d8aca69bb45fbebd2f52d3b0c”)
    The file opens in the editor right beside the folder. In my case it includes only one row.
    4. Below the editor is a Button “{}”. Click on that button. The code is now shown pretty and consists of several thousands of rows. In my case 9455.
    5. Copy-paste the code into notepad++ and search for regular expression:
    function.*\r\n *for.*\r\n *for.*\r\n *var
    6. This should give exactly one result. In my case in rows 1197 to 1200. The code that was found in my case was the following:
    1197 function bQ(F, J, Z, l, I) {
    1198 for (var C = 0, i = 0; J > i; ++i) {
    1199 for (var E = t(F), q = t(F), p = null, Y = t(F), R = 0; R lt Y; ++R) {
    1200 var
    7. Back in Google Chrome in the editor go to the first line that you found in Notepad++. In my case 1197.
    8. Click on the row number. In my case 1197. Then the next row will be bookmarked (In my case row numer 1198 is marked with blue arrow)
    9. Now go to the jigidi puzzle and click on the refresh button next to the timer 0:00.
    10. In the code the row with the bookmark is now marked in light blue.
    11. In the right upper area there are several buttons. One is a button with a “play/pause”-sign. When you mouseover the button it says “Resume script execution”. Press that button once.
    12. The for statement will be executed once and the breakpoint will stop the execution again.
    13. Now mark also the following row (in my case: 1199).
    14. Click the “play/pause”-button again once.
    15. The code runs now only to the next row. (In my case: row 1199).
    16. Now change the tab from “Source” to “Console”
    17. Now you have to set the variable in the first for-statement to the last value of the loop, so that the for-loop will end immediately. To do so you have to check the code that you found in step 6. The first for-statement has an attribute that ends with something like “x > y; ++y) {“. You have to set y=x. So in my case row 1198 ends with “J > i; ++i) {“. Therefore I had to set i=J. To do so, just type in “i=J” in the console and press return. There should now appear the number of puzzle pieces as answer in the console. In my case the console now looks like follows:
    > i=J
    lt 475
    >
    18. At last you have to switch back to the tab “Sources” and once again press the “play/pause”-button.
    19. Now the puzzle-pieces should be shown in a sorted stack except of one piece which is show beside the stack. I assume this is because the for-loop was executed one, which randomized one puzzle-piece.
    20. You can now put the pieces together, but you have to be aware of connecting the pieces in a little chaotic order because otherwise the success message may not show up at the end.

    Hopefully this explanation makes it easier for everyone, who has no idea of Debugging-Consoles and Breakpoints and so on like my.

    Best regards,
    Roland

  53. It is a very easy to follow set of instructions from Roland. Unfortunately, having followed all the instructions, when I press the “Play” button for the final time, all I get is a pop-up box with the message

    “The jigsaw puzzle could not be restartet. Please try again or choose another puzzle, if this problem persists.”

    I have tried several different puzzles, each in different browsers, and it is the same result every time

  54. I don’t see a way to get ‘Sources’ to show. Using Google Chrome, I press F12 and get a box showing all sorts of options such as System, Network & Internet, Accounts etc but nothing that shows ‘Sources’. Also am I supposed to be on the Jigidi page before the pieces are shown on the screen or the page where they are on the screen?
    Thanks

  55. Hi,
    thx for explaination from Roland, that was very helpfull. I used it with chrome browser.
    But not in every case the Pop-up window was coming up. :(
    In the case of https://www.jigidi.com/created.php?id=0IJ5JU0X it was two times not possible to get the coordinates for final of cache.
    The next effect I have seen is that the solved puzzles are not registered on the private area in Jigidi. Before I started my solving session I had logged on on Jigidi.
    In the case that the popup wasnt comming, it should be possible to reopen the solved picture and the information comes up, but the on this way solved puzzle are not registered as solved puzzle either :(
    Do any of you know, how to handle it correct?
    Thx in advance

  56. Jigidi puzzle caches sucks as hell, because most owners make puzzles with 300 or more pieces (because they can..), If jigidi caches would be restricted by groundspeak to for example 90 pieces, then it would not be a big problem. But groundspeak don’t want to do anything against it.

    But sitting one or more hours in front of the computer solving another stupid jigidi? And those jigidi caches are growing like cancer, every cacher wants is own stupid jigidi cache… so F*** Y*** Jigidi cache owners…

  57. Hi friends,
    thanks for this instruction. Was following Richard’s explanation. The regex search does not return a result. I started looking for spots where a variable is increased done by ‘++’. Found something around row 3687.

    function fl(P, D, m, c, X) {
    for (var J = 0, N = 0x0; N < D; ++N) { for (var l = G(P), O = G(P), H = null, f = G(P), b = 0; b https://www.jigidi.com/solve/093l3y4l/skifer/ * https://coord.info/GC92K5W -> http://www.jigidi.com/solve/ttqho0r7/2020/

    Thanks for your help!

  58. Hello everyone,

    I have added the procedure that I have been using below, based on the procedure given by Roland on 09-07-22. Maybe it’s helpful to someone who can’t get the latter to work. I use ‘lt’ for lower than since that seems to be necessary for the message to display correctly on this forum.

    1. Login to Jigidi (a throwaway account) and open the puzzle in Google Chrome.
    2. Press F12, drag the new screen a lot towards the left, and go to tab “Sources”
    3. Open Folder “game\17\js” an click on the file in that folder (with a name like “94868c9d8aca69bb45fbebd2f52d3b0c”)
    The file opens in the editor right beside the folder. In my case it includes only one row.
    4. Below the editor is a Button “{}”. Click on that button. The code is now shown pretty and consists of several thousands of rows. In my case 9464.
    5. Copy-paste the code into notepad++ and search (Ctrl+F) for “= null”, choose Find all in Current Document.
    6. This gives about 150 results you can scroll through. Find the one line from these results that starts with ‘for’ (it has parentheses with about 7 expressions in them).
    7. Go back to Chrome with the line number. There in my case we have:
    2985 function be(X, R, a, Y, f) {
    2986 for (var p = 0, W = 2 – 2; W lt R; ++W) {
    2987 for (var o = Q(X), A = Q(X), l = null, S = Q(X), w = 0x0; w lt S; ++w) {
    2988 var D = e(X);
    8. Click on the row number with the first for. In my case 2986. Then this row will be marked with blue arrow.
    9. Now go to the jigidi puzzle (maybe slide in the screen with the code a bit again) and click on the refresh button next to the timer 0:00.
    10. In the code the row with the bookmark is now marked in green, top right says ‘paused on breakpoint’.
    11. In the right upper area there are several buttons. One is a button with a “play/pause”-sign. When you mouseover the button it says “Resume script execution”. Press that button once.
    12. The for statement will be executed once and the breakpoint will stop the execution again.
    13. Now unmark the first for-row and mark the second (in my case: 2987).
    14. Click the “play/pause”-button again once.
    15. The code runs now only to the next row. (In my case: row 2987).
    16. In the first for-row, find the part of the line that contains the lower than sign. In my case W lower than R. Now change the tab from “Source” to “Console”
    17. Now you have to set the variable in the first for-statement to the last value of the loop, so that the for-loop will end immediately. To do so, just type in “W=R” (but with your variables) in the console and press return/enter. There should now appear the number of puzzle pieces as answer in the console. In my case the console now looks as follows:
    > W=R
    lt 330
    >
    18. At last you have to switch back to the tab “Sources” and once again press the “play/pause”-button.
    19. Slide the window back to the right to see that the puzzle pieces should be shown in a sorted stack except one piece which is show beside the stack. I assume this is because the for-loop was executed one, which randomized one puzzle-piece.
    20. You can now put the pieces together, but you have to be aware of connecting the pieces in a little chaotic order because otherwise the success message may not show up at the end. The chaotic order that works for me (as suggested above somewhere) is to keep connecting pieces two by two and place those pairs around the stack, until you’ve got a row worth of pairs. Then connect the left half of the row and set it in the bottom left of the screen, and the right half in the bottom right. Do the same for the second row and connect the second left half to the first left half and the second right to the first right. Build up the puzzel to be two halves (left and right) and finally connect those. It’s possible that later this technique will not work anymore since jigidi will notice, but then you’ll just have to be more chaotic. Good luck!

    Thanks everyone above me for their pioneering work haha.

    • Hi Jigidon´t,
      I tried to solve GC8GRKT (the first puzzle I solved traditional), with your explanation, but I can´t find line number with “for” and “= null”.
      I tried the second puzzle.
      Is this way to cheat current possible?
      There are so many puzzles and I search rather than I solve puzzles.
      A easy trick would be greatful.
      Thanks in advance and kind regards,
      Bremen1984

  59. Whilst this method works a treat, the folks at Jigidi seem to have come up with a method of detecting this, and puzzles don’t give you the completion text, add the puzzle to your completed puzzles or add your time to the leaderboard when you cheat it this way ….

    Confirmed by completing the same puzzle manually, and was given the info I needed … back tothe drawing board.

  60. Got it to work and could solve both caches:

    * N62 11.423 E008 30.934
    * N62 11.529 E008 30.476

    “Jigidon’t”‘s solution still works. In my case, the comparison was the other way round. Instead of “W lt R” I had “W gt R”. Therefore, I had to turn the equation the other way round. Instead of “W = R” it had to be “R = W”. In order to be sure, just check which variable is increased within the for line. Increment is done by “++”. So if you read “++W”, the equation must be “W = R”. That way you are setting the counter to the total number of parts.

    • You should revisit this because in classical jigidi fashion they’ve found some detection and block the completion message.

  61. Just tried this on a 475 piece puzzle and it worked! Laid out the pieces & connected them totally randomly. Still took over an hour! Used Jigidon’t’s method with Terrorhorst’s update. Thanks!

    • Completed manually … N27° 00.234 E33° 54.448
      N ?7° 0?.?3?’
      N 2?° ?0.2?4′
      E 3?° ?4.?4?’
      E ?3° 5?.4?8′

      • You must Be really crazy… ;-)
        Thank you soooooo much.
        I tried to solve those Puzzles several times with the danq method but never got any result.
        Simply got messed up searching the code and even if i completed a puzzle there was no coordinate Shown.

  62. I am not finding where to place the breakpoint now.
    I admit it has been many years since I worked with Javascript. I see a /game/18/js in the debugger, but the script is one very long line. Searching on shuffle bring no results neither does data-bytes. Random and promise appear a few times. But since it is now a single line script setting a break point doesn’t work. I currently just pile all the pieces together and move them around until I get a bunch joined up it is not fast, but doesn’t require much thought either, with luck I can get to 50% before I have to pay attention.

      • I only see an “ignore source” eyeball at the bottom. Using the default developer console on Firefox 91.13 on SuSE. The only {} I see is on style editor, 2 tabs over from the debugger.

  63. I probably do something wrong and I don’t get it. I think I found the correct line:
    function ge(F, K, P, n, I) {
    for (var h = 0, Y = 0; Y l; ++l) {

    When I mark the second line and refresh the puzzle it breaks at this line. If I resume it breaks again.

    If I know enter Y=K it shows me 252 but when I resume I still have the puzzle shuffled…?

    If I resume it a second time after the first break it runs right through the end and the puzzle is shuffled.

    Chrome is my browser

    Thanks!

    • What do you mean with “resume” or “refresh”?

      Do you resume/refreh the whole puzzle in jigidi?
      You should only hit “play” (=continue) in the debugger, not “restart” or “refresh” in the puzzle or debugger.

      1. You found the correct line
      2. You mark the first line with “for (var…” (as you wrote)
      3. You restart the puzzle in jigidi
      4. Jigsaw runs 1/3 of the circle
      5. You hit play
      6. Jigsaw nearly runs the full circle
      7. You un-mark the first line
      8. You mark the second line
      9. You hit play again, nothing seems to happen
      10. You enter Y=K (from your example)
      11. You hit play again, the pieces are stacked

      play = the small triangle in the upper right corner of the debugger (firefox, chrome might be similar)

      • Hi, thanks, it works but the Script didn’t show the pop up window :-/

        my mistake was not to mark the second line if anybody has the same issues ;-)

  64. How fast are jigidi accepting solution?

    Tried 500 bricks. top 10 round 3 hours. I had the partly solved puzzle in “in progress” finished it after 45 minutes. Did not get the message. Puzzel gone from “in progress” and not in completed.

  65. Looks like they again changed the source. Cannot found anything that looks like the things we need to search. Hopefully someone better than me understands any of it and has a new fix/method.

  66. I got the procedure to work using Jigidon’t comment from “25 July, 2022.” The first time I solved it I wasn’t human enough but I solved the 589 puzzle it in 30 minutes. No completion message. Did it again, this time laying the pieces out in a grid and then assembling the puzzle more naturally and got the message. That took 1:45. The puzzle probably would have taken 5 hours if I didn’t “cheat” so I guess that is a win. A lot of trouble for a cache I probably will never go find.

  67. @Gert at 4 November, 2022 at 10:41

    Cannot reply so posting as new comment …
    Manual completion:
    Goed gedaan …nu op naar de cache ….
    N52.57.736 E006.29.092 …
    en vergeet je toolbox niet
    GCA1PT6 406pcs:

  68. Can anyone solve this one please? Its 500 odd pieces and will take hours to solve. It took the CO over 4 hours to complete……..

    The GC number is
    Little bridge #2613 Digbys rainbow bridge 🐾🌈 Mystery Cache

    GC9P4DD

    • GZ = N51 20.041 W002 12.486

      51 2RED.RED ORANGE YELLOW W002 YELLOW GREEN.BLUE INDIGO VIOLET

      Blue = 4
      Green = 2
      Indigo = 8
      Orange = 4
      Red = 0
      Violet = 6
      Yellow = 1

    • GZ = N51 20.041 W002 12.486

      Formula: 51 2RED.RED ORANGE YELLOW W002 YELLOW GREEN.BLUE INDIGO VIOLET

      Blue = 4
      Green = 2
      Indigo = 8
      Orange = 4
      Red = 0
      Violet = 6
      Yellow = 1

      • 51 2RED.RED ORANGE YELLOW W002 YELLOW GREEN.BLUE INDIGO VIOLET

        Blue = 4
        Green = 2
        Indigo = 8
        Orange = 4
        Red = 0
        Violet = 6
        Yellow = 1

    • Sorry for the multiple posts … sometimes replies do not display. This time I tried several times and none showed, then later all of them appeared!!

  69. Hi
    It looks like they’ve changed the code again to check for timeout:
    Forced reflow while executing JavaScript took 1897ms
    https://coord.info/GCA12P2
    108 pieces

    6275: ;function cQ(y, L, P, x, m) {
    6276: for (var t = 0, b = 0; b < L; ++b) {

    b=L (gives 108)
    error:
    Unchecked runtime.lastError: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received

    and on continuing:
    The jigsaw puzzle could not be restarted. Please try again…

    • Guess you need to visit published co-ords for the Certitude keyword?

      Super … jetzt musst Du “nur” noch das pasende Graffiti dazu finden. Es wäre bestimmt schön den Umfang der runden Werbefläche in direkter Nähe zu ermitteln, aber das wäre dann doch zu auffällig. Auf der “Leinwand” des Kunstwerks sind einige Schilder befestigt. Eines davon ist ein Unikat. Rechts unten steht eine Kombination aus großen Buchstaben und Zahlen … und links unten auf dem gleichen Schild findest Du noch ein paar Zahlen. Alles zusammen und in genau dieser Reihenfolge ist Dein Schlüssel!
      ______________________________________________________________________

      Super … now you “only” have to find the right graffiti. It would certainly be nice to determine the circumference of the round advertising space in the immediate vicinity, but that would be too conspicuous. On the “canvas” of the artwork some signs are attached. One of them is unique. On the bottom right there is a combination of large letters and numbers … and on the bottom left of the same sign you will find a few more numbers. Everything together and in exactly this order is your key!

  70. As of Jan. 3, it seems Jigidi have once again completely changed their code, such that the abovementioned method to stack the puzzle pieces in a neat pile no longer works.

  71. I solved this one sometime ago. Completion message:

    Well done.
    Final Coords N55 55.151 W004 29.042
    Head height in leylandii

  72. Can someone help with this one? GC96YD0?

    I SOLVED THE FIRST THREE Manually but are getting really stressed with one after another. Took hours…

  73. Hello,
    can anyone help me with:
    GCA4NZ7https://www.jigidi.com/solve/3y50h3f0/arc-en-ciel/

    and:
    GCA4P02https://www.jigidi.com/solve/h6rut35e/ukraine/

    Thanks a lot !

    • Manual completion of jigsaws:

      Drapeau 5 – GCA4NZ7
      Félicitations la cache se trouve sur:
      N 49 30.180 E 006 11.677
      ____________________________________

      Drapeau 6 – GCA4P02
      Félicitation, la cach se trouve sur:
      N 49 29.889 E 006 10.238

    • Image has “flag” painted on the rockface with number 658 in centre

      ITA – A GZ, in una nicchia nella roccia a circa quattro metri sopra il segnavia.
      Per favore, riposizionare con cura, grazie!

      ENG – At GZ, in a niche in the rock about four meters above the signpost.
      Please, reposition carefully, thank you!

  74. Anyone can solve these two puzzles or can point me on an updated guide on how to edit the script in developer mode to avoid shuffling? The geocodes are: GCA4T1A and GCA4RY4. Thanks!

    • Fully manual completion:

      GCA4RY4 – Congratulations! SOMETHING is the correct answer.
      Bonus info: Ben fatto! Il cache si trova a N 41°51.336 E 12°32.739, sotto dei sassi a ridosso della recinzione.

      Pensavi fosse finita qua? Per ottenere le coordinate inserisci su certitude il titolo della canzone a cui appartiene questo verso “You stick around, now it may show”
      __________________________________________________________

      GCA4T1A – Congratulations! LUCY IN THE SKY WITH DIAMONDS is the correct answer.
      Bonus info: Ben fatto! Il cache si trova a N 41°51.435 E 12°32.654, in alto dietro a dei sassi P.s non è una faccina triste ma dei baffi, ci sono stati dei problemi nella realizzazione del contenitore

      Pensavi fosse finita qua? Inserisci su certitude il nome della canzone, tutto maiuscolo senza spazi, a cui appartiene questo verso: Suddenly someone is there at the turnstile

  75. You’re spoiling a lot of people’s pleasure by hacking Jigidi like this. Why be a jerk? You have your thing—geocaching—and jigsaw lovers have theirs. Maybe you should boycott the people who are using Jigidi puzzles to give out their clues, or find some other way around your “problem.”

    • @Perdita:

      Who’s pleasure am I spoiling, exactly? Jigsaw lovers? Nobody is being forced to use my techniques to solve jigsaw puzzles, and people who enjoy jigsaws for jigsaws-sake are free to carry on solving jigsaws exactly as they always have.

      I’m aware that Jigidi has scoreboards, and I take special care not to pollute them with machine-assisted results (by, for example, not logging in to a Jigidi account), so jigsaw enthusiasts are unlikely to even find out that it’s possible to have the computer help you in this way unless they go looking for it. Incidentally, I’m not the first person to solve online jigsaws this way and I doubt I’ll be the last.

      If you don’t know me well it’s possible that you don’t realise that this is, mostly, for my pleasure. Two things I really enjoy are (a) using satellite networks to find lost tupperware (geocahing) and (b) using computers to in unusual ways to solve interesting problems (hacking). Even if it weren’t for geocaching, coming up with ways to have a computer solve Jigidi jigsaws is the kind of thing I enjoy doing. When I first came across Sudodu, I solved a couple of puzzles and then thought “hey, what would be more fun would be writing and optimising a computer program to solve them”, so I did. When a friend shared with me a logic puzzle about combination locks, I solved it, then wrote a program that could solve the general case of “puzzles of that type” (even though I only knew of the one!), then I wrote a program that could generate programs of that type, then I made a game out of it, widening the reach of that kind of puzzle and giving the world a new game to enjoy.

      (Incidentally, I don’t care how people solve the puzzles in my game: they can do it by hand, or they can use a solver like the one I produced, or they can write their own solver, or they can read the source code and get the answers rightaway. Like jigsaws, my lock puzzles are a single-player game, so people are welcome to solve them in whichever way is most-fun for them.)

  76. (1) Trying to thwart your hacks is taking the time and resources of Jigidi’s administrators away from the work of keeping Jigidi solvent and thriving. Fencing with you is not fun for them. (2) A lot of people on Jigidi are very discouraged that they can’t get on the leaderboard, or can never be at the top of the leaderboard, because “cheaters” get times that are a fraction of the time it takes to really solve a puzzle. They are mostly old people, not technologically savvy, and Jigidi is their community. Why should geocaching nerds ruin things for jigsaw nerds? We don’t research ways to spoil your fun. It’s really just a matter right and wrong, of doing unto others, etc. Be kind. I could be your grandmother! Your grandmother could be a Jigidi user!

    Be kind.

    • Thanks for the reply. My thoughts:

      (1) As an ethical hacker, I try to disclose any security vulnerabilities I find in software. Have a look elsewhere in my blog for countless examples (nerds can look me up on HackerOne for more)! The vulnerabilities are there and eventually get exploited by bad guys whether or not I disclose them, but if I disclose them then service operators have a chance to fix them first. If you use Vodafone, HMRC, or the National Lottery, for example – all of these services are more-secure than they would be thanks to me, personally, breaking into them (and then telling them how I did so!). No, it’s not “fun” for their developers to be shown that they’ve got a security bug, but it’s their JOB, for which they’re paid, to fix them, and I feel that it’s the responsible and correct thing to do to tell them. Otherwise, the next person to find the vulnerability might not be so nice and people will get their money or identity stolen. (As a side benefit, I sometimes get awarded “bounties” for my efforts – kickbacks from companies who want to encourage “good guys” and incentivise them not to be “bad guys” – but personally I just do it for fun.)

      With Jigidi, though, I didn’t see any potential for harm in the misuse of the technique, so I skipped the “tell the developers first” step and went straight to the “publish on the Web” step. I based this decision on the fact that nobody’s going to get defrauded out of their pension or spammed or whatnot as a result of this issue. Also because this is what basically everybody else who’s found an exploit for Jigidi has done. (Lots of other people have described similar techniques, apparently I just show up in search engines better!)

      I see the point that Jigidi developers may feel they have to ‘fence’ with me. Maybe they do, but I’ve not seen any evidence of this: that my initial exploit no longer works may well be a coincidence. Regardless: the technique I proposed most recently, a little higher in the thread, is one that isn’t POSSIBLE for them to counteract (although it’s also not so effective as the original either). I’ve made no efforts beyond my initial post to ‘fence’ with them, and I’ve not seen anybody else do so either. So while your argument may be valid against something I DID, and I’ll consider that, it’s not something I’m DOING.

      (2) You’re right, I suppose, that people might use techniques like the one I originally suggested (which no longer works) to get to the top of leaderboards, competing unfairly with my gran (well not my gran obviously, she’s been dead over a decade, but somebody’s gran, sure). When I originally came up with the technique, I honestly had no idea that there even were leaderboards or that people might “compete” at jigsaw-solving! I don’t use a Jigidi account while solving jigsaws using my approaches or otherwise, so I don’t appear on any leaderboards, and I don’t condone anybody else doing so either. It is, of course, impossible for Jigidi to completely police this (just like they can’t stop a team of people solving a jigsaw together, just like they can’t remove the advantage posed by people with larger screens) but I appreciate that my initial technique represents an incredible scaling-up compared to those advantages.

      Again, techniques like mine are “out there” and being used regardless of whether or not I streamline, simplify and publish them. But I can see how I might, for the brief period that the technique in my blog post worked (I assume you’ve seen that it stopped working months ago, and as I mentioned I’ve never made any effort to ‘fence’ with Jigidi by making it work again), have helped facilitate cheating. I didn’t consider the possibility that somebody would use it to cheat at lesderboards because I only considered that people would use it if, like me, they found jigsaws boring and tedious, and using it to get onto scoreboards would require doing MORE boring and tedious things! But I suppose it’s possible that somewhere on the Internet there exist sad losers who would waste their time doing jigsaws slightly-faster than by hand in order to put their name on a scoreboard.

      To mitigate that: I can promise that if I ever publish a streamlined technique for sidestepping Jigidi again, I’ll see if it’s possible to make it work only (or easiest, if that’s not possible) if you’re not logged in to a Jigidi account. Although again, I’m unlikely to do this – finding an exploitable bug in some code once is fun for me, doing it again and again on the same bit of code is basically what I’m paid to do at work so it’s a lot less fun! That’s why while you’ll find countless posts on my blog about how I hacked some system it another, you’ll not find one about how I did so TWICE!

      Hope that explains my position, and what I’d do differently in future!

  77. I appreciate your thoughtful reply, Dan. “[I]t’s possible that somewhere on the Internet there exist sad losers who would waste their time doing jigsaws slightly-faster than by hand in order to put their name on a scoreboard.” That made me laugh, because, yes, more of those exist than you would think! And there are some who have found ways to do this without knowing how to write code, for instance by painstakingly stacking pieces by shape and then trying to fit one piece from stack A into any piece in stack B, over and over again. Talk about boring!

    I wish all hackers were ethical, but there’s that pesky problem of human nature . . .

    Best to you,
    “Perdita”

    • Message:
      Bravo maintenant répond à cette question dans certitudes si je te dis:
      FRUIT-DENTISTE-CHARLOTTE tu me dis ??

      CoinCoin: would be interested to know the Certitude keyword, purely out of interest (initially message looked like w3w, but is not).

      PS: Perdita for your information, my contributions here are manually completed jigsaws – I don’t mind helping people who do not enjoy jigsaws!

  78. Hello Rich, and thanks a lot !
    The answer for certitude is “FRAISE”.
    (strawberry in french)
    Have a nice day !

    • GCA80BR: Bravo à présent tu dois compter le nombre de capsules présents sur cette photo et entrer ce chiffre dans Jigidi… (Courage il t’en faudra)
      Ou sinon tu peux simplement me dire de quel type de produit viennent ces capsules: XXXXXX (avec un S et sans accent)

      Screenshot showing completed Jigidi puzzle for geocache GCA80BR

  79. Hi Dan!
    I’m playing around with your latest solution. First: thanks for your great tips! Super cool!

    You may have heard that they changed the code recently.
    Just one thing: do you know how to get the x,y coordinates of the pieces (upper left) from the pieces-object?

    thanks tons,
    Guido

  80. At this point, a heartfelt “thank you” to Dan Q – and of course everyone else – who helps out here to be able to care more about tupperware than staring at ugly holiday photo pieces.
    I’m not that into coding, but the debugger no shuffle method thingy works for me fine – except when I’m to lazy and not moving enough pieces from the sack before putting them together. lLet’s see if a minimum click rate can be determined – for now I’m down to13 min fpr 400pc – which is still okayish – for an unknwon type puzzle (still it’s annoying, that it is soooo repetitive).

    So once again DANQU! (pun intended)
    flipso

Leave a Reply

Your email address will not be published. Required fields are marked *