I am designing a harvesting node infrastructure for a homebrew crafting system meant to be an addon to the oc + Xp1 +X2 crafting stuff. I am working with what I know of so I can just make scripts as easily as possible but I think this system should work.
For harvesting nodes, there are seven different placeable types that fall into five categories. You need a specific secondary profession skill to harvest a node (shades of 1st edition advanced DMG). Its pretty much impossible for a character to be able to harvest every kind of node, as four secondary professions is the max.
So, there is a tool for each job that is basically a weapon. Skinning works like this too, for the Tanner secondary profession but you only have to have the skinning knife in your inventory when killing the animal. For mining, it is a battleaxe called a Mining Pick - so the character needs to be proficient in martial weapons or with battleaxes in order to be able to mine. You get up to 20 hits on each rock outcropping you find per server reset. Each hit has the following chances (d%) 01% - precious gemstone; 02% to 10% - semiprecious gemstone; 11% to 30 % ore nugget, 31% to 90% rock chunk. These are produced in your inventory automatically and attack is turned off when the chances are used. Attacking the node unskilled or with the wrong tool also turns off attack.
The same goes with trees/fallen timber - except it is a hand axe called a Woodcutter Hatchet; the character only gets 10 tries per node per reset; and the results are: 01% (SPECIAL) Collector’s Insect Specimen; 02% to 10% (RARE) Mistletoe or other appropriate rare herb/mushroom; 11% to 30% (UNCOMMON) Wood planks; 31% to 90% (COMMON) Piece of wood.
Every other type of node only allows for 5 attempts to gather materials. Mushrooms and Bushes require a sickle and the spleunker, mycology or forester, herbalism profession. They both provide a chance for a rare bug as their special result like trees do with forestry and woodworking. These bugs can be sold to collectors as if they were gems. Ot course, with mushrooms and bushes, rare and uncommon result in the rare and uncommon local herb or mushroom, while the final category of common will produce either leaves or fungus, which are trash items like rock chunks are with mining.
Those with scavenging who pick the scrounging skill can use a prybar (club) on broken furniture and a wrench (light mace) on refuse, rubble, and garbage piles. Broken furniture prioduces: Stashed Gems (SPECIAL) Piece of wood (RARE) Plank of wood (Common) Nails (junk/ingredient). Garbage produces random levels of crafting components chosen on an individual level. Since the loot content is determined by variables set on each basic gathering node, I can alter the templates when placing their objects in areas so they drop what I want. An oak tree will drop oak planks, an elm tree will drop elm planks.
The only thing Im uncertain of scripting-wise is if turning off the player’s autoattack is an effective way to make the node not harvestable by people without the right tool weapon equipped and profession. The secondary professions will be stored on a persistence token item on the character or maybe I’ll just flag by the gifted profession tool being undroppable and plot.
I think I can script it to where, using the OnPhysicalAttacked of the placeable, check if the last attacker used the right weapon and if they hit with it. After that, its just using ClearAllActions if A) not right item/profession B) used all strikes on node. Since the strikes on the node is per reset, that can just be stored on the PC. So, if I just return out of the script if they havent the right prof, equipped weapon, or have maxed their quota for this object that should neatly prevent any further action from the node.