Back to "gardening plants flowers seeds mushrooms watermelons" tags

Garden-Bro V4 by nev0r

1////////////////////////////////////////
2//    _ _                         _ _
3//  _{ * }_    Gardening-Bot    _{ * }_
4// { *.!.* }                   { *.!.* }
5//  *-._.-*   for UO Outlands   *-._.-*
6//  ___|___                     ___|___
7// |_______|     Version 4     |_______|
8//
9// - Processes flower pots within range
10// - No mandatory setup, an optional setup section can be found below
11// - Note: gardening items have to be in your backpack (except for flower pots and water tiles)
12// - WARNING: server system messages are needed to determine necessary actions, make sure they are not filtered for scripts: 
13//      Razor -> Filters -> Text&Messages ->
14//      - Uncheck "Filter repeating system messages"
15//      - "Enable text filter" and "Filter system messages" (list entry sub-menu) can be checked, however "Ignore filtered messages in overhead and scripts" (list entry sub-menu) has to be unchecked
16//
17/////////////////////////////////////////
18
19######## MANUAL SETUP ########
20
21# gardeningRange: 1 - 18
22    # Amout of tiles around character that will be searched for flower pots. If there are no unprocessed flower pots left within this range the script will terminate.
23    # Note: to actually work the flower pot you need to be in a range of 2 tiles, maximal visual range is 18 tiles
24    setvar! gardeningRange 2
25
26# gardeningSmartMode: defines how you want to use fungicides/farmer almanacs (if you do not want to use them at all do not put them into your backpack)
27    # 0 ... Kill all negativ effects without considering collateral damage to (potentially stronger) positive effects   (faster, uses more resources)
28    # 1 ... Kill negativ effects only if they outweigh positive effects, avoid unneccessary collateral damage           (slower, uses less resources)
29    # Note: fungicides and farmer almanacs remove buffs and debuffs in a random fashion. With gardeningSmartMode set to 1 the script is going to ignore fungal and creature debuffs as long as there are stronger corresponding buffs in place
30    setvar! gardeningSmartMode 0
31
32# gardeningIgnoreHeatLevel: are we going to care about heat level?
33    # 0 ... Identify optimal heat level, and remove black mushrooms (reducing optimal heat level bonus) if necessary (applies only when gardeningSmartMode is set to 1, since with gardeningSmartMode 0 all mushrooms will always be removed anyway)
34    # 1 ... Let us not care about heat level, ignore black mushrooms (reducing optimal heat level bonus) in case gardeningSmartMode is set to 1
35    setvar! gardeningIgnoreHeatLevel 0
36
37# gardeningIgnoreBrainFungus: are we going to remove brain fungi, or should we ignore them?
38    # 0 ... Remove, and continue to keep the pot clean
39    # 1 ... Ignore brain fungus and all other debuffs as long as the brain is active
40    # 2 ... Ignore, leave all other debuffs, and do not apply buff items to this pot as long as the brain is active
41    setvar! gardeningIgnoreBrainFungus 0
42
43# gardeningSkipPlanterOverheadInfo: 0 ... Overhead On, 1 ... Overhead Off
44    # Display status information above planters
45    setvar! gardeningSkipPlanterOverheadInfo 0
46
47# gardeningSelectiveBuffs: apply buffs (growth serum/heat filter/fertilizer/purified water) only to certain planter types
48    # 0 ... disabled (= best available buff items from your backpack are going to be applied to all planters without distinction)
49    # 1 ... buff listed planters with superior, exceptional and basic items, do not buff any planter not listed below
50    # 2 ... buff listed planters with superior and exceptional, and all others with basic items
51    # Note: Do not forget to adjust the list items (see below) if you turn this functionality on, no further changes necessary if set to 0
52    setvar! gardeningSelectiveBuffs 0
53
54    # gardeningSelectiveBuffList: changes to the list items are only necessary if you set gardeningSelectiveBuffs to 1 or 2
55        # Do not change the next two lines
56        createlist gardeningSelectiveBuffList
57        clearlist gardeningSelectiveBuffList
58
59        # Comment out planter types you do not want superior and exceptional materials to be used on (select line/s -> right click -> comment, or put a # at the beginning of the line):
60        # Note: rustic planters and rustic window planters work as large wooden planters and are treated as such
61        pushlist gardeningSelectiveBuffList "large wooden planter"
62        pushlist gardeningSelectiveBuffList "small wooden planter"
63        pushlist gardeningSelectiveBuffList "huge steel plant bowl"
64        pushlist gardeningSelectiveBuffList "large steel plant bowl"
65        pushlist gardeningSelectiveBuffList "average steel plant bowl"
66        pushlist gardeningSelectiveBuffList "small steel plant bowl"
67        pushlist gardeningSelectiveBuffList "tiny steel plant bowl"
68        pushlist gardeningSelectiveBuffList "huge clay plant bowl"
69        pushlist gardeningSelectiveBuffList "large clay plant bowl"
70        pushlist gardeningSelectiveBuffList "average clay plant bowl"
71        pushlist gardeningSelectiveBuffList "small clay plant bowl"
72        pushlist gardeningSelectiveBuffList "tiny clay plant bowl"
73
74# gardeningAutoPlantNewSeed: defines the way new seeds are applied to empty flower pots
75    # 0 ... manually plant seeds
76    # 1 ... plant all seed types to all flower pot types (higher rarity seeds first)
77    # 2 ... plant higher rarity seeds exclusively to listed flower pots, leave pot empty if we do not have a high rarity seed
78    # 3 ... plant higher rarity seeds exclusively to listed flower pots, also plant low rarity seeds if we do not have a high rarity seed
79    # 4 ... do not plant new seeds
80    # Note: If you want to use option 2 or 3 you also need to adjust the list items below to let the script know which pot and seed types you want to be handled as rare
81        setvar! gardeningAutoPlantNewSeed 0
82        
83        # Do not change the next four lines
84        createlist gardeningSpecialSeedList
85        createlist gardeningSpecialPlanterList
86        clearlist gardeningSpecialSeedList
87        clearlist gardeningSpecialPlanterList
88
89        # gardeningSpecialSeedList: changes to the list items are only necessary if you set gardeningAutoPlantNewSeed to 2 or 3
90        # Comment out seed types you do not want to be handled as rare (select line/s -> right click -> comment, or put a # at the beginning of the line):
91        pushlist gardeningSpecialSeedList "dungeon seed"
92        pushlist gardeningSpecialSeedList "mushroom spore"
93        pushlist gardeningSpecialSeedList "melloweed seed"
94        pushlist gardeningSpecialSeedList "barley seed"
95        pushlist gardeningSpecialSeedList "hops seed"
96        pushlist gardeningSpecialSeedList "extremely rare seed"
97        pushlist gardeningSpecialSeedList "very rare seed"
98        pushlist gardeningSpecialSeedList "rare seed"
99        pushlist gardeningSpecialSeedList "uncommon seed"
100        pushlist gardeningSpecialSeedList "common seed"
101        pushlist gardeningSpecialSeedList "very common seed"
102        pushlist gardeningSpecialSeedList "extremely common seed"
103
104        # gardeningSpecialPlanterList: changes to the list items are only necessary if you set gardeningAutoPlantNewSeed to 2 or 3
105        # Comment out planter types you do not want to be handled as high quality (select line/s -> right click -> comment, or put a # at the beginning of the line):
106        # Note: rustic planters and rustic window planters work as large wooden planters and are treated as such 
107        pushlist gardeningSpecialPlanterList "large wooden planter"
108        pushlist gardeningSpecialPlanterList "small wooden planter"
109        pushlist gardeningSpecialPlanterList "huge steel plant bowl"
110        pushlist gardeningSpecialPlanterList "large steel plant bowl"
111        pushlist gardeningSpecialPlanterList "average steel plant bowl"
112        pushlist gardeningSpecialPlanterList "small steel plant bowl"
113        pushlist gardeningSpecialPlanterList "tiny steel plant bowl"
114        pushlist gardeningSpecialPlanterList "huge clay plant bowl"
115        pushlist gardeningSpecialPlanterList "large clay plant bowl"
116        pushlist gardeningSpecialPlanterList "average clay plant bowl"
117        pushlist gardeningSpecialPlanterList "small clay plant bowl"
118        pushlist gardeningSpecialPlanterList "tiny clay plant bowl"
119
120# gardeningDebugMode: 0 ... Off, 1 ... Low details, 2 ... High details
121    # Display additional status information in our journal for easier debugging
122    setvar! gardeningDebugMode 0
123
124###### END MANUAL SETUP ######
125
126//////////////////////////////
127// 
128// Changelog
129// - Update 11-Dec-2024 (V4): Added manual seed selection mode for planting new seeds
130//                            Added overhead info above unprocessed planters outside 2 tiles range (max. 10)
131//                            Added possibility to continue gardening session in case script did not finish
132//
133//////////////////////////////
134
135setvar! gardeningPlantGumpID 3224608375
136setvar! gardeningMinWaitForServerResponse 200
137setvar! gardeningMaxWaitForServerResponse 1000
138setvar! gardeningWaitForObjectDelay 600
139
140setvar! cGreen 68
141setvar! cLightBlue 100
142setvar! cLightOrange 145
143setvar! cRed 33
144setvar! cYellow 55
145
146if gardeningDebugMode > 0
147    settimer gardeningRunTimer 0
148endif
149
150if timerexists gardeningRestartTimer
151    if timer gardeningRestartTimer < 10000
152        unsetvar gardeningDone
153    endif
154    removetimer gardeningRestartTimer    
155endif
156
157if not varexist gardeningDone or gardeningDone = 1
158    setvar! gardeningDone 0
159    @clearignore
160else
161    settimer gardeningRestartTimer 0
162    overhead "|* Resuming gardening *|" cGreen
163    sysmsg "|* Resuming gardening *|" cGreen
164    overhead "|* Replay to start fresh *|" cLightOrange
165    sysmsg "|* Replay within 10s to start fresh *|" cLightOrange
166endif
167
168while findtype "planter|flower box|window planter|trough|flower pot" ground -1 -1 gardeningRange
169    
170    if not timerexists gardeningOverheadTimer
171        overhead "|* Starting gardening *|" cGreen
172        settimer gardeningOverheadTimer 0
173    elseif timer gardeningOverheadTimer < 0 and not findtype "planter|flower box|window planter|trough|flower pot" ground -1 -1 2 or timer gardeningOverheadTimer > 3500
174        overhead "|* Searching flower pots *|" cGreen
175        if gardeningSkipPlanterOverheadInfo = 0
176            createlist gardeningUnfinishedPlantersList
177            while 10 > index and findtype "planter|flower box|window planter|trough|flower pot" ground -1 -1 gardeningRange as localPlanter
178                overhead "Pending" cLightOrange localPlanter
179                overhead "" cLightOrange localPlanter
180                pushlist gardeningUnfinishedPlantersList localPlanter
181                @ignore localPlanter
182            endwhile
183            @unignore gardeningUnfinishedPlantersList
184            removelist gardeningUnfinishedPlantersList
185        endif        
186        settimer gardeningOverheadTimer 0
187    endif
188    
189    //World save
190    if insysmsg "world is saving"
191        sysmsg "Waiting for world save ..."
192        settimer globalWorldSaveTimer 0
193        while timer globalWorldSaveTimer < 10000
194            if insysmsg "save complete"
195                sysmsg "The world has been saved!"
196                settimer gardeningMinWaitTimer 0
197                getlabel backpack waitForPing
198                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
199                endwhile
200                break
201            endif
202        endwhile
203    endif
204    
205    if targetexists
206        target cancel
207    endif
208    
209    //Refill water containers in proximity if we are next to a water tile
210    if findtype "water" ground -1 -1 2
211        
212        while findtype "water" ground -1 -1 2 and findtype 3703|3707|3715|4090|5344|5453 ground -1 -1 2 as myWaterContainer
213            dclick myWaterContainer
214            if gardeningDebugMode > 0
215                sysmsg "[Gardening] Trying to refill water containers (Timer: {{gardeningRunTimer}} ms)" cLightBlue
216            endif
217            wait gardeningWaitForObjectDelay
218            @ignore myWaterContainer
219        endwhile
220        
221        while findtype "water" ground -1 -1 2 and findtype 3703|3707|3715|4090|5344|5453 backpack as myWaterContainer
222            dclick myWaterContainer
223            if gardeningDebugMode > 0
224                sysmsg "[Gardening] Trying to refill water containers (Timer: {{gardeningRunTimer}} ms)" cLightBlue
225            endif
226            wait gardeningWaitForObjectDelay
227            @ignore myWaterContainer
228        endwhile
229    
230    endif
231    
232    clearsysmsg
233    if findtype "planter|flower box|window planter|trough|flower pot" ground -1 -1 2 as myFlowerPot
234
235        overhead "|* New pot found *|" cGreen
236        if gardeningSkipPlanterOverheadInfo = 0
237            overhead "Active" cYellow myFlowerPot
238            overhead "" cYellow myFlowerPot
239        endif
240
241        if gumpexists gardeningPlantGumpID
242            gumpclose gardeningPlantGumpID
243            settimer gardeningMinWaitTimer 0
244            getlabel backpack waitForPing
245            while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
246            endwhile
247            if insysmsg "That plant bowl is too far away."
248            endif
249        endif
250
251        if gardeningDebugMode > 0
252            settimer gardeningRunTimer 0
253        endif
254
255        getlabel myFlowerPot myFlowerPotLabel
256        settimer gardeningMinWaitTimer 0
257        while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
258            dclick myFlowerPot
259            waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
260            while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay 
261                if insysmsg "You must wait to perform another action."
262                    wait gardeningMinWaitForServerResponse
263                    settimer gardeningMinWaitTimer 0
264                    break
265                endif
266            endwhile
267        endwhile
268
269        if gardeningDebugMode > 0
270            sysmsg "[Gardening] Active flower pot: {{myFlowerPot}}, {{myFlowerPotLabel}}" cLightBlue
271        endif
272
273        //Harvest plant if growing done
274        if "ready for harvest" in myFlowerPotLabel and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."
275            gumpresponse 2 gardeningPlantGumpID
276            if gardeningDebugMode > 0
277                sysmsg "[Gardening] Harvesting flower (Timer: {{gardeningRunTimer}} ms)" cLightBlue
278            endif
279            settimer gardeningMinWaitTimer 0
280            getlabel backpack waitForPing
281            while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
282            endwhile
283        endif
284
285        //Check if we need to plant a seed
286        if "% grown" in myFlowerPotLabel and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."
287            //Seed already planted
288        elseif gardeningAutoPlantNewSeed >= 4
289            //Leave pot empty
290        elseif gumpexists gardeningPlantGumpID and findtype 22326|51078|51098|53611|54062|55139|58196|59449 backpack and not insysmsg! "That plant bowl is too far away."
291            //Set seed to plant
292            if gardeningDebugMode > 0 
293                sysmsg "[Gardening] Trying to plant new seed (gardeningAutoPlantNewSeed: {{gardeningAutoPlantNewSeed}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
294            endif
295            
296            setvar! gardeningSeedToPlant 0
297            if gardeningAutoPlantNewSeed = 0
298                //Prompt user to add a seed
299                gumpresponse 2 gardeningPlantGumpID
300                settimer gardeningOverheadTimer 2000
301                wft gardeningMaxWaitForServerResponse
302                while targetexists
303                    if timer gardeningOverheadTimer > 2000    
304                        overhead "|* Target seed to add *|" cGreen
305                        overhead "|* or ESC to cancel *|" cLightOrange
306                        settimer gardeningOverheadTimer 0
307                    endif
308                endwhile
309                settimer gardeningMinWaitTimer 0
310                getlabel backpack waitForPing
311                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
312                endwhile
313            
314            elseif gardeningAutoPlantNewSeed = 2 or gardeningAutoPlantNewSeed = 3
315                //Plant high tier seeds to high tier planter
316                if listexists gardeningSpecialSeedList and listexists gardeningSpecialPlanterList
317                    if "large wooden planter" in myFlowerPotLabel or "rustic planter" in myFlowerPotLabel or "rustic window planter" in myFlowerPotLabel
318                        if inlist gardeningSpecialPlanterList "large wooden planter"
319                            setvar! gardeningSpecialPlanter 1
320                        endif
321                    elseif "small wooden planter" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "small wooden planter"
322                        setvar! gardeningSpecialPlanter 1
323                    elseif "huge steel plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "huge steel plant bowl"
324                        setvar! gardeningSpecialPlanter 1
325                    elseif "large steel plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "large steel plant bowl"
326                        setvar! gardeningSpecialPlanter 1
327                    elseif "average steel plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "average steel plant bowl"
328                        setvar! gardeningSpecialPlanter 1
329                    elseif "small steel plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "small steel plant bowl"
330                        setvar! gardeningSpecialPlanter 1
331                    elseif "tiny steel plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "tiny steel plant bowl"
332                        setvar! gardeningSpecialPlanter 1
333                    elseif "huge clay plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "huge clay plant bowl"
334                        setvar! gardeningSpecialPlanter 1
335                    elseif "large clay plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "large clay plant bowl"
336                        setvar! gardeningSpecialPlanter 1                    
337                    elseif "average clay plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "average clay plant bowl"
338                        setvar! gardeningSpecialPlanter 1
339                    elseif "small clay plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "small clay plant bowl"
340                        setvar! gardeningSpecialPlanter 1
341                    elseif "tiny clay plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "tiny clay plant bowl"
342                        setvar! gardeningSpecialPlanter 1
343                    else
344                        setvar! gardeningSpecialPlanter 0
345                    endif
346                    if gardeningSpecialPlanter = 1
347                        if inlist gardeningSpecialSeedList "dungeon seed" and findtype 51098 backpack as myNewSeed
348                            //Set dungeon seed
349                            setvar! gardeningSeedToPlant myNewSeed
350                        elseif inlist gardeningSpecialSeedList "mushroom spore" and findtype "mushroom spore" backpack as myNewSeed
351                            //Set mushroom spore event item
352                            setvar! gardeningSeedToPlant myNewSeed
353                        elseif inlist gardeningSpecialSeedList "melloweed seed" and findtype 51078 backpack 0 as myNewSeed
354                            //Set melloweed seed
355                            setvar! gardeningSeedToPlant myNewSeed
356                        elseif inlist gardeningSpecialSeedList "barley seed" and findtype 51078 backpack 2418 as myNewSeed
357                            //Set barley seed
358                            setvar! gardeningSeedToPlant myNewSeed
359                        elseif inlist gardeningSpecialSeedList "hops seed" and findtype 51078 backpack 2208 as myNewSeed
360                            //Set hops seed
361                            setvar! gardeningSeedToPlant myNewSeed
362                        elseif inlist gardeningSpecialSeedList "extremely rare seed" and findtype 22326 backpack 2465 as myNewSeed
363                            //Set extremely rare seed
364                            setvar! gardeningSeedToPlant myNewSeed
365                        elseif inlist gardeningSpecialSeedList "very rare seed" and findtype 22326 backpack 2661 as myNewSeed
366                            //Set very rare seed
367                            setvar! gardeningSeedToPlant myNewSeed
368                        elseif inlist gardeningSpecialSeedList "rare seed" and findtype 22326 backpack 1266 as myNewSeed
369                            //Set rare seed
370                            setvar! gardeningSeedToPlant myNewSeed
371                        elseif inlist gardeningSpecialSeedList "uncommon seed" and findtype 22326 backpack 63 as myNewSeed
372                            //Set uncommon seed
373                            setvar! gardeningSeedToPlant myNewSeed
374                        elseif inlist gardeningSpecialSeedList "common seed" and findtype 22326 backpack 2451 as myNewSeed
375                            //Set common seed
376                            setvar! gardeningSeedToPlant myNewSeed
377                        elseif inlist gardeningSpecialSeedList "very common seed" and findtype 22326 backpack 2882 as myNewSeed
378                            //Set very common seed
379                            setvar! gardeningSeedToPlant myNewSeed
380                        elseif inlist gardeningSpecialSeedList "extremely common seed" and findtype 22326 backpack 2401 as myNewSeed
381                            //Set extremely common seed
382                            setvar! gardeningSeedToPlant myNewSeed
383                        endif
384                        if gardeningDebugMode > 1 and find gardeningSeedToPlant backpack
385                            sysmsg "[Gardening] Special seed, targeting listed pot (gardeningAutoPlantNewSeed: {{gardeningAutoPlantNewSeed}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
386                        endif   
387                    else
388                        //low tier planter, plant low tier seed
389                        if not inlist gardeningSpecialSeedList "dungeon seed" and findtype 51098 backpack as myNewSeed
390                            //Set dungeon seed
391                            setvar! gardeningSeedToPlant myNewSeed
392                        elseif not inlist gardeningSpecialSeedList "mushroom spore" and findtype "mushroom spore" backpack as myNewSeed
393                            //Set mushroom spore
394                            setvar! gardeningSeedToPlant myNewSeed
395                        elseif not inlist gardeningSpecialSeedList "melloweed seed" and findtype 51078 backpack 0 as myNewSeed
396                            //Set melloweed seed
397                            setvar! gardeningSeedToPlant myNewSeed
398                        elseif not inlist gardeningSpecialSeedList "barley seed" and findtype 51078 backpack 2418 as myNewSeed
399                            //Set barley seed
400                            setvar! gardeningSeedToPlant myNewSeed
401                        elseif not inlist gardeningSpecialSeedList "hops seed" and findtype 51078 backpack 2208 as myNewSeed
402                            //Set hops seed
403                            setvar! gardeningSeedToPlant myNewSeed
404                        elseif not inlist gardeningSpecialSeedList "extremely rare seed" and findtype 22326 backpack 2465 as myNewSeed
405                            //Set extremely rare seed
406                            setvar! gardeningSeedToPlant myNewSeed
407                        elseif not inlist gardeningSpecialSeedList "very rare seed" and findtype 22326 backpack 2661 as myNewSeed
408                            //Set very rare seed
409                            setvar! gardeningSeedToPlant myNewSeed
410                        elseif not inlist gardeningSpecialSeedList "rare seed" and findtype 22326 backpack 1266 as myNewSeed
411                            //Set rare seed
412                            setvar! gardeningSeedToPlant myNewSeed
413                        elseif not inlist gardeningSpecialSeedList "uncommon seed" and findtype 22326 backpack 63 as myNewSeed
414                            //Set uncommon seed
415                            setvar! gardeningSeedToPlant myNewSeed
416                        elseif not inlist gardeningSpecialSeedList "common seed" and findtype 22326 backpack 2451 as myNewSeed
417                            //Set common seed
418                            setvar! gardeningSeedToPlant myNewSeed
419                        elseif not inlist gardeningSpecialSeedList "very common seed" and findtype 22326 backpack 2882 as myNewSeed
420                            //Set very common seed
421                            setvar! gardeningSeedToPlant myNewSeed
422                        elseif not inlist gardeningSpecialSeedList "extremely common seed" and findtype 22326 backpack 2401 as myNewSeed
423                            //Set extremely common seed
424                            setvar! gardeningSeedToPlant myNewSeed
425                        endif
426                        if gardeningDebugMode > 1 and find gardeningSeedToPlant backpack
427                            sysmsg "[Gardening] Non listed seed, targeting non listed planter (gardeningAutoPlantNewSeed: {{gardeningAutoPlantNewSeed}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
428                        endif
429                    endif
430                else
431                    setvar! gardeningSpecialPlanter 0
432                endif
433            endif
434            
435            if find gardeningSeedToPlant backpack
436                //Seed already set
437            elseif gardeningAutoPlantNewSeed = 3 and gardeningSpecialPlanter = 1 or gardeningAutoPlantNewSeed = 1
438                //Select all types of seeds
439                if findtype 51098 backpack as myNewSeed
440                    //Set dungeon seed
441                    setvar! gardeningSeedToPlant myNewSeed
442                elseif findtype "mushroom spore" backpack as myNewSeed
443                    //Set mushroom spore
444                    setvar! gardeningSeedToPlant myNewSeed
445                elseif findtype 51078 backpack 0 as myNewSeed
446                    //Set melloweed seed
447                    setvar! gardeningSeedToPlant myNewSeed
448                elseif findtype 51078 backpack 2418 as myNewSeed
449                    //Set barley seed
450                    setvar! gardeningSeedToPlant myNewSeed
451                elseif findtype 51078 backpack 2208 as myNewSeed
452                    //Set hops seed
453                    setvar! gardeningSeedToPlant myNewSeed
454                elseif findtype 22326 backpack 2465 as myNewSeed
455                    //Set extremely rare seed
456                    setvar! gardeningSeedToPlant myNewSeed
457                elseif findtype 22326 backpack 2661 as myNewSeed
458                    //Set very rare seed
459                    setvar! gardeningSeedToPlant myNewSeed
460                elseif findtype 22326 backpack 1266 as myNewSeed
461                    //Set rare seed
462                    setvar! gardeningSeedToPlant myNewSeed
463                elseif findtype 22326 backpack 63 as myNewSeed
464                    //Set uncommon seed
465                    setvar! gardeningSeedToPlant myNewSeed
466                elseif findtype 22326 backpack 2451 as myNewSeed
467                    //Set common seed
468                    setvar! gardeningSeedToPlant myNewSeed
469                elseif findtype 22326 backpack 2882 as myNewSeed
470                    //Set very common seed
471                    setvar! gardeningSeedToPlant myNewSeed
472                elseif findtype 22326 backpack 2401 as myNewSeed
473                    //Set extremely common seed
474                    setvar! gardeningSeedToPlant myNewSeed
475                endif
476                if gardeningDebugMode > 1 and gardeningAutoPlantNewSeed = 3
477                    sysmsg "[Gardening] Non listed seed, targeting listed planter (gardeningAutoPlantNewSeed: {{gardeningAutoPlantNewSeed}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
478                endif
479            endif
480            
481            //Plant selected seed
482            if find gardeningSeedToPlant backpack
483                gumpresponse 2 gardeningPlantGumpID
484                wft gardeningMaxWaitForServerResponse
485                target gardeningSeedToPlant
486                settimer gardeningMinWaitTimer 0
487                getlabel backpack waitForPing
488                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
489                endwhile
490            endif
491            
492            if gardeningDebugMode > 1 and insysmsg! "You plant a seed."
493                sysmsg "[Gardening] Seed planted (gardeningAutoPlantNewSeed: {{gardeningAutoPlantNewSeed}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
494            endif
495        
496        endif
497        
498        if "% grown" in myFlowerPotLabel or insysmsg "You plant a seed."
499            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."            
500                //Add water and soil
501                if findtype 25570|56416|56417 backpack
502                    setvar! gardeningWaterDone 0
503                else
504                    setvar! gardeningWaterDone 1
505                    if gardeningDebugMode > 1
506                        sysmsg "[Gardening] No watering can found (Timer: {{gardeningRunTimer}} ms)" cLightBlue
507                    endif                
508                endif
509                if findtype 2323 backpack
510                    setvar! gardeningSoilDone 0
511                else
512                    setvar! gardeningSoilDone 1
513                    if gardeningDebugMode > 1
514                        sysmsg "[Gardening] No soil found (Timer: {{gardeningRunTimer}} ms)" cLightBlue
515                    endif
516                endif
517                //Heat
518                if gardeningIgnoreHeatLevel = 0 and findtype 29868 backpack and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."
519                    gumpresponse 3 gardeningPlantGumpID
520                    waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
521                endif
522                while gardeningWaterDone != 1 or gardeningSoilDone != 1
523                    if gardeningDebugMode > 0
524                        sysmsg "[Gardening] Optimizing Soil&Water (Loop-Index: {{index}}, WaterDone: {{gardeningWaterDone}}, SoilDone: {{gardeningSoilDone}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
525                    endif
526                    //World save
527                    if insysmsg "world is saving"
528                        sysmsg "Waiting for world save ..."
529                        settimer globalWorldSaveTimer 0
530                        while timer globalWorldSaveTimer < 10000
531                            if insysmsg "save complete"
532                                sysmsg "The world has been saved!"
533                                settimer gardeningMinWaitTimer 0
534                                getlabel backpack waitForPing
535                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
536                                endwhile
537                                break
538                            endif
539                        endwhile
540                    endif
541                    if targetexists
542                        target cancel
543                    endif
544                    //Water
545                    if gumpexists gardeningPlantGumpID and gardeningWaterDone != 1 and findtype 25570|56416|56417 backpack as myWateringCan
546                        getlabel myWateringCan myWateringCanLabel
547                        if "250/250" in myWateringCanLabel
548                        else
549                            //Try a refill
550                            dclick myWateringCan
551                            wait gardeningWaitForObjectDelay
552                        endif
553                        //Fill to optimal
554                        if not gumpexists 3929333591
555                            gumpresponse 2 gardeningPlantGumpID
556                            wft gardeningMaxWaitForServerResponse
557                            target myWateringCan
558                            waitforgump 3929333591 gardeningMaxWaitForServerResponse
559                        endif
560                        gumpresponse 2 3929333591
561                        waitforgump 3929333591 gardeningMaxWaitForServerResponse
562                        gumpclose 3929333591
563                    endif
564                    //Soil
565                    if gumpexists gardeningPlantGumpID and gardeningSoilDone != 1 and findtype 2323 backpack as myPlantSoil
566                        //Fill to optimal
567                        if not gumpexists 4024474571
568                            gumpresponse 2 gardeningPlantGumpID
569                            wft gardeningMaxWaitForServerResponse
570                            target myPlantSoil
571                            waitforgump 4024474571 gardeningMaxWaitForServerResponse
572                        endif
573                        gumpresponse 2 4024474571
574                        waitforgump 4024474571 gardeningMaxWaitForServerResponse
575                        gumpclose 4024474571
576                    endif
577                    if gumpexists gardeningPlantGumpID
578                        settimer gardeningMinWaitTimer 0
579                        getlabel backpack waitForPing
580                        while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
581                        endwhile
582                        if insysmsg! "That is not a plant seed."
583                            if gardeningDebugMode > 1
584                                sysmsg "[Gardening] Soil&Water ... no seed planted fail (Timer: {{gardeningRunTimer}} ms)" cLightBlue
585                            endif
586                            break
587                        elseif insysmsg! "That plant bowl is too far away."
588                            if gardeningDebugMode > 1
589                                sysmsg "[Gardening] Soil&Water ... out of range fail (Timer: {{gardeningRunTimer}} ms)" cLightBlue
590                            endif
591                            break
592                        endif
593                        if insysmsg "You have not yet estimated this plant's ideal water needs."
594                            if gardeningDebugMode > 1
595                                sysmsg "[Gardening] Soil&Water ... Taste ID water needed (Timer: {{gardeningRunTimer}} ms)" cLightBlue
596                            endif
597                            if findtype 29868 backpack
598                                //Identify needed water amount, Planters Spade: 29868
599                                gumpresponse 4 gardeningPlantGumpID
600                                waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
601                            else
602                                overhead "|* No spade found *|" cRed
603                                setvar! gardeningWaterDone 1
604                            endif
605                        elseif insysmsg "You add the ideal amount of water to the plant." or insysmsg "You have already met this plant's ideal water needs." or insysmsg "You have already added more water than this plant's ideal needs."
606                            if gardeningDebugMode > 1
607                                sysmsg "[Gardening] Soil&Water ... water optimized (Timer: {{gardeningRunTimer}} ms)" cLightBlue
608                            endif
609                            setvar! gardeningWaterDone 1
610                        elseif insysmsg "You add some water to the plant (unable to meet ideal amount needed).."
611                            if gardeningDebugMode > 1
612                                sysmsg "[Gardening] Soil&Water ... water missing (Timer: {{gardeningRunTimer}} ms)" cLightBlue
613                            endif
614                            overhead "|* Not enough water *|" cRed
615                            if gardeningSkipPlanterOverheadInfo = 0
616                                overhead "Need water" cRed myFlowerPot
617                                overhead "" cRed myFlowerPot
618                            endif
619                            setvar! gardeningWaterDone 1
620                        endif
621                        if insysmsg "You have not yet estimated this plant's ideal soil needs."
622                            if gardeningDebugMode > 1
623                                sysmsg "[Gardening] Soil&Water ... Taste ID soil needed (Timer: {{gardeningRunTimer}} ms)" cLightBlue
624                            endif
625                            if findtype 29868 backpack
626                                //Identify needed soil amount, Planters Spade: 29868
627                                gumpresponse 5 gardeningPlantGumpID
628                                waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
629                            else
630                                overhead "|* No spade found *|" cRed
631                                setvar! gardeningSoilDone 1
632                            endif
633                        elseif insysmsg "You add the ideal amount of soil to the plant." or insysmsg "You have already met this plant's ideal soil needs." or insysmsg "You have already added more soil than this plant's ideal needs."
634                            if gardeningDebugMode > 1
635                                sysmsg "[Gardening] Soil&Water ... soil optimized (Timer: {{gardeningRunTimer}} ms)" cLightBlue
636                            endif
637                            setvar! gardeningSoilDone 1
638                        elseif insysmsg "You add some soil to the plant (unable to meet ideal amount needed).."
639                            if gardeningDebugMode > 1
640                                sysmsg "[Gardening] Soil&Water ... soil missing (Timer: {{gardeningRunTimer}} ms)" cLightBlue
641                            endif
642                            overhead "|* Not enough soil *|" cRed
643                            if gardeningSkipPlanterOverheadInfo = 0
644                                overhead "Need soil" cRed myFlowerPot
645                                overhead "" cRed myFlowerPot
646                            endif
647                            setvar! gardeningSoilDone 1
648                        endif
649                    else
650                        if gardeningDebugMode > 1
651                            sysmsg "[Gardening] Soil&Water ... plant gump not found break (Timer: {{gardeningRunTimer}} ms)" cLightBlue
652                        endif                    
653                        break
654                    endif
655                endwhile
656                //Work buffs and debuffs
657                if findtype 6187|6193|29343|20500|20499|20498|28719|11942|28741|29217|19403|4154|20503|20502|20501 backpack and not insysmsg! "That is not a plant seed." and not insysmsg! "That plant bowl is too far away."
658                    //Remove debuffs
659                    if gardeningSmartMode = 1
660                        //Kill negativ effects if stronger than positive effects
661                        if gardeningDebugMode > 0
662                            sysmsg "[Gardening] Removing debuffs - smart mode (Timer: {{gardeningRunTimer}} ms)" cLightBlue
663                        endif
664                        while not insysmsg! "That plant bowl is too far away."
665                            //World save
666                            if insysmsg "world is saving"
667                                sysmsg "Waiting for world save ..."
668                                settimer globalWorldSaveTimer 0
669                                while timer globalWorldSaveTimer < 10000
670                                    if insysmsg "save complete"
671                                        sysmsg "The world has been saved!"
672                                        settimer gardeningMinWaitTimer 0
673                                        getlabel backpack waitForPing
674                                        while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
675                                        endwhile
676                                        break
677                                    endif
678                                endwhile
679                            endif
680                            if targetexists
681                                target cancel
682                            endif
683                            gumpclose gardeningPlantGumpID
684                            clearsysmsg
685                            setvar! gardeningClearPestilentEffects 0
686                            setvar! gardeningClearFungalEffects 0
687                            setvar! gardeningClearCreatureEffects 0
688                            setvar! gardeningBees 0
689                            setvar! gardeningActiveBrainFungus 0
690                            if not listexists gardeningFungiCounterList
691                                createlist gardeningFungiCounterList
692                            else
693                                clearlist gardeningFungiCounterList
694                            endif
695                            if not listexists gardeningCreatureCounterList
696                                createlist gardeningCreatureCounterList
697                            else
698                                clearlist gardeningCreatureCounterList
699                            endif
700                            settimer gardeningMinWaitTimer 0
701                            while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
702                                dclick myFlowerPot
703                                waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
704                                while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay 
705                                    if insysmsg "You must wait to perform another action."
706                                        wait gardeningMinWaitForServerResponse
707                                        settimer gardeningMinWaitTimer 0
708                                        break
709                                    endif
710                                endwhile
711                            endwhile
712                            setvar! gardeningGumpResponse 10
713                            gumpresponse gardeningGumpResponse gardeningPlantGumpID
714                            getlabel backpack waitForPing
715                            while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
716                            endwhile
717                            while gumpexists gardeningPlantGumpID and not insysmsg "Permanent" and not insysmsg "That plant effect no longer exists." and not insysmsg! "That plant bowl is too far away."
718                                if insysmsg "Brain Fungi"
719                                    setvar! gardeningActiveBrainFungus 1
720                                endif
721                                //Always remove pestilent effects - there are no positive ones
722                                if insysmsg "Pestilent" and findtype 6187 backpack
723                                    setvar! gardeningClearPestilentEffects 1
724                                endif
725                                //Fungi
726                                if findtype 6193 backpack
727                                    if insysmsg! "Black Mushroom" or insysmsg! "White Mushroom" or insysmsg! "Red Mushroom"
728                                        if gardeningIgnoreHeatLevel = 1
729                                            if insysmsg "Black Mushroom"
730                                            endif
731                                        endif
732                                        if insysmsg "Troop"
733                                            pushlist gardeningFungiCounterList "1"
734                                        elseif insysmsg "Cluster"
735                                            pushlist gardeningFungiCounterList "1"
736                                            pushlist gardeningFungiCounterList "1"
737                                        elseif insysmsg "Grove"
738                                            pushlist gardeningFungiCounterList "1"
739                                            pushlist gardeningFungiCounterList "1"
740                                            pushlist gardeningFungiCounterList "1"
741                                        endif
742                                    endif
743                                    if insysmsg! "Orange Mushroom" or insysmsg! "Green Mushroom" or insysmsg! "Blue Mushroom"
744                                        if list gardeningFungiCounterList > 0
745                                            if gardeningIgnoreHeatLevel = 1
746                                                if insysmsg "Orange Mushroom"
747                                                endif
748                                            endif
749                                            if insysmsg "Troop"
750                                                poplist gardeningFungiCounterList front
751                                            elseif insysmsg "Cluster"
752                                                for 2
753                                                    poplist gardeningFungiCounterList front
754                                                    if list gardeningFungiCounterList = 0
755                                                        break
756                                                    endif
757                                                endfor
758                                            elseif insysmsg "Grove"
759                                                for 3
760                                                    poplist gardeningFungiCounterList front
761                                                    if list gardeningFungiCounterList = 0
762                                                        break
763                                                    endif
764                                                endfor
765                                            endif
766                                        endif
767                                    endif
768                                endif
769                                //Creatures
770                                if findtype 29343 backpack 
771                                    //Bees
772                                    if insysmsg "Bees"
773                                        setvar! gardeningBees 1
774                                    elseif insysmsg! "Reduces total growth rate"
775                                        for 10
776                                            pushlist gardeningCreatureCounterList "1"
777                                        endfor
778                                        if insysmsg "Reduces total growth rate by 10%"
779                                        elseif insysmsg "Reduces total growth rate by 11%"
780                                            pushlist gardeningCreatureCounterList "1"
781                                        elseif insysmsg "Reduces total growth rate by 12%"
782                                            pushlist gardeningCreatureCounterList "1"
783                                            pushlist gardeningCreatureCounterList "1"
784                                        elseif insysmsg "Reduces total growth rate by 13%"
785                                            pushlist gardeningCreatureCounterList "1"
786                                            pushlist gardeningCreatureCounterList "1"
787                                            pushlist gardeningCreatureCounterList "1"                                    
788                                        elseif insysmsg "Reduces total growth rate by 14%"
789                                            for 4
790                                                pushlist gardeningCreatureCounterList "1"
791                                            endfor
792                                        elseif insysmsg "Reduces total growth rate by 15%"
793                                            for 5
794                                                pushlist gardeningCreatureCounterList "1"
795                                            endfor
796                                        elseif insysmsg "Reduces total growth rate by 16%"
797                                            for 6
798                                                pushlist gardeningCreatureCounterList "1"
799                                            endfor
800                                        elseif insysmsg "Reduces total growth rate by 17%"
801                                            for 7
802                                                pushlist gardeningCreatureCounterList "1"
803                                            endfor
804                                        elseif insysmsg "Reduces total growth rate by 18%"
805                                            for 8
806                                                pushlist gardeningCreatureCounterList "1"
807                                            endfor
808                                        elseif insysmsg "Reduces total growth rate by 19%"
809                                            for 9
810                                                pushlist gardeningCreatureCounterList "1"
811                                            endfor
812                                        elseif insysmsg "Reduces total growth rate by 20%"
813                                            for 10
814                                                pushlist gardeningCreatureCounterList "1"
815                                            endfor
816                                        endif
817                                    endif
818                                endif
819                                if gardeningGumpResponse = 10
820                                    setvar! gardeningGumpResponse 11
821                                elseif gardeningGumpResponse = 11
822                                    setvar! gardeningGumpResponse 12
823                                elseif gardeningGumpResponse = 12
824                                    setvar! gardeningGumpResponse 13
825                                elseif gardeningGumpResponse = 13
826                                    if ingump "Perma" 3224608375
827                                        break
828                                    else
829                                        gumpresponse 7 gardeningPlantGumpID
830                                        setvar! gardeningGumpResponse 10
831                                        waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
832                                    endif
833                                endif
834                                gumpresponse gardeningGumpResponse gardeningPlantGumpID
835                                settimer gardeningMinWaitTimer 0
836                                getlabel backpack waitForPing
837                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
838                                endwhile
839                            endwhile
840                            //Remove debuffs if necessary
841                            if list gardeningFungiCounterList > 0 and findtype 6193 backpack
842                                setvar! gardeningClearFungalEffects 1
843                            endif
844                            if gardeningBees = 1 and list gardeningCreatureCounterList > 50 and findtype 29343 backpack
845                                setvar! gardeningClearCreatureEffects 1
846                            elseif gardeningBees = 0 and list gardeningCreatureCounterList > 0 and findtype 29343 backpack
847                                setvar! gardeningClearCreatureEffects 1
848                            endif
849                            if gardeningClearPestilentEffects = 0 and gardeningClearFungalEffects = 0 and gardeningClearCreatureEffects = 0
850                                if gardeningDebugMode > 0
851                                    sysmsg "[Gardening] ... debuff removal finished (Timer: {{gardeningRunTimer}} ms)" cLightBlue
852                                endif
853                                break
854                            elseif gardeningActiveBrainFungus = 1 and gardeningIgnoreBrainFungus > 0
855                                if gardeningDebugMode > 0
856                                    sysmsg "[Gardening] ... debuff removal brain fungus break (Timer: {{gardeningRunTimer}} ms)" cLightBlue
857                                endif
858                                break
859                            else
860                                if targetexists
861                                    target cancel
862                                endif  
863                                while gardeningActiveBrainFungus = 1 and gumpexists gardeningPlantGumpID and findtype 6193 backpack as myFungicide and not insysmsg! "That plant bowl is too far away."
864                                    if gardeningDebugMode > 1
865                                        sysmsg "[Gardening] ... trying to remove brain fungus (Timer: {{gardeningRunTimer}} ms)" cLightBlue
866                                    endif
867                                    gumpresponse 2 gardeningPlantGumpID
868                                    wft gardeningMaxWaitForServerResponse
869                                    target myFungicide
870                                    settimer gardeningMinWaitTimer 0
871                                    getlabel backpack waitForPing
872                                    while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
873                                    endwhile
874                                    if insysmsg "You use a fungicide to remove a fungus from the plant bowl (Brain Fungi)."
875                                        setvar! gardeningActiveBrainFungus 0
876                                        if gardeningDebugMode > 1
877                                            sysmsg "[Gardening] ... brain fungus removed (Timer: {{gardeningRunTimer}} ms)" cLightBlue
878                                        endif
879                                        break
880                                    endif
881                                endwhile
882                                if gardeningActiveBrainFungus = 0
883                                    if gardeningClearPestilentEffects = 1 and gumpexists gardeningPlantGumpID and findtype 6187 backpack and not insysmsg! "That plant bowl is too far away."
884                                        while gumpexists gardeningPlantGumpID and not insysmsg "There are no active pestilent effects in this plant bowl." and not insysmsg! "That plant bowl is too far away." and findtype 6187 backpack as myDefoliant
885                                            if gardeningDebugMode > 1
886                                                sysmsg "[Gardening] ... removing pestilent effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
887                                            endif                        
888                                            gumpresponse 2 gardeningPlantGumpID
889                                            wft gardeningMaxWaitForServerResponse
890                                            target myDefoliant
891                                            settimer gardeningMinWaitTimer 0
892                                            getlabel backpack waitForPing
893                                            while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
894                                            endwhile
895                                        endwhile
896                                        if gardeningClearFungalEffects = 0 and gardeningClearCreatureEffects = 0
897                                            if gardeningDebugMode > 0
898                                                sysmsg "[Gardening] ... debuffs cleared (Timer: {{gardeningRunTimer}} ms)" cLightBlue
899                                            endif
900                                            break
901                                        endif
902                                    endif
903                                    if gardeningClearFungalEffects = 1 and gumpexists gardeningPlantGumpID and findtype 6193 backpack as myFungicide and not insysmsg! "That plant bowl is too far away."
904                                        if gardeningDebugMode > 1
905                                            sysmsg "[Gardening] ... removing fungal effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
906                                        endif
907                                        gumpresponse 2 gardeningPlantGumpID
908                                        wft gardeningMaxWaitForServerResponse
909                                        target myFungicide
910                                        settimer gardeningMinWaitTimer 0
911                                        getlabel backpack waitForPing
912                                        while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
913                                        endwhile
914                                    endif
915                                    if gardeningClearCreatureEffects = 1 and gumpexists gardeningPlantGumpID and findtype 29343 backpack as myFarmerAlmanac and not insysmsg! "That plant bowl is too far away."
916                                        if gardeningDebugMode > 1
917                                            sysmsg "[Gardening] ... removing creature effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
918                                        endif
919                                        gumpresponse 2 gardeningPlantGumpID
920                                        wft gardeningMaxWaitForServerResponse
921                                        target myFarmerAlmanac
922                                        settimer gardeningMinWaitTimer 0
923                                        getlabel backpack waitForPing
924                                        while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
925                                        endwhile
926                                    endif
927                                else
928                                    if gardeningDebugMode > 1
929                                        sysmsg "[Gardening] Brain fungus removal fail (Timer: {{gardeningRunTimer}} ms)" cLightBlue
930                                    endif
931                                    overhead "|* Brain fungus removal failed *|" cRed
932                                    if gardeningSkipPlanterOverheadInfo = 0
933                                        overhead "Cannot clear debuffs" cRed myFlowerPot
934                                    endif
935                                    break                            
936                                endif
937                            endif
938                        endwhile
939                    else
940                        //Kill all negativ effects without considering collateral damage to (potentially stronger) positive effects
941                        if gardeningDebugMode > 0
942                            sysmsg "[Gardening] Removing debuffs - normal mode (Timer: {{gardeningRunTimer}} ms)" cLightBlue
943                        endif
944                        
945                        //World save
946                        if insysmsg "world is saving"
947                            sysmsg "Waiting for world save ..."
948                            settimer globalWorldSaveTimer 0
949                            while timer globalWorldSaveTimer < 10000
950                                if insysmsg "save complete"
951                                    sysmsg "The world has been saved!"
952                                    settimer gardeningMinWaitTimer 0
953                                    getlabel backpack waitForPing
954                                    while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
955                                    endwhile
956                                    break
957                                endif
958                            endwhile
959                        endif
960                        
961                        if targetexists
962                            target cancel
963                        endif
964                        
965                        gumpclose gardeningPlantGumpID
966                        settimer gardeningMinWaitTimer 0
967                        while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
968                            dclick myFlowerPot
969                            waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
970                            while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay 
971                                if insysmsg "You must wait to perform another action."
972                                    wait gardeningMinWaitForServerResponse
973                                    settimer gardeningMinWaitTimer 0
974                                    break
975                                endif
976                            endwhile
977                        endwhile
978                        
979                        while gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."
980                            //Collect all active condition system messages
981                            gumpresponse 10 gardeningPlantGumpID
982                            waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
983                            gumpresponse 11 gardeningPlantGumpID
984                            waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
985                            gumpresponse 12 gardeningPlantGumpID
986                            waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
987                            gumpresponse 13 gardeningPlantGumpID
988                            waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
989                            if ingump "Perma" 3224608375 or insysmsg! "Permanent" or insysmsg "That plant effect no longer exists."
990                                break
991                            else
992                                gumpresponse 7 gardeningPlantGumpID
993                                waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
994                            endif
995                        endwhile
996                        
997                        if insysmsg "Brain Fungi"
998                            setvar! gardeningActiveBrainFungus 1
999                            //Remove brain fungus
1000                            while gardeningIgnoreBrainFungus = 0 and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and findtype 6193 backpack as myFungicide and not insysmsg "There are no active fungal effects in this plant bowl."
1001                                if gardeningDebugMode > 1
1002                                    sysmsg "[Gardening] ... removing brain fungus (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1003                                endif
1004                                gumpresponse 2 gardeningPlantGumpID
1005                                wft gardeningMaxWaitForServerResponse
1006                                target myFungicide
1007                                settimer gardeningMinWaitTimer 0
1008                                getlabel backpack waitForPing
1009                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1010                                endwhile
1011                                waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
1012                                if insysmsg "You use a fungicide to remove a fungus from the plant bowl (Brain Fungi)."
1013                                    setvar! gardeningActiveBrainFungus 0
1014                                    if gardeningDebugMode > 1
1015                                        sysmsg "[Gardening] ... brain fungus removed (Index: {{Index}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1016                                    endif
1017                                    break
1018                                endif
1019                            endwhile
1020                        else
1021                            setvar! gardeningActiveBrainFungus 0
1022                        endif
1023
1024                        if insysmsg "Reduces" and gardeningActiveBrainFungus = 0
1025                            if insysmsg "Permanent"
1026                            endif
1027                            gumpclose gardeningPlantGumpID
1028                            settimer gardeningMinWaitTimer 0
1029                            
1030                            while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
1031                                dclick myFlowerPot
1032                                waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
1033                                while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay 
1034                                    if insysmsg "You must wait to perform another action."
1035                                        wait gardeningMinWaitForServerResponse
1036                                        settimer gardeningMinWaitTimer 0
1037                                        break
1038                                    endif
1039                                endwhile
1040                            endwhile
1041                            
1042                            gumpresponse 10 gardeningPlantGumpID
1043                            settimer gardeningMinWaitTimer 0
1044                            getlabel backpack waitForPing
1045                            
1046                            setvar! gardeningClearPestilentEffects 1
1047                            setvar! gardeningClearFungalEffects 1
1048                            setvar! gardeningClearCreatureEffects 1
1049                            
1050                            setvar! gardeningGumpResponse 10
1051                            setvar! gardeningNextGumpResponse 0
1052                            
1053                            while insysmsg! "Reduces" and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "That plant effect no longer exists." and not insysmsg "Permanent"
1054                                if insysmsg! "(Pestilent Effect)" and not findtype 6187 backpack
1055                                    setvar! gardeningClearPestilentEffects 0
1056                                    setvar! gardeningNextGumpResponse 1
1057                                endif
1058                                if insysmsg! "(Fungal Effect)" and not findtype 6193 backpack 
1059                                    setvar! gardeningClearFungalEffects 0
1060                                    setvar! gardeningNextGumpResponse 1
1061                                endif
1062                                if insysmsg! "(Creature Effect)" and not findtype 29343 backpack
1063                                    setvar! gardeningClearCreatureEffects 0
1064                                    setvar! gardeningNextGumpResponse 1
1065                                endif
1066                                if gardeningClearPestilentEffects = 1 and insysmsg "(Pestilent Effect)" and findtype 6187 backpack as myDefoliant
1067                                    if gardeningDebugMode > 1
1068                                        sysmsg "[Gardening] ... removing pestilent effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1069                                    endif                        
1070                                    gumpresponse 2 gardeningPlantGumpID
1071                                    wft gardeningMaxWaitForServerResponse
1072                                    target myDefoliant
1073                                    settimer gardeningMinWaitTimer 0
1074                                    getlabel backpack waitForPing
1075                                    while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1076                                    endwhile
1077                                elseif gardeningClearFungalEffects = 1 and insysmsg "(Fungal Effect)" and findtype 6193 backpack as myFungicide
1078                                    if gardeningDebugMode > 1
1079                                        sysmsg "[Gardening] ... removing fungal effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1080                                    endif
1081                                    gumpresponse 2 gardeningPlantGumpID
1082                                    wft gardeningMaxWaitForServerResponse
1083                                    target myFungicide
1084                                    settimer gardeningMinWaitTimer 0
1085                                    getlabel backpack waitForPing
1086                                    while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1087                                    endwhile
1088                                elseif gardeningClearCreatureEffects = 1 and insysmsg "(Creature Effect)" and findtype 29343 backpack as myFarmerAlmanac
1089                                    if gardeningDebugMode > 1
1090                                        sysmsg "[Gardening] ... removing creature effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1091                                    endif
1092                                    gumpresponse 2 gardeningPlantGumpID
1093                                    wft gardeningMaxWaitForServerResponse
1094                                    target myFarmerAlmanac
1095                                    settimer gardeningMinWaitTimer 0
1096                                    getlabel backpack waitForPing
1097                                    while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1098                                    endwhile
1099                                endif
1100                                if gardeningClearPestilentEffects = 0 and gardeningClearFungalEffects = 0 and gardeningClearCreatureEffects = 0
1101                                    break
1102                                elseif gardeningNextGumpResponse = 1
1103                                    if gardeningGumpResponse = 10
1104                                        setvar! gardeningGumpResponse 11
1105                                    elseif gardeningGumpResponse = 11
1106                                        setvar! gardeningGumpResponse 12
1107                                    elseif gardeningGumpResponse = 12
1108                                        setvar! gardeningGumpResponse 13
1109                                    elseif gardeningGumpResponse = 13
1110                                        gumpresponse 7 gardeningPlantGumpID
1111                                        setvar! gardeningGumpResponse 10
1112                                        waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
1113                                    endif
1114                                    setvar! gardeningNextGumpResponse 0
1115                                endif
1116                                gumpresponse gardeningGumpResponse gardeningPlantGumpID
1117                                settimer gardeningMinWaitTimer 0
1118                                getlabel backpack waitForPing
1119                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1120                                endwhile
1121                            endwhile
1122                        elseif gardeningActiveBrainFungus = 1 and gardeningIgnoreBrainFungus = 0
1123                            if gardeningDebugMode > 0
1124                                sysmsg "[Gardening] Brain fungus removal fail (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1125                            endif
1126                            overhead "|* Brain fungus removal failed *|" cRed
1127                            overhead "Cannot clear debuffs" cRed myFlowerPot
1128                        elseif gardeningActiveBrainFungus = 1 and gardeningIgnoreBrainFungus > 0
1129                            if gardeningDebugMode > 0
1130                                sysmsg "[Gardening] ... debuff removal brain fungus break (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1131                            endif                        
1132                        endif               
1133                    endif
1134
1135                    //Add buff items
1136                    if gardeningDebugMode > 0
1137                        sysmsg "[Gardening] Checking buffs (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1138                    endif
1139                    if gardeningActiveBrainFungus = 0 or gardeningIgnoreBrainFungus < 2
1140                        if gardeningSelectiveBuffs = 1 or gardeningSelectiveBuffs = 2
1141                            if listexists gardeningSelectiveBuffList
1142                                if "large wooden planter" in myFlowerPotLabel or "rustic planter" in myFlowerPotLabel or "rustic window planter" in myFlowerPotLabel
1143                                    if inlist gardeningSelectiveBuffList "large wooden planter"
1144                                        setvar! gardeningSpecialPlanter 1
1145                                    endif
1146                                elseif "small wooden planter" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "small wooden planter"
1147                                    setvar! gardeningSpecialPlanter 1
1148                                elseif "huge steel plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "huge steel plant bowl"
1149                                    setvar! gardeningSpecialPlanter 1
1150                                elseif "large steel plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "large steel plant bowl"
1151                                    setvar! gardeningSpecialPlanter 1
1152                                elseif "average steel plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "average steel plant bowl"
1153                                    setvar! gardeningSpecialPlanter 1
1154                                elseif "small steel plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "small steel plant bowl"
1155                                    setvar! gardeningSpecialPlanter 1
1156                                elseif "tiny steel plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "tiny steel plant bowl"
1157                                    setvar! gardeningSpecialPlanter 1
1158                                elseif "huge clay plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "huge clay plant bowl"
1159                                    setvar! gardeningSpecialPlanter 1
1160                                elseif "large clay plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "large clay plant bowl"
1161                                    setvar! gardeningSpecialPlanter 1                    
1162                                elseif "average clay plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "average clay plant bowl"
1163                                    setvar! gardeningSpecialPlanter 1
1164                                elseif "small clay plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "small clay plant bowl"
1165                                    setvar! gardeningSpecialPlanter 1
1166                                elseif "tiny clay plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "tiny clay plant bowl"
1167                                    setvar! gardeningSpecialPlanter 1
1168                                else
1169                                    setvar! gardeningSpecialPlanter 0
1170                                endif
1171                            else 
1172                                setvar! gardeningSpecialPlanter 1
1173                            endif
1174                        else
1175                            setvar! gardeningSpecialPlanter 1
1176                        endif
1177                        if gardeningSelectiveBuffs = 1 and gardeningSpecialPlanter = 1 or gardeningSelectiveBuffs = 0
1178                            //Apply superior, exceptional and store-bought items
1179                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Growth Serum" and findtype 20500|20499|20498 backpack as myNewGrowthSerum
1180                                if gardeningDebugMode > 1    
1181                                    sysmsg "[Gardening] ... installing growth serum (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1182                                endif
1183                                gumpresponse 2 gardeningPlantGumpID
1184                                wft gardeningMaxWaitForServerResponse
1185                                target myNewGrowthSerum
1186                                settimer gardeningMinWaitTimer 0
1187                                getlabel backpack waitForPing
1188                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1189                                endwhile
1190                            endif
1191                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Heat Filter" and findtype 28719|11942|28741 backpack as myNewHeatFilter
1192                                if gardeningDebugMode > 1
1193                                    sysmsg "[Gardening] ... installing heat filter (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1194                                endif
1195                                gumpresponse 2 gardeningPlantGumpID
1196                                wft gardeningMaxWaitForServerResponse
1197                                target myNewHeatFilter
1198                                settimer gardeningMinWaitTimer 0
1199                                getlabel backpack waitForPing
1200                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1201                                endwhile
1202                            endif
1203                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Fertilizer" and findtype 29217|19403|4154 backpack as myNewFertilizer
1204                                if gardeningDebugMode > 1
1205                                    sysmsg "[Gardening] ... installing fertilizer (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1206                                endif
1207                                gumpresponse 2 gardeningPlantGumpID
1208                                wft gardeningMaxWaitForServerResponse
1209                                target myNewFertilizer
1210                                settimer gardeningMinWaitTimer 0
1211                                getlabel backpack waitForPing
1212                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1213                                endwhile
1214                            endif
1215                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Purified Water" and findtype 20503|20502|20501 backpack as myNewPurifiedWater
1216                                if gardeningDebugMode > 1
1217                                    sysmsg "[Gardening] ... installing purified water (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1218                                endif
1219                                gumpresponse 2 gardeningPlantGumpID
1220                                wft gardeningMaxWaitForServerResponse
1221                                target myNewPurifiedWater
1222                                settimer gardeningMinWaitTimer 0
1223                                getlabel backpack waitForPing
1224                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1225                                endwhile
1226                            endif
1227                        elseif gardeningSelectiveBuffs = 2 and gardeningSpecialPlanter = 1                    
1228                            //Apply superior and exceptional items only
1229                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Growth Serum" and findtype 20500|20499 backpack as myNewGrowthSerum
1230                                if gardeningDebugMode > 1    
1231                                    sysmsg "[Gardening] ... installing growth serum (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1232                                endif
1233                                gumpresponse 2 gardeningPlantGumpID
1234                                wft gardeningMaxWaitForServerResponse
1235                                target myNewGrowthSerum
1236                                settimer gardeningMinWaitTimer 0
1237                                getlabel backpack waitForPing
1238                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1239                                endwhile
1240                            endif
1241                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Heat Filter" and findtype 28719|11942 backpack as myNewHeatFilter
1242                                if gardeningDebugMode > 1
1243                                    sysmsg "[Gardening] ... installing heat filter (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1244                                endif
1245                                gumpresponse 2 gardeningPlantGumpID
1246                                wft gardeningMaxWaitForServerResponse
1247                                target myNewHeatFilter
1248                                settimer gardeningMinWaitTimer 0
1249                                getlabel backpack waitForPing
1250                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1251                                endwhile
1252                            endif
1253                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Fertilizer" and findtype 29217|19403 backpack as myNewFertilizer
1254                                if gardeningDebugMode > 1
1255                                    sysmsg "[Gardening] ... installing fertilizer (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1256                                endif
1257                                gumpresponse 2 gardeningPlantGumpID
1258                                wft gardeningMaxWaitForServerResponse
1259                                target myNewFertilizer
1260                                settimer gardeningMinWaitTimer 0
1261                                getlabel backpack waitForPing
1262                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1263                                endwhile
1264                            endif
1265                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Purified Water" and findtype 20503|20502 backpack as myNewPurifiedWater
1266                                if gardeningDebugMode > 1
1267                                    sysmsg "[Gardening] ... installing purified water (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1268                                endif
1269                                gumpresponse 2 gardeningPlantGumpID
1270                                wft gardeningMaxWaitForServerResponse
1271                                target myNewPurifiedWater
1272                                settimer gardeningMinWaitTimer 0
1273                                getlabel backpack waitForPing
1274                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1275                                endwhile
1276                            endif
1277                        elseif gardeningSelectiveBuffs = 2 and gardeningSpecialPlanter = 0
1278                            //Apply only store-bought items
1279                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Growth Serum" and findtype 20498 backpack as myNewGrowthSerum
1280                                if gardeningDebugMode > 1    
1281                                    sysmsg "[Gardening] ... installing growth serum (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1282                                endif
1283                                gumpresponse 2 gardeningPlantGumpID
1284                                wft gardeningMaxWaitForServerResponse
1285                                target myNewGrowthSerum
1286                                settimer gardeningMinWaitTimer 0
1287                                getlabel backpack waitForPing
1288                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1289                                endwhile
1290                            endif
1291                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Heat Filter" and findtype 28741 backpack as myNewHeatFilter
1292                                if gardeningDebugMode > 1
1293                                    sysmsg "[Gardening] ... installing heat filter (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1294                                endif
1295                                gumpresponse 2 gardeningPlantGumpID
1296                                wft gardeningMaxWaitForServerResponse
1297                                target myNewHeatFilter
1298                                settimer gardeningMinWaitTimer 0
1299                                getlabel backpack waitForPing
1300                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1301                                endwhile
1302                            endif
1303                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Fertilizer" and findtype 4154 backpack as myNewFertilizer
1304                                if gardeningDebugMode > 1
1305                                    sysmsg "[Gardening] ... installing fertilizer (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1306                                endif
1307                                gumpresponse 2 gardeningPlantGumpID
1308                                wft gardeningMaxWaitForServerResponse
1309                                target myNewFertilizer
1310                                settimer gardeningMinWaitTimer 0
1311                                getlabel backpack waitForPing
1312                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1313                                endwhile
1314                            endif
1315                            if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Purified Water" and findtype 20501 backpack as myNewPurifiedWater
1316                                if gardeningDebugMode > 1
1317                                    sysmsg "[Gardening] ... installing purified water (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1318                                endif
1319                                gumpresponse 2 gardeningPlantGumpID
1320                                wft gardeningMaxWaitForServerResponse
1321                                target myNewPurifiedWater
1322                                settimer gardeningMinWaitTimer 0
1323                                getlabel backpack waitForPing
1324                                while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1325                                endwhile
1326                            endif
1327                        endif
1328                    endif
1329                endif
1330                //Labor and Toil
1331                if findtype 29868 backpack as myPlanterSpade and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."
1332                    if gardeningDebugMode > 1
1333                        sysmsg "[Gardening] ... labor and toil (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1334                    endif
1335                    if not gumpexists 1429840072
1336                        gumpresponse 2 gardeningPlantGumpID    
1337                        wft gardeningMaxWaitForServerResponse
1338                        target myPlanterSpade
1339                        waitforgump 1429840072 gardeningMaxWaitForServerResponse
1340                    endif
1341                    gumpresponse 6 1429840072
1342                    waitforgump 1429840072 gardeningMaxWaitForServerResponse
1343                    gumpclose 1429840072
1344                endif
1345            endif
1346        endif
1347        
1348        gumpclose gardeningPlantGumpID
1349        
1350        if not insysmsg "That is not a plant seed." and not insysmsg "That plant bowl is too far away."
1351            if gardeningSkipPlanterOverheadInfo = 0
1352                overhead "Done" cGreen myFlowerPot
1353                overhead "" cGreen myFlowerPot
1354            endif
1355            if gardeningDebugMode > 0
1356                sysmsg "[Gardening] Plant Done (Serial: {{myFlowerPot}}) ... Timer: {{gardeningRunTimer}} ms" cLightBlue
1357            endif
1358            @ignore myFlowerPot
1359        else
1360            if gardeningSkipPlanterOverheadInfo = 0
1361                overhead "Failed" cRed myFlowerPot
1362                overhead "" cRed myFlowerPot
1363            endif
1364            if gardeningDebugMode > 0
1365                sysmsg "[Gardening] Plant Failed (Serial: {{myFlowerPot}}) ... Timer: {{gardeningRunTimer}} ms" cLightBlue
1366            endif
1367        endif
1368        
1369        settimer gardeningOverheadTimer -500
1370    endif
1371
1372endwhile
1373
1374//Cleanup
1375removetimer globalWorldSaveTimer
1376removetimer gardeningOverheadTimer
1377removetimer gardeningRunTimer
1378removetimer gardeningMinWaitTimer
1379removetimer gardeningRestartTimer
1380removelist gardeningSelectiveBuffList
1381removelist gardeningSpecialSeedList
1382removelist gardeningSpecialPlanterList
1383removelist gardeningFungiCounterList
1384removelist gardeningCreatureCounterList
1385@clearignore
1386
1387setvar! gardeningDone 1
1388overhead "|* Gardening Done *|" cGreen
1389
1390//General gardening information and relevant system messages
1391    #Plant gump ID gardeningPlantGumpID
1392        #Effects info button: gumpresponse 10 - 13
1393        #Effects next page arrow: gumpresponse 7
1394    #Water gump ID 3929333591
1395    #Soil gump ID 4024474571
1396    #Spade gump ID 1429840072
1397    #Flower pot getlabel info with seed placed: "% grown)"  -> in progress, "ready for harvest" -> done
1398    #Always remove pestilent effects, because there are no positive ones    
1399    #Mushroom effect strength (good and bad): troop (50 %) -> cluster (100 %) -> grove (150 %)
1400        #      BAD      <->     GOOD
1401        #black mushroom <-> orange mushroom (heat)
1402        #white mushroom <-> green mushroom (soil)
1403        #red mushroom   <-> blue mushroom (water)
1404
1405    //Watering Can (only works with item in backpack, game does not allow item to be on ground)
1406        #Fill can:
1407            #You completely fill the water container.
1408            #You partialy fill the watering can from what water you can find nearby.
1409            #You do not see any nearby water containers to fill this from.
1410        #Water plant:
1411            #You add the ideal amount of water to the plant.
1412            #You add some water to the plant (unable to meet ideal amount needed)..
1413        #Water needed:
1414            #You have not yet estimated this plant's ideal water needs.
1415            #You have already met this plant's ideal water needs.
1416        #Too much water:
1417            #You have already added more water than this plant's ideal needs.
1418
1419    //Soil (only works with item in backpack, game does not allow item to be on ground)
1420        #Add soil:
1421            #You add the ideal amount of soil to the plant.
1422            #You add some soil to the plant (unable to meet ideal amount needed)..
1423        #Soil needed:
1424            #You have not yet estimated this plant's ideal soil needs.
1425            #You have already met this plant's ideal soil needs.
1426        #Too much soil:
1427            #You have already added more soil than this plant's ideal needs.
1428            
1429    //Buff items (better quality items add prefixes and change the % values, use basic item description until ":" to descriminate system messages from buffs/debuffs)
1430        #Growth Serum: Increases total growth rate by ...%.
1431        #Heat Filter: Increases the growth impact of achieving an ideal heat level by ...%.
1432        #Fertilizer: Increases the growth impact of achieving an ideal soil level by ...%.
1433        #Purified Water: Increases the growth impact of achieving an ideal water level by ...%.
1434        
1435    //Hostile effects sysmsgs
1436
1437        //Creature - all done: There are no active creature effects in this plant bowl.
1438            #Flies Infestation: Reduces total growth rate by 10% (Creature Effect).
1439            #Rat Infestation: Reduces total growth rate by 11% (Creature Effect).
1440            #Frog Infestation: Reduces total growth rate by 12% (Creature Effect).
1441            #Giant Slug Infestation: Reduces total growth rate by 13% (Creature Effect).
1442            #?
1443            #Giant Locust Infestation: Reduces total growth rate by 15% (Creature Effect).
1444            #Goat Infestation: Reduces total growth rate by 16% (Creature Effect).
1445            #Giant Beetle Infestation: Reduces total growth rate by 17% (Creature Effect).
1446            #Juvenile Crawler Infestation: Reduces total growth rate by 18% (Creature Effect).
1447            #Deer Infestation: Reduces total growth rate by 19% (Creature Effect).
1448            #Plaguemite Infestation: Reduces total growth rate by 20% (Creature Effect).
1449            
1450        //Fungal - all done sysmsg: There are no active fungal effects in this plant bowl.
1451            #Brain Fungi: Has a 66% chance to negate the effects of Defoliants, Fungicides, and Farmer's Almanacs when used.
1452                #Remove fail sysmsg: A sentient brain fungi has adapted and negated the effects of your fungicide!
1453                #Remove success sysmsg: You use a fungicide to remove a fungus from the plant bowl (Brain Fungi).
1454
1455            #Black Mushroom Troop: Reduces the growth impact of achieving an ideal heat level by 50% (Fungal Effect).
1456            #Black Mushroom Cluster: Reduces the growth impact of achieving an ideal heat level by 100% (Fungal Effect).
1457            #Black Mushroom Grove: Reduces the growth impact of achieving an ideal heat level by 150% (Fungal Effect).
1458            #Red Mushroom Troop: Reduces the growth impact of achieving an ideal water level by 50% (Fungal Effect).
1459            #Red Mushroom Cluster: Reduces the growth impact of achieving an ideal water level by 100% (Fungal Effect).
1460            #Red Mushroom Grove: Reduces the growth impact of achieving an ideal water level by 150% (Fungal Effect).
1461            #White Mushroom Troop: Reduces the growth impact of achieving an ideal soil level by 50% (Fungal Effect).
1462            #White Mushroom Cluster: Reduces the growth impact of achieving an ideal soil level by 100% (Fungal Effect).
1463            #White Mushroom Grove: Reduces the growth impact of achieving an ideal soil level by 150% (Fungal Effect).
1464            
1465        //Pestilent - all done: There are no active pestilent effects in this plant bowl.
1466            #Nox Cloud: Reduces the growth impact of achieving an ideal heat level by 75% (Pestilent Effect).
1467            #Strange Slime: Reduces the growth impact of achieving an ideal soil level by 75% (Pestilent Effect).
1468            #Deathmold: Reduces the growth impact of achieving an ideal water level by 75% (Pestilent Effect).
1469            #Corpseweed: Reduces the growth impact of achieving an ideal heat, water, and soil level by 25 each% (Pestilent Effect).
1470            
1471    //Beneficial effects sysmsgs
1472        
1473        #Lucky Clovers (Cannot be removed): Increases total growth rate by 200%. 
1474
1475        //Creature
1476            #Spider: Prevents Flies, Rats, Frogs, Giant Slugs, Giant Locusts, and Giant Beetles (Creature Effect).    
1477            #Arboreal Wisp: Prevents all creature effects. (Creature Effect)
1478            #Bees: Increases total growth rate by 50% (Creature Effect).
1479            
1480        //Fungal
1481            #Orange Mushroom Troop: Increases the growth impact of achieving an ideal heat level by 50% (Fungal Effect).
1482            #Orange Mushroom Cluster: Increases the growth impact of achieving an ideal heat level by 100% (Fungal Effect).
1483            #Orange Mushroom Grove: Increases the growth impact of achieving an ideal heat level by 150% (Fungal Effect).
1484            #Blue Mushroom Troop: Increases the growth impact of achieving an ideal water level by 50% (Fungal Effect).
1485            #Blue Mushroom Cluster: Increases the growth impact of achieving an ideal water level by 100% (Fungal Effect).
1486            #Blue Mushroom Grove: Increases the growth impact of achieving an ideal water level by 150% (Fungal Effect).        
1487            #Green Mushroom Troop: Increases the growth impact of achieving an ideal soil level by 50% (Fungal Effect).
1488            #Green Mushroom Cluster: Increases the growth impact of achieving an ideal soil level by 100% (Fungal Effect).
1489            #Green Mushroom Grove: Increases the growth impact of achieving an ideal soil level by 150% (Fungal Effect).