This is going to be a new lumber harvesting system for shards that builds on UltimaLive. Please add your ideas and feedback.

The idea is simple. I would like a system where players actually chop down the trees and they disappear. A map has countless trees in it. To add them all as dynamic items or as dynamic statics would waste a lot of memory considering RunUO/Serv UO already stores that information in the statics file. So to avoid tracking millions of tree objects, I am thinking that the system would just use information stored in the statics files and use UltimaLive to update it.

A sequence could go something like this:
ai22.photobucket.com_albums_b347_Praxiiz_lumberjack_system.png

A tree progresses from stage 1 to stage 3 exactly as shown. Stages 4 to 6 can be done in any order, and results in a bundle of logs on the ground, which is a dynamic item that can be picked up.
Once a tree reaches stage 6, it is gone permanently.

That's the basic idea, now the next part is where things get a bit interesting. Once the tree is gone, how do new trees get introduced into the world? The server could keep a simple count of destroyed trees and replenish them every day or every world save. That would ensure there is always a good amount of trees in the world.

Another idea is to have players plant trees, or have some kind of other event that introduces new saplings into the world. I think it's important to avoid tracking tons of tree states or iterating over the entire map file to update the trees as they grow.
 
Last edited:
Potentially the wood types could be stored in the form of hues, but it would have to be done tastefully or a shard could end up looking like a rainbow. Also the areas that are chopable could be controlled by region or even by map ID.

The tree progression would basically start with a sapling and mature to a full tree, although there aren't many stages of trees that can be leveraged with existing graphics.

ai22.photobucket.com_albums_b347_Praxiiz_lumberjack_tree_growth.png

Serv UO could iterate over all the maps once per day, adding growth and new saplings. If it knew about temperature and moisture, it could grow appropriate trees for a given area at different rates.
 
Last edited:
players actually chop down the trees and they disappear.
This has been an idea floating around the community for YEARS.
The closest I've seen is people using "phasing"

To add them all as dynamic or as dynamic statics would waste a lot of memory
This is part of why it has not yet been done on a large scale.

I really, really like the these ideas, if UltimaLive can pull this off you would have my awe and praise.
I currently have a small foresting system for players who want to grow tree's around their homes similar to growing flowers. I Wish it was as large scale as this idea.
There is a lot of neat stuff that could be achieved after the initial hurdle such as adding leaves or flowers.
I would be on board for creating more graphics for both growing stages and chopped down trees.
 
Here's a first cut at what the hues could look like:
ai22.photobucket.com_albums_b347_Praxiiz_tree_hues_first_cut_1.png

Keep in mind that I am a big fan of Daat99's OWLTR system. Out of pure laziness, I have used the same tree graphic for all the hues. In the actual implementation, the wood types would be limited to particular graphics. For example, bamboo wouldn't use that graphic.

If a shard wants to hide the type of tree so that players can't run around just grabbing the rare ones, the system could be adjusted so that the hues aren't used until stage 3, at which time they would be randomly determined.
 
Oh I agree with hiding the type of tree/ make it look normal so those are not the most used ones :) Let them work for it!
 
Praxiiz, would it be possible to include a way for shards to customize the graphic used for each type of tree, and implement new types as well? For instance, mine doesn't have frostwood, bloodwood, etc. With the amount of custom content out there, and new emerging all the time, I'd hate to be limited to just one rehued image for every choppable tree in the world. Basically as much customization as possible the better. :D

This idea is simply amazing, and as Hank said has been around since freeshards started. Its great to see UltimaLive evolving into something beyond what it started as, which was already robust to begin with. Great stuff man!
 
I agree, the system should be completely customizable. The graphic was out of pure laziness, just for demonstration purposes. There will be a way to link both graphic and hue to the wood type that a tree generates. I am also looking at how large multi-part trees could be harvested.

The stage at which a tree is hued could also be configurable, that way shards that want to hide tree types can do so.
 
Last edited:
Praxiiz, would it be possible to include a way for shards to customize the graphic used for each type of tree, and implement new types as well? For instance, mine doesn't have frostwood, bloodwood, etc. With the amount of custom content out there, and new emerging all the time, I'd hate to be limited to just one rehued image for every choppable tree in the world. Basically as much customization as possible the better. :D

Code:
public static Dictionary<int, HarvestResource> HueToResourceMapping
{
  get
  {
    if (g_hueToResourceMapping == null)
    {
      g_hueToResourceMapping = new Dictionary<int, HarvestResource>();
      g_hueToResourceMapping.Add(0, new HarvestResource(00.0, 00.0, 100.0, 1072540, typeof(Log)));

      if (Core.ML)
      {
        g_hueToResourceMapping.Add(350, new HarvestResource(65.0, 25.0, 105.0, 1072541, typeof(OakLog)));
        g_hueToResourceMapping.Add(751, new HarvestResource(80.0, 40.0, 120.0, 1072542, typeof(AshLog)));
        g_hueToResourceMapping.Add(545, new HarvestResource(95.0, 55.0, 135.0, 1072543, typeof(YewLog)));
        g_hueToResourceMapping.Add(436, new HarvestResource(100.0, 60.0, 140.0, 1072544, typeof(HeartwoodLog)));
        g_hueToResourceMapping.Add(339, new HarvestResource(100.0, 60.0, 140.0, 1072545, typeof(BloodwoodLog)));
        g_hueToResourceMapping.Add(688, new HarvestResource(100.0, 60.0, 140.0, 1072546, typeof(FrostwoodLog)));
      }
    }

    return g_hueToResourceMapping;
  }
}

When you say tree type, I'm assuming you mean a mapping from Hue to resource type?


Anyway, the system is coming along nicely:
To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.

I decided instead of dropping the resources to the ground, I'd send them to the player's pack like the existing lumber harvest system does.
 
Last edited:
*Two Thumbs up* I'll be using this for sure!!! suppose i should get started on the custom artwork
edit: Here is what i have so far but it needs some adjustments. This is for the walnut tree. I also plan on doing stumps for each type of tree.
walnutcutdown.png
 
Last edited:
Praxiiz, looks great. I'm actually not too concerned about the hue (because as you noted that can be handled with harvest resources etc), but the actual graphic of the tree. I'd like to be able to assign custom wood types to custom tree graphics. In essence not be limited to the 10-12 trees that come with stock UO files. So if I add a custom tree art into art slot 0x7fff, I would be able to add that somewhere in the system to recognize that that new art is a "choppable" tree and assign a log type to it accordingly.

Does that make sense?
 
You're talking about a mapping from the graphic id to the resource type, not a mapping from hue to resource type. Yes, that makes sense. That shouldn't be too hard.
 
*Two Thumbs up* I'll be using this for sure!!! suppose i should get started on the custom artwork
edit: Here is what i have so far but it needs some adjustments. This is for the walnut tree. I also plan on doing stumps for each type of tree.
View attachment 864
That looks great! If you come up with a full set of customized tree graphics, I will make sure this project has built in support for them.
 
Man...I haven't been this excited about a new system since I first saw Lokai's custom abilities package back on RunUO. Really great stuff.
 
That looks great! If you come up with a full set of customized tree graphics, I will make sure this project has built in support for them.
I'm not done with the graphics but I wanted to run a few by you to make sure I'm doing it right. So here is Walnut1, Oak1 and Oak2 graphics. Let me know if I need to make any changes.
 

Attachments

  • TreeExamples.rar
    55 KB · Views: 16
I think that looks great, splitting them up is fine. The system makes it easy to use any number of them. For large trees, I'm currently using 7 different graphics for the fallen trees.
 
I think that looks great, splitting them up is fine. The system makes it easy to use any number of them. For large trees, I'm currently using 7 different graphics for the fallen trees.
This is good to know,.. Then perhaps i'll pump out the trees, stumps, and saplings. Then It can be chopped up as needed.
 
This is how the system currently handles the big tall trees. It just turns them into a big pile of sticks. Hue reflects wood type.

ai22.photobucket.com_albums_b347_Praxiiz_Large_trees.png
 
That Leaf effect turned out amazing! Is it adjustable on how long before the leaves fade away?
one question about the pile of sticks. Do these decay over time, so if a player misses a small twig or something it won't stick around right?
This system is turning out to be so EPIC! Do i smell another script of the month?
 
I appreciate the compliments. I've spent a lot of time making these systems, and I am glad that someone appreciates them. I'm working through the growth stages now, but I thought I'd show you a video that shows a bunch more chopping and the leaf effects. It's actually really addicting to walk around chopping down trees.

To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.
 
Players are going to really love this, I can see people making lumberjack characters just because they can now cut down trees. Goodbye uo 'tree hack' hello lumber jacking. I'm so excited
Due to how the radar works, it is almost like icing on the cake. you can actually see the green getting removed from the radar.
Is it adjustable on how long before the leaves fade away?
so if a player misses a small twig or something it won't stick around right?
 
Custom Art Method
1.png 2.png
1. The mature tree
2. The stump made partial hue to reflect color of wood types.
3 . Sapling at 50% resized This is the 1st stage of regrowth
4. Repeat of 50% for comparison
5. Sapling at 75% resized This is the 2nd stage of growth
6. In game image map of spliced fallen to to show placement of tiles in script and the resource tiles
7. Example of the Tree felled
8. Partial hue Log & Stumps
Example.png
 
Last edited:
The concept.
1. You hit the tree leaves fall off
2. You hit tree again it falls
3. You can cut up pieces of the tree by tile getting diff amounts of logs based on each tiles value. Trunk yields more tips of branches may yield 0
4. Possibly option to grind or remove stump like treasure chests for example.
5. After a set amount of time a sapling will appear at 50% This tree is to young to yield any resource.
6. After set amount of time a sapling will grow to 75% This tree is not yet mature enough to harvest
7. A new Mature tree the cycle starts over.
8. Wood types will be reflected via the core of the wood on stumps and logs. The bark of the tree will remain classic. You wont know the wood type until you cut the wood revealing the core of it.
9. Collision issues. The idea to deal with a tree falling on to an undesired location such as a house. Is that any tile of the image map striking an impassable object. IE a house-rock-another tree. Will result in deletion of said tile. This effect will be like the tree crashing and breaking ruining a portion of the resources. Also this will remove any undesired effects from the falling trees. IE a tree in your living room.
This is Praxiis system and concept. Without his work this wouldn't be possible. I am working with him to flesh it out from a custom art point of view to make it as realistic as possible without any chainsaws.
 
Last edited:
As I build up the tree regeneration part of this system, I am considering how the system will actually spawn trees.

The options as I see it are:
  • The system tracks tree location and tree type and respawns them automatically according to the type and location
  • The system spawns trees according to a list of allowable tree types that would be stored for each applicable region
  • Eventually as my map generator is finished, I'll spawn them by Biome for maps that have the Biome Information
I am also looking at permissions by region for enabling the system. An axe that is used in a region that has this system enabled will use it and chop down the trees. In a region without this system enabled, an axe would default back to the normal non-destructive lumberjacking harvest system.

Does anyone have a preference whether I use stock regions and require shard owners to modify them, or have shard owners use and modify Custom Regions in a Box? I personally like the regions in a box, but if there are people who don't use it, then I can provide support for using the regular regions.
 
I vote for using custom regions in a box, Though I'm sure there will be a high demand for stock regions.
but if there are people who don't use it, then I can provide support for using the regular regions.
If you are able to add additional support either custom or stock. More options never hurts, plus this way you wont have to come back and add the additional support upon people's demand in the future.
 
Back