CINXE.COM
The Humble Store: Great games. Fantastic prices. Support charity.
<!doctype html> <html lang="en" class="storefront v2"> <head> <title> The Humble Store: Great games. Fantastic prices. Support charity. </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script> window.noZensmooth = true; window.pageData = {atTime: 1743603889 }; window.humble = window.humble || {}; window.humble.locale = "en"; window.humble.timezone = "America/Los_Angeles"; window.humble.ie11ScriptsToLoad = [ "https://cdn.humblebundle.com/static/hashed/230b5ad34db2149203fc119b74fb96ba968bcef1.js", "https://cdn.humblebundle.com/static/hashed/ee47b95548c49132e7080413b0af49b6318fbb04.js", "https://cdn.humblebundle.com/static/hashed/95bcf58c86417455c695def01a0961d2623ff678.js", "https://cdn.humblebundle.com/static/hashed/77174c175993866b13940bcbcbbb078e0331142b.js", "https://cdn.humblebundle.com/static/hashed/f00402ff4c562abd341a500a5f4b0c1043f974a1.js", "https://cdn.humblebundle.com/static/hashed/c5b3c44cb77ebe3f6a35879673a9eaf7dee99d90.js", ]; </script> <script id="main-js" data-dist_version="c9ed87a47d080e3663d596d7acf24ed2c605d66f" src="https://cdn.humblebundle.com/c9ed87a47d080e3663d596d7acf24ed2c605d66f/dist/main.min.js"></script> <meta name="application-name" content="Humble Bundle"> <meta name="msapplication-TileImage" content="https://cdn.humblebundle.com/static/hashed/49bccd0f2050e5fcfc3c442b269d4ff47b038ed9.png"> <meta name='medium' content='news' /> <meta name="theme-color" content="hsl(221, 11.52%, 32.35%)"> <meta property='og:site_name' content='Humble Bundle' /> <meta property='og:type' content='website' /> <meta property="fb:app_id" content="101146256651042" /> <meta property="fb:profile_id" content="162315830478396" /> <meta property="fb:pages" content="162315830478396"><meta name="yandex-verification" content="4c70c59be0ff7c44" /> <meta name="p:domain_verify" content="09935f6d7546ea2a15ecbffb9845de5a"/> <meta name="google-site-verification" content="RWOr7xvK0pjMd7rJvmakIEH5ebV-MVPFkgh_RzZXUl0" /> <meta name="title" content="The Humble Store: Great games. Fantastic prices. Support charity."> <meta name="description" content="Choose from thousands of games for PC, Mac, Linux, and Android while supporting a charity of your choice. New games added every day!"> <link rel="image_src" href="https://cdn.humblebundle.com/static/hashed/ae004602956f47425ecc0edaf72e710b8a4bb812.png"> <meta itemprop="description" content="Choose from thousands of games for PC, Mac, Linux, and Android while supporting a charity of your choice. New games added every day!"> <meta itemprop="image" content="https://cdn.humblebundle.com/static/hashed/ae004602956f47425ecc0edaf72e710b8a4bb812.png"> <meta property="og:description" content="Choose from thousands of games for PC, Mac, Linux, and Android while supporting a charity of your choice. New games added every day!"> <meta property="og:image" content="https://cdn.humblebundle.com/static/hashed/ae004602956f47425ecc0edaf72e710b8a4bb812.png"> <meta property="og:title" content="The Humble Store: Great games. Fantastic prices. Support charity."> <meta property="og:url" content="https://www.humblebundle.com/store"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:description" content="Choose from thousands of games for PC, Mac, Linux, and Android while supporting a charity of your choice. New games added every day!"> <meta name="twitter:image" content="https://cdn.humblebundle.com/static/hashed/ae004602956f47425ecc0edaf72e710b8a4bb812.png"> <meta name="twitter:site" content="@humble"> <meta name="twitter:title" content="The Humble Store: Great games. Fantastic prices. Support charity."> <meta name="twitter:url" content="https://www.humblebundle.com/store"> <script> window.Humble = window.Humble || {}; // Create Humble info struct if not present. window.Humble.title = 'The Humble Store: Great games. Fantastic prices. Support charity.'; // Expose title to frontend application. </script> <link rel="apple-touch-icon" sizes="144x144" href="https://cdn.humblebundle.com/static/hashed/03df0490a53d595fd930f9fff52038366d60a05d.png"> <link rel="icon" type="image/png" sizes="16x16" href="https://cdn.humblebundle.com/static/hashed/4c8bbc6fc7b2b8a9fa21e895afe1157188e28bfb.png"> <link rel="icon" type="image/png" sizes="32x32" href="https://cdn.humblebundle.com/static/hashed/46cf2ed85a0641bfdc052121786440c70da77d75.png"> <link rel="shortcut icon" href="https://cdn.humblebundle.com/static/hashed/47e474eed38083df699b7dfd8d29d575e3398f1e.ico"> <link rel="search" type="application/opensearchdescription+xml" title="Humble Bundle Search" href="https://cdn.humblebundle.com/static/hashed/734237ad071b57a64f3b131b3f86fc7ed670e794.xml" /> <link rel='alternate' type='application/rss+xml' title='Humble Mumble' href='http://blog.humblebundle.com/rss' /> <style> .add-to-cart-helper { display: none; width: 103px; height: 64px; margin-top: -32px; margin-left: -51px; position: absolute; z-index: 900; top: 0; left: 0; } .add-to-cart-helper .image { width: 103px; height: 64px; background-repeat: no-repeat; background-position: center center; } #flash { position:fixed; right: 30px; top:10px; background: #eee; opacity: .8; border-radius: 10px; color: black; padding:20px; min-width: 200px; max-width: 400px; text-align: center; z-index: 99999; box-shadow: 1px 1px 5px #000; display:none; } html, body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { font-family: 'Sofia Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; padding: 0; } // Localize.js uses the <var> tag to indicate certain special things. However, // some browsers apply special CSS to the <var> tag which we don't want. This // effectively removes any special CSS that the browser might apply to <var>. var { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } </style> <link rel="stylesheet" href="https://cdn.humblebundle.com/static/hashed/844e9b6853d0e84d67102130770d94e46dc477bb.css" /> <link rel="stylesheet" href="https://cdn.humblebundle.com/static/hashed/affd271aa32963c1accd8f217c514487254f5a86.css" /> <link rel="stylesheet" href="https://cdn.humblebundle.com/static/hashed/011d2583eff00381e4f211b325f73813259d0c77.css" /> <link rel="stylesheet" href="https://cdn.humblebundle.com/static/hashed/86c243100f63e45b975d87ceac79f4d89b7cfaed.css" /> <link rel="stylesheet" href="https://cdn.humblebundle.com/static/hashed/9abe088ca50175f1e3ada1bec0fcb867970ec995.css" /> <link rel="stylesheet" href="https://cdn.humblebundle.com/static/hashed/6c656a6ccefeff002c55866dc46bf6a5a5d07bc3.css" /> <style></style> <script> window.models = window.models || {}; window.models.user_json = {"is_logged_in": false, "logout_url": "/logout?goto\u003d/store/c/vr\u0026qs\u003d"}; window.models.userSubscriptionState = {"newestOwnedTier": null, "nextBilledPlan": null, "consecutiveContentDropCount": 0, "canResubscribe": false, "currentlySkippingContentHumanName": null, "perksStatus": "inactive", "billDate": null, "monthlyNewestOwnedContentMachineName": null, "willReceiveFutureMonths": false, "monthlyOwnsActiveContent": false, "unpauseDt": null, "creditsRemaining": 0, "currentlySkippingContentMachineName": null, "canBeConvertedFromGiftSubToPayingSub": false, "lastSkippedContentMachineName": null, "contentEndDateAfterBillDate": null, "isPaused": false, "monthlyNewestOwnedContentGamekey": null, "failedBillingMonths": 0, "monthlyNewestSkippedContentEnd": null, "wasPaused": false, "monthlyPurchasedAnyContent": false, "monthlyNewestOwnedContentEnd": null, "monthlyOwnsAnyContent": false}; window.models.request = { country_code: "SG", captcha_enabled: true, vat_rate: 0.09, is_mobile: false, isAndroidApp: false }; </script> <link rel="preload" href="https://cdn.ziffstatic.com/jst/zdconsent.js" as="script"> <script type="text/javascript">window.zdconsent = window.zdconsent || {'run': [], 'cmd':[], 'analytics':[], 'functional':[], 'social':[] };</script> <script type="text/javascript" src="https://cdn.ziffstatic.com/jst/zdconsent.js" async="true"></script> <script> window.zdconsent.run.push(function() { var expiry = new Date(); expiry.setTime(expiry.getTime() + 24*60*60*1000*7); // 7 days in the future if (window.gaData && window.gaData['UA-467050-6'] && window.gaData['UA-467050-6']['experiments']) { var expData = window.gaData['UA-467050-6']['experiments']; for (var experimentId in expData) { var experimentVariant = expData[experimentId]; document.cookie = 'hmb_medium=goptimize_' + encodeURIComponent(experimentId) + ';path=/;expires=' + expiry.toUTCString(); document.cookie = 'hmb_campaign=goptimize_' + encodeURIComponent(experimentVariant) + ';path=/;expires=' + expiry.toUTCString(); } if (window.internalUIEventBus) { // Override panel is initialized first // You can trigger an event for experiment data window.internalUIEventBus.trigger('gaExperiments', expData); } } window._hbdl = { 'campaigns': { 'partnerId': '', }, 'privacy': { 'accessCategories': [ { 'categoryName': 'Default', 'domains': [ 'google-analytics.com', 'googletagmanager.com', ], }, { 'categoryName': 'Analytics', 'domains': [ 'googleadservices.com', 'doubleclick.net', ], }, ], }, 'user': { 'hasGivenConsent': '', 'isLoggedIn': '', 'isSubscribed': '', 'sessionId': '', 'userId': '', 'security': { 'hasGivenConsent': null, 'isLoggedIn': null, 'isSubscribed': null, 'sessionId': ['Analytics'], 'userId': ['Analytics'], }, }, 'isDebug': false, 'version': '1.0', }; if (window._hbdl) window._hbdl.in_china = false; window._hbdl.user.hasGivenConsent = window.zdconsent ? window.zdconsent.consentGiven : false; window._hbdl.user.locale = 'en'; window._hbdl.user.isLoggedIn = false; window._hbdl.user.isSubscribed = false; if (window.models.userSubscriptionState.perksStatus === 'active') { window._hbdl.user.isSubscribed = true; } else { window._hbdl.user.isSubscribed = false; } window._hbdl.tags = { 'tagvars': {}, }; window._hbdl.page = { 'name': '' }; if (window.location.pathname === '/') { window._hbdl.page.name = 'site homepage'; } else if (window.location.pathname === '/bundles') { window._hbdl.page.name = 'bundles landing page'; } else if (window.location.pathname === '/games') { window._hbdl.page.name = 'game bundles landing page'; } else if (/\/games\/[^\/]+$/g.test(window.location.pathname)) { window._hbdl.page.name = 'game bundle product detail page'; } else if (window.location.pathname === '/books') { window._hbdl.page.name = 'book bundles landing page'; } else if (/\/books\/[^\/]+$/g.test(window.location.pathname)) { window._hbdl.page.name = 'book bundle product detail page'; } else if (window.location.pathname === '/software') { window._hbdl.page.name = 'software bundles landing page'; } else if (/\/software\/[^\/]+$/g.test(window.location.pathname)) { window._hbdl.page.name = 'software bundle product detail page'; } else if (/(^\/checkout)/g.test(window.location.pathname)) { window._hbdl.page.name = 'bundle checkout page'; } else if (window.location.pathname === '/membership') { window._hbdl.page.name = 'choice landing page'; } else if (window.location.pathname === '/membership/checkout' && window.location.search.indexOf("duration=") !== -1) { window._hbdl.page.name = 'choice checkout page'; } else if (window.location.pathname === '/membership/checkout' && window.location.search.indexOf("duration=") === -1) { window._hbdl.page.name = 'choice membership selection page'; } else if (window.location.pathname === '/store') { window._hbdl.page.name = 'store landing page' } else if (/(^\/store\/c\/[^\/]+$)|(^\/store\/search$)|(^\/store\/search\/sort\/)/g.test(window.location.pathname)) { window._hbdl.page.name = 'store category page'; } else if (/(^\/store\/[^\/]+$)/g.test(window.location.pathname)) { window._hbdl.page.name = 'store product detail page'; } else if (window.location.pathname === '/receipt') { window._hbdl.page.name = 'receipt page'; } else if (window.location.pathname === '/downloads') { window._hbdl.page.name = 'downloads page'; } else if (/^\/store\/promo\//g.test(window.location.pathname)) { window._hbdl.page.name = 'promo page'; } else if (/^\/store\/agecheck\//g.test(window.location.pathname)) { window._hbdl.page.name = 'store agecheck interrupt page'; } else if (/(^\/membership\/)|(^\/membership$)/g.test(window.location.pathname)) { window._hbdl.page.name = 'choice membership page'; } else { window._hbdl.page.name = 'bundle or 404 page'; } // Google Tag Manager - Site (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-3CSP877'); // End Google Tag Manager - Site window._hbgtm = function(isEcomm, options) { const dataLayer = window.dataLayer || []; if (dataLayer) { if (isEcomm) { dataLayer.push({'ecommerce': null}); } dataLayer.push(options); } }; (function() { try { var gawHelper = function() { // If enabled via GTM, set up Adwords (function(){ var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.src = 'https://www.googletagmanager.com/gtag/js?id=AW-752198208'; head.insertBefore(script, head.firstChild); })(); window.dataLayer = window.dataLayer || []; window.gaw = function() { window.dataLayer.push(arguments); } gaw('js', new Date()); gaw('config', 'AW-752198208'); } // Execute only if window.gaw set to true in GTM if (window.gaw) { gawHelper(); } else { window.addEventListener('gawConsent', gawHelper); } } catch (error) {} })(); if (window._hbdl && typeof window._hbdl.tags !== 'undefined') { window._hbdl.tags.tagvars = { 'cj_pageview_data': {"enterpriseId": 1563072}, 'include_criteo': true, 'enable_tik_tok_pixel': false, }; } }); window.zdconsent.analytics.push(function() { window._hbdl.user.sessionId = "LSszk5yrOA"; }); window.zdconsent.functional.push(function() { var _user_id = ""; var _session_id = "LSszk5yrOA"; var _sift = _sift || []; _sift.push(['_setAccount', 'cbc841cfaa']); _sift.push(['_setUserId', _user_id]); _sift.push(['_setSessionId', _session_id]); _sift.push(['_trackPageview']); (function () { function ls() { var e = document.createElement('script'); e.type = 'text/javascript'; e.async = true; e.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.sift.com/s.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s); } if (window.attachEvent) { window.attachEvent('onload', ls); } else { window.addEventListener('load', ls, false); } })(); }); window.zdconsent.cmd.push(function() { (function(C,O,R,D,I,A,L){ C.CordialObject=I,C[I]=C[I]||function(){(C[I].q=C[I].q||[]).push(arguments)}; C[I].l=1*new Date,C[I].q=[],A=O.createElement(R); L=O.getElementsByTagName(R)[0],A.async=1,A.src=D,L.parentNode.insertBefore(A,L); })(window, document, "script", "//d.mailer.humblebundle.com/track.v2.js", "crdl"); window.crdl('connect', 'humblebundlelive', { trackUrl: '//se.mailer.humblebundle.com', connectUrl: '//d.mailer.humblebundle.com', cookieDomain: 'humblebundle.com', cookieLife: 365, }); }); </script> <script> var SITE_MIN_WIDTH = 360, screenWidth = window.screen.width, isUnsupportedWidth = screenWidth < SITE_MIN_WIDTH, ratio = screenWidth / SITE_MIN_WIDTH, viewport = document.createElement('meta') ; viewport.id = 'js-viewport'; viewport.name = 'viewport'; if (isUnsupportedWidth) { viewport.content = 'width=' + SITE_MIN_WIDTH + ', initial-scale=' + ratio; } else { viewport.content = 'width=device-width, initial-scale=1'; } document.head.appendChild(viewport); // Have Prerender wait until this is set to `true` before caching our store pages. window.prerenderReady = false; </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "url": "https://www.humblebundle.com/", "potentialAction": { "@type": "SearchAction", "target": "https://www.humblebundle.com/store/search?search={search_term}", "query-input": "required name=search_term" } } </script> <link rel="stylesheet" href="https://cdn.humblebundle.com/static/hashed/7975bfdb27997c00f0b52a2c27d1b27f82d7e96a.css"> <link rel="stylesheet" href="https://cdn.humblebundle.com/static/hashed/a80431f45ba5d8201a27598cf54b18e2d6e380e4.css"> <link rel="stylesheet" href="https://cdn.humblebundle.com/static/hashed/bf20b547ef893fd1ce455f1b25a2c45a7965a510.css"> <link rel="stylesheet" href="https://cdn.humblebundle.com/static/hashed/37763dcb779fda1dc3afc9e97451ff987cc1b55c.css" /> <link rel="stylesheet" href="https://cdn.humblebundle.com/static/hashed/e6a79c1aa32f869685ca8337117fd9e3bfc8851c.css" /> <link rel="alternate" hreflang="ru" href="https://ru.humblebundle.com/store/c/vr" /> <link rel="alternate" hreflang="fr" href="https://fr.humblebundle.com/store/c/vr" /> <link rel="alternate" hreflang="en" href="https://www.humblebundle.com/store/c/vr" /> <link rel="alternate" hreflang="zh" href="https://zh.humblebundle.com/store/c/vr" /> <link rel="alternate" hreflang="de" href="https://de.humblebundle.com/store/c/vr" /> <link rel="alternate" hreflang="it" href="https://it.humblebundle.com/store/c/vr" /> <link rel="alternate" hreflang="es" href="https://es.humblebundle.com/store/c/vr" /> <link rel="alternate" hreflang="x-default" href="https://www.humblebundle.com/store/c/vr" /> <link rel="canonical" href="https://www.humblebundle.com/store/c/vr" /> </head> <body> <div class="page-wrap"> <div id="page-top-messages"></div> <div id="site-xpromo-banner" class="banner js-banner small-banner top is-hidden" style="background-image: url('https://hb.imgix.net/eaa2e4a33824c17959615819b4336e056f50d119.png?auto=compress,format&fit=clip&w=1920&s=e652e1c2e5864b26e2863c205b7d013e');"> <div class="js-admin-edit" data-entity-kind="banner" data-machine-name="25-04-01_choice_sitewide_banner" > </div> <a class="page-banner-link js-page-banner-link" href="https://www.humblebundle.com/membership?hmb_campaign=25-04-01_choice_sitewide_banner&hmb_medium=banner" data-banner="25-04-01_choice_sitewide_banner"> <p class="body"><h3>Play Tomb Raider I-III Remastered & Dredge with April’s Humble Choice!</h3></p> </a> <button href="#" class="dismiss-button js-dismiss-button" aria-label="Dismiss Banner"><i class="hb hb-times" aria-hidden="true"></i></button> </div> <div id="js-site-xpromo-banner-container-top"></div> <div class="js-navigation-tracker"></div> <div class="navigation-container-v2 js-navigation-container-v2 font-size-reset"> <nav class="navbar navbar-2021 js-navbar-2021"> <div class="navbar-content"> <div class="mobile-nav-buttons"> <div class="expand-mobile-nav-button mobile-nav-button"> <a href="#navbar-mmenu"><i class="hb hb-bars"></i></a> </div> <div class="expand-mobile-search-button mobile-nav-button js-mobile-search-enable"> <i class="hb hb-search-fa"></i> </div> </div> <a class="navbar-item logo-navbar-item" href="/"> <img src="https://cdn.humblebundle.com/static/hashed/4814f84495cd679571cb94896978da3825562075.svg" alt="Humble"> </a> <section class="tabs tabs-navbar-item"> <div class="nav-dropdown-container"> <div class="navbar-item button-title navbar-item-dropdown dropdown-button "> <span class="navbar-icon-text-wrapper"> <span class="navbar-item-text"> <a href="/bundles"> Bundles </a> </span> </span> </div> <div class="navbar-item-dropdown-container nav-dropdown"> <div class="js-disable-body-scroll navbar-item-dropdown-items column-items nav-dropdown-items"> <div class="nav-dropdown-columns"> <div class="nav-dropdown-column "> <div class="nav-dropdown-column-content"> <a href="/games" class="navbar-item-dropdown-item "> Games </a> <a href="/books" class="navbar-item-dropdown-item "> Books </a> <a href="/software" class="navbar-item-dropdown-item "> Software </a> </div> </div> </div> </div> </div> </div> <div class="nav-dropdown-container"> <div class="navbar-item button-title navbar-item-dropdown dropdown-button "> <span class="navbar-icon-text-wrapper"> <span class="navbar-item-text"> <a href="/store"> Store </a> </span> </span> </div> <div class="navbar-item-dropdown-container nav-dropdown"> <div class="js-disable-body-scroll navbar-item-dropdown-items column-items nav-dropdown-items"> <div class="nav-dropdown-columns"> <div class="nav-dropdown-column "> <div class="nav-dropdown-column-title">Popular</div> <div class="nav-dropdown-column-content"> <a href="/store/search?sort=bestselling&filter=onsale" class="navbar-item-dropdown-item "> On Sale </a> <a href="/store/search?sort=bestselling" class="navbar-item-dropdown-item "> Bestselling </a> <a href="/store/search?sort=newest&filter=new" class="navbar-item-dropdown-item "> New Releases </a> <a href="/store/promo/pre-order/" class="navbar-item-dropdown-item "> Pre-order </a> <a href="/store/promo/books/" class="navbar-item-dropdown-item "> Books </a> <a href="/store/promo/software/" class="navbar-item-dropdown-item "> Software </a> <a href="/store/promo/deals-under-5/" class="navbar-item-dropdown-item "> Deals Under $5 </a> <a href="/store/promo/deals-under-10/" class="navbar-item-dropdown-item "> Deals Under $10 </a> <a href="/store/promo/deals-under-20/" class="navbar-item-dropdown-item "> Deals Under $20 </a> <a href="/store/promo/handheld-friendly/" class="navbar-item-dropdown-item "> Great on Handhelds </a> </div> </div> <div class="nav-dropdown-column "> <div class="nav-dropdown-column-title">Top Genres</div> <div class="nav-dropdown-column-content"> <a href="/store/c/rpg" class="navbar-item-dropdown-item "> RPG </a> <a href="/store/c/vr" class="navbar-item-dropdown-item "> Virtual Reality </a> <a href="/store/c/simulation" class="navbar-item-dropdown-item "> Simulation </a> <a href="/store/c/strategy" class="navbar-item-dropdown-item "> Strategy </a> <a href="/store/c/action" class="navbar-item-dropdown-item "> Action </a> <a href="/store/c/adventure" class="navbar-item-dropdown-item "> Adventure </a> <a href="/store/c/indie" class="navbar-item-dropdown-item "> Indie </a> <a href="/store/c/racing" class="navbar-item-dropdown-item "> Racing </a> <a href="/store/c/all" class="navbar-item-dropdown-item "> All Genres </a> </div> </div> <div class="nav-dropdown-column "> <div class="nav-dropdown-column-title">Top Platforms</div> <div class="nav-dropdown-column-content"> <a href="/store/c/windows" class="navbar-item-dropdown-item "> Windows </a> <a href="/store/promo/nintendo/" class="navbar-item-dropdown-item "> Nintendo Switch </a> <a href="/store/c/steam" class="navbar-item-dropdown-item "> Steam </a> <a href="/store/c/mac" class="navbar-item-dropdown-item "> Mac </a> <a href="/store/c/oculus-rift" class="navbar-item-dropdown-item "> Oculus Rift </a> <a href="/store/c/linux" class="navbar-item-dropdown-item "> Linux </a> <a href="/store/c/all" class="navbar-item-dropdown-item "> All platforms </a> </div> </div> <div class="nav-dropdown-column wide-column "> <div class="nav-dropdown-column-title">Featured</div> <div class="nav-dropdown-column-content"> <a href="/store/dredge-blackstone-key" class="navbar-item-dropdown-item "> DREDGE - Blackstone Key </a> <a href="/store/raidou-remastered-the-mystery-of-the-soulless-army-digital-deluxe-edition" class="navbar-item-dropdown-item "> RAIDOU Remastered: The Mystery of the Soulless Army - Digital Deluxe Edition </a> <a href="/store/dredge-the-iron-rig" class="navbar-item-dropdown-item "> DREDGE - The Iron Rig </a> <a href="/store/vintage-story" class="navbar-item-dropdown-item "> Vintage Story </a> <a href="/store/dredge-the-pale-reach" class="navbar-item-dropdown-item "> DREDGE - The Pale Reach </a> </div> </div> </div> </div> </div> </div> <div class="nav-dropdown-container"> <div class="navbar-item button-title "> <span class="navbar-icon-text-wrapper"> <span class="navbar-item-text"> <a href="/membership"> Choice </a> </span> </span> </div> </div> <div class="nav-dropdown-container"> <div class="navbar-item button-title "> <span class="navbar-icon-text-wrapper"> <span class="navbar-item-text"> <a href="https://blog.humblebundle.com/"> Blog </a> </span> </span> </div> </div> <div class="about-dropdown-container nav-dropdown-container"> <div class="navbar-item navbar-item-dropdown dropdown-button button-title non-link-item"> <span class="navbar-icon-text-wrapper"> <span class="navbar-item-text">About</span> </span> </div> <div class="navbar-item-dropdown-container about-dropdown about-item-dropdown-container nav-dropdown"> <div class="js-disable-body-scroll navbar-item-dropdown-items about-items nav-dropdown-items"> <a href="/about" class="navbar-item-dropdown-item"> Our Story </a> <a href="/charities" class="navbar-item-dropdown-item"> Charities </a> <a href="https://promo.humblebundle.com/affiliates" class="navbar-item-dropdown-item" target="_blank"> Affiliates </a> <a href="http://support.humblebundle.com/" class="navbar-item-dropdown-item" target="_blank"> Support</i> </a> <a href="https://jobs.jobvite.com/humble-bundle/jobs/" class="navbar-item-dropdown-item" target="_blank"> Careers</i> </a> <a href="/accessibility" class="navbar-item-dropdown-item"> Accessibility </a> </div> </div> </div> </section> <li class="navbar-item site-search js-site-search"> <span class="js-site-minisearch site-minisearch-view"> <span class="site-searchbar-holder js-navbar-dropdown js-search-item-dropdown-toggle" data-dropdown-type="search-dropdown"> <div class="searchbar"> <input id="site-search" aria-label="Search" class="site-search js-search" placeholder="Search"/> <button class="no-style-button clear-search-button js-clear-search-button" aria-label="Clear search"> <i class="hb hb-search-fa" aria-hidden="true"></i> </button> </div> </span> <div class="site-search-results-holder js-search-holder"> <div class="site-search-message js-message"></div> <div class="site-search-results js-results js-disable-body-scroll"></div> <div class="site-search-navigation js-search-navigation"> <button class="no-style-button page-navigation js-prev-page" aria-label="Previous set of search results"> <i class="hb hb-angle-double-left hb-2x"></i> </button> <div class="site-search-information"> <a class="site-search-link js-search-link"></a> <span class="site-search-paging js-search-paging"></span> </div> <button class="no-style-button page-navigation js-next-page" aria-label="Next set of search results"> <i class="hb hb-angle-double-right hb-2x"></i> </button> </div> </div> </span> </li> <a class='navbar-item js-user-navbar-item user-navbar-item js-create-account logged-out desktop button-title navbar-create-account' href='javascript:void(0)'> Sign Up </a> <a class='navbar-item js-user-navbar-item user-navbar-item js-account-login logged-out desktop button-title navbar-login' href='javascript:void(0)'> <span class="navbar-item-text"> Log In </span> </a> </div> </nav> </div> <nav id="navbar-mmenu" class="font-size-reset hidden"> <ul> <li> <span>Bundles</span> <ul> <li> <a href="/games" class="">Games</a> </li> <li> <a href="/books" class="">Books</a> </li> <li> <a href="/software" class="">Software</a> </li> </ul> </li> <li> <span>Store</span> <ul> <li> <span>Popular</span> <ul> <li> <a href="/store/search?sort=bestselling&filter=onsale" class="">On Sale</a> </li> <li> <a href="/store/search?sort=bestselling" class="">Bestselling</a> </li> <li> <a href="/store/search?sort=newest&filter=new" class="">New Releases</a> </li> <li> <a href="/store/promo/pre-order/" class="">Pre-order</a> </li> <li> <a href="/store/promo/books/" class="">Books</a> </li> <li> <a href="/store/promo/software/" class="">Software</a> </li> <li> <a href="/store/promo/deals-under-5/" class="">Deals Under $5</a> </li> <li> <a href="/store/promo/deals-under-10/" class="">Deals Under $10</a> </li> <li> <a href="/store/promo/deals-under-20/" class="">Deals Under $20</a> </li> <li> <a href="/store/promo/handheld-friendly/" class="">Great on Handhelds</a> </li> </ul> </li> <li> <span>Top Genres</span> <ul> <li> <a href="/store/c/rpg" class="">RPG</a> </li> <li> <a href="/store/c/vr" class="">Virtual Reality</a> </li> <li> <a href="/store/c/simulation" class="">Simulation</a> </li> <li> <a href="/store/c/strategy" class="">Strategy</a> </li> <li> <a href="/store/c/action" class="">Action</a> </li> <li> <a href="/store/c/adventure" class="">Adventure</a> </li> <li> <a href="/store/c/indie" class="">Indie</a> </li> <li> <a href="/store/c/racing" class="">Racing</a> </li> <li> <a href="/store/c/all" class="">All Genres</a> </li> </ul> </li> <li> <span>Top Platforms</span> <ul> <li> <a href="/store/c/windows" class="">Windows</a> </li> <li> <a href="/store/promo/nintendo/" class="">Nintendo Switch</a> </li> <li> <a href="/store/c/steam" class="">Steam</a> </li> <li> <a href="/store/c/mac" class="">Mac</a> </li> <li> <a href="/store/c/oculus-rift" class="">Oculus Rift</a> </li> <li> <a href="/store/c/linux" class="">Linux</a> </li> <li> <a href="/store/c/all" class="">All platforms</a> </li> </ul> </li> <li> <span>Featured</span> <ul> <li> <a href="/store/dredge-blackstone-key" class="">DREDGE - Blackstone Key</a> </li> <li> <a href="/store/raidou-remastered-the-mystery-of-the-soulless-army-digital-deluxe-edition" class="">RAIDOU Remastered: The Mystery of the Soulless Army - Digital Deluxe Edition</a> </li> <li> <a href="/store/dredge-the-iron-rig" class="">DREDGE - The Iron Rig</a> </li> <li> <a href="/store/vintage-story" class="">Vintage Story</a> </li> <li> <a href="/store/dredge-the-pale-reach" class="">DREDGE - The Pale Reach</a> </li> </ul> </li> </ul> </li> <li> <a href="/membership">Choice</a> </li> <li> <a href="https://blog.humblebundle.com/">Blog</a> </li> <div class="mm-nav-spacer"></div> <li><span>About</span> <ul> <li><a href="/about">Our Story</a></li> <li><a href="/charities">Charities</a></li> <li><a href="/partner">Partners</a></li> <li><a href="https://www.humblegames.com/" target="_blank">Publishing</i></a></li> <li><a href="http://support.humblebundle.com/" target="_blank">Support</i></a></li> <li><a href="https://jobs.jobvite.com/humble-bundle/jobs/" target="_blank">Careers</i></a></li> <li><a href="https://blog.humblebundle.com/" target="_blank">Blog</i></a></li> <li><a href="/accessibility">Accessibility</a></li> </ul> </li> <div class="mm-nav-spacer"></div> <li><a class="mobile-signup js-mobile-signup" href="javascript:void(0)">Sign Up</a></li> <li><a class="js-mobile-login" href="javascript:void(0)">Log In</a></li> </ul> </nav><div class="base-main-wrapper"> <div class="page_title"></div> <div class="inner-main-wrapper"> <section class="storefront-main"> <div class="nav-container store-wide js-storefront-header-nav store-nav-container-2021 font-size-reset"></div> <div class="main-content"> <div id="js-background-container" class="background-container"></div> <div class="full-width-container js-page-content "></div> <div id="js-site-xpromo-banner-container-bottom"></div> <div class="state-views"> <div class="loading-view"> <img class="loading-spinner" src="https://cdn.humblebundle.com/static/hashed/26faf55c6e36ba3b1a57f9001942059fe05050f2.gif" alt=""> Loading... </div> <div class="error-view">Sorry, an error occurred.</div> </div> </div> </section> <div id="js-cart-container" class="cart-container js-cart-container"></div> </div> </div> <script type='text/html' id='add-to-cart-helper'> <div class='add-to-cart-helper'> <div class='image'></div> </div> </script> <div class="grayout"> <div class="grayout-inner"> </div> </div> <script> /* v1.0.1 */(function(b){b.fn.mailcheck=function(a,b){var d="yahoo.com,google.com,hotmail.com,gmail.com,me.com,aol.com,mac.com,live.com,comcast.net,googlemail.com,msn.com,hotmail.co.uk,yahoo.co.uk,facebook.com,verizon.net,sbcglobal.net,att.net,gmx.com,mail.com".split(",");if("object"===typeof a&&void 0===b)a.domains=a.domains||d;else{var e=a,a=b;a.domains=e||d}(d=Kicksend.mailcheck.suggest(encodeURI(this.val()),a.domains))?a.suggested&&a.suggested(this,d):a.empty&&a.empty(this)}})(jQuery); var Kicksend={mailcheck:{threshold:3,suggest:function(b,a){var b=b.toLowerCase(),c=this.splitEmail(b),d=this.findClosestDomain(c.domain,a);return d?{address:c.address,domain:d,full:c.address+"@"+d}:!1},findClosestDomain:function(b,a){for(var c,d=99,e=null,f=0;f<a.length;f++){if(b===a[f])return!1;c=this.stringDistance(b,a[f]);c<d&&(d=c,e=a[f])}return d<=this.threshold&&null!==e?e:!1},stringDistance:function(b,a){if(null==b||0===b.length)return null==a||0===a.length?0:a.length;if(null==a||0===a.length)return b.length; for(var c=0,d=0,e=0,f=0;c+d<b.length&&c+e<a.length;){if(b[c+d]==a[c+e])f++;else for(var g=e=d=0;5>g;g++){if(c+g<b.length&&b[c+g]==a[c]){d=g;break}if(c+g<a.length&&b[c]==a[c+g]){e=g;break}}c++}return(b.length+a.length)/2-f},splitEmail:function(b){b=b.split("@");if(2>b.length)return!1;for(var a=0;a<b.length;a++)if(""===b[a])return!1;return{domain:b.pop(),address:b.join("@")}}}}; </script> <script> window.modal_attributes = { request_reason: "", base_url_secure: "https://www.humblebundle.com", goto: "/store/c/vr", qs: null, is_eu_country: false, is_in_china: false, isMobile: false, method: 'post' // Force all modal forms to be post instead of the default get to avoid leaking sensitive information during form submit }; </script> <div id='flash'></div> <script></script> <script> /* Shim for requestAnimationFrame() and cancelAnimationFrame(). */ (function() { var lastTime = 0; var vendors = ['webkit', 'moz']; // try all prefixes to find a native implementation for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']; } if (!window.requestAnimationFrame) { // no native implementation; apply shim window.requestAnimationFrame = function(callback, element) { var currTime = new Date().getTime(); var timeToCall = Math.max(0, 16 - (currTime - lastTime)); var id = window.setTimeout(function() { callback(currTime + timeToCall); }, timeToCall); lastTime = currTime + timeToCall; return id; }; } if (!window.cancelAnimationFrame) { // no native implementation; apply shim window.cancelAnimationFrame = function(id) { clearTimeout(id); }; } }()); // tween.js - http://github.com/sole/tween.js 'use strict';var TWEEN=TWEEN||function(){var a=[];return{REVISION:"10",getAll:function(){return a},removeAll:function(){a=[]},add:function(c){a.push(c)},remove:function(c){c=a.indexOf(c);-1!==c&&a.splice(c,1)},update:function(c){if(0===a.length)return!1;for(var b=0,d=a.length,c=void 0!==c?c:void 0!==window.performance&&void 0!==window.performance.now?window.performance.now():Date.now();b<d;)a[b].update(c)?b++:(a.splice(b,1),d--);return!0}}}(); TWEEN.Tween=function(a){var c={},b={},d={},e=1E3,g=0,i=0,k=null,u=TWEEN.Easing.Linear.None,v=TWEEN.Interpolation.Linear,p=[],q=null,r=!1,s=null,t=null,j;for(j in a)c[j]=parseFloat(a[j],10);this.to=function(a,c){void 0!==c&&(e=c);b=a;return this};this.start=function(e){TWEEN.add(this);r=!1;k=void 0!==e?e:void 0!==window.performance&&void 0!==window.performance.now?window.performance.now():Date.now();k+=i;for(var f in b){if(b[f]instanceof Array){if(0===b[f].length)continue;b[f]=[a[f]].concat(b[f])}c[f]= a[f];!1===c[f]instanceof Array&&(c[f]*=1);d[f]=c[f]||0}return this};this.stop=function(){TWEEN.remove(this);return this};this.delay=function(a){i=a;return this};this.repeat=function(a){g=a;return this};this.easing=function(a){u=a;return this};this.interpolation=function(a){v=a;return this};this.chain=function(){p=arguments;return this};this.onStart=function(a){q=a;return this};this.onUpdate=function(a){s=a;return this};this.onComplete=function(a){t=a;return this};this.update=function(n){if(n<k)return!0; !1===r&&(null!==q&&q.call(a),r=!0);var f=(n-k)/e,f=1<f?1:f,m=u(f),h;for(h in b){var j=c[h]||0,l=b[h];l instanceof Array?a[h]=v(l,m):("string"===typeof l&&(l=j+parseFloat(l,10)),a[h]=j+(l-j)*m)}null!==s&&s.call(a,m);if(1==f)if(0<g){isFinite(g)&&g--;for(h in d)"string"===typeof b[h]&&(d[h]+=parseFloat(b[h],10)),c[h]=d[h];k=n+i}else{null!==t&&t.call(a);f=0;for(m=p.length;f<m;f++)p[f].start(n);return!1}return!0}}; TWEEN.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return 1>(a*=2)?0.5*a*a:-0.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return 1>(a*=2)?0.5*a*a*a:0.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return 1>(a*=2)?0.5*a*a*a*a:-0.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a* a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return 1>(a*=2)?0.5*a*a*a*a*a:0.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return 0.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:1>(a*=2)?0.5*Math.pow(1024,a-1):0.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1- Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return 1>(a*=2)?-0.5*(Math.sqrt(1-a*a)-1):0.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var c,b=0.1;if(0===a)return 0;if(1===a)return 1;!b||1>b?(b=1,c=0.1):c=0.4*Math.asin(1/b)/(2*Math.PI);return-(b*Math.pow(2,10*(a-=1))*Math.sin((a-c)*2*Math.PI/0.4))},Out:function(a){var c,b=0.1;if(0===a)return 0;if(1===a)return 1;!b||1>b?(b=1,c=0.1):c=0.4*Math.asin(1/b)/(2*Math.PI);return b*Math.pow(2,-10*a)*Math.sin((a-c)* 2*Math.PI/0.4)+1},InOut:function(a){var c,b=0.1;if(0===a)return 0;if(1===a)return 1;!b||1>b?(b=1,c=0.1):c=0.4*Math.asin(1/b)/(2*Math.PI);return 1>(a*=2)?-0.5*b*Math.pow(2,10*(a-=1))*Math.sin((a-c)*2*Math.PI/0.4):0.5*b*Math.pow(2,-10*(a-=1))*Math.sin((a-c)*2*Math.PI/0.4)+1}},Back:{In:function(a){return a*a*(2.70158*a-1.70158)},Out:function(a){return--a*a*(2.70158*a+1.70158)+1},InOut:function(a){return 1>(a*=2)?0.5*a*a*(3.5949095*a-2.5949095):0.5*((a-=2)*a*(3.5949095*a+2.5949095)+2)}},Bounce:{In:function(a){return 1- TWEEN.Easing.Bounce.Out(1-a)},Out:function(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+0.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+0.9375:7.5625*(a-=2.625/2.75)*a+0.984375},InOut:function(a){return 0.5>a?0.5*TWEEN.Easing.Bounce.In(2*a):0.5*TWEEN.Easing.Bounce.Out(2*a-1)+0.5}}}; TWEEN.Interpolation={Linear:function(a,c){var b=a.length-1,d=b*c,e=Math.floor(d),g=TWEEN.Interpolation.Utils.Linear;return 0>c?g(a[0],a[1],d):1<c?g(a[b],a[b-1],b-d):g(a[e],a[e+1>b?b:e+1],d-e)},Bezier:function(a,c){var b=0,d=a.length-1,e=Math.pow,g=TWEEN.Interpolation.Utils.Bernstein,i;for(i=0;i<=d;i++)b+=e(1-c,d-i)*e(c,i)*a[i]*g(d,i);return b},CatmullRom:function(a,c){var b=a.length-1,d=b*c,e=Math.floor(d),g=TWEEN.Interpolation.Utils.CatmullRom;return a[0]===a[b]?(0>c&&(e=Math.floor(d=b*(1+c))),g(a[(e- 1+b)%b],a[e],a[(e+1)%b],a[(e+2)%b],d-e)):0>c?a[0]-(g(a[0],a[0],a[1],a[1],-d)-a[0]):1<c?a[b]-(g(a[b],a[b],a[b-1],a[b-1],d-b)-a[b]):g(a[e?e-1:0],a[e],a[b<e+1?b:e+1],a[b<e+2?b:e+2],d-e)},Utils:{Linear:function(a,c,b){return(c-a)*b+a},Bernstein:function(a,c){var b=TWEEN.Interpolation.Utils.Factorial;return b(a)/b(c)/b(a-c)},Factorial:function(){var a=[1];return function(c){var b=1,d;if(a[c])return a[c];for(d=c;1<d;d--)b*=d;return a[c]=b}}(),CatmullRom:function(a,c,b,d,e){var a=0.5*(b-a),d=0.5*(d-c),g= e*e;return(2*c-2*b+a+d)*e*g+(-3*c+3*b-2*a-d)*g+a*e+c}}}; $(function() { /* Performs a bounce animation on the given element. * * Arguments: * element -- the element to bounce */ function animateBounce(element) { /* Ends the bounce. */ function endBounceAnimation() { element.removeClass('bounce'); } element.one('webkitAnimationEnd', endBounceAnimation); element.one('animationend', endBounceAnimation); element.addClass('bounce'); } /* Performs an add to bag animation. * * Arguments: * startButton -- the add to bag button to start the animation from * callback -- the callback to call once finished * endButton -- (optional) where to end the animation, if not the floating v1 cart */ window.animate_add_to_cart = function(startButton, iconPath, callback, endButton) { // Set up a new helper div to hold the icon we're animating. var $helper = $($.trim($('#add-to-cart-helper').html())); var $icon = $helper.find('div.image'); var image = new Image(); image.src = iconPath; $icon.css({'background': 'hsl(0, 0.00%, 20.00%)'}); $icon.css({'background-image': 'url(' + iconPath + ')'}); $('body').append($helper); var helper = $helper.get(0); var icon = $icon.get(0); endButton = endButton || $('.shopping-cart .js-header'); var animationDuration = 700; $helper.show(); // animation attributes at the start, middle, and end var start = { 'scale': 1.0, 'x': Math.floor(startButton.offset().left + startButton.outerWidth() / 2), 'y': Math.floor(startButton.offset().top + startButton.outerHeight() / 2) }; var end = { 'scale': 0.0, 'x': Math.floor(endButton.offset().left + endButton.outerWidth() / 2), 'y': Math.floor(endButton.offset().top + endButton.outerHeight() / 2) }; var mid = { 'scale': 4.0, 'x': Math.floor(Math.min(start.x, end.x) + 50), 'y': Math.floor(Math.min(start.y, end.y) + 50) }; init(); animate(); // animation helper $helper.css({ '-webkit-transform': 'translate(' + start.x + 'px, ' + start.y + 'px)', 'transform': 'translate(' + start.x + 'px, ' + start.y + 'px)', }).show(); /* Initializes the TWEEN animation. */ function init() { var tween = new TWEEN.Tween(start); tween.to({ 'x': [mid.x, end.x], 'y': [mid.y, end.y], 'scale': [mid.scale, end.scale] }, animationDuration); tween.easing(TWEEN.Easing.Sinusoidal.Out); tween.onUpdate(function() { helper.style.webkitTransform = 'translate(' + this.x + 'px, ' + this.y + 'px)'; icon.style.webkitTransform = 'scale(' + this.scale + ')'; helper.style.transform = 'translate(' + this.x + 'px, ' + this.y + 'px)'; icon.style.transform = 'scale(' + this.scale + ')'; }); tween.interpolation(TWEEN.Interpolation.Bezier); tween.onComplete(function() { $helper.hide().remove(); animateBounce(endButton); if (callback) { setTimeout(callback, 1); } }); tween.start(); } /* Performs the animation. */ function animate() { window.requestAnimationFrame(animate); TWEEN.update(); } }; }); /* * TypeWatch 2.0 - Original by Denny Ferrassoli / Refactored by Charles Christolini * * Examples/Docs: www.dennydotnet.com * * Copyright(c) 2007 Denny Ferrassoli - DennyDotNet.com * Coprright(c) 2008 Charles Christolini - BinaryPie.com * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html */ (function(jQuery) { jQuery.fn.typeWatch = function(o) { // Options var options = jQuery.extend({ wait : 750, callback : function() { }, highlight : true, captureLength : 2 }, o); function checkElement(timer, override) { var elTxt = jQuery(timer.el).val(); // Fire if text > options.captureLength AND text != saved txt OR if override AND text > options.captureLength if ((elTxt.length > options.captureLength && elTxt.toUpperCase() != timer.text) || (override && elTxt.length > options.captureLength)) { timer.text = elTxt.toUpperCase(); timer.cb(elTxt); } }; function watchElement(elem) { // Must be text or textarea if (elem.type.toUpperCase() == "TEXT" || elem.nodeName.toUpperCase() == "TEXTAREA") { // Allocate timer element var timer = { timer : null, text : jQuery(elem).val().toUpperCase(), cb : options.callback, el : elem, wait : options.wait }; // Set focus action (highlight) if (options.highlight) { jQuery(elem).focus( function() { this.select(); }); } // Key watcher / clear and reset the timer var startWatch = function(evt) { var timerWait = timer.wait; var overrideBool = false; if (evt.keyCode == 13 && this.type.toUpperCase() == "TEXT") { timerWait = 1; overrideBool = true; } var timerCallbackFx = function() { checkElement(timer, overrideBool) } // Clear timer clearTimeout(timer.timer); timer.timer = setTimeout(timerCallbackFx, timerWait); }; jQuery(elem).keydown(startWatch); // HTML5 adds an "input" event which is a more reliable way of telling // when the field has changed -- it fires for things like browser // autofill (where there is no keydown event). For browsers that support // it, we bind startWatch to fire here too. jQuery(elem).bind('input', startWatch); } } ; // Watch Each Element return this.each(function(index) { watchElement(this); }); }; })(jQuery); var MAILCHECK_DOMAINS = ['gmail.com', 'hotmail.com', 'yahoo.com', 'hotmail.co.uk', 'googlemail.com', 'gmx.de', 'live.com', 'live.ca', 'web.de', 'aol.com', 'msn.com', 'comcast.net', 'me.com', 'gmx.net', 'hotmail.fr', 'mail.ru', 'yahoo.co.uk', 'live.co.uk', 'yandex.ru', 'mac.com', 'yahoo.de', 'yahoo.fr']; function isValidEmail(e) { return (e != '') && /.+@.+\..+/.test(e); } function live_email_check($field, setEmailMessage) { var emailValid = false; $field.mailcheck({ domains: MAILCHECK_DOMAINS, suggested: function($input, suggestion) { // set the error text to the suggested correction var message = 'Did you mean <a href="#" class="suggested-email" data-email="' + suggestion['full'] + '">' + suggestion['address'] + '@<strong>' + suggestion['domain'] + '</strong></a>?' var $msgField = setEmailMessage($field, message); $msgField.find('.suggested-email').click(function(e) { e.preventDefault(); $input.val($(this).data('email')); live_email_check($field, setEmailMessage, false); }); emailValid = true; }, empty: function($input) { // no suggested domain correction, check if the email address looks valid var email = $input.val(); emailValid = isValidEmail(email); if (emailValid) { setEmailMessage($field, false); } else { setEmailMessage($field, 'Email address is not valid', true); } } }); return emailValid; } // this method will set up email "validation" and error correction. // Parameters: // $field is the input field to bind to // setEmailMessage is a function that takes the input field the error is related to and a message to set. // It sets the message then returns the error holder. function bindEmailField($field, setEmailMessage){ if (!window.humble || window.humble.locale !== 'en') { // only show email suggestion on EN locale as it only supports common EN email providers return; } function bound_live_email_check () { live_email_check($field, setEmailMessage); } $field.typeWatch({ callback: bound_live_email_check, captureLength: -1, highlight: false, wait: 500 }); } var flash = $('#flash'); function show_flash(message){ flash.text(message) flash.show(); setTimeout(function() { flash.fadeOut(); },5000); } function set_flash(message) { $.cookie('hbflash', message, {path: '/'}); } $(function(){ function show_flash(message){ flash.text(message) flash.show(); setTimeout(function() { flash.fadeOut(); },5000); } var flashmessage = $.cookie('hbflash'); if (flashmessage == 'None') { flashmessage = ''; } if (flashmessage) { show_flash(flashmessage); $.cookie('hbflash', 'None', {path: '/'}); } flash.click(function(){ flash.fadeOut(); }); }); // When CSS4 is widely-supported by all the modern browsers, detecting touch support may not be necessary depending on the usage of the touch. $(function(){ // Class assignment can be used for touch screen problems. Such as :hover. if ('ontouchstart' in window) { $('body').addClass('touch-support'); } }); </script> </div> <div class="overlay"></div> <nav class="sidebar-nav-container js-sidebar-nav-container"></nav> <footer class="site-footer"> <div class="max-width-wrapper"> <div class="footer-content"> <div class="brand"> <a href="/"><img src="https://cdn.humblebundle.com/static/hashed/4814f84495cd679571cb94896978da3825562075.svg" alt="Humble Bundle Logo"></a> </div> <section class="footer-links"> <div class="footer-links-info"> <h2>About</h2> <ul class="info-links-list"> <li><a href="https://blog.humblebundle.com/" target="_blank">Blog</a></li> <li><a href="https://support.humblebundle.com" target="_blank">Support</a></li> <li><a href="/developer" target="_blank">Developer</a></li> </ul> </div> <div class="footer-links-trending"> <h2>Trending Games</h2> <ul class="trending-games-list"> <li><a href="/store/dredge-the-iron-rig" target="_blank">DREDGE - The Iron Rig</a></li> <li><a href="/store/dredge-the-pale-reach" target="_blank">DREDGE - The Pale Reach</a></li> <li><a href="/store/dredge-blackstone-key" target="_blank">DREDGE - Blackstone Key</a></li> <li><a href="/store/the-last-of-us-part-ii-remastered" target="_blank">The Last of Us Part II Remastered</a></li> <li><a href="/store/hunt-showdown-1896" target="_blank">Hunt: Showdown 1896</a></li> <li><a href="/store/vintage-story" target="_blank">Vintage Story</a></li> <li><a href="/store/raidou-remastered-the-mystery-of-the-soulless-army-digital-deluxe-edition" target="_blank">RAIDOU Remastered: The Mystery of the Soulless Army - Digital Deluxe Edition</a></li> <li><a href="/store/monster-hunter-wilds" target="_blank">Monster Hunter Wilds</a></li> </ul> </div> </section> <div class="social-and-language-container"> <div class="language-dropdown-container"> <button class="js-language-dropdown language-dropdown"> <p><i class="hb hb-globe-fas"></i> Language: English</p> <i class="hb hb-caret-down"></i> </button> <div class="language-container js-language-container"> <ul> <li class=""> <button data-locale="fr" class="js-change-language no-style-button">Français</button> </li> <li class=" active "> <button data-locale="en" class="js-change-language no-style-button">English</button> </li> <li class=""> <button data-locale="zh_CN" class="js-change-language no-style-button">简体中文</button> </li> <li class=""> <button data-locale="de" class="js-change-language no-style-button">Deutsch</button> </li> <li class=""> <button data-locale="it" class="js-change-language no-style-button">Italiano</button> </li> <li class=""> <button data-locale="es" class="js-change-language no-style-button">Español</button> </li> </ul> </div> </div> <div class="socialcontainer"> <a href="https://www.facebook.com/humblebundle/" class="social-temp"><span class="sr-only">Facebook</span><i class="hb hb-facebook"></i></a> <a href="https://twitter.com/humble" class="social-temp"><span class="sr-only">Twitter</span><i class="hb hb-twitter"></i></a> <a href="https://www.instagram.com/humblebundle" class="social-temp"><span class="sr-only">Instagram</span><i class="hb hb-instagram"></i></a> <a href="https://blog.humblebundle.com/" class="social-temp"><span class="sr-only">Blog</span><i class="hb hb-blog"></i></a> </div> <p class="humble-community-text">The Humble community has contributed over US$266,000,000 to charity since 2010, making an amazing difference to causes all over the world.</p> <div class="legal-links"> <ul class="legal-links-list"> <li><a href="/terms" target="_blank">Terms of Service</a></li> <li><a href="/privacy" target="_blank">Privacy Policy</a></li> </ul> <ul class="legal-links-list"> <li><a href="/cookie-policy" target="_blank">Cookie Policy</a></li> <li><a href="/legal" target="_blank">Legal Notices</a></li> </ul> <ul class="legal-links-list"> <li> <a href="#" class="showConsentTool" onclick="window.zdconsent.showConsentTool(event);"> <img src="https://cdn.ziffstatic.com/pub/icong1.png" style="vertical-align: sub;"> AdChoices </a> </li> <li><a href="https://dsar.humblebundle.com/" class="zdDSAR">Do Not Sell My Personal Information</a></li> </ul> </div> </div> </div> <p class="humble-community-text">© 2025 Humble Bundle (Humble Bundle Inc.) a brand of IGN Entertainment, Inc. All rights reserved. No part of this website or its content may be reproduced without the copyright owner's permission. Humble Bundle® and Humble Store® are registered trademarks of Ziff Davis, LLC, parent company of Humble Bundle, Inc.</p> </div> </footer> <script id="base-webpack-json-data" type="application/json"> {"banner": { "bannerToRender": null, "idToInit": null },"production": true, "countryCode": "SG", "navbar": { "ipInChina": null, "BLOG_URL": "https://blog.humblebundle.com/", "humbleLogo": "https://cdn.humblebundle.com/static/hashed/4814f84495cd679571cb94896978da3825562075.svg", "algoliaInfo": { "indexName": "replica_product_query_site_search", "publicKey": "AYSZEWDAZ2", "searchKey": "5229f8b3dec4b8ad265ad17ead42cb7f", "curtimeOverride": null }, "searchOptions": { "pricing_constants": { "current_country": "SG", "pricing_currency": "USD", "exchange_rates": {"USD": 1.0, "AUD": 1.5994623655913978, "CHF": 0.8824619948090471, "IDR": 16743.04783092325, "KRW": 1472.4045235446793, "BGN": 1.8129403040415277, "CNY": 7.270207638116426, "ISK": 133.2035595105673, "ILS": 3.7053207267334076, "GBP": 0.7755376344086021, "NZD": 1.7613088616981831, "DKK": 6.916573971078977, "CAD": 1.439469781238413, "TRY": 37.93112717834631, "HUF": 373.2202447163515, "PHP": 57.28031145717464, "RON": 4.613830181683352, "NOK": 10.491286614757138, "RUB": 117.201, "ZAR": 18.32971820541342, "MYR": 4.437523173896922, "INR": 85.63589173155358, "THB": 34.15461624026696, "MXN": 20.520949202817945, "CZK": 23.13125695216908, "BRL": 5.717371153133111, "JPY": 149.17500926955876, "PLN": 3.8805153874675566, "EUR": 0.9269558769002596, "SEK": 10.025954764553207, "SGD": 1.3433444568038562, "HKD": 7.781145717463849} }, "subscriptioncontent_icon": "https://cdn.humblebundle.com/static/hashed/74c9dedf4e02d66d912f6cd308562bd00a46d646.jpg", "bundle_icon": "https://cdn.humblebundle.com/static/hashed/cf3858ca434246e23c6474e37cd123028f9d1b98.svg" }, "userDropdown": { "hasDashboard": false, "isPartner": false } } } </script> <script id="storefront-webpack-json-data" type="application/json"> { "canEditProduct": false, "charity": { "charityData": [{"category": "Human Services,International,Disaster Relief", "city": "Washington", "description": "Support the urgent needs of the American Red Cross mission, whether it is responding to a disaster, collecting lifesaving blood, teaching skills to save a life, or assisting military members and their families during emergencies. The American Red Cross name and logo and copyrighted materials are used with its permission, which in no way constitutes an endorsement, express or implied, of any product, service, company, opinion or political position. For more information, please visit redcross.org.", "url": "http://www.redcross.org", "country": "US", "charity_id": "3843", "state": "DC", "keywords": "disaster, relief, disaster relief, armed forces, military, veterans, first aid, emergency, response, blood donor, blood, humanitarian, war, conflict, hurricane, fire, wildfire, earthquake, shelter, flood, tornado, red cross, american red cross", "human_name": "American Red Cross", "logo_url": "https://hbproxy.imgix.net/https%3A%2F%2Fpics.paypal.com%2F00%2Fs%2FMTc3MWJhZTQtMjVlMS00MDVjLThmYjQtMGEwNzI2YzZmZGQ5%2Ffile.PNG?auto=compress&auto=format&bg=fff&fit=fill&h=350&w=510&s=d7a05a539257f564a94dfff3379cf27c"}, {"category": "Arts and Culture", "city": "Redmond", "description": "Child's Play seeks to improve the lives of children in hospitals and healthcare facilities around the world through the kindness and generosity of the video game industry and the power of play.", "url": "http://www.childsplaycharity.org", "country": "US", "charity_id": "12277", "state": "WA", "keywords": "child's play,childs play,penny arcade,penny-arcade,charity, video games, board games, games", "human_name": "Child's Play", "logo_url": "https://hbproxy.imgix.net/https%3A%2F%2Fpics.paypal.com%2F00%2Fs%2FNjVlOTRhNmYtYjAzNS00Yzc4LWI4OTItMTNmNWQxOTY5Nzhl%2Ffile.PNG?auto=compress&auto=format&bg=fff&fit=fill&h=350&w=510&s=92f3c232946e55a55a5c0575533c3190"}, {"category": "Schools and Education", "city": "San Francisco", "description": "The mission of the Wikimedia Foundation is to empower people around the world to collect and develop educational content under a free license or in the public domain, and to disseminate it globally. In collaboration with a network of chapters, the Foundation provides the essential infrastructure and organizational framework for the support and development of multilingual projects, such as Wikipedia, Wiktionary, Wikiquote, Wikibooks, Wikisource, Wikinews, Wikiversity, Wikispecies, and Wikimedia Commons.", "url": "http://www.wikimediafoundation.org/", "country": "US", "charity_id": "25618", "state": "CA", "keywords": "Encyclopedia,Collaborative,Open Source,Free,Knowledge", "human_name": "Wikimedia Foundation, Inc.", "logo_url": "https://hbproxy.imgix.net/https%3A%2F%2Fpics.paypal.com%2F00%2Fs%2FZWZjYjUzODQtN2Q5Yy00NDkxLTkxNTYtNjJjMTA3MmVmNGY2%2Ffile.PNG?auto=compress&auto=format&bg=fff&fit=fill&h=350&w=510&s=3ac6f7059650e5d224c631ff6bed232a"}, {"category": "Philanthropy, Grants, Other", "city": "Evesham", "description": "GamesAid acts as a broker of charitable activity on behalf of individuals and companies within the UK\r\nvideo games industry. Funds are distributed to a diverse range of charities as nominated and\r\nvoted for by its members.\r\n\r\n", "url": "http://www.gamesaid.org", "country": "GB", "charity_id": "31075", "state": "WORCESTERSHIRE", "keywords": "Computer Games, Software Downloads, Disabled Children", "human_name": "GamesAid", "logo_url": "https://hbproxy.imgix.net/https%3A%2F%2Fpics.paypal.com%2F00%2Fs%2FZmQ4NmQyMjQtMjI1OC00MjRkLWIxNzYtYjdlOThlYjYyOTUz%2Ffile.PNG?auto=compress&auto=format&bg=fff&fit=fill&h=350&w=510&s=f69ebc63497f67ff6c86a2ad19a9a128"}, {"category": "Human Services", "city": "New York", "description": "charity: water is a non-profit organization on a mission to bring clean and safe water to people in developing countries. And right now, clean and safe water is more important than ever. As the coronavirus spreads around the globe, the communities we serve are at an unprecedented risk. Our local partners are delivering lifesaving water, sanitation, and hygiene resources to some of the world's most vulnerable communities. 100% of all public donations go directly to the field to support this essential work.", "url": "http://www.charitywater.org", "country": "US", "charity_id": "24627", "state": "NY", "keywords": "charity,water,sanitation,Africa,India,hygiene", "human_name": "charity: water", "logo_url": "https://hbproxy.imgix.net/https%3A%2F%2Fpics.paypal.com%2F00%2Fs%2FMmJhOWYyYTktNGU0Ni00NGM3LTgzM2EtNzAwOGJlZGQ0NDI1%2Ffile.PNG?auto=compress&auto=format&bg=fff&fit=fill&h=350&w=510&s=be8b04d468696a19bad567289012119a"}, {"category": "Philanthropy, Grants, Other", "city": "Shelburne", "description": "<p><em>Donations to support One Tree Planted are made to <a href=\"https://support.humblebundle.com/hc/en-us/articles/205183597\" target=\"_blank\" rel=\"noopener\">PayPal Giving Fund</a>, subject to its policies.</em><br> <br>We are a non-profit focused on global reforestation. Every dollar donated plants one tree.</p>\n<p> </p>", "url": "http://www.onetreeplanted.org", "country": "US", "charity_id": "2382506", "state": "VT", "featured": true, "keywords": "deforestation, environment, reforestation, planting trees, sustainability, trees, forests", "human_name": "One Tree Planted", "logo_url": "https://hbproxy.imgix.net/https%3A%2F%2Fpics.paypal.com%2F00%2Fs%2FMWE4OWMyM2ItZDU1OS00NzcwLTllZjQtMGRkZjgxN2VkOTdi%2Ffile.PNG?auto=compress&auto=format&bg=fff&fit=fill&h=350&w=510&s=4de458bf5bc5f86d156d9a47788b207e"}], "user_charity_id": null, "featuredCharityId": "2382506" }, "coupons": [], "ctaKeys": null, "currency": "USD", "currentCountry": "SG", "edit_mode": false, "page": {}, "partner_vars": {}, "stripePubKey": "pk_live_5102NGX0Dwp9xek1o5U02pcgmxCAmDYtMnRWubERa7RXrhDP5YZNhtkA8pqNruXLtif7Ea0Qq4NfzRbpBzIlz6AqQ00zaNRMXiO", "wallet": { "balance": "0", "currency": "USD" }, "wishlist": {}, "products_json": [], "viewing_wishlist": {}, "allowed_payment_processors": ["free", "humblewallet", "paypal", "stripe_checkout", "stripe_payment_intent"], "default_payment_credentials": null, "request_path": "/store/c/vr", "initializeCordial": true, "ipInChina" : false, "showNavigationRedesign": null, "oneMonthSubscriptionPrice|money": {"currency": "USD", "amount": 11.99}, "showHumbleGamesCollectionPdp": true } </script> <script id="storefront-constants-json-data" type="application/json"> { "MAX_CART_SIZE": 20, "MAX_WISHLIST_SIZE": 100, "MIN_ABOUT_HEIGHT": 350, "CHANNEL_PREAMBLE": "", "STORE_ROOT": "/store", "BASE_URL_SECURE": "https://www.humblebundle.com", "CSRF_TOKEN": "N2Hi8mSg0f1ECVLM-1-1743603889", "CSRF_FORM_KEY": "_le_csrf_token", "SEARCH_PARAM_ORDER": ["filter", "genre", "platform", "drm", "search", "sort", "page", "developer", "publisher"], "SEARCH_PARAMS": {"filter": {"onsale": "On Sale", "new": "New Releases"}, "genre": {"software": "Software", "fps": "FPS", "indie": "Indie", "puzzle": "Puzzle", "multiplayer": "Multiplayer", "vr": "Virtual Reality", "simulation": "Simulation", "strategy": "Strategy", "stealth": "Stealth", "retro": "Retro", "tabletop": "Tabletop", "rpg": "RPG", "mmo": "MMO", "sports": "Sports", "racing": "Racing", "action": "Action", "adventure": "Adventure"}, "drm": {"origin": "Origin", "blizzard": "Battle.net", "gog": "GOG", "download": "DRM-Free", "uplay": "Ubisoft Connect PC", "epic": "Epic Games Store", "steam": "Steam"}, "sort": {"discount": "Top Discounts", "alphabetical": "Alphabetical", "newest": "Release Date", "bestselling": "Bestselling"}, "platform": {"oculus-rift": "Oculus Rift", "mac": "Mac", "vive": "Vive", "linux": "Linux", "windows": "Windows", "android": "Android", "3DS": "Nintendo 3DS", "new3ds": "New Nintendo 3DS", "switch": "Nintendo Switch", "windows-mixed-reality": "Windows Mixed Reality"}}, "CHARITY_SEARCH_PARAM_ORDER": ["query", "category", "country", "state", "page"], "CHARITY_SEARCH_PARAMS": {"category": {"Health and Medicine": "Health and Medicine", "Employment and Professional Associations": "Employment and Professional Associations", "Arts and Culture": "Arts and Culture", "Animals": "Animals", "Schools and Education": "Schools and Education", "Science and Research": "Science and Research", "Sports and Recreation": "Sports and Recreation", "Society and Communities": "Society and Communities", "Religion and Spirituality": "Religion and Spirituality", "Environment": "Environment", "Human Services": "Human Services", "Children and Youth Development": "Children and Youth Development", "Philanthropy, Grants and Other": "Philanthropy, Grants and Other", "International": "International", "Crime Prevention and Justice": "Crime Prevention and Justice", "Military and Veterans": "Military and Veterans", "Housing, Homelessness and Hunger": "Housing, Homelessness and Hunger", "Disaster Relief": "Disaster Relief"}, "country": {"IE": "Ireland", "CA": "Canada", "AU": "Australia", "GB": "United Kingdom", "US": "United States"}, "state": {"WA": "Washington", "WI": "Wisconsin", "WV": "West Virginia", "FL": "Florida", "WY": "Wyoming", "NH": "New Hampshire", "NJ": "New Jersey", "NM": "New Mexico", "NC": "North Carolina", "ND": "North Dakota", "NE": "Nebraska", "NY": "New York", "RI": "Rhode Island", "NV": "Nevada", "CO": "Colorado", "CA": "California", "GA": "Georgia", "CT": "Connecticut", "OK": "Oklahoma", "OH": "Ohio", "KS": "Kansas", "SC": "South Carolina", "KY": "Kentucky", "OR": "Oregon", "SD": "South Dakota", "DE": "Delaware", "DC": "District of Columbia", "HI": "Hawaii", "TX": "Texas", "LA": "Louisiana", "TN": "Tennessee", "PA": "Pennsylvania", "VA": "Virginia", "AK": "Alaska", "AL": "Alabama", "AR": "Arkansas", "VT": "Vermont", "IL": "Illinois", "IN": "Indiana", "IA": "Iowa", "AZ": "Arizona", "ID": "Idaho", "ME": "Maine", "MD": "Maryland", "MA": "Massachusetts", "UT": "Utah", "MO": "Missouri", "MN": "Minnesota", "MI": "Michigan", "MT": "Montana", "MS": "Mississippi"}}, "FEATURED_CHARITY_IDS": ["3843", "12277", "25618", "31075", "24627", "2382506"], "REDIRECTS": {"/link/membership/": "/membership?hmb_source=store_home&utm_medium=monthly_storefront_featured_item&hmb_medium=monthly_storefront_featured_item&hmb_campaign=Humble_Monthly_Store_Discount", "/link/pathfinder-second-edition-beginners-bundle-paizo-books/": "/books/pathfinder-second-edition-beginners-bundle-paizo-books", "/link/subscription/": "/membership?hmb_source=store_home&utm_medium=monthly_storefront_featured_item&hmb_medium=monthly_storefront_featured_item&hmb_campaign=Humble_Monthly_Store_Discount", "/link/fantasy-grounds-unity-pathfinder-bundle/": "/games/fantasy-grounds-ultimate-gm-kit-pathfinder-bundle", "/link/mission/": "/mission?hmb_source=store_home&utm_medium=gamification_storefront_featured_item&hmb_medium=gamification_storefront_featured_item&hmb_campaign=Gamification_Store"}, "ADMIN_LINKS_ENABLED": null, "XRAY_GAMES_TRAITS_API_KEY": "A46E72A4-3E7F-424A-96AE-0B02EE8D6DE9", "OPEN_CRITIC_API_KEY": "rpw9QgHKBHZf", "IS_PRIVACY_COMPLIANT_COUNTRY": false, "EXCHANGE_RATES": {"USD": 1.0, "AUD": 1.5994623655913978, "CHF": 0.8824619948090471, "IDR": 16743.04783092325, "KRW": 1472.4045235446793, "BGN": 1.8129403040415277, "CNY": 7.270207638116426, "ISK": 133.2035595105673, "ILS": 3.7053207267334076, "GBP": 0.7755376344086021, "NZD": 1.7613088616981831, "DKK": 6.916573971078977, "CAD": 1.439469781238413, "TRY": 37.93112717834631, "HUF": 373.2202447163515, "PHP": 57.28031145717464, "RON": 4.613830181683352, "NOK": 10.491286614757138, "RUB": 117.201, "ZAR": 18.32971820541342, "MYR": 4.437523173896922, "INR": 85.63589173155358, "THB": 34.15461624026696, "MXN": 20.520949202817945, "CZK": 23.13125695216908, "BRL": 5.717371153133111, "JPY": 149.17500926955876, "PLN": 3.8805153874675566, "EUR": 0.9269558769002596, "SEK": 10.025954764553207, "SGD": 1.3433444568038562, "HKD": 7.781145717463849}, "GENRES_MAP": {"software": "Software", "fps": "FPS", "indie": "Indie", "puzzle": "Puzzle", "multiplayer": "Multiplayer", "vr": "Virtual Reality", "simulation": "Simulation", "strategy": "Strategy", "stealth": "Stealth", "retro": "Retro", "tabletop": "Tabletop", "rpg": "RPG", "mmo": "MMO", "sports": "Sports", "racing": "Racing", "action": "Action", "adventure": "Adventure"}, "FEATURED_GENRES": ["rpg", "indie", "vr", "simulation", "strategy", "adventure", "action", "racing"] } </script> <script src="https://cdn.humblebundle.com/static/hashed/a7f95949642d62678a1689ba3385b0c49fbbff25.js"></script> <script src="https://cdn.humblebundle.com/static/hashed/d1736ef04be1a6a190458f021c7124e8ae0c5539.js"></script> <div id="site-modal"></div> </body> </html>