It has been a couple of years since I last updated you all on the more internal goings on at Nexus Mods so I've decided to drum up enough enthusiasm to write another of my long-winded, banal "blog posts" on the matter. I wasn't able to get around to doing one last year and I am aware that some of you actually like to punish yourselves, but if you're like me and just like to skim read, here's the TL;DR:
Statistically we're doing better than ever. Everything you would like to see increase for your modding enjoyment, has. We're serving more users more mods for more games each and every year, not by a little, but by a lot. However, progress in some areas has been slow for us as we work to fight decade-old legacy code, highlighting key areas for us to improve upon, but we're better placed to face that head-on now than ever before. Read on if you're interested in the details, leave it there if that's all you needed to know.
2020 in numbers
A year of Coronavirus and staying safe at home has inflated our statistics considerably. We averaged 8.4 million unique visitors each month, a 43% increase from 2019's 5.9 million visitors with pageviews averaging 184 million each month, a 36% increase on 2019's 136 million. While these numbers have always steadily increased year-on-year, this is the single biggest yearly increase we've recorded since Skyrim was released almost a decade ago.
Our membership has swelled, increasing by 5.3 million in 2020, a 75% increase on 2019's 3 million new users. We are now less than 50,000 new users off hitting the 25 million member milestone which will almost certainly be reached by the end of January.
We welcomed 300 new moddable games to Nexus Mods in 2020, up from the 221 new games added in 2019. This means the number of games we support has almost doubled in two years. We averaged 4,599 new mod uploads each month, a 47% increase on 2019's 3,116 new mods per month. 2020 is the first year in Nexus Mod's 20 year history that the new mod split between Bethesda games and non-Bethesda games was actually in favour of non-Bethesda games with 54% of all files uploaded in 2020 being for non-Bethesda games. Non-Bethesda file uploads increased 82% in 2020 while Bethesda uploads increased 22%, up from -7% in 2019, showing that Covid has increased modding in both Bethesda and non-Bethesda games alike.
Some big game releases in 2020 including Mount & Blade: Bannerlord, Mechwarrior 5, Resident Evil 3, Baldur's Gate 3, Cyberpunk 2077 and the continuing Master Chief Collection, among many others, have continued to increase our extensive mod offerings outside of Bethesda games while Stardew Valley, The Witcher 3 and Monster Hunter World have continued to thrive with modding communities more popular than some of Bethesda's offerings on Nexus Mods.
Naturally, with the increased number of users, views and mods on the site our download servers have also been busier than ever, averaging 56.7 million downloads each month in 2020, an increase of 32% on 2019's 42.8 million downloads. This means, on average, our users are starting 22 new downloads every second of every day of the year. 72% of downloads are for Bethesda games, showing that Bethesda games still account for the lion-share of downloads on Nexus Mods, however, that share is decreasing each year. In 2017 the share was 90%. While the number of downloads for Bethesda games increased by 1% in 2019 and 26% in 2020, the number of downloads for non-Bethesda games has increased by 69% and 89% respectively showing that, while Bethesda modding is still just as popular as ever, we continue to make inroads in hosting mods for as many games as possible, be they Bethesda games or not.
Our users downloaded over 59PB (59,000TB) of files in 2020, averaging 27Gbps of throughput on our service providers at any given time.
Finally, user uptake of Vortex is increasing. In 2019 Vortex accounted for 67% of all Nexus Mods users who used mod managers connected to our API. By the end of 2020 this number had increased to 72%. What we're seeing is less people using Nexus Mod Manager (15% in 2020, down from 22% in 2019), and they are moving to either Vortex or Mod Organizer 2 (12.5%, up from 10.5%). Considering the fact Nexus Mod Manager is, unfortunately, unstable and prone to unrecoverable corruption of the mod installation folder this is only a good thing as far as we are concerned. Unique users of the API (i.e. people who use mod managers to download and install mods from Nexus Mods) increased to just under 1,000,000 each month.
Donation points a resounding success
Perhaps the thing I am most proud of over the past few years, our Donation Points system continues to become more rewarding for mod authors on Nexus Mods. Since we launched the system in May of 2018 we have paid out almost $600,000 to our mod authors. In the 8 months to December 2018 our payouts averaged a little over $9,000, in 2019 this increased by 22% to just over $11,000 each month and in 2020 we increased the fund by a whopping 197% to average payouts of just under $32,750 each month to our mod authors. This large increase was made possible by the changes we made to the way we served downloads, putting a 5 second delay on non-Premium users and putting up more advertising regarding Premium Memberships.
In the same amount of time, Nexus Mods users have donated $221,579 to mod authors directly through the PayPal buttons found on file pages and user profiles, meaning that over the past 30 months mod authors on Nexus Mods have received total payouts of over $820,000 either directly from Nexus Mods, or from users on Nexus Mods. While this is an awesome number, lets not forget that there are now over 115,000 users who have uploaded mods to Nexus Mods.
While the majority of the Donation Points we hand out are cashed out via PayPal, mod authors have also bought $16,000 worth of game CD Keys from our store, spent $15,300 on discounted Nexus Mods Premium Memberships and, most importantly, they have donated over $17,500 to charities, including $6,818.52 to the Wildlife Conservation Society, $3,614.29 to Doctors Without Borders and $1,626.12 to the Make-A-Wish Foundation, among others. I feel a great sense of pride when sending these charity payments on behalf of Nexus Mods, its mod authors and its users.
We will continue to invest in the Donation Points system as much as possible, balancing the funds necessary to run these sites as efficiently as possible with the want to give back to mod authors as much as possible. Ultimately, it is revenue generated from the advertising shown on our site and the Premium Memberships bought by our user base that funds this initiative and this is something we could do better at conveying to our users - that everytime they see an ad or buy a Premium Membership, some of the revenue generated is going directly to mod authors who are making use of our Donation Points system. I imagine a large part of our user base has no idea how much money is being given back to mod authors and how some of the inconveniences they are experiencing (either through delays in downloads, ads and/or download speed caps) help to support the mod authors whose work they enjoy.
It is an aspiration of mine that, one day, the Donation Points fund will reach 7 figures a year.
Vortex continues to see extensive improvements
The Vortex developers were as busy as ever in 2020, releasing 51 minor versions/hotfixes and 2 new major version updates with the third major update just around the corner.
To save you trawling through our extensive Vortex change logs I'll summarise some of the more interesting improvements we've made to Vortex in 2020 for you below.
Game extensions
- 13 new game extensions have been added by us, including Mount & Blade: Bannerlord, Halo: The Master Chief Collection, Wolcen: Lord of Mayhem, Baldur’s Gate 3 and Microsoft Flight Simulator
- 42 new game extensions have been added by the community, including Cyberpunk 2077 by ThunderGod97
- Vortex now supports over 135 games
- The Witcher 3 now has full integration with the “Witcher 3 Script Merger”, load order management, symlink support and menu mod support
- Monster Hunter World support now has automatic detection and installation of Stracker’s Loader, a prerequisite to modding MHW
- We've added load order management to Blade & Sorcery
- Bethesda games now have guided installation of script extenders (obse, skse, fose, nvse, f4se) and will warn users if they have set up a script extender for the primary tool but it's not installed (correctly)
- There is now support for installing and updating SMAPI for Stardew Valley. Vortex now associates mod created files with the mod itself and removes those files when the mod is removed (preventing SMAPI warnings about loose files)
New functionality for users
- Extensions are now updated independently from the main app when Vortex is restarted, meaning we do not need to do a new Vortex release everytime we update support for a single game
- Added the ability to create mod reports which contain information that can be useful for mod authors troubleshooting user issues, including details of what mods the user has installed, the deployment method used, deployed files, overwritten files, and more.
- Conflicting file previews allow users to open one or both of the conflicting files in the program of their choice directly from the file conflict editor to e.g. compare 3D models in nifskope.
- We've added auto-start and auto-shutdown functionality
New functionality for developers
- Support for game detection via GOG, Origin/EA Play, UPlay and the Windows Store
- We created a generic extension to deal with load ordering in games (generic load order extension) which can be used by any/all game extensions as needed
- Patches to Unity games are now deployed as mods so they can make use of different deployment methods
- Extensions can now add buttons to the main toolbar
That's what we managed to release in 2020, but in the last quarter of 2020 extensive work was done on version 1.4 of Vortex which is due for release very soon. I'd be remiss if I did not share what Vortex 1.4 has in store:
- The option to automatically install mods once the download finishes
- The ability to automatically shutdown Vortex and the PC once all downloads are finished (perfect for when you leave your computer running to download mods over night)
- A history/activity log that will allow users to trace back their steps and undo certain actions as required
- Vortex will warn the user if they install a mod with an incompatible BSA or BA2 archive which would cause a crash on starting the game
- Vortex will provide tips for organizing the mod load order in the conflict editor
- Resident Evil 3 support
Vortex continues to come on in leaps and bounds, year on year, with a growing user base and developer base to back it up. To those people who have released game extensions this year, thank you for your work. 42 new game extensions created by the community in one year is amazing work!
Web development is slow going
While development of Vortex is coming on leaps and bounds, the development of the site is progressing at a slower pace than we would hope, especially on front-facing features that you, the user, get to see and experience.
While we want and aim to be in a position where new features and improving the site is what we primarily work on, our number one priority is always keeping the site up, running and able to handle the ever increasing number of users and mods on the site.
While modern frameworks put scalability at the forefront of their ethos, Nexus Mods was created long before these frameworks existed, and long before modern cloud computing was even a thing. Nexus Mods was built around a basic LAMP stack, with hundreds of thousands of lines of code in a LAMP environment. We've spent the past few years gradually rewriting different parts of the site to adhere to 12factor app principles and separating old systems from new ones; the user service released late 2019 is all new, our API, quick search service, file stats and uploads are all handled separately from the LAMP stack. These updates and the new systems we are building are all based around modern frameworks and ideals with scalability at the forefront, but we still have a lot of legacy code and systems that need to be updated which do not have any scalability and still use bare-metal servers.
Each time we release these new services that replace the old ones it takes a burden off our old infrastructure, reducing another bottleneck in the long list of bottlenecks. However, when these old systems hit capacity, it's not as simple as buying more servers and tacking them on, or even replacing the servers they are on with more powerful hardware - the data migration alone would take weeks - during which time the site would be down for everyone which, I'm sure you can agree, is not plausible. Instead, our focus is on optimisations where we can, with a clear focus on replacing old legacy systems as soon as we possibly can.
This is slow work, and it's made slower by the fact Nexus Mods is an extremely popular site with a very large amount of traffic, with database tables that can contain millions, sometimes billions of rows. We're attempting to do Enterprise level work at comparatively small budget pricing.
With this in mind, we've recognised the large job ahead of us and we have invested accordingly. Our team has grown from just 1 person, myself, in 2010 to 16 people today, of which 6 are backend focused developers and 4 are frontend focused. 2 of our backend developers joined us last year, along with an additional 2 frontend developers. With these new additions we are hoping we are now done with recruiting for the foreseeable future and our team can continue to gel well and refine our processes to tackle the monolithic task before us head on at an ever increasing pace.
Each year presents new challenges, and we came into 2020 having had a torrid December 2019 that was plagued with downtime and site slowness caused by a huge influx of traffic over the holidays. We spent the first quarter of 2020 looking at quick fixes and optimisations we could make to server configs and our code to ensure we could go back to providing a smooth operation. Each year we think we've done enough but each year we manage to hit a bottleneck, oftentimes in different places. In 2018 we would struggle to serve anything over 200 requests a second, in 2019 we managed to improve efficiency so that number was 270 requests a second and in 2020 we'd increased that number further still to 400, doubling our capacity in just 2 years but this still was not enough come December 2020. The solution isn't just tweaking a couple of things with our server configs, this is work that takes months of developer time spanning software, hardware, dev ops as well as integrating with external services that scale wherever possible.
To highlight the challenges we face, recently we had the honour of hosting the long awaited Fallout: The Frontier before anyone else. A large mod with high expectations, the mod has been popular, so popular that it managed to bring the site down for a little while. However, while it was reported that this was due to the amount of traffic, this isn't entirely true. It wasn't the amount of traffic the site received that brought it down, indeed, it did not create any more traffic than we would see on a busy Sunday evening normally, but instead it was the type of traffic which we received which caused the issue. Because the mod brought back a lot of old users who had not signed into Nexus Mods in many years, it triggered a poorly optimised query in our notification system which was being hit a lot more than usual and all at the same time. This code was many years old and coded at a time when the site was nowhere near as busy and did not have anywhere near as many mods or games. A hotfix to the code fixed the issue over the weekend, but not before the damage was done. This issue is indicative of the challenges we face each week, battling the effects of old code and systems that were not built for scalability with our wish and will to create new things for our users.
We are frustrated that we cannot make more visible changes to the site more regularly, like new, updated or additional functionality, however, the work we do now is integral to the stability of the sites and puts us on a stronger footing moving forward. We do not want to release major new additions to the site before our foundations are more solid - building on top of legacy systems is both perilous and makes our jobs harder further down the line, much like building your house on sandy land. However, we are aware that our users would like to see changes all across the site, both small and large, and these are being kept track of, to be tackled as and when we can.
The take away from this is that, while on the surface it seems like we are not doing much on or with the site, below the surface there is an awful lot of very necessary work being done by a growing number of developers to ensure the future viability of Nexus Mods.
Our staff have moved to a new home
While this one perhaps isn't so exciting for all of you, it's pretty exciting for us, just as soon as we're all allowed back into our workplaces after the worst of Covid has passed.
We moved into our first physical offices in 2016. Up until then our team was full remote, spread out across multiple locations in multiple time zones. For a while, and with a small team, this was OK. However, as our team began to grow and as the complexity of the work required began to dawn, we realised that our team efficiency would be so much better if we could collaborate together in the same space rather than relying on internet technologies to get us by.
4 of us moved into a shared office space in 2016 to trial it out and, having worked from home since 2007, I instantly saw how much better this was going to be for Nexus Mods.
After our year contract was up we moved into rented office space in 2017. Over the course of 2016 and 2017 we had slowly begun to relocate our workforce down to our home in Exeter, removing remote positions and bringing almost our entire workforce into the office space. This office was very utilitarian, perfectly fine for our needs, but it was really just 4 walls plus a conference room for meetings and a small kitchenette attached to the main office room. We could comfortably fit 12 in, but after that things would start to get a little cramped. We had unfortunate instances of colleagues microwaving fish lunches or curries and stinking the entire office out for the rest of the day. We still haven't received an apology for the fish incident, the culprit adamant they had done nothing wrong. The less said about that the better...
With plans to recruit further at the start of 2020 and with an aim to try and hire more experienced developers with a keen interest in scalable solutions, I spent time in 2019 trying to find us some good office space in Exeter that we could make our own and customised to our needs. It isn't just about providing a great experience for the staff at Nexus Mods which should hopefully also translate into better work, it's also about being able to recruit the cream of the crop to come and work for us. Would you rather work in a drab and dreary office or one that has been tailored around a bright and positive experience? If you were going for two jobs at the same pay level, would this be something that you took into consideration when making your final decision?
In November 2019 I put my name down on a building that formed a part of an old hospital right in the city centre, with the current tenants due to end their contract in July 2020, it was perfect for our needs.
In September 2020 we finished extensive modifications to the building which includes plenty of break out rooms, multiple conference rooms (with one doubling up as a ping pong room), a kitchen big enough to service a staff of 20 (with plenty of ventilation and a corridor between the kitchen and the office space beyond to prevent a repeat of fish-gate 2018), an outside deck area for summer lunches and a comfy top floor dedicated to games consoles and PC gaming, complete with 5 ready to go PCs for gaming on as and when wanted.
As we all know, Covid hit around March 2020 and, as such, we have not been able to make extensive use of the space yet or have the full team in to experience what it is like on a "normal" working day. We did however get plenty of time to customise the office to our specification without needing to worry about deadlines, so there is a silver lining to the Covid delay. Having had to work under Covid work-from-home restrictions for 10 months now, I am more resolute than ever that working in an office with flexible working conditions is far more efficient for our teams trying to work together than anything internet technology can offer. I'm sure you will all have your own opinions on this, however, for Nexus Mods, and with (now) 10 years of first hand experience working from home in this business and with 4 years experience working from an office, I am sure it is the right thing for us.
We very much look forward to being able to use our new space to its fullest in the years to come.
In conclusion…
If we just go by the statistics then 2020 was a magnificent year for Nexus Mods. Both the content on the site and the user base has grown considerably, Donation Points has been a resounding success and Vortex continues to expand and improve. However, my excitement is marred by the slow progress on the website side and issues with reliability. I am hopeful that the additions we've made to the team over the past 18 months and improvements in our work place will begin to show dividends through 2021 and beyond in the hope that, within the next couple of years, I can be far more excited about writing these blog posts as I come to you to share the great things we've done in the community over the past year.
Edit: an earlier version of this post contained incorrect stats regarding the API usage figures (I was using weekly figures, not monthly). These figures have now been updated and are now correct.
52 comments
Comments locked
A moderator has closed this comment topic for the time beingJoin date25 Feb 200711:10PM
It became TESSource just before Oblivion's release in 2006.
New interview when dude??
General rule of thumb in our meetings is to take what a developer says it will take to complete, then multiply that time by 2.5x and you're closer to when it will actually be done. This is due to all the unforeseen work that creeps in during the process. Not feature creep, mind. Just think of it like pulling on a thread of your jumper and it starting to unravel entire areas you never knew were connected.