ESO Mod

ESO Mod is a simple tool designed to expose some of the (so far camera/graphical) settings that are otherwise unavailable in The Elder Scrolls Online. It was inspired by ESO Launcher (by Sorien) which is an excellent alternative to this tool, but I wanted to release an open source variant and also to extend the functionality even further. Unfortunately my tool isn’t as user-friendly as Sorien’s, but I will improve that if there’s sufficient demand.

Features:

  • Set field of view
  • Set max camera zoom distance
  • Set tone mapping type (a.k.a shader filters)
  • Set min/max/current view distance
  • Set current time (e.g. change from day to night)
  • Toggle fog
  • Toggle 3D
  • Toggle fader (a.k.a. force high quality models)
  • Works on both the live and PTS clients

In Progress:

  • Nothing really yet. Whatever else people suggest and I feel like investigating.

Instructions:

This tool will not run the game for you, so ensure the game is running before attempting to use it. If a ‘launcher’ style of functionality is desirable please let me know and I will consider support that.

  1. Download the latest release and extract it anywhere (preferably into its own folder – to prevent it picking up the wrong DLLs – but not required).
  2. Open a command prompt window (cmd.exe) and navigate to the directory containing the tool (alternatively hold shift and right click on the directory in Explorer and use “Open command window here”).
  3. Run “esomod.exe –help” (or “esomod.exe -h”) to print the help and get a list of commands.
  4. Run ESO Mod again with the options you desire (e.g. “esomod.exe –max-view-dist 4.5 –view-dist 4.5 –max-camera-dist 20 –fov 65 –fog” to increase the maximum view distance, set the current view distance to the new maximum, increase the max camera zoom distance, and toggle the fog).

You typically should not need to run this tool as admin unless you’re also running ESO as admin (which you normally should not do).

If you get errors about missing CRT DLLs you probably need to download and install the Visual C++ Redistributable Packages for Visual Studio 2013 (I recommend installing both the x86 and x64 flavours, but only the x86 flavour is required in order for ESO Mod to function).

Please note that for technical reasons XP is unsupported, and this tool will not even load on it. It could be made to work, but it involves work which I’m not at all interested in doing given that XP is EOL.

Last tested:

Live: eso.live.1.5.5.1083508

(Please note that if a new patch is out and this isn’t updated yet then don’t assume it won’t work, it should continue to function without updates for most patches.)

Download:

20140603-2259: Initial release.

20141123-2355: Update for eso.live.1.5.5.1083508. Fixes FoV mod.

Source:

The source code to ESO Mod is available as part of my HadesMem project. Direct link to the relevant part of the code base is here.

Contributing:

Feature requests, bug reports, code patches, interesting memory addresses, etc: I can be contacted through on a variety of mediums, but probably the best for this would be either the hadesmem project issue tracker or directly via email (raptorfactor@raptorfactor.com).

Anything else: Email me. (raptorfactor@raptorfactor.com)

Disclaimer:

This is a personal project and is not endorsed by my employer.

Project released under the MIT license.

The MIT License (MIT)

Copyright (c) 2012-2014 Joshua Boyce

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
“Software”), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

28 thoughts on “ESO Mod

  1. Pingback: Open Source ESO FoV Modifier | The Raptor Factor

  2. Pingback: ESO Mod Released | The Raptor Factor

  3. Kyle

    Esomod errors when running in command prompt

    Acquired SeDebugPrivilege.

    Error!
    examplesesomodmain.cpp(60): Throw in function unsigned long __cdecl `anonymous
    -namespace'::FindProc(const class std::basic_string<wchar_t,struct std::char_tra
    its,class std::allocator > &)
    Dynamic exception type: class boost::exception_detail::clone_impl
    std::exception::what: Unknown exception
    [struct hadesmem::TagErrorString *] = Failed to find process.

    C:UsersKyleDocumentsElder Scrolls Onlinelive>

    How do I get past this?

    Reply
  4. Abe

    How about a fix centered crosshair above the character head instead of shift to right when you zooming in in 3rd person.
    Possible to add this?

    Thanks.

    Reply
    1. Joshua Boyce Post author

      Sorry for not responding to your earlier, for some reason I didn’t get an email notification of this comment… Is this feature still something that interests you?

      Reply
      1. Ignotus

        This feature interests me if it could be added. I assume this is all acceptable to the ESO terms? Sorry, that may be a noob question, just double checking. :)

        Reply
        1. Ignotus

          Wanted to add that I just tried your program and it seems to work pretty well; no issues at all. Thank you for the effort! I definitely support open source work. I tried esolauncher too, but I didn’t see anything in it for adjusting the camera zoom distance, which is the primary function that I was looking for. Your app works fine for the camera zoom, fov, and removing fog. Those are the options that I’m using. Thanks again!

          Reply
          1. raptorfactor Post author

            Great to hear it’s still working (I don’t play ESO anymore so I haven’t been testing the latest patches), please do let me know if something breaks and I should be able to fix it.

            I can certainly look into modding the crosshair, though I’m not sure how easy or hard it would be… Would you be able to upload the latest eso.exe somewhere to save me some time? (I’m expecting the patch is quite large and I’m not at home for the next week or two so I only have access to very limited mobile internet, not enough to pull down the latest ESO patches.)

            As for whether it’s against the terms of service, afaik ESO Launcher was given an official ‘okay’ by the dev team on the forums, but I’m unsure about my tool. I haven’t had any complaints about the additional functionality in my tool, and if they were really concerned it would be trivial for them to break it (and I’m easy to contact if they want to tell me to pull a feature), so personally I’d say it’s pretty safe. Of course this is all just my opinion so the usual disclaimers apply. :)

          2. Ignotus

            Hello, I have sent you a link and instructions via the email address on this page. Thank you for looking into this. I’ve started to get used to the off-center crosshair, but I think having the option to center it would be good if it’s doable. The only thing that I was wondering about regarding the ESO terms is the ability to change the time of day using esomod, which DOES work when I tried it in the previous patch. It’s (time change) not something I really need to make use of, but I wanted to see if it worked.

  5. J.

    Just wanted to say thanks for the tool, it helps a TON with making the game’s camera customizable and behave like most games allow for. Great work, still works even with the current live version and hopefully will for awhile to come.

    Reply
    1. Joshua Boyce Post author

      Awesome, glad to hear you’re finding it useful and that it’s still working. I don’t play ESO any more but please let me know if it breaks and I should be able to fix it (most of the features are pretty easy to update, there’s only one that’s a little tricky).

      Reply
  6. Djoork

    Hey man,

    There has been a new update since this week, and it appears the mod you wrote here no longer works (or atleast the addresses for FOV changing don’t). Any way you could give this another update?

    Thanks in advance
    Djoork

    Reply
    1. raptorfactor Post author

      Okay I’ll have to reinstall the game to take a look, which won’t happen until this weekend at the earliest. In the meantime can you please upload eso.exe somewhere and link it here or email it to me? That will greatly speed things up as I can start work on it before the game updates.

      Someone already sent me a build recently which I’ve been working on but it sounds like there’s an even newer one now, so it would be helpful to get that.

      Thanks.

      Reply
      1. Ignotus

        The “max camera view distance” still works, but I don’t know about anything else. I’ll send you a link to the new executable. Thanks again for your work!

        Reply
  7. Phinix

    Here is the latest build file as of 11-6-2014 (NA client, if that matters):

    http://www.warmsandsguild.com/random/eso.exe

    I am REALLY looking forward to the update. This has always been my favorite FOV solution for its elegance and simplicity. Much preferred over ESO Launcher, which hasn’t been updated either, sadly.

    Thanks very much for your work on this project!

    Reply
    1. raptorfactor Post author

      Thanks for the link. I’m glad to hear the mod is useful to you. Normally this sort of thing would only take me 2 minutes to update but the ESO binaries are packed so I have to unpack them, and then the parts which I need to reverse-engineer for my mod are all heavily obfuscated which slows down the process a lot. It’s also completely stupid, because they obfuscate the implementation of the movement/camera/etc related functions, but not the functions which call them (e.g. the Lua APIs)! So it doesn’t hinder the bot writers or cheaters at all because they don’t care how the function is implemented they just call the function directly (because it’s trivial to find, just not trivial to understand the implementation) and be done with it. Argh! Anyway that’s my rant over… :P I’ll do my best to find time for this soon, hopefully the patch isn’t too big because I’m still going to need to install it to actually test my changes and debug the camera functions if I can’t trace the offset statically (depends how much the code has changed).

      Thanks again.

      Reply
  8. Phinix

    Hello again. Just curious how this is progressing. Is the code obfuscation something they introduced since your original version to help combat botting? The ESO Launcher author doesn’t seem to have a workaround as of yet either. I know I could do it with Cheat Engine but I am afraid they might do mass auto-bans for using that.

    Reply
    1. xMovingTarget

      I am using Cheatengine for FoV as of now. It does nothing else as Esomod or Esolauncher. you just have to inject it manually each time.
      Its still annoying. You shouldnt be afraid of bans because of that ;) If you only use it for FoV you should be fine Phinix.

      Reply
  9. Phinix

    I should have read your previous post more carefully. That does seem a little odd they would include this in their anti-bot code, since their own reps have officially stated for the record that FOV adjustments are NOT against the TOS and you will NOT be banned for it.

    I don’t know enough about all this to really make suggestions, but it seems there are three FOV settings: 1st person, 3rd person, and “master.” I don’t even really know what the master does, but it seems it has a default value of 0.8726646304. It MIGHT be possible to search for that and grab the three closest address values, but they are randomized. Also, they might not all be 0.8726646304 since the user can change 1st person FOV in the game options.

    Now for my own rant: How in the name of all the divines could ZOS obfuscate the FOV functions, then give us ONLY a 1st person slider in-game? /mindboggled

    Really looking forward to progress on this. :)

    Reply
    1. raptorfactor Post author

      Really sorry for the delay. Every time I plan to do it something comes up. :/

      I had planned to do it this weekend, but I’ve been roped into (no pun intended) a rock-climbing trip instead. I might be able to do it Saturday night, but I’m not sure if I’ll be able to get mobile internet reception at the campsite. :P

      It’s still up near the top of my list of things to do though.

      Thanks for your patience, sorry I can’t deliver better news right now.

      Reply
      1. raptorfactor Post author

        Forgot to mention… I’ve finally re-installed the game at least, so when I do get some time that should speed things up because it means I can memory scan and debug the game rather than just tracing it statically.

        Reply
  10. Pingback: ESO Mod updated for eso.live.1.5.5.1083508 | The Raptor Factor

  11. Bobby

    args working:
    3d
    view-dist (min & max)
    tone-mapping
    time
    max-camera-dist
    fov (1p & 3p)

    args not working:
    fader
    fog

    ————————
    C:\Users\bobby\Documents\Elder Scrolls Online>esomod –fog
    HadesMem ESO Mod [v2.0.0]

    Acquired SeDebugPrivilege.

    Preparing to toggle fog.

    Error!
    C:\Code\hadesmem-trunk\include\memory\hadesmem/find_pattern.hpp(279): Throw in f
    unction void *__cdecl hadesmem::detail::Find<class std::_Vector_const_iterator<c
    lass std::_Vector_val<struct std::_Simple_types > >>(const class hadesmem::Process &,const struct hadesmem::detail::Mo
    duleRegionInfo &,class std::_Vector_const_iterator<class std::_Vector_val<struct
    std::_Simple_types > >,class std::_Ve
    ctor_const_iterator<class std::_Vector_val<struct std::_Simple_types > >,unsigned int,void *,const class std::basic_st
    ring<wchar_t,struct std::char_traits,class std::allocator > *)

    Dynamic exception type: class boost::exception_detail::clone_impl
    std::exception::what: Unknown exception
    [struct hadesmem::TagErrorString *] = Could not match pattern.
    [struct hadesmem::TagErrorStringOther *] =
    ————————
    C:\Users\bobby\Documents\Elder Scrolls Online>esomod –fader
    HadesMem ESO Mod [v2.0.0]

    Acquired SeDebugPrivilege.

    Preparing to toggle fader.

    Error!
    C:\Code\hadesmem-trunk\include\memory\hadesmem/find_pattern.hpp(279): Throw in f
    unction void *__cdecl hadesmem::detail::Find<class std::_Vector_const_iterator<c
    lass std::_Vector_val<struct std::_Simple_types > >>(const class hadesmem::Process &,const struct hadesmem::detail::Mo
    duleRegionInfo &,class std::_Vector_const_iterator<class std::_Vector_val<struct
    std::_Simple_types > >,class std::_Ve
    ctor_const_iterator<class std::_Vector_val<struct std::_Simple_types > >,unsigned int,void *,const class std::basic_st
    ring<wchar_t,struct std::char_traits,class std::allocator > *)

    Dynamic exception type: class boost::exception_detail::clone_impl
    std::exception::what: Unknown exception
    [struct hadesmem::TagErrorString *] = Could not match pattern.
    [struct hadesmem::TagErrorStringOther *] =

    Reply
    1. raptorfactor Post author

      This is perfect, thank you! I’ll take a look at the fader and fog settings and see what’s changed.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>