Rylec's Harvestable Guide
Posted: Sun Oct 25, 2020 12:20 am
This is a guide to help budding and new Content Developers get started with Harvestables. The Wiki has a very good guide for setting up groundspawns in general. This post can be seen as a companion to that article with a few additions of my own (mostly concerning how I handle location variation). Disclaimer: Some of the views found in this post are my own and may potentially not reflect the opinion of the EMU Team as such (especially my view on location variation).
While this guide may seem extensive and therefore quite daunting the truth is that setting up harvestables is actually quite easy and can be done by anyone with a bit of time on their hands. It can be a bit tedious, but since most MMO players should be used to grinding you should be well accustomed to repetative tasks by now

First of all you need to contact @Cynnar, @Jabantiz or @neatz09 and let them know that you want to help. They will be able to set you up with access to the editors that are used to changes to the game database (in other words how we make changes to things in the actual game). They will also give your EQ2 EMU account GM powers so you have access to GM commands on the EMU server.

The Milestone post details what the current content focus is. With that focus in mind, check out the parent forum to the List and see if there is a thread for the zones in the current milestone focus area. These threads will tell you the progress made to these zones - hopefully also regarding harvestables found within these zones.
Pick a zone that needs more work. Please keep the zone thread up to date on your progress so everyone can see what has been done and what is still missing if you stop working on the zone at any point for any reason. If a thread exist for the zone just use that one, if not then make a new one - the easiest way to do this is to use 'edit' for the top post of one of the other threads and copy the post code to your new topic and edit it so it fits the new zone.
If you wish to use Progress Maps and some of the other 'fancy' banners but lack the photoshop capabilites to create them just let @Rylec know and he will teach you how to make one or make them for you.

As with any areas of developing an emulation of something original (espcially if the original has gone through different phases), some things can be very subjective. The main goal of the official EQ2 Emulator is to replicate Live (as part of a much wider goal that should allow for all types of servers), but this can be done in different ways. The main school of thoughts when it come to harvestables are (and may be a mix of more of these) and they all have merit:
Log in to a server on Live and find the area you wish to add harvest nodes to on the Emulator server. Take some time to examine how the nodes in the area are set up. Count how many are up at any given time. Harvest nodes and track how long time it takes for the nodes to respawn. When you feel you have all the information you need, then you are ready to start work on the Emulator.
The easiest way to quickly populate the zone on the Emulator with nodes is to simply use to Migrate Zone page in Database Editor 1.5. Select the Admin tab and Migrate Zone.

Figure 1 | Migrate Zone
By using the drop down lists select the zone you are working on, the spawn type 'Ground' and harvest node type (here Velvety Roots from Enchanted Lands are used as an example).

Figure 2 | List of Velvety Roots locations
IMPORTANT NOTE: Migrate Zone is a powerful tool and it has the means to add 1000s of spawns to the World with a single click, so use the information in this section carefully and if in doubt ASK FIRST...
Migrate Zone stores information about a lot of spawns that were automatically collected from a Live server by people earlier in the development of the Emulator but for various reasons they are not in the actual server database - mainly because you normally don't want 100s of the same spawn in a very small area.
However, this time you actually want to add a lot of harvest nodes to the World, you just need to click the right button. Find 'Spawn These' to the very right and above all the listed nodes locations.

Figure 3 | The 'Spawn These' button
When you have double checked and you are absolutely certain that you have found the right button... click it... and on the EMU server use the command '/reload spawns' and hold your breath... If you have done everything correctly you will find a result similar to this:

Figure 4 | Migrate Zone spawned School of Fish nodes in Queen's Colony
Why do we need all these spawns you may ask? We do this to add spawn location variation. All these harvest nodes in the sea will soon be 'associated' (grouped), and when this is done only the a few of them will be up at any given time (matching Live), and since we have so many different locations now then we will be able to create a situation where the spawns will seem to respawn all over the area (of course this is an illusion since even though we have a lot of locations we have by no means covered the entire area - the player just doesn't know this).
So when is the number of harvest nodes in a given area 'enough'? Well, as mentioned above this is one of the subjective parts and its ultimatively your call. Some may think that a few locations is more than enough and others may think that an area needs at least 20, 50 or maybe even 100s of locations. You may want to see how many nodes that were spawned using Migrate Zone in a particular area and then ask: are the nodes destributed equally throughout the area? (e.g. if you have 50 locations in one side of the area and just 5 in the other side then respawn will almost always happen in the first side - which is fine if this is how Live works, but might not always be like that), are you satisfied with the number of spawn locations? Etc...
You may want to remove some of the harvest nodes produced by Migrate Zone. If any nodes are on top of objects or in inaccessible locations its best to remove them. You may also want to remove nodes if more than one node type is in the same location (also called stacking, e.g. if you have a root and an ore on top of each other). Target the nodes you want to remove and use: '/spawn remove', or better yet go to the Location tab of the harvest node type and scroll down to the spawn_location_entry table and change the spawn percentage of the node to 0, that way no information is lost, and the node will simply never load.

Figure 5 | Spawn_location_entry table
To find the harvest node you are working on you need it's spawn_location_id. The simplest way to find this is to target the node in game on the emulator server and use the command: '/spawn details'.
If Migrate Zone did not provide enough harvest nodes to satisfy you (or if none existed), then you have to add them manually. Head back to Live and stand on top of a node and use /log (to get the location of the node). Then go back to the Emulator and use the following command to spawn a new node (in this example the Spawn ID of the harvestable type is '123456'):
Then target the new node and use this code to save the node to the database (replacing EnchantedLands with the name of the zone you are in):
Now we just need to move it to the same location you just found on Live. This is done in Database Editor 1.5 by going to the Location tab for the harvestable type and scoll down to the last table:

Figure 6 | Spawn_location_placement table
Find the correct node in the table and plot in the x, y and z coordinates from the node on Live and click 'Update' (you may also want to plot in the respawn time in seconds - you can get this by timing the respawn time on Live).
On the emulator server use: '/reload spawns' and the spawn will now have moved to the new coordinates.
Simply repeat this process until you have enough nodes.

To 'associate' or group the harvest nodes you have to make each of the nodes into 'solo groups' containing just one node each. This may sound like nonsense, but this is how the association command is set up, it can only associate 'groups'. Disclaimer: in the following section I will use the terms 'solo groups' and 'associated groups', where a 'solo group' is a group containing only that one node, while an 'associated group is several 'solo groups' that have been linked and only one of them will ever be up at any given time.
On the emulator server target one of the nodes, use '/spawn details' (better macro it - you will be using it a lot) to get the spawn_location_id and type the following command:
I use the following naming convention for spawn groups: <Zone name><Spawn area number according to my own zone progression map>_<Group number>_<Spawn name><Spawn_location_id> so for a budding natural garden in Queen's Colony with spawn_location_id '123456' in area 001 on my personal map I would use the following command: '/spawn group create QC001_01_buddingnaturalgarden123456'.
Now this harvest node is assigned to a group containing just that one node with the name you just gave it.
Target the next node, use '/spawn details' and hit <enter> followed by <arrow up> to get the command you just used back in chat, update the spawn_location_id (and group name if relevant) and hit enter. You just created the next solo group.
When all groups have been created its time to associate them. Use '/spawn details' on one of the nodes and note down the Spawn group ID. Then in turn target each of the other nodes that you wish to associate with the initial node and use the following command on each (use the <enter><arrow up> trick in chat for a very smooth process), replacing <Spawn group ID> with the Spawn group ID of the initial node:
After this is done simply '/reload spawns' and be amazed at result of all your hard work when all your many nodes disappear and only one node respawns! This part never gets old... Use '/reload spawns' a few times to see if nodes respawn in different parts of the area and everything seems ok.
This is how you would do it if you only had one harvest node type in an area and always just had one of them up. Since areas with harvestables on Live always have multiple nodes up at any given time in different combinations we have to look at how to handle multiple association groups.
As a thumb rule, you need to have one associated group for each harvest node that is spawned in an area on Live at any given time. E.g. if you have an area with 2 budding gardens and 3 roots, you have to set up 2 associated budding gardens groups and 3 associated roots groups.
The way I do it is that I will start in a corner of the area and see how the nodes are clustered within the area. Then I will pick one cluster of e.g. cluster of three roots located close together and make a similar circle on my paper (indicating this cluster of roots) with the number I plan to call the associated groups. I will make solo groups of each of these roots in the circle and associate them, followed by a '/reload spawns'. That way they disappear (only one spawn of each group will ever be up, the rest will not be loaded) so it its easy to see how far you got.

Figure 7 | Sketch for multiple shiny planning. One number in a circle indicates the associated group number and the underlined number is the number of nodes in the cluster
Special cases
1. The number of spawns in the area may vary from time to time
An example of this is the schools of fish in Queen's Colony. The number of nodes in all areas will vary from time to time. To tackle this I would associate some of the nodes in one area with nodes in another area, creating a scenario that matches the one you will see on Live.
2. The cherry picking issue
If you did a lot of harvesting on Live you will have areas (especially in old zones) where you would find a lot of gardens and hardly any ores or stones. The reason for this is that someone went through the area before you and only harvested the types of nodes that usually gave a chance of getting a valuable rare. This is called cherry picking nodes.
To achieve this set up on the EMU you will have to create associated groups that contains all the different types of harvest nodes (and not just e.g. roots as in the example above).

When using Migrate Zone to add harvest nodes to the Emu server you may notice that a lot of the nodes will share a common x or z coordinate. It would seem that SoE/DBG/DPG have used a grid system to setup nodes in an area. You may notice this in the next figure where school of fish is lined up in two straight lines.

Figure 8 | School of fish on a line
The ultimate way to set up nodes in an area seems to be to create nodes that matches this grid. It could relatively easily be done by plotting in x and z coordinates in a spread sheet and then calculate the missing node locations, and add them to the Emu server.
This is a rather great undertaking though, and might not be something worthwhile at this stage where we are trying to get zones up, so its mentioned here more as an information of how things are done on Live rather than an instruction on how we necessarily want the Emu to be set up.
If you are really bored and have a LOT of time on your hands - or have a favourite zone that just needs to be perfect, by all means have a go at it, but as I said your efforts may be better spent in other ways at this point.
While this guide may seem extensive and therefore quite daunting the truth is that setting up harvestables is actually quite easy and can be done by anyone with a bit of time on their hands. It can be a bit tedious, but since most MMO players should be used to grinding you should be well accustomed to repetative tasks by now

First of all you need to contact @Cynnar, @Jabantiz or @neatz09 and let them know that you want to help. They will be able to set you up with access to the editors that are used to changes to the game database (in other words how we make changes to things in the actual game). They will also give your EQ2 EMU account GM powers so you have access to GM commands on the EMU server.

The Milestone post details what the current content focus is. With that focus in mind, check out the parent forum to the List and see if there is a thread for the zones in the current milestone focus area. These threads will tell you the progress made to these zones - hopefully also regarding harvestables found within these zones.
Pick a zone that needs more work. Please keep the zone thread up to date on your progress so everyone can see what has been done and what is still missing if you stop working on the zone at any point for any reason. If a thread exist for the zone just use that one, if not then make a new one - the easiest way to do this is to use 'edit' for the top post of one of the other threads and copy the post code to your new topic and edit it so it fits the new zone.
If you wish to use Progress Maps and some of the other 'fancy' banners but lack the photoshop capabilites to create them just let @Rylec know and he will teach you how to make one or make them for you.

As with any areas of developing an emulation of something original (espcially if the original has gone through different phases), some things can be very subjective. The main goal of the official EQ2 Emulator is to replicate Live (as part of a much wider goal that should allow for all types of servers), but this can be done in different ways. The main school of thoughts when it come to harvestables are (and may be a mix of more of these) and they all have merit:
- Harvestables exist in the zone.
- Like 1) but now the harvestables can only be found in the areas that also have the same types of harvestables on Live. Number of harvestables in an area will not always match Live and there is no or little variation in spawn locations, meaning the harvestables will most likely respawn in the exact same locations.
- Like 2) but the number of harvestables of a specific type now match Live.
- Like 3) but harvestables can respawn in a LOT of different locations within a certain area
- Harvestables can respawn using the 'grid' system described below (this has not been used on the emulator yet to my knowledge).
Log in to a server on Live and find the area you wish to add harvest nodes to on the Emulator server. Take some time to examine how the nodes in the area are set up. Count how many are up at any given time. Harvest nodes and track how long time it takes for the nodes to respawn. When you feel you have all the information you need, then you are ready to start work on the Emulator.
The easiest way to quickly populate the zone on the Emulator with nodes is to simply use to Migrate Zone page in Database Editor 1.5. Select the Admin tab and Migrate Zone.

Figure 1 | Migrate Zone
By using the drop down lists select the zone you are working on, the spawn type 'Ground' and harvest node type (here Velvety Roots from Enchanted Lands are used as an example).

Figure 2 | List of Velvety Roots locations
IMPORTANT NOTE: Migrate Zone is a powerful tool and it has the means to add 1000s of spawns to the World with a single click, so use the information in this section carefully and if in doubt ASK FIRST...
Migrate Zone stores information about a lot of spawns that were automatically collected from a Live server by people earlier in the development of the Emulator but for various reasons they are not in the actual server database - mainly because you normally don't want 100s of the same spawn in a very small area.
However, this time you actually want to add a lot of harvest nodes to the World, you just need to click the right button. Find 'Spawn These' to the very right and above all the listed nodes locations.

Figure 3 | The 'Spawn These' button
When you have double checked and you are absolutely certain that you have found the right button... click it... and on the EMU server use the command '/reload spawns' and hold your breath... If you have done everything correctly you will find a result similar to this:

Figure 4 | Migrate Zone spawned School of Fish nodes in Queen's Colony
Why do we need all these spawns you may ask? We do this to add spawn location variation. All these harvest nodes in the sea will soon be 'associated' (grouped), and when this is done only the a few of them will be up at any given time (matching Live), and since we have so many different locations now then we will be able to create a situation where the spawns will seem to respawn all over the area (of course this is an illusion since even though we have a lot of locations we have by no means covered the entire area - the player just doesn't know this).
So when is the number of harvest nodes in a given area 'enough'? Well, as mentioned above this is one of the subjective parts and its ultimatively your call. Some may think that a few locations is more than enough and others may think that an area needs at least 20, 50 or maybe even 100s of locations. You may want to see how many nodes that were spawned using Migrate Zone in a particular area and then ask: are the nodes destributed equally throughout the area? (e.g. if you have 50 locations in one side of the area and just 5 in the other side then respawn will almost always happen in the first side - which is fine if this is how Live works, but might not always be like that), are you satisfied with the number of spawn locations? Etc...
You may want to remove some of the harvest nodes produced by Migrate Zone. If any nodes are on top of objects or in inaccessible locations its best to remove them. You may also want to remove nodes if more than one node type is in the same location (also called stacking, e.g. if you have a root and an ore on top of each other). Target the nodes you want to remove and use: '/spawn remove', or better yet go to the Location tab of the harvest node type and scroll down to the spawn_location_entry table and change the spawn percentage of the node to 0, that way no information is lost, and the node will simply never load.

Figure 5 | Spawn_location_entry table
To find the harvest node you are working on you need it's spawn_location_id. The simplest way to find this is to target the node in game on the emulator server and use the command: '/spawn details'.
If Migrate Zone did not provide enough harvest nodes to satisfy you (or if none existed), then you have to add them manually. Head back to Live and stand on top of a node and use /log (to get the location of the node). Then go back to the Emulator and use the following command to spawn a new node (in this example the Spawn ID of the harvestable type is '123456'):
Code: Select all
/spawn 123456Then target the new node and use this code to save the node to the database (replacing EnchantedLands with the name of the zone you are in):
Code: Select all
/spawn add new "EnchantedLands_VelvetyRoots"Now we just need to move it to the same location you just found on Live. This is done in Database Editor 1.5 by going to the Location tab for the harvestable type and scoll down to the last table:

Figure 6 | Spawn_location_placement table
Find the correct node in the table and plot in the x, y and z coordinates from the node on Live and click 'Update' (you may also want to plot in the respawn time in seconds - you can get this by timing the respawn time on Live).
On the emulator server use: '/reload spawns' and the spawn will now have moved to the new coordinates.
Simply repeat this process until you have enough nodes.

To 'associate' or group the harvest nodes you have to make each of the nodes into 'solo groups' containing just one node each. This may sound like nonsense, but this is how the association command is set up, it can only associate 'groups'. Disclaimer: in the following section I will use the terms 'solo groups' and 'associated groups', where a 'solo group' is a group containing only that one node, while an 'associated group is several 'solo groups' that have been linked and only one of them will ever be up at any given time.
On the emulator server target one of the nodes, use '/spawn details' (better macro it - you will be using it a lot) to get the spawn_location_id and type the following command:
Code: Select all
/spawn group create <Spawn group name>I use the following naming convention for spawn groups: <Zone name><Spawn area number according to my own zone progression map>_<Group number>_<Spawn name><Spawn_location_id> so for a budding natural garden in Queen's Colony with spawn_location_id '123456' in area 001 on my personal map I would use the following command: '/spawn group create QC001_01_buddingnaturalgarden123456'.
Now this harvest node is assigned to a group containing just that one node with the name you just gave it.
Target the next node, use '/spawn details' and hit <enter> followed by <arrow up> to get the command you just used back in chat, update the spawn_location_id (and group name if relevant) and hit enter. You just created the next solo group.
When all groups have been created its time to associate them. Use '/spawn details' on one of the nodes and note down the Spawn group ID. Then in turn target each of the other nodes that you wish to associate with the initial node and use the following command on each (use the <enter><arrow up> trick in chat for a very smooth process), replacing <Spawn group ID> with the Spawn group ID of the initial node:
Code: Select all
/spawn group associate <Spawn group ID> After this is done simply '/reload spawns' and be amazed at result of all your hard work when all your many nodes disappear and only one node respawns! This part never gets old... Use '/reload spawns' a few times to see if nodes respawn in different parts of the area and everything seems ok.
This is how you would do it if you only had one harvest node type in an area and always just had one of them up. Since areas with harvestables on Live always have multiple nodes up at any given time in different combinations we have to look at how to handle multiple association groups.
As a thumb rule, you need to have one associated group for each harvest node that is spawned in an area on Live at any given time. E.g. if you have an area with 2 budding gardens and 3 roots, you have to set up 2 associated budding gardens groups and 3 associated roots groups.
The way I do it is that I will start in a corner of the area and see how the nodes are clustered within the area. Then I will pick one cluster of e.g. cluster of three roots located close together and make a similar circle on my paper (indicating this cluster of roots) with the number I plan to call the associated groups. I will make solo groups of each of these roots in the circle and associate them, followed by a '/reload spawns'. That way they disappear (only one spawn of each group will ever be up, the rest will not be loaded) so it its easy to see how far you got.

Figure 7 | Sketch for multiple shiny planning. One number in a circle indicates the associated group number and the underlined number is the number of nodes in the cluster
Special cases
1. The number of spawns in the area may vary from time to time
An example of this is the schools of fish in Queen's Colony. The number of nodes in all areas will vary from time to time. To tackle this I would associate some of the nodes in one area with nodes in another area, creating a scenario that matches the one you will see on Live.
2. The cherry picking issue
If you did a lot of harvesting on Live you will have areas (especially in old zones) where you would find a lot of gardens and hardly any ores or stones. The reason for this is that someone went through the area before you and only harvested the types of nodes that usually gave a chance of getting a valuable rare. This is called cherry picking nodes.
To achieve this set up on the EMU you will have to create associated groups that contains all the different types of harvest nodes (and not just e.g. roots as in the example above).

When using Migrate Zone to add harvest nodes to the Emu server you may notice that a lot of the nodes will share a common x or z coordinate. It would seem that SoE/DBG/DPG have used a grid system to setup nodes in an area. You may notice this in the next figure where school of fish is lined up in two straight lines.

Figure 8 | School of fish on a line
The ultimate way to set up nodes in an area seems to be to create nodes that matches this grid. It could relatively easily be done by plotting in x and z coordinates in a spread sheet and then calculate the missing node locations, and add them to the Emu server.
This is a rather great undertaking though, and might not be something worthwhile at this stage where we are trying to get zones up, so its mentioned here more as an information of how things are done on Live rather than an instruction on how we necessarily want the Emu to be set up.
If you are really bored and have a LOT of time on your hands - or have a favourite zone that just needs to be perfect, by all means have a go at it, but as I said your efforts may be better spent in other ways at this point.