Note: some of the dialog boxes in Builder are HUGE... I've included them here as thumbnails. If any image is small, just click on it to see the full sized version.
My new Garmin Colorado comes with a new geo-game called "Wherigo". I won't go into the details of it, since there's a pretty good description available at the Wherigo site. But, there is woefully little documentation (ok, none) on how to actually make a new Wherigo "cartridge". Since only a handful have been created by Groundspeak and none of them are in my area, I decided it's time for me to make one and figure out how this stuff works.
So, I'm going to create a very simple cartridge and post the steps on how to do so as I go. Eventually I'll publish the cartridge on Wherigo and it'll be available for public consumption. Until then, at least it'll be a kind of hand-holding tutorial for those getting started with Building.
Download Builder, install it and make sure you have the .NET runtimes installed (available via a link on the Builder page). Builder is the main tool used to create cartridges.
Run Wherigo builder. You should see something very much like this...
In Builder, click the File menu and then choose "New Cartridge". Don't worry about anything else just yet, we're just going to jump in feet first. This should open up the "Name" dialog. Name your cartridge something that makes sense. I'm going to call mine "DC Mall Tour".

Click OK when you're done typing the name. This should present you with the "Cartridge" dialog. It should look something like this...
Here's where we define the basic properties of the cartridge. The cartridge name should already be filled in. Enter the version (I'd start with something less than 1 for now) and Author (that's you). Company is there if you want to fill it in, but I leave it blank.
For now, we're going to make a basic tour, so make sure the type is set to TourGuide. Sorry, but I really don't know what the other activity types do yet. Now click on the Set from Address button. This will bring up the "create a zone from an address" dialog for you to fill in.

Just fill in as much as you know about the area you want to build your tour in. I entered one of the streets in my area and city and state. That's enough for it to get basic starting coordinates. Click Ok and wait a few minutes for it to ask you to replace points...

Click Yes to accept the new coordinates and to get back to the Cartridge window. Enter a starting location description. You should also enter a main description. Don't worry about the media, icons or logging right now. When you're all completed, it should look something like this...
Click OK when your done here. You should be prompted to save the cartridge. Save it somewhere you'll remember... making a directory for cartridges is a good idea, as you might have a bunch of media files that you want to add later and you can put them all in one directory.

Once the file is saved, you have created your first cartridge! Admittedly, it's an empty and pretty useless cartridge right now, but we're at a starting point.
You should now be back at the main builder screen. All the buttons are now lit up instead of grayed out...
Now it's time to start working with zones.
Zones are "areas" that you want the player to go to. Zones are also kind of "containers" where other objects are located. A zone is defined by coordinate points. We'll be creating zones with three or more points. When you connect the points, it makes a shape on a map. Once the player enters this area, we can trigger events to let the player know what to do next and we can update variables so Wherigo knows that the player has done something. There are a lot of other things we can do with zones, but we're going to keep it real simple for right now.
Make sure the "Zones" are displayed in the main builder program (the zone window should be empty right now). You can click the Zones button to get back to the zone page if you were clicking around and checking stuff out. We're going to make a new zone, so click the "Add" button. This should pop up a "New Zone" window, which looks a lot like the cartridge window we filled out earlier...
Let's enter a name and a description real quick before we get into anything complicated... I'm going to make this zone for the Washington Monument, so I entered "Washington Monument" as the name and I tossed in a description.

Now let's make the actual zone area. Click on the "Create from map" button under "Create a zone options". Wait a few minutes for the map to display. Here's how mine shows up...
Personally, I prefer the "Urban Area" theme, so I will change to that. I'd recommend you flip through the different themes and see which you prefer. You might also want to play with the scale. I generally start around 8m and then move to the smaller scales when I find the right area. Once you see the rough spot you want your zone in, you can right click on the map and choose "Center". Then you can change the scale to zoom in and get a better view. Here's mine after I've gotten the correct area in view...
The red dot is just where I clicked to center the map. We don't actually want our zone to start or end there, so click the Clear button to get rid of it. Now we want to draw a box around the Washington Monument by clicking at the four corners of our "zone"...
You'll notice that I created a fairly large zone around the Washington Monument. The white ring at the base is marble or granite stone (I forget which). The black larger ring is pavement. I created the zone larger than the pavement area. This should allow enough "wiggle room" for a player to get to the monument without having to worry about bad GPS reception or other weird issues. You've got to make sure your zones aren't too small... if someone is having poor reception, they could be a couple hundred feet off. A ten foot zone would be impossible for them to reach. Go ahead and click Ok to this and get back to the New Zone window. You'll be asked about replacing points again (this happens a lot, get used to it). Click Yes and you should see something like this now...
There are a few other things you can do while you're here. I'm not going to go into detail on them, but I'll give you a quick overview.
The View Shape button will show you the shape of your zone. You can also check the size of the zone there.
The Edit Online button will allow you to use Google Maps to modify the zone if you want. It's pretty neat and better than the regular map window, in my opinion, but it isn't available until you've created the zone using the regular map window first.
You can select the points in the table and edit them if you want to clean them up (in order to make a truly square box or something).
You can set the "Distance" and "Proximity" values. By themselves, they aren't real useful, so we're not going to deal with them. But, once you start using "events" and stuff, you can trigger events based on these. You might want to do something like pop up a message to a player to encourage them or something (like "I can sense you're getting closer!"). For right now, we're just going to leave them alone.
Click OK to close the New Zone dialog.
Create more zones
Since I just showed you how to create a zone, I'm not going to walk you step-by-step through creating others. But, a Wherigo cartridge with only one zone is pretty useless, so go ahead an make some more. For the rest of my examples, I'll be using two additional zones... The Lincoln Memorial and the Jefferson Memorial. You can create the same ones if you want to follow along. Just make them like we did the last one. Here's what they look like when I'm done...
If you care to look, I made the Jefferson zone 5 points instead of 4. The shape just works better for that monument. You don't have to make a zone a box every time... if it makes more sense to have a triangle or pentagon (or hexagon, or whatever), go nuts. Use as many points as you need to define an appropriate shape. Here are the coordinates for those two new zones if you want to set yours up the same way...
Jefferson:

Lincoln:

Ok... so we've now got three zones. That's good enough for us to have a basic working tour. But, we need to interact with the player a bit, otherwise it's going to be a really boring tour. One of the ways we can interact with the player is to give them something to do. Most of the time, this will be done using "tasks". So, let's create a series of simple tasks.
The easiest task is to simply tell the player to do something. We'll start with telling them to go to the Washington Monument.
Get back to the main builder screen with all the buttons on it. Click the Tasks button. Currently we have no tasks. Click on the Add button to make one. You'll get a blank Task window (which is much less complicated than the Zone dialog). Just read along for a minute and I'll show you my completed task window after I describe it all.
Give your task a name. I chose "Go To Washington Monument".
Give it a description. Mine is "Go to the Washington Monument."
Don't worry about the media and icon stuff yet. We're also going to leave the default settings in place for the other "bits" on this screen. The only two we really need to deal with right now are the "Active" and "Complete" checkboxes.
We want "Active" to be checked. This means that the player should do this task. You can create tasks that aren't active, but we don't want that for our demo. If you wanted to create a series of things you wanted the player to do, that's when you'd create inactive tasks. An example of this is if we wanted the player to start at the Washington Monument, then go to the Jefferson, then go the Lincoln. If that was our goal, we'd make the Washington Monument task active, but we'd also make tasks for Jefferson and Lincoln that were NOT active. What we'd then do is to have the player go to the Washington Monument. Once they get to the Washington zone, we can trigger an "event" that changes the Jefferson task to "Active". They'd then have to go to the Jefferson, where we'd trigger another event to make the Lincoln task active.
Since I want the player to be able to go to the monuments in any order they chose, I'm just going to make three active tasks right off the bat.
The other checkbox you need to know about right now is the "Complete" box. We're going to leave it unchecked, since the player hasn't done the task yet, but you need to know about this. When the player gets to the Washington Monument, we want them to know that they've successfully completed a task. We also need our cartridge to know if they've gone there. The "Complete" flag is how we do this. I'll show you how a little further on.
Here's my filled in Task dialog for the Washington Monument...

Go ahead an click "Ok" to create your task. That should take you back to the main builder screen and show you your task in the list. Go ahead and make two other tasks the same way, one for "Go To Jefferson Memorial" and one for "Go To Lincoln Memorial". Here's my completed task list...
By the way... now would be a good time to save your file again. Go ahead and do so by opening the File menu and clicking Save. Keep in mind that Builder is still very "beta"... it's possible it could crash at any time, so save often!
Time for a recap and we need to figure out what's next... We've created a new cartridge with three zones and three tasks. Pretty neat, but not real useful yet. Why? Because we haven't told Builder how to handle the tasks. What we need to do is to associate each task with a zone so builder knows what needs to happen in order for a task to be completed. We generally do that with Events.
Events
Ok, so far we've used the Zones and Tasks parts of the main Builder screen. Now we need to make some events to tie the zones and tasks together. But there's no "Events" button! We actually have to modify the zones to make an event. Click on the Zones button on the main screen and then double click the Washington Monument zone to open it again. Just as a reminder, here's what it should look like...
Notice that "Events" tab up on the left there? Click on that. That's where we manage the events for this zone and where we tell Builder what to do when things happen. Here's what it looks like before we start doing things to it...

I'm only showing you the top part, because the rest of the window hasn't changed any of the other zone information. You'll notice a bunch of "default" events already set up for you. We can use these to interact with the player or to change things within our cartridge. Here's a quick description of the ones I know...
| Event | Short name | Description |
| When the player is within distance to a zone | distance event | This event triggers (or executes) when a player is within the "Distance Range", which can be set in the Zone dialog |
| When the player is within proximity to a zone | proximity event | This event triggers when a player is within the "Proximity Range", which can be set in the Zone dialog |
| When the player enters a zone | enter event | This event triggers when a player has entered the actual zone shape |
| When the player exits a zone | exit event | This event triggers when a player has leaves the zone |
I really don't know what the "state change" event does yet. I'll update the table description when I figure it out.
Anyway... as you can see from the descriptions, we can "trigger" or run an event's actions whenever the player does something. The one you'll probably use most is the "enter event". When you want a player to complete a task by going somewhere, the enter event is what does that. We're going to add an enter event to our zone now. Click the enter event and click the "New" button. This tells builder we want to make a new script that does something when the player has successfully entered the zone.
Ack! What's this? You should get a "Group Name" dialog pop up in your face with a bunch of scary looking code-type stuff in the main window. It looks a lot like this...
For right now, just plug in a "group name". I used "EnterZone1". Click OK to the Name box and you should see your "script group" in the Event Viewer window.
Click that big "Add an Action" button so we can tell Builder what we want to do. You should get another scary looking dialog titled "Build an Action". Bear with me while I describe stuff, I'll show you the completed dialog in a second.
What we have is a list of actions we can do on the left and a list of "fields" on the right. Don't worry about the fields just yet, we need to work on actions first. The actions are what you want to get done when the event has triggered. Since our goal is to have the player complete the task of "Go To Washington Monument", we need to select "Set a task complete or incomplete". Go ahead and click on that and you'll see the fields on the right side change. The fields it gives you are generic fields. We need to change those to our fields instead. Click on the word "ztask" to bring up the "Select and Object" dialog. It looks like this...

Click the Go To Washington Monument task and click Ok to return to our Build an Action dialog. You should notice that the text has now changed to "Set ztaskGoToWashingtonMonu... Complete true, false". So we've told it what task we want to change, now we just need to tell it to mark it as complete. Click on true, false and you should see a little "Select an Option" window pop up, which looks like this...

Click on the down arrow and select "true" then click Ok. This tells Builder to mark the task as complete. Your completed Build an Action dialog should look like this now...
Click the "Ok (save my changes)" button to get back to our Event Viewer dialog. The text in the main window should look like this...

Click on the "Ok (save my changes)" button and that should take us back to the Zone dialog. The Event section now looks shows the enter event in bold with a (1) next to it...

This shows us that there is now one script tied to the enter event, which is exactly what we wanted. :)
Go ahead and click Ok to close the Zone window and get back to the main Builder screen. You should notice the event box here looks the same, with the enter event in bold with a (1) next to it. This is a quick way to tell what events you have without having to open each zone. Just click the zones in the list and you can quickly tell where you have events.
Now, we want to complete the basic tour by creating events for the other two zones. Just follow the steps we just went through to make events for the Jefferson and Lincoln zones. We'll want them to be pretty much the same, except that you're going to change the "task" for each zone so that they match each other. Here are the other two script sections of my events:


Now we can see that maybe I didn't make the wisest choices in some of my names. I probably should have named the Script Groups "EnterJeffersonZone", "EnterLincolnZone" and "EnterWashingtonZone". Oops. If this were a more complicated tour, I'd go back and rename them. But, since we're just doing a quick tutorial, I'm going to leave them. For anything more complex than this, you need to pay special attention to all of your names. Having a bunch of names all over the place like mine gets really confusing real quick. It's a bad idea. Learn from my mistakes and use good names. ;)
BTW... if you haven't been saving your cartridge as you go, I'd highly recommend that you do so now... That was a lot of stuff that I'd hate to lose if something blew up.
Another quick recap... We've created our cartridge, created three zones and three tasks and we've tied them all together using events. Assuming the player can successfully go to each zone, our tour is technically done. I'll probably add a bunch of other stuff later to flesh everything out and make it easier for the player, but for now let's just worry about making a working cartridge.
Unfortunately, we haven't told the player or Builder what actually has to be done in order to successfully "finish" our cartridge. We know what the requirements are (visit all three zones), but we still need to program it in. Ideally, this is something you would plan before actually starting to build your cartridge. But, because it was a lot easier to explain one individual step at a time, I chose to add it in after the basic framework was built. This means that we're going to have to edit a bunch of our code to add in the validations needed to determine if a player has been to all three places.
There are a lot of different ways to do this. I've chosen one method that's pretty simple to follow and is flexible enough to be adapted for just about any cartridge you'd want to build. We're going to make a variable and increment it every time a player goes to a zone. Once the variable reaches a certain count (3), we'll know that the player is done.
So, we'll start first by declaring our variable. Make sure your cartridge is loaded in builder and get to the main screen.
Click on the "Variables" button. This will take you to our empty variable list. Click on Add to open the Variable screen so we can make the new variable. Give it a name and a description and then set the Variable Type to "Number" and start it at zero. Here's what mine looks like...

Click OK to get back to the main builder screen, where you'll see your variable defined.

So we've got a variable built. Now we need to put in some code to change it and test it. The first question we need to address is "Where should I put the code?" There are probably many answers. There are lots of ways we can trigger events to check the variable and there are probably even more ways to update it. But, since the variable is a count of completed tasks, it makes sense to start looking at the tasks to see if there's a good way to update it from there.
Click on your Tasks button and you should see our three "Go To" tasks. Go ahead and click (once, not a double click) on the "Go To Jefferson Memorial" task. You should see the right hand side show three events... one for state, one for status and one for correct value. Since we set each zone to update the status of the task when it's entered, it's probably best for us to use the "When a task status changes" event for our variable increment and check. Go ahead and click on "When a task status changes" and click the New Script button. We get the usual "Name" request first. I used "TaskJeffStatus" for mine. Go ahead and name yours and click OK to get to the Event Viewer screen where we can start building our script.
Before we actually start building the script itself, we need to make sure we've thought out what we want to do. Basically, when a player enters a zone, we want to increment the variable by 1 first. The variable starts at zero and we have three zones, so when the variable is incremented three times, we should be done. So, after the variable is incremented, we need to check and see if it's equal to 3 or not. If it is equal to three (meaning all three zones have been visited), we should let the player know that they've successfully completed everything and we should tell Builder/Wherigo that the cartridge is done. If it's not equal to two, the player has more zones to visit and we should probably give them some kind of dialog letting them know that.
Here's how the logic works out when a task is completed...
Mapping out your logic like this makes it a lot easier to set up the script correctly. Let's go ahead and start that now.
You should be at the Event Viewer screen looking at the Toolbox and Script windows, with your Group name already showing, like this...
The first thing we need to do is increment the TaskCount variable. Click on "Add an Action" and then click the "Increment a variable by a value" action. In the action fields on the right, change "variable" to TaskCount and change the "value" to 1. It should look like this...

Click the "Ok (save my changes)" button to get back to the Event Viewer. That takes care of our first bit of logic. Now we need to check to see if the TaskCount variable is equal to 3 or not. Do this by clicking the "Add IF-THEN-ELSE" button. This pops up the "Build a Condition" window. I'll tell you what to put in there and I'll show you my completed one in a minute.
We want to check a variable, so select "Compare and Object Property or variable to an Object Property, value or variable" from the list of conditions (whew). Now we've got some condition fields on the right to take care of... select the "zobject.property, variable" field. You should see a new portion of the window show up called "Select and Object Property or Variable". Click the "Variable" radio button and then click the big "Get A Variable" button. Select the TaskCount variable and click OK to get back to the Build a Condition screen. Then click Ok again under the "Get A Variable" button to confirm that that is the variable we want. Your Condition Field window should now read something like "If TaskCount operand zobject.property, value, variable". Click on the "operand" field to set what kind of check we want to do. Select "Equal" and click Ok to confirm it. Now click that last "zobject.property, value, variable" field to set it. Click the "Value" radio button and change the value to 3. Then click the Ok button right below the value to confirm it.
I know that seems pretty complex when you read it, but it's pretty straightforward if you just follow it through. Here's what you should end up with...

Basically, it's a convoluted way to do something that ends up being relatively simple. It is what it is and that's what we get. ;) If your condition field looks okay, go ahead and click the "Ok (save my changes)" button to get back to the Event Viewer screen.
So we've told Builder that we want to see if TaskCount equals 3. But if you look at your script and it's anything like mine, you might find that it's checking the TaskCount before it increments it and it's not really doing anything else yet. This isn't what we want, but don't worry about it right now. We'll deal with that when we finish our "if-then-else" section. We've checked our variable, now we need to specify what to do if the variable is what we want it to be.
To make sure stuff gets done in the correct order, click (single click) on the "If TaskCount Equal 3" line to highlight it. This makes sure that our action goes right below the If command. Now click on the "Add an Action" button to create the new action.
We're entering the actions for what to do if the TaskCount is 3, which means the player is done and we want to show them a congratulatory message or something. There are a few different ways to present messages to the player, so I'm going to use one type here and we'll use a different somewhere else in a minute. Let's go ahead and select the last item in the List of Actions, which should be "Show a series of Dialog messages to the player". Your field list on the right should read "Show a series of (Dialog) dialog messages to the Player". I'm going to go ahead and walk you through this, because it's pretty ugly, IMO. Let's start by clicking on the dialog field so we can define our messages. You should see this...

Click the "Add Dialog" button to create a new message. You'll get a MessageBox Builder screen when you do that. Type a message that you want to give to the player. I entered "You've completed all your tasks by visiting all three monuments..." Here's what mine looks like...

Leave the Media section alone, we'll deal with media much later. Go ahead and click Ok to get back to the Dialog Messages window. Click "Add Dialog" again to add another message. Enter "Congratulations and thanks for taking my tour!" in the text box and click Ok to get back to the Dialog Messages. It should look like this...

If the messages aren't in the right order, select one of them and use the arrows to rearrange them. Go ahead and click the "Done (Save My Dialogs)" button to get back to the Build an Action screen. The field section should look like this...

Don't worry that you can't see your other message, it's in there. Go ahead and click "Ok (save my changes)" to get us back to the Event Viewer screen.
We've told the player that they've completed our tour, but we also need to tell Builder/Wherigo that we've completed the cartridge. Highlight the line that we just made ("Show a series of Dialog messages to the player") to make sure the next action goes under this one, then click the "Add an Action" button.
Select the "Set the status of a cartridge to complete or incomplete" action. Your fields should read as "Set zcartridge complete true, false". Click on the zcartridge field to set it to our cartridge (seems a bit redundant to me) and then change the true, false to "true". That's how you mark a cart as done! Go ahead and use the "Ok (save my changes)" to get back to the Event Viewer again.
We've taken care of what to do when the player finishes all three zones, but now we need to deal with the stuff we need if they haven't finished. Click on the "else" line to make sure our next action goes under it, then click the "Add an Action" button so we can tell the player to keep going. From the List of Actions, select the ""Show a message to the player" action. Then, in the field list, click the "messagebox" field. A new "Build a MessageBox" window will appear. In the text entry box put in something like "Welcome to the Jefferson Memorial!" Leave everything else the way it is so that the player just gets an "Ok" button to continue. Click the OK button to get back to the Build an Action window. Then click the "Ok (save my changes)" to get back to the Event Viewer. Here's mine...
Notice that my "Increment TaskCount by 1" line is at the bottom? That's not good. We want the count to be incremented before we start checking the variable. So, if yours did the same thing, select the line that's in the wrong place, then click the "Move a Line Up" button until it's in the right place (directly above the "if" line). Here's what the script should look like when all is done...

You can use the arrow buttons to move any lines up or down that you need to in order to get it in the right order. Once yours looks right, go ahead and click the "Ok (save my changes)" button to get back to the main Task list. You should now see that the Event is bold like this...

Unfortunately, we only completed the script for ONE task.. we need to do the other two. Follow the same procedures as we did above to do those two. It's a hassle, but that's the way it is for now. I'm guessing you could actually edit the cartridge file directly with notepad or something for stuff like this, but it's a lot safer to stay in the builder and just keep plugging away at it. Go ahead and finish those other two task scripts off.
Wow! If you made it through all that, you're technically done and you should have a working cartridge. It may not be pretty, but it'll get the job done. But, we need to make sure it does what we think it does. We do that by testing it. Make sure you've saved your cartridge before we get going.
In order to test the cartridge, we need to first compile or publish it. Let me explain a bit about what that is before we go through the process.
What we've been doing so far is using a graphical tool (Builder) to create "code" that defines how our cartridge behaves and what it does. There are things other than code that can be part of a cartridge. We can add pictures and a few other things as well ("media"). All of this stuff (including the code) needs to be packaged up into one big file that the Wherigo player application can understand. The process of doing this is sometimes called "compiling", but in Builder, they call it "Publishing". Even if you don't have extra media files, we've still got to get the code packaged up into an actual cartridge by publishing it. Until we do that, it's actually just plain old text and it isn't real useful. So, let's publish and test our file.
You did save your file, right? If not, do so now.
First, we want to make sure the cartridge will work correctly before we give it to anyone. So, we want to publish it locally to our own machine. We can do this by going to the Tools menu and selecting "Publish to My Machine".

This will pop up a "Create a Playable Cartridge" window and it will ask you for a device type. Personally, I have a Garmin Colorado, but I plan on making cartridges that are also playable by Pocket PC devices. It's a good idea to select "Any Device". This will make sure all your media files are included, regardless of what type of device the player wants to use (we'll talk about media some other time). Go ahead and choose "Any Device" and then click the "Create Playable Cartridge" button. It will pop-up a save window for you. Save the cartridge somewhere you can find it (I generally put it with my Builder file that I've been working on) and make sure it has a name that makes sense. When it's done saving, you should see something like the following:

If you see any errors, something got messed up. Troubleshooting compile errors is WAY beyond the scope of this document. If you need help with that, check out the Wherigo forums and post up a request in the Builder section. Someone will probably be happy to help you out.
Assuming you didn't get any errors, you should now have a working playable cartridge. You could copy it to a Colorado or PPC, but it's much easier to just test it on our computer. Go ahead and close the "create a playable cartridge" dialog, go back up the Tools menu and select "Emulator". This should open a Wherigo player for your computer that will let you test out your cartridge.
Here's what it looks like on mine right now...
Don't worry if it shows a map on the other side of the world... we don't really care about that yet. The important part right now is that your tour that you just made should show up in the PPC device on the right. If it doesn't, go to the "Menu" menu and set your cartridge location to where you saved the published cartridge. You may also have to use the "Menu" menu to "reload cartridge list" when you're done. It should be showing up now. When it does, just click on it. It should show you the description, rough location and a big ole "Play" button...

Click the "Play" button to get started. If you get a warning that says the cartridge was designed for a device other than a PPC, just click ok.
If all goes well, we are now playing our cartridge!
The little guy in the center of the map is the player. You can drag him around the map to simulate a player walking around with a Wherigo player. You should notice that the PPC player to the right has three locations and three tasks showing. You can click on the Locations to see the approximate distance and direction or you can click on the tasks to see what we need to do.
If I click on my locations, I can see that I have to go 1.2 miles South to get to a location. I guess the coordinates for our starting position was a little off. We need to jot that down as something to fix.

Before we go to the monuments, take a look at the descriptions. Hrm... they're not very good. We probably shouldn't have said "A zone for...". That's probably something else we need to jot down to fix.
Ok, let move our little guy south and see what happens. Just drag him down to the bottom of the screen. You should see that the distances and directions for the locations change.

Cool. We're getting closer. Go ahead and scroll the map around and move your player down to Constitution Avenue somewhere. That's the big East-West road just North of the National Mall (which looks like a park on the map). My player is at the intersection of 19th St NW and Constitution Ave NW. That puts him 0.4 miles from the Lincoln Memorial. Before you go dragging your player to the memorial, take a look at the Lincoln Memorial on the map. Notice a big purple box over it? That's our zone.

What we want to do first is move near the zone without entering it. So, drag your player somewhere over by the Vietnam Veterans Memorial and let go of him. Nothing should happen other than the distance and arrow may change on your Locations. That's good, because we didn't write any scripts for being near a zone, we only made scripts for being IN a zone. So, now lets drag our player into the Lincoln Memorial zone and see what happens.
If your cartridge is like mine, I didn't get my message that I was supposed to. But, I can go back to the tasks and see that one of the tasks in now gone, so it's complete. We're gonna have to write that down so we can fix it. Let's go ahead and drag our player out to the Reflecting Pool to see what happens when we leave the zone.
Mine didn't do anything, which is what we wanted, since we didn't script anything for leaving the zone. So, let's go see what our other zones do. Drag your player near the Washington Monument zone, but not into it yet (it's to the East about half a mile). If nothing happens, we're good, so lets drag him into the zone.

Again, I didn't get my message, but I do see that my task count has reduced and I only have to go to the Jefferson now. Lets go ahead and move near the Jefferson and so we can see what happens (about half a mile to the South). You should get no changes or messages, other than the distance and arrow pointers if you're looking at the Locations screen. Go ahead and drag the player into the Jefferson zone to see if it completes the cartridge.

Yet again, I didn't get a message. I also didn't get a cartridge complete notification. This tells me that the task status script may not be triggering at all. Lets see if we can get a bit more insight about what's happening. In your emulator, click the "Message Log" tab in the upper right above the PPC. There's a bunch of text, but it's hard to read. Click on the "View Messages" button to see it all. It should be something like this:
Fri Feb 15 11:29:10 2008 CARTRIDGE [Lua]: 38.88160|-77.03624|0.000|1.000|AttributeChanged - Go To Jefferson Memorial, Complete Fri Feb 15 11:29:10 2008 CARTRIDGE [Lua]: 38.88160|-77.03624|0.000|1.000|Zone:Enter - Jefferson Memorial Fri Feb 15 11:28:09 2008 CARTRIDGE [Lua]: 38.88135|-77.03517|0.000|1.000|Zone:Proximity - Jefferson Memorial Fri Feb 15 11:28:02 2008 CARTRIDGE [Lua]: 38.88287|-77.03545|0.000|1.000|Zone:Distant - Jefferson Memorial Fri Feb 15 11:28:02 2008 CARTRIDGE [Lua]: 38.88287|-77.03545|0.000|1.000|Zone:NotInRange - Washington Monument Fri Feb 15 11:28:02 2008 CARTRIDGE [Lua]: 38.88287|-77.03545|0.000|1.000|Zone:Exit - Washington Monument Fri Feb 15 11:26:18 2008 CARTRIDGE [Lua]: 38.88951|-77.03551|0.000|1.000|AttributeChanged - Go To Washington Monument, Complete Fri Feb 15 11:26:18 2008 CARTRIDGE [Lua]: 38.88951|-77.03551|0.000|1.000|Zone:Enter - Washington Monument Fri Feb 15 11:25:51 2008 CARTRIDGE [Lua]: 38.88953|-77.03630|0.000|1.000|Zone:Proximity - Washington Monument Fri Feb 15 11:25:50 2008 CARTRIDGE [Lua]: 38.88933|-77.03783|0.000|1.000|Zone:NotInRange - Lincoln Memorial Fri Feb 15 11:25:50 2008 CARTRIDGE [Lua]: 38.88933|-77.03783|0.000|1.000|Zone:Distant - Washington Monument Fri Feb 15 11:23:40 2008 CARTRIDGE [Lua]: 38.88935|-77.04768|0.000|1.000|Zone:Distant - Lincoln Memorial Fri Feb 15 11:23:40 2008 CARTRIDGE [Lua]: 38.88935|-77.04768|0.000|1.000|Zone:Exit - Lincoln Memorial Fri Feb 15 11:03:33 2008 CARTRIDGE [Lua]: 38.88948|-77.04950|0.000|1.000|AttributeChanged - Go To Lincoln Memorial, Complete Fri Feb 15 11:03:33 2008 CARTRIDGE [Lua]: 38.88948|-77.04950|0.000|1.000|Zone:Enter - Lincoln Memorial Fri Feb 15 11:03:32 2008 CARTRIDGE [Lua]: 38.89013|-77.04918|0.000|1.000|Zone:Proximity - Lincoln Memorial Fri Feb 15 11:01:50 2008 CARTRIDGE [Lua]: 38.89093|-77.04806|0.000|1.000|Zone:Distant - Lincoln Memorial Fri Feb 15 10:49:01 2008 CARTRIDGE [Lua]: 0.00000|0.00000|0.000|0.000|ZCartridge:Start - Downloaded Fri Feb 15 10:39:36 2008 Fri Feb 15 10:49:01 2008 CARTRIDGE [Lua]: 0.00000|0.00000|0.000|0.000|Engine Version 2.11, Player Name: Builder, Device ID: Desktop
It should be pretty obvious that the messages are in reverse order (look at the times). So, that means we started at 10:49 and I finished at 11:29. The items we're particularly interested in are the "AttributeChanged" ones. Each of those shows that the tasks were marked as "Complete" which is why they disappeared from the task list. But, we don't know why they didn't fire the scripts. Unfortunately, I don't know why at this time. I'll post up on the forums and see what I get and will update this when I get a response.
-----Temporary note: It has been confirmed on the Wherigo forums that task events are bugged and not firing. It will supposedly be fixed purt-darned quick-------
----To Be Continued----