Tutorial Trigger Shortening Using Loops

elmstfreddie

The Finglonger
Reaction score
203
I'm SURE there's other tutorials on this... But I'm bored and I wanna write a tutorial :)
Note: This tutorial may be basic to some of you, but I think it could still be useful for many :)

Step 1: Unit Groups
I'm sure a lot of you use the action
Code:
Unit Group - Pick every unit in (<<a place>>) and do (Actions)
    Loop - Actions
This function is fine, but if underneath it you put something like Create 1 unit, it causes massive lag. If you are just using a unit group to count how many units there are, you should use something like the following instead.
Code:
Unit - Create (Number of units in (<<a place>>)) Footman for Player 1 (Red) at (<<spawning place>>) facing Default building facing degrees
It uses the same idea of picking every unit, but it only counts once, then makes that many amount of units instead of making a unit when it counts one in the group.

Step 2: Shortening If/Then/Else

The title may be misleading, but what I mean is when you have many If/Then/Elses, like under Then you have another If/Then/Else, then you have another... Until your trigger becomes massive.

Ability If/Then/Elses
Probably the most common If/Then/Else is with triggered spells, something like this:
Code:
Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        If - Conditions
            (Level of Acid Bomb for (Triggering unit)) Equal to 1
        Then - Actions
            Unit - Create 1 Footman for (Owner of (Triggering unit)) at (Center of (Playable map area)) facing Default building facing degrees
            Unit - Set level of Animate Dead for (Last created unit) to 1
        Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    (Level of Acid Bomb for (Triggering unit)) Equal to 2
                Then - Actions
                    Unit - Create 1 Footman for (Owner of (Triggering unit)) at (Center of (Playable map area)) facing Default building facing degrees
                    Unit - Set level of Animate Dead for (Last created unit) to 2
                Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            (Level of Acid Bomb for (Triggering unit)) Equal to 3
                        Then - Actions
                            Unit - Create 1 Footman for (Owner of (Triggering unit)) at (Center of (Playable map area)) facing Default building facing degrees
                            Unit - Set level of Animate Dead for (Last created unit) to 3
                        Else - Actions
Now, yes, this works, but is very ugly and long. This can be simplified EASILY. You just use:
Code:
Actions
    Unit - Create 1 Footman for (Owner of (Triggering unit)) at (Center of (Playable map area)) facing Default building facing degrees
    Unit - Set level of Animate Dead for (Last created unit) to (Level of Acid Bomb for (Triggering unit))
Most of you probably know that, but some of you still probably do this for varying numbers that aren't simply the ability level. This is what I mean:
Code:
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
        (Level of Acid Bomb for (Triggering unit)) Equal to 1
    Then - Actions
        Unit - Create 100 Footman for (Owner of (Triggering unit)) at (Center of (Playable map area)) facing Default building facing degrees
    Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Acid Bomb for (Triggering unit)) Equal to 2
            Then - Actions
                Unit - Create 200 Footman for (Owner of (Triggering unit)) at (Center of (Playable map area)) facing Default building facing degrees
            Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Level of Acid Bomb for (Triggering unit)) Equal to 3
                    Then - Actions
                        Unit - Create 300 Footman for (Owner of (Triggering unit)) at (Center of (Playable map area)) facing Default building facing degrees
                    Else - Actions
This can be simplified with math like so:
Code:
Unit - Create (100 x (Level of Acid Bomb for (Triggering unit))) Footman for (Owner of (Triggering unit)) at (Center of (Playable map area)) facing Default building facing degrees
So instead of having many if/then/elses, this just creates 100*level of the ability footmen. Obviously you shouldn't be making this many units in a spell, so it is more likely you would use it with a range. For instance, you could say:
Code:
Unit Group - Pick every unit in (Units within (300.00 + (50.00 x (Real((Level of Acid Bomb for (Triggering unit)))))) of (Center of (Playable map area))) and do (Actions)
As I said in step 1, you should not be using unit groups. I only used one as an example. (300.00 + (50.00 x (Real((Level of Acid Bomb for (Triggering unit))))) pretty much means if it's level one, units within 350. Level 2, units within 400. Level 3, units within 450. And so on and so on for more levels.

String If/Then/Elses

Another way you may have really long If/Then/Else triggers is if you check units in regions, by doing something like If a unit is in this region, then do whatever. If it's not, then check if it's in this OTHER region. This can be WAY too long if you have a LOT of regions. The best thing to do, is have a region variable with an array of the amount of regions in your map. We will refer to this variable as MapRegions. The best way to simplify this: Integer loops. If you don't know what integer loops are, you could read my tutorial, but you shouldn't have to understand them to understand this trigger.
Note: You will need a seperate trigger that sets the MapRegion variable's arrays to the map's regions. This is the only con when using this shortening trick.
Code:
For each (Integer A) from 1 to <<set this to the amount of regions in your map>>, do (Actions)
    Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (MapRegions[(Integer A)] contains (<<your unit>>) Equal to True
            Then - Actions
                <<your actions here>>
            Else - Actions
That's all you would need, instead of a long trigger of If/Then/Elses.

Another reason people may have long If/Then/Elses is if they are checking entered chat strings. For example, a colour changing trigger:
Code:
    Events
        Player - Player 1 (Red) types a chat message containing - as A substring
        Player - Player 2 (Blue) types a chat message containing - as A substring
        Player - Player 3 (Teal) types a chat message containing - as A substring
        Player - Player 4 (Purple) types a chat message containing - as A substring
        Player - Player 5 (Yellow) types a chat message containing - as A substring
        Player - Player 6 (Orange) types a chat message containing - as A substring
        Player - Player 7 (Green) types a chat message containing - as A substring
        Player - Player 8 (Pink) types a chat message containing - as A substring
        Player - Player 9 (Gray) types a chat message containing - as A substring
        Player - Player 10 (Light Blue) types a chat message containing - as A substring
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Entered chat string) Equal to -Red
            Then - Actions
                Player - Change color of (Triggering player) to Red, Changing color of existing units
            Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Entered chat string) Equal to -Blue
                    Then - Actions
                        Player - Change color of (Triggering player) to Blue, Changing color of existing units
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Entered chat string) Equal to -Teal
                            Then - Actions
                                Player - Change color of (Triggering player) to Teal, Changing color of existing units
                            Else - Actions
As you can see it's very long and time wasting, and there's a way to shorten this using loops and variables again. First, make a string variable. We'll refer to it has String. Give it an array of 12, the number of colours (and possibly 13 if you want to include black). We'll also need a Player Colour variable, also with an array of 13. Have a trigger on map initialization setting the variables to the different colours like so:
Code:
    Events
        Map initialization
    Conditions
    Actions
        Set String[1] = -red
        Set String[2] = -blue
        Set String[3] = -teal
        Set String[4] = -purple
        Set String[5] = -yellow
        Set String[6] = -orange
        Set String[7] = -green
        Set String[8] = -pink
        Set String[9] = -grey
        Set String[10] = -light blue
        Set String[11] = -dark green
        Set String[12] = -brown
        Set String[13] = -black
        Set PlayerColours[1] = Red
        Set PlayerColours[2] = Blue
        Set PlayerColours[3] = Teal
        Set PlayerColours[4] = Purple
        Set PlayerColours[5] = Yellow
        Set PlayerColours[6] = Orange
        Set PlayerColours[7] = Green
        Set PlayerColours[8] = Pink
        Set PlayerColours[9] = Gray
        Set PlayerColours[10] = Light Blue
        Set PlayerColours[11] = Dark Green
        Set PlayerColours[12] = Brown
        Set PlayerColours[13] = Black
This may appear long, but this will extremely shorten your colour changing trigger, and also you can now use these variables on a different trigger.
Ok, so now lets fix your massive amount of If/Then/Elses into 1 loop. Lets use Integer B this time.
Code:
    Events
        Player - Player 1 (Red) types a chat message containing - as A substring
        Player - Player 2 (Blue) types a chat message containing - as A substring
        Player - Player 3 (Teal) types a chat message containing - as A substring
        Player - Player 4 (Purple) types a chat message containing - as A substring
        Player - Player 5 (Yellow) types a chat message containing - as A substring
        Player - Player 6 (Orange) types a chat message containing - as A substring
        Player - Player 7 (Green) types a chat message containing - as A substring
        Player - Player 8 (Pink) types a chat message containing - as A substring
        Player - Player 9 (Gray) types a chat message containing - as A substring
        Player - Player 10 (Light Blue) types a chat message containing - as A substring
    Conditions
    Actions
        For each (Integer B) from 1 to 13, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Entered chat string) Equal to String[(Integer B)]
                    Then - Actions
                        Player - Change color of (Triggering player) to PlayerColours[(Integer B)], Changing color of existing units
                    Else - Actions
Note: There is no difference between Integer A and B.
As you can see, the trigger is a LOT shorter. I used If/Then/Else once (it's using if/then/else multiple functions so that it's easier for you to see, you can use the normal if/then/else) and a loop once, shortening the trigger dramatically. Now, when a player types -red all the way to -black, their units and colour will change to that. The same shortening technique can be utilized for taking over a player, except you use a player variable, and not a string variable.



Any other long triggers ya got? Post em here.

Other Links:
Integer A B - This in an integer tutorial, explaining some other ways you can use the looping features, and explaining the loop feature.
 
I

IKilledKEnny

Guest
Nice topic, I wanted to do that once, but instead I just made a tutorial that explains the loops, not how to use them / not to use them. However I don't think this is a very good tutorial, sorry. You didn't explain very well, and the examples where pretty bad and you did things that almost anyone after a week could do.

Anyway, sorry if this comment is nasty. :( Keep writing tutorials! I love to read them, doesn't matter if I like them or not. :p
 

Thanatos_820

Death is Not the End
Reaction score
91
Hmm...here's my Difficulty trigger, what's this process called?

Code:
Difficulty
    Events
        Player - Player 1 (Red) types a chat message containing <Empty String> as An exact match
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Entered chat string) Equal to -Genin
            Then - Actions
                Unit - Set life of (Picked unit) to 75.00%
                Unit - Set mana of (Picked unit) to 75.00%
                Wait 0.10 seconds
                Trigger - Turn off (This trigger)
            Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Entered chat string) Equal to -Chuunin
                    Then - Actions
                        Unit - Set life of (Picked unit) to (100.00 + 25.00)%
                        Unit - Set mana of (Picked unit) to (100.00 + 25.00)%
                        Wait 0.10 seconds
                        Trigger - Turn off (This trigger)
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Entered chat string) Equal to -Special Jounin
                            Then - Actions
                                Unit - Set life of (Picked unit) to (100.00 + 50.00)%
                                Unit - Set mana of (Picked unit) to (100.00 + 50.00)%
                                Wait 0.10 seconds
                                Trigger - Turn off (This trigger)
                            Else - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        (Entered chat string) Equal to -Jounin
                                    Then - Actions
                                        Unit - Set life of (Picked unit) to (100.00 + 75.00)%
                                        Unit - Set mana of (Picked unit) to (100.00 + 75.00)%
                                        Wait 0.10 seconds
                                        Trigger - Turn off (This trigger)
                                    Else - Actions
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            If - Conditions
                                                (Entered chat string) Equal to -ANBU
                                            Then - Actions
                                                Unit - Set life of (Picked unit) to (100.00 + 100.00)%
                                                Unit - Set mana of (Picked unit) to (100.00 + 100.00)%
                                                Wait 0.10 seconds
                                                Trigger - Turn off (This trigger)
                                            Else - Actions
                                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    If - Conditions
                                                        (Entered chat string) Equal to -Hokage
                                                    Then - Actions
                                                        Unit - Set life of (Picked unit) to (100.00 + 125.00)%
                                                        Unit - Set mana of (Picked unit) to (100.00 + 125.00)%
                                                        Wait 0.10 seconds
                                                        Trigger - Turn off (This trigger)
                                                    Else - Actions
                                                        Do nothing

Yeah, it's from my Naruto ORPG :p. This trigger is what kind?
 

Chocobo

White-Flower
Reaction score
409
Hmm...here's my Difficulty trigger, what's this process called?

Code:
Difficulty
    Events
        Player - Player 1 (Red) types a chat message containing <Empty String> as An exact match
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Entered chat string) Equal to -Genin
            Then - Actions
                Unit - Set life of (Picked unit) to 75.00%
                Unit - Set mana of (Picked unit) to 75.00%
                Wait 0.10 seconds
                Trigger - Turn off (This trigger)
            Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Entered chat string) Equal to -Chuunin
                    Then - Actions
                        Unit - Set life of (Picked unit) to (100.00 + 25.00)%
                        Unit - Set mana of (Picked unit) to (100.00 + 25.00)%
                        Wait 0.10 seconds
                        Trigger - Turn off (This trigger)
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Entered chat string) Equal to -Special Jounin
                            Then - Actions
                                Unit - Set life of (Picked unit) to (100.00 + 50.00)%
                                Unit - Set mana of (Picked unit) to (100.00 + 50.00)%
                                Wait 0.10 seconds
                                Trigger - Turn off (This trigger)
                            Else - Actions
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        (Entered chat string) Equal to -Jounin
                                    Then - Actions
                                        Unit - Set life of (Picked unit) to (100.00 + 75.00)%
                                        Unit - Set mana of (Picked unit) to (100.00 + 75.00)%
                                        Wait 0.10 seconds
                                        Trigger - Turn off (This trigger)
                                    Else - Actions
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            If - Conditions
                                                (Entered chat string) Equal to -ANBU
                                            Then - Actions
                                                Unit - Set life of (Picked unit) to (100.00 + 100.00)%
                                                Unit - Set mana of (Picked unit) to (100.00 + 100.00)%
                                                Wait 0.10 seconds
                                                Trigger - Turn off (This trigger)
                                            Else - Actions
                                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                    If - Conditions
                                                        (Entered chat string) Equal to -Hokage
                                                    Then - Actions
                                                        Unit - Set life of (Picked unit) to (100.00 + 125.00)%
                                                        Unit - Set mana of (Picked unit) to (100.00 + 125.00)%
                                                        Wait 0.10 seconds
                                                        Trigger - Turn off (This trigger)
                                                    Else - Actions
                                                        Do nothing

Yeah, it's from my Naruto ORPG :p. This trigger is what kind?

(Picked unit) refers to nothing.
 

elmstfreddie

The Finglonger
Reaction score
203
Hmmm, there's something I should add. You see, instead of having massive if/then/elses, you could have a string variable with an array, and at the beginning you set the arrays to your different strings (set String[1] = Genin, etc). Then you have a loop checking the diff strings... Here, I'll add that to my tutorial.

(as for the complaining guy, those are the best examples I can think of. Sorry!)

Edit > Ok, yours is slightly different, but still use my example without the Player Colour variable. What you should do, is under the loop, you say set life to (100 + (25*(Integer A))%). For that you would need to set the String array to 4. Skip your first one, since it's different. Set String[1] to Chuunin, then in descending order. Then outside of your loop, have a different If/Then/Else saying If entered chat string = -Genin, then do the 75% thing.

BTW: Name of your process: Stupid!
lol. JK, common error, that's why I made this tutorial.
 

Chocobo

White-Flower
Reaction score
409
Hmmm, there's something I should add. You see, instead of having massive if/then/elses, you could have a string variable with an array, and at the beginning you set the arrays to your different strings (set String[1] = Genin, etc). Then you have a loop checking the diff strings... Here, I'll add that to my tutorial.

(as for the complaining guy, those are the best examples I can think of. Sorry!)

Edit > Ok, yours is slightly different, but still use my example without the Player Colour variable. What you should do, is under the loop, you say set life to (100 + (25*(Integer A))%). For that you would need to set the String array to 4. Skip your first one, since it's different. Set String[1] to Chuunin, then in descending order. Then outside of your loop, have a different If/Then/Else saying If entered chat string = -Genin, then do the 75% thing.

BTW: Name of your process: Stupid!
lol. JK, common error, that's why I made this tutorial.

Well, his trigger can not work after 2 loop because 125% = 100%, 150% = 100%.. and so on.
 

elmstfreddie

The Finglonger
Reaction score
203
Last bump; I need to know if this is useful to anyone lol
If not, I'll stop bumping :p

Dang, it appears the title inside the thread changed, but not OUTSIDE the thread :p
Please know this tutorial is for shortening triggers not necessarily with loops :)
 

hellmonja27

Member
Reaction score
16
ok i have a question. let's say i want to make a spell that takes a Single-Target Spell and i want to make it an AoE, let's say the classic Mass Sleep. how do i substitute a "Pick Every Unit" function for a Loop one? sori, i really can't seem to picture from your tutorial how i'd do it...
 

Sir Gordon

Decent User (I'm as good as you)
Reaction score
43
>I'm SURE there's other tutorials on this... But I'm bored and I wanna write a tutorial
What a reason...:eek:

well, a pretty fine tutorial, but it's one of the many :p
 

Andrewgosu

The Silent Pandaren Helper
Reaction score
716
Why do you want to do that, anyway?

Code:
Mass Stun
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Point Target 
    Actions
        Set TmpGroup = (Units within 200.00 of (Target point of ability being cast) matching (((Matching unit) is Magic Immune) Not equal to True))
        Unit Group - Pick every unit in TmpGroup and do (Actions)
            Loop - Actions
                Set TmpPoint = (Position of (Picked unit))
                Unit - Create 1 Dummy Unit for (Owner of (Triggering unit)) at TmpPoint facing 0.00 degrees
                Unit - Add Sleep to (Last created unit)
                Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                Unit - Order (Last created unit) to Undead Dreadlord - Sleep (Picked unit)
                Custom script:   call RemoveLocation( udg_TmpPoint )
        Custom script:   call DestroyGroup( udg_TmpGroup )

Replaced with "Integer A" loop, if that is, what you mean.

Code:
Mass Stun
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Point Target 
    Actions
        Set TmpGroup = (Units within 200.00 of (Target point of ability being cast) matching (((Matching unit) is Magic Immune) Not equal to True))
        For each (Integer A) from 1 to (Number of units in TmpGroup), do (Actions)
            Loop - Actions
                Set TmpPoint = (Position of ([B]Picked unit[/B]))
                Unit - Create 1 Dummy Unit for (Owner of (Triggering unit)) at TmpPoint facing 0.00 degrees
                Unit - Add Sleep to (Last created unit)
                Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                Unit - Order (Last created unit) to Undead Dreadlord - Sleep ([B]Picked unit[/B])
                Custom script:   call RemoveLocation( udg_TmpPoint )
        Custom script:   call DestroyGroup( udg_TmpGroup )

Now you cannot access the picked unit.
 

waaaks!

Zinctified
Reaction score
255
nice tuturial, many world editor begginers will learn, including me but i had learned it already, before you had post this tutorial

+rep
 

hellmonja27

Member
Reaction score
16
Why do you want to do that, anyway?
Now you cannot access the picked unit.

that's what i've been thinking. but according to this tutorial i should stop using the "Pick Every Unit" function and use a loop instead. since i'm trying everything just to shed off more seconds off my loading time i assume he has some magic way of doing things other wise, and i want to know it...
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,494
> according to this tutorial I should stop using the "Pick Every Unit" function and use a loop instead

According to AceHart, you should real quick get back to "pick every unit".

Didn't your mom tell you not to trust strange tutorials?


That said, what could this possibly have to do with loading time?
 

elmstfreddie

The Finglonger
Reaction score
203
.. lol

Anyhow, you should avoid using it for certain things is what I mean, but it still should be used. For example, you shouldn't use Pick every unit in group and do make 1 unit, you should make (number of units in(unit group)) instead.

Strange tutorials..? :( lol
 

hellmonja27

Member
Reaction score
16
> according to this tutorial I should stop using the "Pick Every Unit" function and use a loop instead

According to AceHart, you should real quick get back to "pick every unit".

Didn't your mom tell you not to trust strange tutorials?


That said, what could this possibly have to do with loading time?
will do , sir. i made a thread asking for help on my loading time and i was linked here. like i said i will try anything to speed up my loading time.

oh and Elms, it's not that the tutorial is bad. it's actually a good one and i've used it to optimize some of my triggers. i just got confused on that part...
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Varine Varine:
    How can you tell the difference between real traffic and indexing or AI generation bots?
  • The Helper The Helper:
    The bots will show up as users online in the forum software but they do not show up in my stats tracking. I am sure there are bots in the stats but the way alot of the bots treat the site do not show up on the stats
  • Varine Varine:
    I want to build a filtration system for my 3d printer, and that shit is so much more complicated than I thought it would be
  • Varine Varine:
    Apparently ABS emits styrene particulates which can be like .2 micrometers, which idk if the VOC detectors I have can even catch that
  • Varine Varine:
    Anyway I need to get some of those sensors and two air pressure sensors installed before an after the filters, which I need to figure out how to calculate the necessary pressure for and I have yet to find anything that tells me how to actually do that, just the cfm ratings
  • Varine Varine:
    And then I have to set up an arduino board to read those sensors, which I also don't know very much about but I have a whole bunch of crash course things for that
  • Varine Varine:
    These sensors are also a lot more than I thought they would be. Like 5 to 10 each, idk why but I assumed they would be like 2 dollars
  • Varine Varine:
    Another issue I'm learning is that a lot of the air quality sensors don't work at very high ambient temperatures. I'm planning on heating this enclosure to like 60C or so, and that's the upper limit of their functionality
  • Varine Varine:
    Although I don't know if I need to actually actively heat it or just let the plate and hotend bring the ambient temp to whatever it will, but even then I need to figure out an exfiltration for hot air. I think I kind of know what to do but it's still fucking confusing
  • The Helper The Helper:
    Maybe you could find some of that information from AC tech - like how they detect freon and such
  • Varine Varine:
    That's mostly what I've been looking at
  • Varine Varine:
    I don't think I'm dealing with quite the same pressures though, at the very least its a significantly smaller system. For the time being I'm just going to put together a quick scrubby box though and hope it works good enough to not make my house toxic
  • Varine Varine:
    I mean I don't use this enough to pose any significant danger I don't think, but I would still rather not be throwing styrene all over the air
  • The Helper The Helper:
    New dessert added to recipes Southern Pecan Praline Cake https://www.thehelper.net/threads/recipe-southern-pecan-praline-cake.193555/
  • The Helper The Helper:
    Another bot invasion 493 members online most of them bots that do not show up on stats
  • Varine Varine:
    I'm looking at a solid 378 guests, but 3 members. Of which two are me and VSNES. The third is unlisted, which makes me think its a ghost.
    +1
  • The Helper The Helper:
    Some members choose invisibility mode
    +1
  • The Helper The Helper:
    I bitch about Xenforo sometimes but it really is full featured you just have to really know what you are doing to get the most out of it.
  • The Helper The Helper:
    It is just not easy to fix styles and customize but it definitely can be done
  • The Helper The Helper:
    I do know this - xenforo dropped the ball by not keeping the vbulletin reputation comments as a feature. The loss of the Reputation comments data when we switched to Xenforo really was the death knell for the site when it came to all the users that left. I know I missed it so much and I got way less interested in the site when that feature was gone and I run the site.
  • Blackveiled Blackveiled:
    People love rep, lol
    +1
  • The Helper The Helper:
    The recipe today is Sloppy Joe Casserole - one of my faves LOL https://www.thehelper.net/threads/sloppy-joe-casserole-with-manwich.193585/
  • The Helper The Helper:
    Decided to put up a healthier type recipe to mix it up - Honey Garlic Shrimp Stir-Fry https://www.thehelper.net/threads/recipe-honey-garlic-shrimp-stir-fry.193595/

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top