Maintenance for the week of July 1:
• NA megaservers for maintenance – July 1, 4:00AM EDT (8:00 UTC) - 12:00PM EDT (16:00 UTC)
• EU megaservers for maintenance – July 1, 8:00 UTC (4:00AM EDT) - 16:00 UTC (12:00PM EDT)
• ESO Store and Account System for maintenance – July 1, 4:00AM EDT (8:00 UTC) - 12:00PM EDT (16:00 UTC)

Cheating and Exploits

  • phbell
    phbell
    ✭✭✭✭
    Dubhliam wrote: »
    This is how ZOS should treat cheaters in ESO:
    https://www.youtube.com/watch?v=1OimzDPqDiA
    This youtube video was found in this Cracked article about cheating in games.



    ^^^^THIS! Is really great :smiley: ^^^^^ I would pay real money to see ZOS do something like this.
    Options
  • Jazbay_Grape
    Jazbay_Grape
    ✭✭✭✭
    Are you ever going to do something about players being able to leap onto the top of keeps?
    No, seriously, are you??
    I'm not exaggerating when I say that it has legit happened over and over again tonight. At least 20 people now in the last hour. Unreal.
    Options
  • daemonios
    daemonios
    ✭✭✭✭✭
    ✭✭✭✭✭
    phbell wrote: »
    Dubhliam wrote: »
    This is how ZOS should treat cheaters in ESO:
    https://www.youtube.com/watch?v=1OimzDPqDiA
    This youtube video was found in this Cracked article about cheating in games.



    ^^^^THIS! Is really great :smiley: ^^^^^ I would pay real money to see ZOS do something like this.

    ZOS replies in similar video:

    "Come on, don't cry man. There there, we didn't really mean to ban you. Here's your account back!"

    "Your brothers did it AND you're a streamer? Well, we're sorry you got banned and we'll have a serious talking-to with the ban team. Please accept our apologies and resume your promotion streaming of ESO."

    "See, we don't really care about balanced PvP campaigns, but you shouldn't have hacked in such an obvious way that you'd get reported by other players. But feel free to keep playing on your other accounts. Cheers!"
    Options
  • Surak73
    Surak73
    ✭✭✭✭
    Are you ever going to do something about players being able to leap onto the top of keeps?
    No, seriously, are you??
    I'm not exaggerating when I say that it has legit happened over and over again tonight. At least 20 people now in the last hour. Unreal.

    No, they are going to do nothing, absolutely nothing. I reported a player for this exploit, I said in the ingame report I have a video of his cheating if needed, and they didn't even bother to ask me to submit the video for checking.

    Sad truth is that cheaters bring money, and "pecunia non olet" (money doesn't stink) as Romans said...
    Options
  • Faceplanty
    Faceplanty
    ✭✭
    phbell wrote: »
    Dubhliam wrote: »
    This is how ZOS should treat cheaters in ESO:
    https://www.youtube.com/watch?v=1OimzDPqDiA
    This youtube video was found in this Cracked article about cheating in games.



    ^^^^THIS! Is really great :smiley: ^^^^^ I would pay real money to see ZOS do something like this.

    OMG best thing Ive seen in a long time !!! ZoS , do this ^
    Options
  • Metal10957
    Metal10957
    ✭✭✭
    I say join the Horde... no hacking in WoW :)

    Before this thread I have not heard anyone mention a cheat. Xbox One
    For the Horde!
    Options
  • darjobuno
    darjobuno
    ✭✭✭
    textBox:SetText(textBox:GetText() - 1)
    while textBox:GetText() == "0" do
    CraftProvisionerItem(recipeListIndex, recipeIndex)
    textBox:SetText(textBox:GetText() - 1)
    end

    Yay I love tests !!! Okay what we have here is one part of the code/program/mod whatever you kids are calling it these days. This is the part that is counting down how many times to create the food item or whatever until it reaches 0 this is just the loop for the countdown. Some where in this program is what I call a GOSUB routine. That is sending the main program to this portion of the code. This is just supplying the loop for the count. The part of the code that sent you here should supply the interface with the actual game system, that is supplying the variable that the "GAME'S PROGRAM" is watching for the selection of the "E" variable. This part of the code only proves to me that you can loop and count down. Although if in my cheat program I wanted to make it to where I was only spamming the number 1 say 10 times because after 10 times I would be out of mana then I would enter in the value of ten instead of requesting a variable input.

    function ZO_Provisioner:Create()
    CraftProvisionerItem(self:GetSelectedRecipeListIndex(), self:GetSelectedRecipeIndex())
    end

    This list is all of your sub programs within the main program. This is basically a directory of what your main program is running. This however is not the code of your main program. Each directory here would run a different operation and then return to the main program. They are basically programs within programs. Uneventful and does not even show the full code of each.

    if messageText == autoInviteString then
    GroupInviteByName(senderName)
    end

    This is the if/then it is monitoring for a specific message. Now commands differ in every program. What this program is monitoring is (messageText). This definition in this program is most likely defined as the chat window. And each part of the user interface most likely has its own definition. Like the actual graphic screen might have a definition of (messageScreen). All this program is saying is that when the UI sees as an example "BOB" in the chat box it is to then initiate the subroutine GroupInviteByName(THAT PERSONS NAME). The commands to do the invite would be located in the GroupInviteByName subroutine.

    Yes I have dabble in C++ as well but its not my favorite language.

    So you have shown me nothing so far. Though I am glad to see the effort. Let me write this in a bit of broken programming language for you. If I were to create a cheat engine for this game in the form of an add-on it would be something like this.

    <CHEAT>
    UI interface retrieve "binding"
    Input binding key ()
    If bound then A = ()
    If unbound then A = 0
    Initiate Main Subroutine
    return

    This part of the program would be watching for you to have your CHEAT turned on. Lets say you selected 9 to be your binding key for the program in the UI.

    You the player get involved in combat and hit your 9 keypad turning on the CHEAT addon

    Now Input 9 has become true and the program runs Initiate Main Subroutine.

    "Main Subroutine"
    Call upon key selection from keyboard b = (number from 1 to 5)
    Output <keyboard port number> value = b
    x = 10
    y = x - 1
    if y = 0 then end
    goto output

    And there is a basic cheat program.

    I have not programmed in almost 10 years and I can describe for you a basic method in which it is possible to cheat within the UI context.

    Have a wonderful day.
    No longer swimming upstream
    Options
  • Jazbay_Grape
    Jazbay_Grape
    ✭✭✭✭
    Surak73 wrote: »
    Are you ever going to do something about players being able to leap onto the top of keeps?
    No, seriously, are you??
    I'm not exaggerating when I say that it has legit happened over and over again tonight. At least 20 people now in the last hour. Unreal.

    No, they are going to do nothing, absolutely nothing. I reported a player for this exploit, I said in the ingame report I have a video of his cheating if needed, and they didn't even bother to ask me to submit the video for checking.

    Sad truth is that cheaters bring money, and "pecunia non olet" (money doesn't stink) as Romans said...

    You're right. They're not. For me it isn't even about reporting people though. Some people may not even know that this is considered cheating. The ability to scale the walls should be disabled.
    Options
  • XDragonDoomX
    XDragonDoomX
    ✭✭✭✭✭
    Dubhliam wrote: »
    This is how ZOS should treat cheaters in ESO:
    https://www.youtube.com/watch?v=1OimzDPqDiA
    This youtube video was found in this Cracked article about cheating in games.

    @ZOS_GinaBruno - please, please please - this would be wonderful !
    "Forums are like a herd of performing elephants with diarrhea.
    massive, difficult to redirect, awe-inspiring, entertaining, and a source of
    mind-boggling amounts of excrement when you least expect it. ”

    (with apologies to Eugene H. Spafford, aka Spaf)

    I have the power to please one person per day. Today is not your day.
    Tomorrow... Tomorrow does not look good either.

    82. Victory laps after killing the dragon with my 1d2 bow is considered in poor taste.
    83. My gnome does not like big butts and he cannot lie.
    84. Not allowed to talk my fellow inquisitors into buying a 220lb pull crossbow.
    85. Not allowed to talk my fellow inquisitors into buying an industrial strength flamethrower.
    86. Not allowed to make a superhero with a 99% chance of dodging even after the -10 penalty for a successful called shot.
    87. There is no such thing as a dwarven katana.
    88. My bard does not get a bonus to perform if she is obviously not wearing anything under her tabard.
    89. The elf's name is not Legolam.
    ** Mr Glenn's Forbidden activities list**

    Options
  • vamp_emily
    vamp_emily
    ✭✭✭✭✭
    ✭✭✭
    I was grinding in coldharbor last week and seen a cheater ( or at least I thought he was cheating ).

    I was grinding zombies and was following 2 other people around. I noticed one of them was acting kind of strange. They would move into the group of zombies and just stand there, and never fought.

    Then I noticed that when the other guy would move then the other person would move. If he moved forward, the other would move forward. If he moved backwards, the other would move backwards.

    Then I asked in zone chat, "are you cheating and using a bot?" Then I noticed the player who I thought was cheating started fighting. That lasted just a few minutes and then the character went back to following the other person and just standing in the middle of the zombies doing nothing.

    Then an hour later the same guy had 2 other characters following him. I remember watching him a few times turning around to look at the other characters to make sure they were all moving on the same path.




    If you want a friend, get a dog.
    AW Rank: Grand Warlord 1 ( level 49)

    Options
  • Elsonso
    Elsonso
    ✭✭✭✭✭
    ✭✭✭✭✭

    I have not programmed in almost 10 years and I can describe for you a basic method in which it is possible to cheat within the UI context.

    Have a wonderful day.

    As an ESO add-on author, I have programmed considerably more recently.

    You can describe your cheat. That is not the issue. The issue is that the ESO LUA interpreter does not have the capability to do it. We work in a restricted environment. We do not get full access to the game. We only get access to a limited part of the game. There are a number of things that we cannot do. Accessing movement and combat functions is not something that we can do within the game's LUA API
    vamp_emily wrote: »
    I was grinding in coldharbor last week and seen a cheater ( or at least I thought he was cheating ).

    I was grinding zombies and was following 2 other people around. I noticed one of them was acting kind of strange. They would move into the group of zombies and just stand there, and never fought.

    Then I noticed that when the other guy would move then the other person would move. If he moved forward, the other would move forward. If he moved backwards, the other would move backwards.

    Cool. My guess is multiboxing. One person controlling multiple accounts simultaneously using special software. Bad juju.

    Not to be confused with one person being logged in on more than one account simultaneously and NOT using any hardware or software to control them simultaneously.
    The Elder Scrolls Online: Grind Road

    PC NA/EU: @Elsonso
    XBox EU/NA: @ElsonsoJannus
    X/Twitter: ElsonsoJannus
    Options
  • Randactyl
    Randactyl
    ✭✭✭
    lol @darjobuno didn't even tag or quote me. You afraid I'll come back?
    darjobuno wrote: »
    textBox:SetText(textBox:GetText() - 1)
    while textBox:GetText() == "0" do
        CraftProvisionerItem(recipeListIndex, recipeIndex)
        textBox:SetText(textBox:GetText() - 1)
    end
    

    Yay I love tests !!! Okay what we have here is one part of the code/program/mod whatever you kids are calling it these days addon. This is the part that is counting down how many times to create the food item or whatever until it reaches 0 this is just the loop for the countdown.

    So far, so good.
    darjobuno wrote: »
    Some where in this program is what I call a GOSUB routine. That is sending the main program to this portion of the code.

    Kind of, but your assuption that this is all 1:1 with BASIC is starting to get you on the wrong path.
    As I said in the reply you failed to quote, what we are dealing with here (and in most modern applications, especially games and mobile applications) is event driven programming. To try to translate that into BASIC, during the base program's (ESO's) initialization it sets up a blank list of "callbacks," or methods to call when a certain criteria have been met. The easiest example would be for EVENT_ADD_ON_LOADED.

    Almost every addon will have a line of code similar to this one in the most general scope of one of it's files:
    EVENT_MANAGER:RegisterForEvent("addonName_OnLoaded", EVENT_ADD_ON_LOADED, initFunction)
    
    What this does is registers "initFunction" into the list of callbacks that need to be fired when an addon is successfully loaded. The event manager lives entirely in the base program except for it's limited API interface partially demonstrated here. (You can see the full interface on esoui.com's wiki, but I'm sure you'll just gloss over all of this again.)

    When the base program (C++, inaccesible) loads an addon (lua/xml, accessible) it loads the files and feeds the addon code through the interpreter. Since the previous code snippet is in the most general scope, it is run during that first pass of the interpreter. After all addons in the addon directory have been loaded (and thus have registered their callbacks for the addon loaded event) the base program works through that now populated list of callbacks, allowing each addon to run their initialization code.

    A generic example:
    local function initFunction(eventCode, addonName)
        if addonName ~= to "MyAddon" then return end
    end
    
    EVENT_MANAGER:RegisterForEvent("addonName_OnLoaded", EVENT_ADD_ON_LOADED, initFunction)
    
    darjobuno wrote: »
    This is just supplying the loop for the count. The part of the code that sent you here should supply the interface with the actual game system, that is supplying the variable that the "GAME'S PROGRAM" is watching for the selection of the "E" variable.

    The thing that sent us to the quoted snippet would have been the triggering of EVENT_CRAFT_COMPLETED. You create your textBox and set it's properties like size, position, visibility rules during addon initialization. Then you register for EVENT_CRAFT_COMPLETED:
    local textBox
    
    local function onCraftComplete(eventCode, craftSkill)
        if craftSkill ~= CRAFTING_TYPE_PROVISIONING then return end
    
        textBox:SetText(textBox:GetText() - 1)
    
        while textBox:GetText() == "0" do
            CraftProvisionerItem(recipeListIndex, recipeIndex)
    
            textBox:SetText(textBox:GetText() - 1)
        end
    end
    
    local function initFunction(eventCode, addonName)
        if addonName ~= to "MyAddon" then return end
    
        --code to setup text box omitted due to length
    
        EVENT_MANAGER:RegisterForEvent("addonName_CraftComplete", EVENT_CRAFT_COMPLETED, onCraftComplete)
    end
    
    EVENT_MANAGER:RegisterForEvent("addonName_OnLoaded", EVENT_ADD_ON_LOADED, initFunction)
    

    In the game, the user will have a new text box on the vanilla provisioning UI they can put a number in. Then the steps for crafting multiple items are:
    1. Put a number greater than 0 in the box.
    2. Craft the item through vanilla means (clicking the recipe, pressing the primary interaction keybind)
    3. If the craft is completed successfully, base game fires all callbacks registered to EVENT_CRAFT_COMPLETED.
    4. Addon function "onCraftComplete" runs, crafts the rest of the remaining number of items through the same means that the vanilla way crafts an item.
    5. User exist provisioning station or begins again.
    darjobuno wrote: »
    This part of the code only proves to me that you can loop and count down.

    I don't know what to say if you need proof that a modern programming language has basic looping structures available.
    darjobuno wrote: »
    Although if in my cheat program I wanted to make it to where I was only spamming the number 1 say 10 times because after 10 times I would be out of mana then I would enter in the value of ten instead of requesting a variable input.

    I guess I do need to repeat myself. Your premise is flawed. Addons cannot press a button for you. If you were paying attention at all, you should be able to pick up that addons can perform the actions of a keybind on their own, however, all functions relating to combat or the 3D world are private. Private functions are not available at all to addons whatsoever.
    darjobuno wrote: »
    function ZO_Provisioner:Create()
        CraftProvisionerItem(self:GetSelectedRecipeListIndex(), self:GetSelectedRecipeIndex())
    end
    

    This list is all of your sub programs within the main program. This is basically a directory of what your main program is running.

    This is a class. It is the class that backs the vanilla keyboard provisioning UI. This class was written by ZOS. This class is part of the vanilla UI.
    darjobuno wrote: »
    This however is not the code of your main program. Each directory here would run a different operation and then return to the main program. They are basically programs within programs.

    Since we've been refering to the ESO executable as the main program, no this is not part of the main program. However, it is part of the main program's data files and is part of that giant "addon" I mentioned called the vanilla UI.

    There is only one "directory" (class) here, and yes, we already covered the basic flow between even triggers and addon execution.
    darjobuno wrote: »
    Uneventful and does not even show the full code of each.

    The example doesn't need the full code of the ZO_Provisioner class, although I did originally provide link to the full class (and the entire vanilla UI), but you omitted that.
    darjobuno wrote: »
    if messageText == autoInviteString then
        GroupInviteByName(senderName)
    end
    

    This is the if/then it is monitoring for a specific message. Now commands differ in every program. What this program is monitoring is (messageText).

    Event callbacks, as you may have noticed (probably not) from previous examples, get passed a set of arguments relevant to that event.
    Let's just spell out this addon too:
    local autoInviteString = "x"
    
    local function autoInvite(eventCode, channelType, senderName, messageText, isCustomerService, fromDisplayName)
        if messageText == autoInviteString then
            GroupInviteByName(senderName)
        end
    end
    
    local function initFunction(eventCode, addonName)
        if addonName ~= to "MyAddon" then return end
    
        --code to setup text box omited
    
        EVENT_MANAGER:RegisterForEvent("addonName_autoInvite", EVENT_CHAT_MESSAGE_CHANNEL, autoInvite)
    end
    
    EVENT_MANAGER:RegisterForEvent("addonName_OnLoaded", EVENT_ADD_ON_LOADED, initFunction)
    

    This addon is waiting for the base program to fire callbacks for EVENT_CHAT_MESSAGE_CHANNEL, which is triggered every time a new message appears in the chat window.
    darjobuno wrote: »
    This definition in this program is most likely defined as the chat window. And each part of the user interface most likely has its own definition. Like the actual graphic screen might have a definition of (messageScreen).

    Yes, each part of the user interface generally has it's own backing class. However, in both of these addon examples I've put together for you, I haven't done anything with/to a class for any element of the UI. It's all event driven programming.
    darjobuno wrote: »
    All this program is saying is that when the UI sees as an example "BOB" in the chat box it is to then initiate the subroutine GroupInviteByName(THAT PERSONS NAME). The commands to do the invite would be located in the GroupInviteByName subroutine.

    Good job, that's almost spot on - just take into account what I said two quotes up.
    "GroupInviteByName," like "CraftProvisionerItem," is one of the handful of non-private, non-protected API functons which enable the functionality of both the vanilla UI and addons.
    darjobuno wrote: »
    Yes I have dabble in C++ as well but its not my favorite language.

    Good for you I guess. The only reason C++ was mentioned was to help distinguish bewtween the two separate worlds of the main program and addons.
    darjobuno wrote: »
    So you have shown me nothing so far. Though I am glad to see the effort.

    If I've shown you nothing so far, you've not actually read anything I wrote out or linked for you.
    darjobuno wrote: »
    Let me write this in a bit of broken programming language for you.
    ...
    I have not programmed in almost 10 years and I can describe for you a basic method in which it is possible to cheat within the UI context.

    Have a wonderful day.

    Snipped out your "broken addon" because it is irrelevant.

    For the final time, your premise is flawed. Addons cannot press a button for you. If you were paying attention at all, you should be able to pick up that addons can perform the actions of a keybind on their own, however, all functions relating to combat or the 3D world are private. Private functions are not available at all to addons whatsoever.

    Not having programmed in 9+ years is a fairly fatal blow to any kind of authority you were attempting to portray. This is not BASIC. There have been new concepts introduced since the time you may have proclaimed yourself "master of programming for anything ever."
    Edited by Randactyl on August 3, 2016 6:02PM
    Randactyl | NA Megaserver | Blood for the Pact! | Sun's Death, Chrysamere Pact

    My Addons
    Beta Addons
    Check out my GitHub repos to follow my latest changes and see some addons before they are released.
    Options
  • clayandaudrey_ESO
    clayandaudrey_ESO
    ✭✭✭✭✭
    This conversation has been completely derailed probably by cheaters trying to deflect attention. Cheating will continue to run rampant in this game because no one cares. Not ZOS and not the community. This thread should probably just be closed because abusing exploits and Cheat Engine are now just features.
    Options
  • Giraffon
    Giraffon
    ✭✭✭✭✭
    I've not read this entire thread, but ZOS does do stuff now and then. For example, there is a guild that I was in (until last night) where the GM got busted running Cheat Engine. Now they have no GM. (I always wondered how the GM was so good.)

    The membership was like oh, it's getting appealed...I'm like really? You think that's a priority? Yesterday was day 9 of no GM...I thought they might allow an officer to take it over, but nothing is happening so they will probably have to disband the whole guild and have one of the officers rebuild it from scratch. ugh.



    Giraffon - Beta Lizard - For the Pact!
    Options
  • Ackwalan
    Ackwalan
    ✭✭✭✭✭
    ✭✭✭✭✭
    .


    Giraffon wrote: »
    I've not read this entire thread, but ZOS does do stuff now and then. For example, there is a guild that I was in (until last night) where the GM got busted running Cheat Engine. Now they have no GM. (I always wondered how the GM was so good.)

    The membership was like oh, it's getting appealed...I'm like really? You think that's a priority? Yesterday was day 9 of no GM...I thought they might allow an officer to take it over, but nothing is happening so they will probably have to disband the whole guild and have one of the officers rebuild it from scratch. ugh.



    You are still in this guild? Cheaters will share their cheats with other cheaters. More then likely, most of the officers in this guild use cheats, replacing the GM won't solve the problem with a guild that cheats.

    Options
  • Giraffon
    Giraffon
    ✭✭✭✭✭
    Oh I don't know. I think it caught most of them by surprise and no I'm not in the guild as I stated in my original post. Some of the members I would welcome into my own guild which is pretty squeaky clean.
    Giraffon - Beta Lizard - For the Pact!
    Options
  • darjobuno
    darjobuno
    ✭✭✭
    Randactyl wrote: »
    lol @darjobuno didn't even tag or quote me. You afraid I'll come back?
    darjobuno wrote: »
    textBox:SetText(textBox:GetText() - 1)
    while textBox:GetText() == "0" do
        CraftProvisionerItem(recipeListIndex, recipeIndex)
        textBox:SetText(textBox:GetText() - 1)
    end
    

    Yay I love tests !!! Okay what we have here is one part of the code/program/mod whatever you kids are calling it these days addon. This is the part that is counting down how many times to create the food item or whatever until it reaches 0 this is just the loop for the countdown.

    So far, so good.
    darjobuno wrote: »
    Some where in this program is what I call a GOSUB routine. That is sending the main program to this portion of the code.

    Kind of, but your assuption that this is all 1:1 with BASIC is starting to get you on the wrong path.
    As I said in the reply you failed to quote, what we are dealing with here (and in most modern applications, especially games and mobile applications) is event driven programming. To try to translate that into BASIC, during the base program's (ESO's) initialization it sets up a blank list of "callbacks," or methods to call when a certain criteria have been met. The easiest example would be for EVENT_ADD_ON_LOADED.

    Almost every addon will have a line of code similar to this one in the most general scope of one of it's files:
    EVENT_MANAGER:RegisterForEvent("addonName_OnLoaded", EVENT_ADD_ON_LOADED, initFunction)
    
    What this does is registers "initFunction" into the list of callbacks that need to be fired when an addon is successfully loaded. The event manager lives entirely in the base program except for it's limited API interface partially demonstrated here. (You can see the full interface on esoui.com's wiki, but I'm sure you'll just gloss over all of this again.)

    When the base program (C++, inaccesible) loads an addon (lua/xml, accessible) it loads the files and feeds the addon code through the interpreter. Since the previous code snippet is in the most general scope, it is run during that first pass of the interpreter. After all addons in the addon directory have been loaded (and thus have registered their callbacks for the addon loaded event) the base program works through that now populated list of callbacks, allowing each addon to run their initialization code.

    A generic example:
    local function initFunction(eventCode, addonName)
        if addonName ~= to "MyAddon" then return end
    end
    
    EVENT_MANAGER:RegisterForEvent("addonName_OnLoaded", EVENT_ADD_ON_LOADED, initFunction)
    
    darjobuno wrote: »
    This is just supplying the loop for the count. The part of the code that sent you here should supply the interface with the actual game system, that is supplying the variable that the "GAME'S PROGRAM" is watching for the selection of the "E" variable.

    The thing that sent us to the quoted snippet would have been the triggering of EVENT_CRAFT_COMPLETED. You create your textBox and set it's properties like size, position, visibility rules during addon initialization. Then you register for EVENT_CRAFT_COMPLETED:
    local textBox
    
    local function onCraftComplete(eventCode, craftSkill)
        if craftSkill ~= CRAFTING_TYPE_PROVISIONING then return end
    
        textBox:SetText(textBox:GetText() - 1)
    
        while textBox:GetText() == "0" do
            CraftProvisionerItem(recipeListIndex, recipeIndex)
    
            textBox:SetText(textBox:GetText() - 1)
        end
    end
    
    local function initFunction(eventCode, addonName)
        if addonName ~= to "MyAddon" then return end
    
        --code to setup text box omitted due to length
    
        EVENT_MANAGER:RegisterForEvent("addonName_CraftComplete", EVENT_CRAFT_COMPLETED, onCraftComplete)
    end
    
    EVENT_MANAGER:RegisterForEvent("addonName_OnLoaded", EVENT_ADD_ON_LOADED, initFunction)
    

    In the game, the user will have a new text box on the vanilla provisioning UI they can put a number in. Then the steps for crafting multiple items are:
    1. Put a number greater than 0 in the box.
    2. Craft the item through vanilla means (clicking the recipe, pressing the primary interaction keybind)
    3. If the craft is completed successfully, base game fires all callbacks registered to EVENT_CRAFT_COMPLETED.
    4. Addon function "onCraftComplete" runs, crafts the rest of the remaining number of items through the same means that the vanilla way crafts an item.
    5. User exist provisioning station or begins again.
    darjobuno wrote: »
    This part of the code only proves to me that you can loop and count down.

    I don't know what to say if you need proof that a modern programming language has basic looping structures available.
    darjobuno wrote: »
    Although if in my cheat program I wanted to make it to where I was only spamming the number 1 say 10 times because after 10 times I would be out of mana then I would enter in the value of ten instead of requesting a variable input.

    I guess I do need to repeat myself. Your premise is flawed. Addons cannot press a button for you. If you were paying attention at all, you should be able to pick up that addons can perform the actions of a keybind on their own, however, all functions relating to combat or the 3D world are private. Private functions are not available at all to addons whatsoever.
    darjobuno wrote: »
    function ZO_Provisioner:Create()
        CraftProvisionerItem(self:GetSelectedRecipeListIndex(), self:GetSelectedRecipeIndex())
    end
    

    This list is all of your sub programs within the main program. This is basically a directory of what your main program is running.

    This is a class. It is the class that backs the vanilla keyboard provisioning UI. This class was written by ZOS. This class is part of the vanilla UI.
    darjobuno wrote: »
    This however is not the code of your main program. Each directory here would run a different operation and then return to the main program. They are basically programs within programs.

    Since we've been refering to the ESO executable as the main program, no this is not part of the main program. However, it is part of the main program's data files and is part of that giant "addon" I mentioned called the vanilla UI.

    There is only one "directory" (class) here, and yes, we already covered the basic flow between even triggers and addon execution.
    darjobuno wrote: »
    Uneventful and does not even show the full code of each.

    The example doesn't need the full code of the ZO_Provisioner class, although I did originally provide link to the full class (and the entire vanilla UI), but you omitted that.
    darjobuno wrote: »
    if messageText == autoInviteString then
        GroupInviteByName(senderName)
    end
    

    This is the if/then it is monitoring for a specific message. Now commands differ in every program. What this program is monitoring is (messageText).

    Event callbacks, as you may have noticed (probably not) from previous examples, get passed a set of arguments relevant to that event.
    Let's just spell out this addon too:
    local autoInviteString = "x"
    
    local function autoInvite(eventCode, channelType, senderName, messageText, isCustomerService, fromDisplayName)
        if messageText == autoInviteString then
            GroupInviteByName(senderName)
        end
    end
    
    local function initFunction(eventCode, addonName)
        if addonName ~= to "MyAddon" then return end
    
        --code to setup text box omited
    
        EVENT_MANAGER:RegisterForEvent("addonName_autoInvite", EVENT_CHAT_MESSAGE_CHANNEL, autoInvite)
    end
    
    EVENT_MANAGER:RegisterForEvent("addonName_OnLoaded", EVENT_ADD_ON_LOADED, initFunction)
    

    This addon is waiting for the base program to fire callbacks for EVENT_CHAT_MESSAGE_CHANNEL, which is triggered every time a new message appears in the chat window.
    darjobuno wrote: »
    This definition in this program is most likely defined as the chat window. And each part of the user interface most likely has its own definition. Like the actual graphic screen might have a definition of (messageScreen).

    Yes, each part of the user interface generally has it's own backing class. However, in both of these addon examples I've put together for you, I haven't done anything with/to a class for any element of the UI. It's all event driven programming.
    darjobuno wrote: »
    All this program is saying is that when the UI sees as an example "BOB" in the chat box it is to then initiate the subroutine GroupInviteByName(THAT PERSONS NAME). The commands to do the invite would be located in the GroupInviteByName subroutine.

    Good job, that's almost spot on - just take into account what I said two quotes up.
    "GroupInviteByName," like "CraftProvisionerItem," is one of the handful of non-private, non-protected API functons which enable the functionality of both the vanilla UI and addons.
    darjobuno wrote: »
    Yes I have dabble in C++ as well but its not my favorite language.

    Good for you I guess. The only reason C++ was mentioned was to help distinguish bewtween the two separate worlds of the main program and addons.
    darjobuno wrote: »
    So you have shown me nothing so far. Though I am glad to see the effort.

    If I've shown you nothing so far, you've not actually read anything I wrote out or linked for you.
    darjobuno wrote: »
    Let me write this in a bit of broken programming language for you.
    ...
    I have not programmed in almost 10 years and I can describe for you a basic method in which it is possible to cheat within the UI context.

    Have a wonderful day.

    Snipped out your "broken addon" because it is irrelevant.

    For the final time, your premise is flawed. Addons cannot press a button for you. If you were paying attention at all, you should be able to pick up that addons can perform the actions of a keybind on their own, however, all functions relating to combat or the 3D world are private. Private functions are not available at all to addons whatsoever.

    Not having programmed in 9+ years is a fairly fatal blow to any kind of authority you were attempting to portray. This is not BASIC. There have been new concepts introduced since the time you may have proclaimed yourself "master of programming for anything ever."

    I have not proclaimed myself anything. I stated where my knowledge stemmed from to defend myself from individuals who stated I knew nothing about what I was talking about.

    I have never made a single cross remark during this whole discussion. All the while being insulted by just about every reply.

    I do understand what your trying to argue. You are arguing that the client that those creating add-ons from does not allow access to anything that would allow someone to create a Cheat Engine from.

    That does not keep individuals with the experience to do so from manipulating the client and the access to the User Interface to do exactly what I have stated previously.

    I never said that the add-on creation client was corrupt. I am saying that it and the access to the User Interface can allow those with the proper set of skills to abuse the access to it.

    Again I state the game software is the game software. Programs can be written to manipulate the system and all they need is a break in that software to access the program. The User Interface allows that break in the program.
    Giraffon wrote: »
    I've not read this entire thread, but ZOS does do stuff now and then. For example, there is a guild that I was in (until last night) where the GM got busted running Cheat Engine. Now they have no GM. (I always wondered how the GM was so good.)

    The membership was like oh, it's getting appealed...I'm like really? You think that's a priority? Yesterday was day 9 of no GM...I thought they might allow an officer to take it over, but nothing is happening so they will probably have to disband the whole guild and have one of the officers rebuild it from scratch. ugh.

    And if Cheat Engines are not real then why do we keep seeing things like this? Is it just make believe?
    No longer swimming upstream
    Options
  • Whatzituyah
    Whatzituyah
    ✭✭✭✭
    darjobuno wrote: »
    And if Cheat Engines are not real then why do we keep seeing things like this? Is it just make believe?

    Also the meteor apocalypse from people flying around in Cyrodiil says hi! Its a reason this thread got started in the first place im sure theirs videos of it on YouTube. @darjobuno
    Options
  • sirinsidiator
    sirinsidiator
    ✭✭✭✭
    @darjobuno You should read your own posts again and maybe you might notice why almost every answer is "insulting" you.
    The way you write makes it sound like you have an idea what you are talking about, but be honest, you wouldn't think that a dentist can tell you anything about brain surgery either.

    Multiple people called you out on it and you defend yourself again and again and spread more and more misinformation instead of just admitting that you were wrong and calling it a day.
    darjobuno wrote: »
    That does not keep individuals with the experience to do so from manipulating the client and the access to the User Interface to do exactly what I have stated previously.
    I am writing addons for ESO since more than two years, so I would say I have plenty of experience on the matter and I can tell you on good authority, that it is not possible to manipulate the client via the UI API in any way that could be considered cheating.

    Here is a short list of what is possible and what not:

    What can addons do?
    • access information provided by ZOS via the UI API
    • request a limited set of actions that do not interfere with the game world
    • combine these two things to improve quality of life
    • negativley impact the clients performance to the players disadvantage
    • crash the client, delete items, reset champion points and many more "bad" things*

    What can addons not do?
    • interact with the game world in any way that would allow to automate the player's reaction
    • manipulate stats or any other critical information
    • influence the server performance**

    * that's why you should always make sure that you download addons from a trusted source (minion/esoui) and even then make sure that an update or new addon is legit
    ** the game client locally queues every command an addon is able to send and uses a leaky bucket algorithm to handle load and kick clients that spam a command too often ("Kicked for excessive message spam")

    If that is still not enough to convince you that you are wrong, there is only one possibility left to explain your behavior.
    Looking forward to your next post. :*
    https://www.imperialtradingcompany.eu/ - My Addons - The Vault (Early updates and experimental projects) - My patreon - My blog
    Options
  • DeadDealer
    DeadDealer
    ✭✭✭
    @darjobuno see? you was owned, you must admit this

    ofc there can BE some space for cheats, by addons, but so far for almost 2_ years of a game, only ONE was really a cheat and was fixed very fast

    im talking about thing when addons long ago can sent mails with items/gold without user's confirmation
    so one clever "author" take over one popular addon and added a code to autosent some amount of gold to him by any user who will launch updated version of this addon

    but again it was because ZOS made this function unprotected
    Options
  • DeadDealer
    DeadDealer
    ✭✭✭
    interesting thing
    sometimes if you create a support ticket, it goes not to ESO, but to Bethesda team lol
    bugs even in the support site

    and they answer you this:
    Greetings,

    Thank you for contacting the Bethesda Team. If you are contacting us in regards to The Elder Scrolls Online: Tamriel Unlimited, please go to https://help.elderscrollsonline.com and login with your game login details to open a help ticket. This will assist our Support Team in addressing your issue more efficiently.

    If you are contacting us regarding another Bethesda title, please open a help ticket with our Technical Support Team by visiting http://help.bethesda.net and selecting "Ask Support".

    We also encourage you to review our Support Centers for some commonly asked questions in regards to issues you may be experiencing with your products. Our forums are also great places to check for answers to popular questions. You can check them out in the links below:

    http://forums.elderscrollsonline.com/
    http://forums.bethsoft.com/

    Warm Regards,
    The Bethesda Team
    Options
  • Rohamad_Ali
    Rohamad_Ali
    ✭✭✭✭✭
    ✭✭✭✭✭
    This conversation has been completely derailed probably by cheaters trying to deflect attention. Cheating will continue to run rampant in this game because no one cares. Not ZOS and not the community. This thread should probably just be closed because abusing exploits and Cheat Engine are now just features.

    Do not be so discouraged my friend . I know for a fact ZOS does care about cheaters even though they've appeared soft . I've heard several people whine in different places , mostly Line app about being permabanned an they're just not posting complaints on the forums anymore . Most have little idea of just how many accounts have been banned . Several bought new accounts and have to start over because they were not given a reprieve . Reporting abuse does work . Don't let the forum talk bother you . People will say anything to get a rise out of others for attention .

    I screen shot all over different places and send those with my reports . Not just from the game . The more evidence the better .
    Options
  • InvitationNotFound
    InvitationNotFound
    ✭✭✭✭✭
    hmmm, this thread is dead, isn't it? i mean i can read people writing things here, but no statements coming from any ZOS employees anymore.

    @ZOS_GinaBruno , @ZOS_JessicaFolsom
    Are all the new bugs/exploits okay now? or did i miss any statements?

    We want firing off Dark Exchange in the middle of combat to feel awesome... - The Wrobler
    You know you don't have to be here right? - Rich Lambert
    Verrätst du mir deinen Beruf? Ich würde auch gerne mal Annahmen dazu schreiben, wie simple die Aufgaben anderer sind. - Kai Schober

    Addons:
    RdK Group Tool: esoui DE EN FR
    Port to Friend's House: esoui DE EN FR - Library: DE EN
    Yet another Compass: esoui DE EN FR
    Group Buffs: esoui DE EN FR
    Options
  • daemonios
    daemonios
    ✭✭✭✭✭
    ✭✭✭✭✭
    hmmm, this thread is dead, isn't it? i mean i can read people writing things here, but no statements coming from any ZOS employees anymore.

    @ZOS_GinaBruno , @ZOS_JessicaFolsom
    Are all the new bugs/exploits okay now? or did i miss any statements?

    Welcome to the black hole ZOS created to deal with the dissatisfied players who just won't let the issue of cheating die.

    Anyway it's only been what - three months since the big Cheat Engine scandal? Give them time to come up with some semblance of a cheating policy and communication strategy! /s
    Options
  • WandaMey
    WandaMey
    ✭✭✭
    snip
    What can addons do?
    • access information provided by ZOS via the UI API
    • request a limited set of actions that do not interfere with the game world
    • combine these two things to improve quality of life
    • negativley impact the clients performance to the players disadvantage
    • crash the client, delete items, reset champion points and many more "bad" things*

    + change close to any text displayed.
    imagine if some authors started doing this in a deceptive way, in mass, with the use of some fake library introduced in the most downloaded addons...

    Options
  • DeadDealer
    DeadDealer
    ✭✭✭
    @WandaMey hey babe, why you delete yourself from esoui?
    Options
  • WandaMey
    WandaMey
    ✭✭✭
    Yo Tony, still not forum banned after 3 days on a new account? Kudos!

    edit : not because of you, if that's the question.
    Edited by WandaMey on August 4, 2016 12:05PM
    Options
  • Barbet
    Barbet
    ✭✭
    Giraffon wrote: »
    I've not read this entire thread, but ZOS does do stuff now and then. For example, there is a guild that I was in (until last night) where the GM got busted running Cheat Engine. Now they have no GM. (I always wondered how the GM was so good.)

    The membership was like oh, it's getting appealed...I'm like really? You think that's a priority? Yesterday was day 9 of no GM...I thought they might allow an officer to take it over, but nothing is happening so they will probably have to disband the whole guild and have one of the officers rebuild it from scratch. ugh.



    Can you let us know in a couple of weeks or so if said GM is back in game, any type of confirmation that permaban means permaban is something that would mean they are doing some banding for the use of CE. I find it very hard to believe them when they say stuff any more. (October is a coming...)

    Are you ever going to do something about players being able to leap onto the top of keeps?
    No, seriously, are you??
    I'm not exaggerating when I say that it has legit happened over and over again tonight. At least 20 people now in the last hour. Unreal.

    alliance war forum..

    https://forums.elderscrollsonline.com/en/discussion/278031/cyrodiil-cheating-exploiting-you#latest

    its more informative then here

    When I stop laughing, I stop playing
    Options
  • calia1120
    calia1120
    ✭✭✭
    Barbet wrote: »
    Giraffon wrote: »
    I've not read this entire thread, but ZOS does do stuff now and then. For example, there is a guild that I was in (until last night) where the GM got busted running Cheat Engine. Now they have no GM. (I always wondered how the GM was so good.)

    The membership was like oh, it's getting appealed...I'm like really? You think that's a priority? Yesterday was day 9 of no GM...I thought they might allow an officer to take it over, but nothing is happening so they will probably have to disband the whole guild and have one of the officers rebuild it from scratch. ugh.



    Can you let us know in a couple of weeks or so if said GM is back in game, any type of confirmation that permaban means permaban is something that would mean they are doing some banding for the use of CE. I find it very hard to believe them when they say stuff any more. (October is a coming...)

    Are you ever going to do something about players being able to leap onto the top of keeps?
    No, seriously, are you??
    I'm not exaggerating when I say that it has legit happened over and over again tonight. At least 20 people now in the last hour. Unreal.

    alliance war forum..

    https://forums.elderscrollsonline.com/en/discussion/278031/cyrodiil-cheating-exploiting-you#latest

    its more informative then here

    One of the officers can submit a ticket requesting the GM role - ZOS can handle the transfer. Usually takes a couple weeks, but if current GM was in fact banned, that may expedite the process.
    GM, Iron Bank of Bravos | The Psijic Order | Mara's Tester/Mara's Moxie | Dominion Imperial Guard
    Council of Nirn | elderscrollsalliance.com | Addon Dev - part of the Wykkyd code team
    Options
  • Draqone
    Draqone
    ✭✭✭✭
    I would first like to start by congratulating those that don't cheat.
    Props to you. Three free cheers and all that.

    To everyone:

    Using hacks and exploits is like doping at the Olympics.

    When someone cheats at the Olympics do you also say "lol, who cares, it's just a game" or would you consider him a cheater?

    If you found out that your favourite athlete (be it Messi, Federer, Phelps and anyone else) succeeded not because of hard work but because he drugged himself wouldn't you yourself feel cheated?

    Yes, ESO is just a game. But all real life sports are also "just games". The need of achievement is the same. And achievements are only achievements if obtained rightfully, no matter what the leaderboards might say. Those with a semblance of morality don't cheat simply because cheating is wrong. Always and everywhere.

    To the cheaters and exploiters:

    Damn you.
    Edited by Draqone on August 4, 2016 8:02PM
    ESO Balance:
    “All skills are equal, but some skills are more equal than others.”
    Options
This discussion has been closed.