├── .github └── workflows │ └── static.yml ├── .vscode └── sitemap-generator.json ├── LICENSE ├── README.md ├── changelog.html ├── css ├── cards.css ├── coco.css ├── donations.css ├── frontPage.css ├── guideColors.css ├── header.css ├── images.css ├── navigationArrows.css ├── popup.css ├── progressBar.css ├── sidebar.css ├── styles.css └── textIcons.css ├── essentials.html ├── faq.html ├── files ├── 3.3.3a Hotfix.7z ├── DirectX Remover.7z ├── TTW Changelog.7z └── Vanilla UI Plus Fallout 3 9.48.7z ├── finish.html ├── fo3.html ├── img ├── Coco │ ├── Blockquote.webp │ ├── Full 1 Extended.webp │ ├── Full 1.webp │ ├── Full 2.webp │ ├── Head Logo Alt 2.webp │ ├── Head Logo Alt.webp │ ├── Head Logo Extended.webp │ ├── Head Logo.webp │ └── Head.webp ├── MO2 │ ├── Connect.webp │ ├── Executables.webp │ ├── Folders.webp │ ├── Install Archive.webp │ ├── Install Path.webp │ ├── Instance.webp │ ├── Profile Settings.webp │ ├── Settings.webp │ ├── Start Menu.webp │ └── Tools.webp ├── Others │ ├── Background.webp │ ├── Card.webp │ ├── CardFO3.webp │ ├── Download Example.webp │ ├── Dynamic Backgrounds │ │ ├── 0.webp │ │ ├── 12.webp │ │ ├── 17.webp │ │ ├── 20.webp │ │ ├── 23.webp │ │ ├── 7.webp │ │ └── 9.webp │ ├── File Extensions.webp │ ├── Install TTW.webp │ ├── Root Folder.webp │ ├── Start Game.webp │ ├── Start Launcher.webp │ ├── Steam Library Tool Setup.webp │ └── Steam Location Pick.webp └── UI │ ├── Arrow.svg │ ├── Chevron Down.svg │ ├── Download.svg │ ├── Maximize.svg │ ├── Minimize.svg │ ├── Navigation.svg │ └── Open.svg ├── index.html ├── intro.html ├── js ├── imageViewer.js ├── javascript.js ├── popup.js └── responsiveTitle.js ├── mo2.html ├── setup.html ├── sitemap.xml └── ttw.html /.github/workflows/static.yml: -------------------------------------------------------------------------------- 1 | # Simple workflow for deploying static content to GitHub Pages 2 | name: Deploy static content to Pages 3 | 4 | on: 5 | # Runs on pushes targeting the default branch 6 | push: 7 | branches: ["main"] 8 | 9 | # Allows you to run this workflow manually from the Actions tab 10 | workflow_dispatch: 11 | 12 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 13 | permissions: 14 | contents: read 15 | pages: write 16 | id-token: write 17 | 18 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 19 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 20 | concurrency: 21 | group: "pages" 22 | cancel-in-progress: false 23 | 24 | jobs: 25 | # Single deploy job since we're just deploying 26 | deploy: 27 | environment: 28 | name: github-pages 29 | url: ${{ steps.deployment.outputs.page_url }} 30 | runs-on: ubuntu-latest 31 | steps: 32 | - name: Checkout 33 | uses: actions/checkout@v3 34 | - name: Setup Pages 35 | uses: actions/configure-pages@v3 36 | - name: Upload artifact 37 | uses: actions/upload-pages-artifact@v3 38 | with: 39 | # Upload entire repository 40 | path: '.' 41 | - name: Deploy to GitHub Pages 42 | id: deployment 43 | uses: actions/deploy-pages@v4 44 | -------------------------------------------------------------------------------- /.vscode/sitemap-generator.json: -------------------------------------------------------------------------------- 1 | { 2 | "sitemap.xml": { 3 | "Protocol": "https", 4 | "DomainName": "thebestoftimes.moddinglinked.com", 5 | "Root": "./", 6 | "IncludeExt": [ 7 | ".html", 8 | ".php" 9 | ], 10 | "Exclude": [], 11 | "TagsToInclude": [ 12 | "priority", 13 | "lastmod" 14 | ], 15 | "DefaultChangeFrequency": "monthly", 16 | "TabCharacters": "\t", 17 | "bIncludeWWW": false, 18 | "bRemoveFileExtentions": false, 19 | "bUseTrailingSlash": false, 20 | "bAutomaticallyUpdateSitemap": true, 21 | "bMinimized": false 22 | } 23 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) TheBestofTimes 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [The Best of Times](https://thebestoftimes.moddinglinked.com/) 2 | 3 | [![LICENSE](https://img.shields.io/badge/license-MIT-informational.svg)](https://github.com/h5bp/html5-boilerplate/blob/master/LICENSE.txt) 4 | 5 | ### The official installation guide for Tale of Two Wastelands. 6 | 7 | This guide will instruct you on how to properly install Tale of Two Wastelands, a total conversion mod for Fallout: New Vegas that merges the games of Fallout 3 and New Vegas together! All essential mods required for performance and stability will also be installed. The guide is highly accessible for everyone, no matter your modding experience. It is still incredibly important that you read all the instructions very carefully, even if you believe you are experienced enough to skip them. There are many small instructions that are vital for your game to function, and could be easily missed if you aren't careful. Although you don't need any modding experience to use this guide, it is expected for you to be relatively experienced with operating a computer in general. -------------------------------------------------------------------------------- /changelog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Changelog | The Best of Times 11 | 12 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 |
59 |
60 |
61 | 62 |
63 |
64 |
65 | 66 |
67 |
68 | 69 | The Best of Times 70 |
71 | 76 |
77 | 151 | 152 | 162 | 163 |
164 | 165 | 166 |

TBoT Changelog

167 | 168 |
169 |

170 |

2025

171 | UI element - Chevron 172 |

173 |
174 |
175 |

176 |

Aug 7

177 |

TTW

178 |
    179 |
  • Added the Mr House Final Battle Dialogue Hotfix.
  • 180 |
181 | 182 |
183 | 184 |

Jun 1

185 |

TTW Changelog

186 |
    187 |
  • Added 3.4.
  • 188 |
189 | 190 |
191 | 192 |

Jan 22

193 |

Safe Mid-game

194 |

Essentials

195 |
    196 |
  • Removed the following mods: 197 |
      198 |
    • NVTF presets. Thanks to the new INI, switching memory pool type is now a single step during the performance guide. Recent versions of the Crash Logger also remove the need to identify the pool by checking what preset is installed.
    • 199 |
    • Basic Console Autocomplete, not relevant to most users.
    • 200 |
    201 |
  • 202 |
203 |

204 |
205 | 206 |
207 |

208 |

2024

209 | UI element - Chevron 210 |

211 |
212 |
213 |

Dec 17

214 |

Safe Mid-Game

215 |

Essentials

216 |
    217 |
  • Removed New Vegas Heap Replacer due to possible crashes that are not worth the (often small) performance improvement from the mod.
  • 218 |
219 | 220 |
221 | 222 |

Dec 14

223 |

Essentials

224 |
    225 |
  • Disabled bForceHighDetailReflections in the Custom INI for better performance.
  • 226 |
227 |

TTW Changelog

228 |
    229 |
  • Turned the page into a link to the archive of changelogs.
  • 230 |
  • Removed 3.0 as it never released publicly, and its contents are already in the 3.2 changelog.
  • 231 |
232 | 233 |
234 | 235 |

Oct 23

236 |

TTW Changelog

237 |
    238 |
  • Added 3.3.3b.
  • 239 |
240 | 241 |
242 | 243 |

Oct 12

244 |

TTW Changelog

245 |
    246 |
  • Added 3.3.3a and legacy changelogs.
  • 247 |
248 | 249 |
250 | 251 |

Oct 7

252 |

Introduction

253 |
    254 |
  • Added links to the latest VC 2015-2022 in the requirements, due to the delay from TPU.
  • 255 |
256 | 257 |
258 | 259 |

Oct 6

260 |

Safe Mid-Game

261 |

Introduction

262 |
    263 |
  • Changed (and corrected) minimum space requirements to accomodate TTW 3.3.3.
  • 264 |
265 |

TTW

266 |
    267 |
  • Updated the TTW Installer image to 3.3.3's.
  • 268 |
  • Updated TTW's folder size to 3.3.3's.
  • 269 |
270 |

TTW Changelog

271 |
    272 |
  • Added 3.3.3.
  • 273 |
274 | 275 |
276 | 277 |

Jul 15

278 |

Whole Guide

279 |
    280 |
  • Improved styling and rewrote a large number of instructions to be clearer.
  • 281 |
282 |

Utilities

283 |
    284 |
  • The utilities test is now handled by the ML Utilities Checker instead of using console commands, vastly simplifying instructions.
  • 285 |
286 |

FAQ

287 |
    288 |
  • Included the official TTW FAQ with many corrections and additions.
  • 289 |
290 | 291 |
292 | 293 |

Jul 9

294 |

Introduction

295 |
    296 |
  • Re-added VC++ Runtime Libraries installation steps as a fallback to mysteriously missing libraries from MO2's installer.
  • 297 |
298 | 299 |
300 | 301 |

Jun 4

302 |

Setup

303 |
    304 |
  • Added steps to disable Base Address Randomization.
  • 305 |
306 | 307 |
308 | 309 |

Jun 2

310 |

Introduction

311 |
    312 |
  • Removed VC++ Runtime Libraries installation steps, as the Mod Organizer 2 installer now handles it (2.5.1rc2-ML1.3 onwards).
  • 313 |
314 | 315 |
316 | 317 |

May 29

318 |

Safe Mid-Game

319 |

Essentials

320 |
    321 |
  • Replaced the Stewie Tweaks Essentials INI with Stewie Tweaks - VNV INI.
  • 322 |
323 | 324 |
325 | 326 |

Apr 29

327 |

MO2

328 |
    329 |
  • Switched to the MO2 installer over the archive download in order to prevent missing AV exclusions.
  • 330 |
331 |

332 |
333 | 334 |
335 |

336 |

2023

337 | UI element - Chevron 338 |

339 |
340 |
341 |

342 |

Dec 29

343 |

MO2

344 |
    345 |
  • Updated to Mod Organizer 2.5.1 RC2.
  • 346 |
347 | 348 |
349 | 350 |

Dec 23

351 |

Safe Mid-game

352 |

Essentials

353 |
    354 |
  • Removed Preferred Pathing Combat Fix because of a critical bug.
  • 355 |
356 | 357 |
358 | 359 |

Dec 22

360 |

Safe Mid-game

361 |

Whole Guide

362 |
    363 |
  • Added support for Epic Games copies of Fallout: New Vegas.
  • 364 |
365 |

MO2

366 |
    367 |
  • Updated to Mod Organizer 2.5.1 RC1.
  • 368 |
  • Removed the profile configuration section since it is now a step during instance creation.
  • 369 |
370 |

Essentials

371 |
    372 |
  • Added the following mods: 373 |
      374 |
    • Epic Games Patcher
    • 375 |
    • Preferred Pathing Combat Fix
    • 376 |
    377 |
  • 378 |
379 | 380 |
381 | 382 |

Nov 5

383 |

TTW

384 |
    385 |
  • Removed the TTW 3.3.2a hotfix since it is now merged into the second release of 3.3.2a (this hotfix is still available in the repository or through a link, so reinstalling TTW won't be necessary).
  • 386 |
387 | 388 |
389 | 390 |

Nov 4

391 |

TTW

392 |
    393 |
  • Added the TTW 3.3.2a hotfix (same as what the 3.3.2 hotfix plugin had, all the other fixes are part of the first release of 3.3.2a).
  • 394 |
395 | 396 |
397 | 398 |

Sep 6

399 |

TTW

400 |
    401 |
  • Removed the TTW 3.3.2 hotfix (this was still needed for the first release of 3.3.2a).
  • 402 |
403 | 404 |
405 | 406 |

Jul 30

407 |

TTW

408 |
    409 |
  • Updated the TTW 3.3.2 hotfix (YUPTTW 12.8).
  • 410 |
411 | 412 |
413 | 414 |

Jul 26

415 |

Essentials

416 |
    417 |
  • Fixed world FOV in the Custom INI.
  • 418 |
419 | 420 |
421 | 422 |

Jul 23

423 |

MO2

424 |
    425 |
  • Switched back to portable instance for consistency with the TBoT video guide and the Wabbajack lists.
  • 426 |
427 | 428 |
429 | 430 |

Jul 15

431 |

Home

432 |
    433 |
  • Added a video guide by Cloudisms.
  • 434 |
435 |

TTW

436 |
    437 |
  • Updated the TTW 3.3.2 hotfix (YUPTTW 12.7).
  • 438 |
439 |

Essentials

440 |
    441 |
  • Removed the ShowOff INI since it is no longer needed.
  • 442 |
  • Added Basic Console Autocomplete.
  • 443 |
444 | 445 |
446 | 447 |

May 27

448 |

MO2

449 |
    450 |
  • Updated to MO2 2.4.5 Alpha 3 version to fix the alphabetic load order issues and bring some QoL features.
  • 451 |
452 | 453 |
454 | 455 |

May 7

456 |

Essentials

457 |
    458 |
  • Added Improved Console.
  • 459 |
460 | 461 |
462 | 463 |

Apr 5

464 |

Bug Fixes

465 |
    466 |
  • Added ActorCause Save Bloat Fix.
  • 467 |
468 |

469 |
470 | 471 |
472 |

473 |

2022

474 | UI element - Chevron 475 |

476 |
477 |
478 |

479 |

Nov 26

480 |

Whole Guide

481 |
    482 |
  • Recreated the website with the help of Wall_SoGB, it is now responsive.
  • 483 |
484 |

Whole Guide

485 |
    486 |
  • Updated information.
  • 487 |
488 |

Utilities

489 |
    490 |
  • Added a performance guide by Wall_SoGB.
  • 491 |
492 | 493 |
494 | 495 |

Nov 15

496 |

MO2

497 |
    498 |
  • Made some visual changes and updated Custom INI.
  • 499 |
500 |

MO2

501 |
    502 |
  • Switched to global instance (don't worry about this if you already have the guide installed).
  • 503 |
504 |

Essentials

505 |
    506 |
  • Switched to the Nexus release of xNVSE.
  • 507 |
508 | 509 |
510 | 511 |

Jul 10

512 |

Whole Guide

513 |
    514 |
  • Updated for 3.3.2.
  • 515 |
  • Removed NVAC.
  • 516 |
517 | 518 |
519 | 520 |

May 12

521 |

TTW

522 |
    523 |
  • Added steps to install the TTW hotfix.
  • 524 |
525 | 526 |
527 | 528 |

May 4

529 |

Whole Guide

530 |
    531 |
  • Made every mod instruction version agnostic.
  • 532 |
533 |

Utilities

534 |
    535 |
  • Added NVAC.
  • 536 |
537 |

Utilities

538 |
    539 |
  • Added ShowOff NVSE.
  • 540 |
  • Removed JIP Improved Recipe Menu, it is now part of Stewie Tweaks Essentials INI as a scriptrunner.
  • 541 |
542 |

Visuals

543 |
    544 |
  • Reworded steps for Clarity.
  • 545 |
546 | 547 |
548 | 549 |

Apr 18

550 |

Bug Fixes

551 |
    552 |
  • Added kNVSE.
  • 553 |
554 | 555 |
556 | 557 |

Apr 15

558 |

Utilities

559 |
    560 |
  • Removed OneTweak.
  • 561 |
562 | 563 |
564 | 565 |

Mar 26

566 |

Utilities

567 |
    568 |
  • Added JIP Improved Recipe Menu.
  • 569 |
570 | 571 |
572 | 573 |

Mar 16

574 |

Utilities

575 |
    576 |
  • Replaced the Stewie Tweaks Custom INI with Stewie Tweaks Essentials INI.
  • 577 |
578 |

Visuals

579 |
    580 |
  • Removed the following mods: 581 |
      582 |
    • ISControl
    • 583 |
    • Anniversary Anim Pack
    • 584 |
    • Anniversary Anim Pack - General Bugfix
    • 585 |
    586 |
  • 587 |
588 | 589 |
590 | 591 |

Mar 10

592 |

Visuals

593 |
    594 |
  • Added the following mods: 595 |
      596 |
    • ISControl
    • 597 |
    • Anniversary Anim Pack
    • 598 |
    • Anniversary Anim Pack - General Bugfix
    • 599 |
    600 |
  • 601 |
602 | 603 |
604 | 605 |

Mar 5

606 |

Whole Guide

607 |
    608 |
  • TTW 3.3 release: total rewrite of the guide, do not recycle old setups from 3.2 as the INI is very different and the main quest will break, among other things!
  • 609 |
610 |

611 |
612 |
613 | 614 | 620 |
621 |
622 | 623 | 624 | 625 | 626 | -------------------------------------------------------------------------------- /css/cards.css: -------------------------------------------------------------------------------- 1 | /* Base card styles */ 2 | .card, 3 | .card-wj, 4 | .card-basic, 5 | .card-green, 6 | .card-yellow, 7 | .card-red, 8 | .expander-bottom, 9 | .expander-top, 10 | textarea { 11 | padding: 0 1em; 12 | border-radius: 8px; 13 | border: 1px solid transparent; 14 | margin: 0.5em 0; 15 | outline: 1px solid rgba(0, 0, 0, 0.1); 16 | box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.13); 17 | } 18 | 19 | /* Individual card variations */ 20 | .card { 21 | background-color: rgba(255, 255, 255, 0.0512); 22 | } 23 | 24 | .card-wj { 25 | background-color: rgb(31, 27, 36); 26 | } 27 | 28 | .card-basic, 29 | textarea { 30 | font-family: monospace; 31 | font-size: 1.3em; 32 | background-color: rgba(255, 255, 255, 0.0326); 33 | width: fit-content; 34 | -moz-width: fit-content; 35 | } 36 | 37 | /* Color-themed cards */ 38 | .card-green, 39 | .card-yellow, 40 | .card-red { 41 | text-align: left; 42 | width: fit-content; 43 | -moz-width: fit-content; 44 | } 45 | 46 | .card-green { 47 | background-color: rgb(57, 61, 27); 48 | } 49 | 50 | .card-yellow { 51 | background-color: rgb(67, 53, 25); 52 | } 53 | 54 | .card-red { 55 | background-color: rgb(68, 39, 38); 56 | } 57 | 58 | .card-red.important-notice { 59 | display: flex; 60 | align-items: center; 61 | margin-top: 30px; 62 | width: fit-content; 63 | } 64 | 65 | /* Textarea specific styles */ 66 | textarea { 67 | resize: none; 68 | box-sizing: border-box; 69 | width: 95%; 70 | } 71 | 72 | textarea.auto-resize { 73 | overflow: hidden; 74 | } 75 | 76 | /* Card-basic variations */ 77 | b.card-basic { 78 | padding: 0.3em 0.5em; 79 | } 80 | 81 | span.card-basic { 82 | font-family: monospace !important; 83 | padding: 0.5em !important; 84 | line-height: 2.5em !important; 85 | text-wrap: nowrap; 86 | overflow-x: scroll !important; 87 | } 88 | 89 | .card-yellow .card-basic { 90 | background-color: rgba(255, 255, 255, 0.09) !important; 91 | border-color: rgba(255, 255, 255, 0.2) !important; 92 | } 93 | 94 | /* Expander components */ 95 | .expander-top { 96 | margin-bottom: 0 !important; 97 | display: flex; 98 | flex-direction: row; 99 | align-items: center; 100 | background-color: rgba(255, 255, 255, 0.0512); 101 | } 102 | 103 | .expander-top.active { 104 | background-color: rgba(255, 255, 255, 0.0612); 105 | } 106 | 107 | .expander-top.clickable { 108 | cursor: pointer; 109 | } 110 | 111 | .expander-top.clickable:hover { 112 | outline: 1px solid rgba(255, 255, 255, 0.07); 113 | background-color: rgba(255, 255, 255, 0.0812); 114 | } 115 | 116 | .expander-top.clickable:active { 117 | background-color: rgba(255, 255, 255, 0.03); 118 | } 119 | 120 | .expander-bottom { 121 | background-color: rgba(255, 255, 255, 0.0512); 122 | display: none; 123 | animation: slide-up 0.4s; 124 | z-index: 0; 125 | position: relative; 126 | overflow-y: hidden; 127 | margin-top: 0 !important; 128 | } 129 | 130 | .expander-opened { 131 | animation: slide-down 2s; 132 | } 133 | 134 | /* Chevron icon */ 135 | img.chevron { 136 | display: flex; 137 | height: 16px; 138 | width: 16px; 139 | box-shadow: none; 140 | margin: 3px 0 0 auto; 141 | transition: transform 0.1s; 142 | user-select: none; 143 | -webkit-user-select: none; 144 | -moz-user-select: none; 145 | } 146 | 147 | /* Center class for alignment */ 148 | .center { 149 | margin-left: auto; 150 | margin-right: auto; 151 | max-width: fit-content; 152 | } 153 | 154 | @media only screen and (max-width: 700px) { 155 | 156 | .expander-bottom, 157 | .expander-top, 158 | .card-green, 159 | .card-yellow, 160 | .card-red, 161 | .card-basic, 162 | .card { 163 | padding: 0.65em; 164 | } 165 | 166 | /* Card basic modifications */ 167 | .card-basic { 168 | width: unset; 169 | display: inline-block; 170 | max-width: 100%; 171 | } 172 | 173 | .card-basic p { 174 | margin: 0; 175 | text-wrap: nowrap; 176 | overflow-x: scroll; 177 | } 178 | 179 | span.card-basic { 180 | width: fit-content; 181 | -moz-width: fit-content; 182 | display: inline-block !important; 183 | padding: 0 0.5em !important; 184 | max-width: 100%; 185 | overflow-x: auto; 186 | vertical-align: middle; 187 | line-height: 1.8em !important; 188 | } 189 | 190 | textarea { 191 | width: 100%; 192 | } 193 | } 194 | 195 | @media only screen and (max-width: 470px) { 196 | 197 | .card-green, 198 | .card-yellow, 199 | .card-red { 200 | width: calc(100% - 1.3em); 201 | box-sizing: border-box; 202 | text-wrap: balance; 203 | overflow-x: visible; 204 | } 205 | 206 | .card-red.important-notice { 207 | width: calc(100% - 1.3em); 208 | margin-left: auto; 209 | margin-right: auto; 210 | } 211 | 212 | .center { 213 | margin: 0 auto; 214 | } 215 | } -------------------------------------------------------------------------------- /css/coco.css: -------------------------------------------------------------------------------- 1 | .cocoNerd { 2 | -webkit-user-select: none !important; 3 | -moz-user-select: none !important; 4 | user-select: none !important; 5 | pointer-events: none !important; 6 | margin-right: 1em; 7 | max-height: 5.5em; 8 | } 9 | 10 | @media only screen and (max-width: 900px) { 11 | .cocoNerd { 12 | display: none; 13 | } 14 | } -------------------------------------------------------------------------------- /css/donations.css: -------------------------------------------------------------------------------- 1 | .donations-card-row { 2 | gap: 2em; 3 | width: 100%; 4 | } 5 | 6 | .donations-card { 7 | flex: auto; 8 | } 9 | 10 | .donations-card-basic { 11 | display: flex; 12 | flex-direction: column; 13 | align-items: center; 14 | justify-content: center; 15 | height: 240px; 16 | width: 100%; 17 | } 18 | 19 | .donations-card-basic.patreon { 20 | background: #f96854; 21 | } 22 | 23 | .donations-card-basic.paypal { 24 | background: #00457c; 25 | } 26 | 27 | .donations-card-basic img { 28 | max-width: 50%; 29 | max-height: 50%; 30 | filter: brightness(0) invert(1); 31 | display: block; 32 | } 33 | 34 | .donations-card-basic h3 { 35 | color: #fff; 36 | } -------------------------------------------------------------------------------- /css/frontPage.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-image: url("./img/Others/Background.webp"); 3 | background-repeat: no-repeat !important; 4 | background-attachment: fixed !important; 5 | background-size: cover !important; 6 | background-position: center !important; 7 | } 8 | 9 | .welcomeContent { 10 | user-select: none; 11 | color: #ffffff; 12 | font-size: 2.2em; 13 | display: flex; 14 | flex-direction: column; 15 | align-items: center; 16 | justify-content: center; 17 | width: 100%; 18 | height: 100vh; 19 | text-decoration: none; 20 | transition: backdrop-filter 0.5s linear, -webkit-backdrop-filter 0.5s linear; 21 | backdrop-filter: saturate(100%) blur(8px); 22 | -webkit-backdrop-filter: saturate(100%) blur(8px); 23 | } 24 | 25 | .titleContainer { 26 | position: relative; 27 | text-align: center; 28 | } 29 | 30 | .titleContainer h1 { 31 | margin: 2em 0 20px; 32 | position: relative; 33 | color: #ffffff; 34 | font-size: 1.5em; 35 | word-wrap: break-word; 36 | text-align: center; 37 | display: flex; 38 | justify-content: center; 39 | letter-spacing: 0.05em; 40 | text-shadow: 0.05em 0.075em 0.15em rgb(0, 0, 0); 41 | padding: 0.5em; 42 | } 43 | 44 | .backgroundImage { 45 | position: absolute; 46 | top: -100px; 47 | left: 50%; 48 | transform: translateX(-50%); 49 | max-height: 300px; 50 | z-index: -1; 51 | pointer-events: none; 52 | } 53 | 54 | .buttonContainer { 55 | display: flex; 56 | flex-direction: row; 57 | gap: 5em; 58 | } 59 | 60 | .buttonWrapper { 61 | text-align: center; 62 | } 63 | 64 | .buttonText { 65 | color: #ffffff; 66 | font-size: 1rem; 67 | text-shadow: rgb(0, 0, 0) 0 1px 8px; 68 | display: inline-block; 69 | margin-top: 1.1em; 70 | } 71 | 72 | /* Base button styles */ 73 | .welcomeContent .welcomeButton, 74 | .welcomeContent .welcomeButtonYT, 75 | .welcomeContent .welcomeButtonWJ { 76 | color: #ffffff; 77 | display: flex; 78 | justify-content: center; 79 | align-items: center; 80 | width: 300px; 81 | height: 72px; 82 | padding: 0.5em; 83 | font-size: 1.8rem; 84 | background-color: #235163; 85 | border-radius: 12pt; 86 | text-align: center; 87 | text-shadow: none; 88 | box-shadow: 0.1em 0.1em 0.6em rgba(0, 0, 0, 0.6); 89 | } 90 | 91 | .welcomeContent .welcomeButton:hover { 92 | color: white; 93 | background-color: rgb(50, 114, 139); 94 | box-shadow: 0em 0em 0.6em rgba(50, 114, 139, 0.37); 95 | } 96 | 97 | /* YT */ 98 | .welcomeContent .welcomeButtonYT { 99 | background-color: rgb(102, 16, 16); 100 | } 101 | 102 | .welcomeContent .welcomeButtonYT:hover { 103 | color: rgba(255, 255, 255, 0.8); 104 | background-color: #960f2a; 105 | box-shadow: 0em 0em 0.6em rgba(64, 8, 8, 0.37); 106 | } 107 | 108 | .welcomeContent .welcomeButtonYT:hover strong { 109 | color: rgba(242, 242, 242, 0.9); 110 | } 111 | 112 | /* WJ */ 113 | .welcomeContent .welcomeButtonWJ { 114 | background-color: rgb(31, 27, 36); 115 | } 116 | 117 | .welcomeContent .welcomeButtonWJ:hover { 118 | color: rgba(255, 255, 255, 0.8); 119 | background-color: #443a51; 120 | box-shadow: 0em 0em 0.6em rgba(50, 114, 139, 0.37); 121 | } 122 | 123 | .welcomeContent .welcomeButtonWJ:hover strong { 124 | color: rgba(242, 242, 242, 0.9); 125 | } 126 | 127 | /* Button text inside strong */ 128 | .welcomeContent .welcomeButton strong, 129 | .welcomeContent .welcomeButtonYT strong, 130 | .welcomeContent .welcomeButtonWJ strong { 131 | color: rgb(242, 242, 242); 132 | font-weight: 500; 133 | letter-spacing: 0.02em; 134 | font-size: 1.3em; 135 | } 136 | 137 | /* Blur */ 138 | .blur { 139 | transition: backdrop-filter 0.5s ease-in-out, -webkit-backdrop-filter 0.5s ease-in-out; 140 | backdrop-filter: saturate(100%) blur(0.5px); 141 | -webkit-backdrop-filter: saturate(100%) blur(0.5px); 142 | } 143 | 144 | .blur h2 { 145 | transition: text-shadow 0.5s ease-in-out; 146 | text-shadow: 0.05em 0.075em 0.1em rgba(0, 0, 0, 0.7); 147 | } 148 | 149 | .disabledButton { 150 | pointer-events: none; 151 | cursor: not-allowed; 152 | background-color: #333333 !important; 153 | } 154 | 155 | .disabledButton strong { 156 | color: rgba(255, 255, 255, 0.38) !important; 157 | } 158 | 159 | @media screen and (min-width: 900px) { 160 | #title br { 161 | display: none; 162 | } 163 | 164 | #title::after { 165 | content: " "; 166 | display: inline; 167 | } 168 | } 169 | 170 | @media only screen and (max-width: 900px) { 171 | .titleContainer h1 { 172 | font-size: 1em; 173 | } 174 | 175 | .buttonContainer { 176 | flex-direction: column; 177 | gap: 0; 178 | margin-bottom: -5em; 179 | } 180 | 181 | .buttonWrapper { 182 | margin-bottom: 1em; 183 | } 184 | 185 | .buttonText { 186 | display: none; 187 | } 188 | 189 | .welcomeContent .welcomeButton, 190 | .welcomeContent .welcomeButtonYT, 191 | .welcomeContent .welcomeButtonWJ { 192 | width: 260px; 193 | height: 58px; 194 | font-size: 1.4rem; 195 | } 196 | 197 | .navigationArrow .arrowText { 198 | display: none; 199 | } 200 | 201 | #sideButton { 202 | margin-left: 0; 203 | margin-right: 1em; 204 | } 205 | 206 | #sidenavLeft .guideLinks { 207 | display: block; 208 | } 209 | 210 | #sidenavRight { 211 | width: 0%; 212 | } 213 | 214 | h1, 215 | h2 { 216 | line-height: 1.2em; 217 | } 218 | } 219 | 220 | @media only screen and (min-width: 901px) { 221 | #sideButton { 222 | margin-left: -100px; 223 | } 224 | } 225 | 226 | /* Shadow */ 227 | .header { 228 | box-shadow: 0 6px 12px 2px rgba(0, 0, 0, 0.5) !important; 229 | } -------------------------------------------------------------------------------- /css/guideColors.css: -------------------------------------------------------------------------------- 1 | strong { 2 | color: #57ffa2e6; 3 | } 4 | 5 | body { 6 | background-color: #141918 !important; 7 | } 8 | 9 | .sidebar, 10 | .header, 11 | .popup { 12 | background: #202524 !important; 13 | } 14 | 15 | .sidebar .active::before { 16 | background-color: #57ffa2e6 !important; 17 | } 18 | 19 | textarea { 20 | border-color: #57ffa2e6 !important; 21 | } -------------------------------------------------------------------------------- /css/header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | outline: 1px solid rgba(0, 0, 0, 0.1); 3 | background-color: rgb(43, 43, 43); 4 | box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.13); 5 | padding: 0 1em 0 1em; 6 | border-bottom-left-radius: 8px; 7 | border-bottom-right-radius: 8px; 8 | border: 1px solid transparent; 9 | display: flex; 10 | position: fixed; 11 | width: 100%; 12 | z-index: 3; 13 | height: 5em; 14 | } 15 | 16 | .guideLinks { 17 | display: flex; 18 | align-items: center; 19 | margin-left: auto; 20 | } 21 | 22 | .guideLinks a { 23 | color: #ffffff; 24 | font-size: 1.2em; 25 | margin-right: 1em; 26 | } 27 | 28 | .headerTitle { 29 | display: flex; 30 | align-items: center; 31 | } 32 | 33 | .headerTitle a { 34 | font-size: 2em; 35 | color: rgb(255, 255, 255); 36 | } 37 | 38 | .header a:hover { 39 | text-shadow: rgba(255, 255, 255, 0.5) 0 0 10px; 40 | } 41 | 42 | .headerTitle img { 43 | padding: 0.8em 1em 0.8em 0em; 44 | max-width: 100%; 45 | max-height: 100%; 46 | } 47 | 48 | .headerMenu { 49 | display: flex; 50 | align-items: center; 51 | } 52 | 53 | .headerMenu img { 54 | padding: 0.8em 1em 0.8em 0em; 55 | width: 100%; 56 | height: 100%; 57 | } 58 | 59 | #navButton { 60 | cursor: pointer; 61 | } 62 | 63 | #navButton:hover { 64 | transform: scale3d(1.05, 1.05, 1.05); 65 | } 66 | 67 | #navButton:active { 68 | transform: scale3d(0.95, 0.95, 0.95) !important; 69 | } 70 | 71 | @media only screen and (max-width: 700px) { 72 | .guideLinks { 73 | display: none; 74 | } 75 | } 76 | 77 | @media only screen and (max-width: 700px) { 78 | #logo { 79 | display: none; 80 | } 81 | } 82 | 83 | @media only screen and (min-width: 900px) { 84 | .headerMenu { 85 | display: none; 86 | } 87 | } -------------------------------------------------------------------------------- /css/images.css: -------------------------------------------------------------------------------- 1 | .image-container { 2 | margin: 1em 0 1em 0; 3 | position: relative; 4 | display: inline-flex; 5 | cursor: pointer; 6 | max-width: 80%; 7 | } 8 | 9 | .image-container img { 10 | box-shadow: 0 2pt 4pt 0 rgba(0, 0, 0, 0.5); 11 | border-radius: 6pt; 12 | max-width: 100%; 13 | height: auto; 14 | } 15 | 16 | .resize-overlay { 17 | position: absolute; 18 | top: 10px; 19 | right: 10px; 20 | width: 0px; 21 | height: 0px; 22 | background-size: contain; 23 | background-repeat: no-repeat; 24 | background-color: rgba(0, 0, 0, 0.6); 25 | background-image: none !important; 26 | padding: 5px; 27 | display: flex; 28 | border-radius: 6pt; 29 | transition: all 0.4s; 30 | pointer-events: none; 31 | } 32 | 33 | .image-container:hover .resize-overlay, 34 | .overlay .resize-overlay { 35 | width: 32px !important; 36 | height: 32px !important; 37 | padding: 10px !important; 38 | } 39 | 40 | .image-container:hover .resize-overlay.expand { 41 | background-image: url("../img/UI/Maximize.svg") !important; 42 | } 43 | 44 | .image-container:hover .resize-overlay.shrink, 45 | .overlay .resize-overlay.shrink { 46 | background-image: url("../img/UI/Minimize.svg") !important; 47 | } 48 | 49 | .image-container:hover img { 50 | box-shadow: 0 0pt 10pt 0 rgba(255, 255, 255, 0.4); 51 | } 52 | 53 | .overlay { 54 | position: fixed; 55 | top: 0; 56 | left: 0; 57 | width: 100%; 58 | height: 100%; 59 | background: rgba(0, 0, 0, 0.8); 60 | display: flex; 61 | align-items: center; 62 | justify-content: center; 63 | z-index: 1000; 64 | display: none; 65 | } 66 | 67 | .enlarged-image { 68 | display: block; 69 | max-height: 50vw; 70 | width: auto; 71 | height: auto; 72 | border-radius: 6pt; 73 | box-shadow: 0 2pt 4pt 0 rgba(0, 0, 0, 0.5); 74 | } 75 | 76 | .mo2-icon { 77 | position: relative; 78 | width: 2em; 79 | height: 2em; 80 | top: 0.5em; 81 | margin-top: -1em; 82 | } 83 | 84 | .logo-container { 85 | display: flex; 86 | justify-content: space-between; 87 | } 88 | 89 | .logo-container img { 90 | display: flex; 91 | height: 256px !important; 92 | padding: 1em; 93 | -webkit-user-select: none !important; 94 | -moz-user-select: none !important; 95 | user-select: none !important; 96 | pointer-events: none !important; 97 | } 98 | 99 | @media only screen and (max-width: 900px) { 100 | .image-container { 101 | max-width: 95% !important; 102 | } 103 | 104 | .overlay .image-container { 105 | max-width: 100% !important; 106 | } 107 | 108 | .enlarged-image { 109 | max-height: 100vw !important; 110 | } 111 | 112 | .logo-container { 113 | flex-direction: column; 114 | align-items: center; 115 | } 116 | } -------------------------------------------------------------------------------- /css/navigationArrows.css: -------------------------------------------------------------------------------- 1 | .navigationArrowContainer { 2 | display: flex; 3 | flex-direction: row; 4 | position: relative; 5 | width: 100%; 6 | height: 100%; 7 | display: flex; 8 | justify-content: space-between; 9 | align-items: end; 10 | align-content: center; 11 | padding: 0 1em; 12 | } 13 | 14 | .navigationArrow { 15 | display: flex; 16 | justify-content: center; 17 | align-items: center; 18 | align-content: center; 19 | text-wrap: nowrap; 20 | } 21 | 22 | .navigationArrow img { 23 | width: 5.5em; 24 | height: 5.5em; 25 | margin: 1.25em 0em 1em 0em; 26 | } 27 | 28 | .navigationArrow .arrowText { 29 | text-decoration: none; 30 | font-size: 2.5em; 31 | display: flex; 32 | color: #ffffff; 33 | } 34 | 35 | .navigationArrow:hover img { 36 | scale: 90%; 37 | transform: scaleY(90%); 38 | } 39 | 40 | @media only screen and (max-width: 900px) { 41 | .navigationArrow .arrowText { 42 | font-size: 1.5em; 43 | } 44 | 45 | .navigationArrow#next { 46 | flex-direction: column-reverse; 47 | align-items: end !important; 48 | } 49 | 50 | .navigationArrow#next .arrowText { 51 | margin-right: 0.33em; 52 | } 53 | 54 | .navigationArrow#previous { 55 | flex-direction: column; 56 | align-items: start !important; 57 | } 58 | 59 | .navigationArrow#previous .arrowText { 60 | margin-left: 0.33em; 61 | } 62 | } -------------------------------------------------------------------------------- /css/popup.css: -------------------------------------------------------------------------------- 1 | .popup-button { 2 | cursor: pointer; 3 | } 4 | 5 | .popup { 6 | position: fixed; 7 | display: none; 8 | z-index: 1; 9 | padding: 0.4em !important; 10 | opacity: 0; 11 | transition: opacity 0.2s ease; 12 | } 13 | 14 | .popup ul { 15 | list-style: none; 16 | padding: 0 !important; 17 | margin: 0 !important; 18 | } 19 | 20 | .popup li { 21 | padding: 0 !important; 22 | margin: 0 !important; 23 | } 24 | 25 | .popup a { 26 | display: flex; 27 | color: rgb(255, 255, 255); 28 | border: 1px solid transparent; 29 | background-color: transparent; 30 | border-radius: 4px; 31 | height: 32px; 32 | width: auto; 33 | text-align: left; 34 | text-decoration: none; 35 | padding: 5px 12px; 36 | font-size: 1.05em; 37 | transition: all 187ms Cubic-Bezier(0, 0, 0, 1); 38 | text-wrap: nowrap; 39 | text-overflow: clip; 40 | } 41 | 42 | .popup a:hover { 43 | background: rgba(255, 255, 255, 0.0605); 44 | border: 1px solid rgba(255, 255, 255, 0.0605); 45 | } 46 | 47 | .popup.show { 48 | opacity: 1; 49 | } -------------------------------------------------------------------------------- /css/progressBar.css: -------------------------------------------------------------------------------- 1 | .progress-container { 2 | z-index: 2; 3 | width: 100%; 4 | height: 5.2em; 5 | background-color: #6e6e6e; 6 | border-bottom-left-radius: 8px; 7 | border-bottom-right-radius: 8px; 8 | position: fixed; 9 | } 10 | 11 | .progress-bar { 12 | height: 5.2em; 13 | width: 0%; 14 | background-color: #71e075; 15 | border-bottom-left-radius: 8px; 16 | border-bottom-right-radius: 8px; 17 | } -------------------------------------------------------------------------------- /css/sidebar.css: -------------------------------------------------------------------------------- 1 | .sidebar { 2 | display: flex; 3 | flex-direction: column; 4 | width: 15em; 5 | text-align: left; 6 | position: fixed; 7 | margin-top: 5.75em; 8 | margin-left: 0.75em; 9 | border-radius: 4px; 10 | -webkit-user-select: none; 11 | -moz-user-select: none; 12 | user-select: none; 13 | background: #2b2b2b; 14 | outline: 1px solid rgba(0, 0, 0, 0.1); 15 | overflow-x: hidden; 16 | overflow-y: auto; 17 | height: calc(100vh - 6.25em); 18 | transition: all 333ms cubic-bezier(0, 0, 0, 1); 19 | justify-content: flex-start; 20 | } 21 | 22 | .left-sidebar { 23 | left: 0; 24 | } 25 | 26 | .right-sidebar { 27 | right: 0; 28 | flex-wrap: nowrap; 29 | padding-left: 0.7em; 30 | margin-right: 0.75em; 31 | width: 15.7em; 32 | } 33 | 34 | .sidebar-padder { 35 | display: flex; 36 | flex-direction: column; 37 | flex-grow: 1; 38 | } 39 | 40 | .sidebar-bottom { 41 | margin-top: auto; 42 | } 43 | 44 | .sidebar .active { 45 | background: rgba(255, 255, 255, 0.1); 46 | } 47 | 48 | .sidebar .active::before { 49 | content: ""; 50 | position: absolute; 51 | left: 0; 52 | transform: translateY(2px); 53 | width: 3px; 54 | height: 16px; 55 | background-color: #ff0000; 56 | border-radius: 8px; 57 | } 58 | 59 | .sidebar p { 60 | margin: 10px 0; 61 | } 62 | 63 | .left-sidebar a, 64 | .sublink { 65 | display: flex; 66 | color: rgb(255, 255, 255); 67 | border: 1px solid transparent; 68 | background-color: transparent; 69 | border-radius: 4px; 70 | height: 32px; 71 | width: auto; 72 | text-align: left; 73 | text-decoration: none; 74 | padding: 5px 12px; 75 | font-size: 1.05em; 76 | margin: 1.5px 0; 77 | transition: all 187ms Cubic-Bezier(0, 0, 0, 1); 78 | text-wrap: nowrap; 79 | text-overflow: clip; 80 | } 81 | 82 | .sublink { 83 | padding-left: 1.5em !important; 84 | display: none !important; 85 | } 86 | 87 | .right-sidebar div { 88 | padding-bottom: 0.75em; 89 | } 90 | 91 | .right-sidebar a:not(b a) { 92 | display: flex; 93 | color: rgb(255, 255, 255) !important; 94 | text-decoration: none; 95 | transition: all 187ms Cubic-Bezier(0, 0, 0, 1); 96 | padding: 0.2em 0em 0.2em 1em; 97 | } 98 | 99 | .right-sidebar b a { 100 | display: flex; 101 | color: rgb(255, 255, 255) !important; 102 | text-decoration: none; 103 | transition: all 187ms Cubic-Bezier(0, 0, 0, 1); 104 | text-wrap: nowrap; 105 | } 106 | 107 | .left-sidebar hr { 108 | margin: 0px 10px !important; 109 | } 110 | 111 | .left-sidebar a:hover { 112 | background: rgba(255, 255, 255, 0.0605); 113 | border: 1px solid rgba(255, 255, 255, 0.0605); 114 | } 115 | 116 | .right-sidebar a:hover { 117 | color: rgba(255, 255, 255, 0.8) !important; 118 | } 119 | 120 | .left-sidebar a:active { 121 | background: rgba(255, 255, 255, 0.0419); 122 | border: 1px solid rgba(255, 255, 255, 0.0419); 123 | color: rgba(255, 255, 255, 0.786); 124 | } 125 | 126 | .right-sidebar a:active { 127 | color: rgba(255, 255, 255, 0.5) !important; 128 | } 129 | 130 | @media only screen and (max-width: 900px) { 131 | .left-sidebar { 132 | height: 100% !important; 133 | width: calc(fit-content + 25%) !important; 134 | margin: 0; 135 | padding-top: 5em; 136 | z-index: 1; 137 | box-shadow: rgba(0, 0, 0, 0.4) 0px 0px 10px; 138 | 139 | border-top-left-radius: 0; 140 | border-bottom-left-radius: 0; 141 | 142 | transform: translateX(-100%); 143 | transition: transform 333ms cubic-bezier(0, 0, 0, 1); 144 | } 145 | 146 | .left-sidebar a, 147 | .sublink { 148 | height: 36px !important; 149 | padding: 7px 12px !important; 150 | } 151 | 152 | /* Add new class for expanded state */ 153 | .left-sidebar.expanded { 154 | transform: translateX(0); 155 | } 156 | } 157 | 158 | @media only screen and (max-width: 1230px) { 159 | .right-sidebar { 160 | height: 100%; 161 | right: -200em; 162 | } 163 | } -------------------------------------------------------------------------------- /css/styles.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | scroll-behavior: smooth; 4 | transition: all 187ms Cubic-Bezier(0, 0, 0, 1); 5 | scrollbar-width: thin; 6 | scrollbar-color: rgba(255, 255, 255, 0.63) transparent; 7 | } 8 | 9 | *::-webkit-scrollbar { 10 | width: 12px; 11 | } 12 | 13 | *::-webkit-scrollbar-track { 14 | background: transparent; 15 | } 16 | 17 | *::-webkit-scrollbar-thumb { 18 | background-color: rgba(143, 143, 143, 0.63); 19 | border-radius: 20px; 20 | } 21 | 22 | *::-webkit-scrollbar-thumb:hover { 23 | background-color: rgba(240, 240, 240, 0.63); 24 | border-radius: 20px; 25 | scale: 10%; 26 | } 27 | 28 | html { 29 | scroll-padding-top: 5.375em; 30 | } 31 | 32 | div { 33 | display: block; 34 | } 35 | 36 | body { 37 | margin: 0; 38 | font-size: 0.9em; 39 | font-weight: 400; 40 | line-height: 1.45em; 41 | } 42 | 43 | h1 { 44 | font-size: 40px; 45 | font-weight: 600; 46 | line-height: 52px; 47 | } 48 | 49 | h2 { 50 | font-size: 2.1em; 51 | font-weight: 600; 52 | line-height: 1.2em; 53 | cursor: pointer; 54 | } 55 | 56 | h3 { 57 | font-size: 1.5em; 58 | font-weight: 600; 59 | line-height: 1.25em; 60 | } 61 | 62 | #logoBig { 63 | display: flex; 64 | flex-direction: column; 65 | justify-content: center; 66 | align-items: center; 67 | } 68 | 69 | #logoBig img { 70 | width: 100%; 71 | max-width: 220px; 72 | margin: 0; 73 | padding: 0; 74 | } 75 | 76 | .flex { 77 | display: flex; 78 | } 79 | 80 | a { 81 | color: rgb(101, 206, 253); 82 | text-decoration: none; 83 | } 84 | 85 | a:hover { 86 | color: hsl(199, 83%, 45%); 87 | } 88 | 89 | li { 90 | margin-top: 1em; 91 | margin-bottom: 1em; 92 | } 93 | 94 | input, 95 | button { 96 | color: white; 97 | background-color: rgba(255, 255, 255, 0.0605); 98 | border: 1px solid rgba(255, 255, 255, 0.093); 99 | border-radius: 3px; 100 | text-align: center; 101 | min-height: 1em; 102 | font-size: 1.1em; 103 | transition: all 187ms Cubic-Bezier(0, 0, 0, 1); 104 | } 105 | 106 | input:hover, 107 | button:hover { 108 | background-color: rgba(255, 255, 255, 0.0837); 109 | } 110 | 111 | input:active, 112 | button:active { 113 | background-color: rgba(255, 255, 255, 0.0326); 114 | border-color: rgba(255, 255, 255, 0.0698); 115 | color: rgba(255, 255, 255, 0.786); 116 | } 117 | 118 | input:active { 119 | border-bottom: 1px solid rgb(101, 206, 253); 120 | } 121 | 122 | .center { 123 | margin-left: auto; 124 | margin-right: auto; 125 | } 126 | 127 | hr { 128 | border: 1px solid rgba(255, 255, 255, 0.2); 129 | border-radius: 4px; 130 | margin: 10px; 131 | } 132 | 133 | .selected { 134 | background: rgba(255, 255, 255, 0.12) !important; 135 | border: 1px solid rgba(255, 255, 255, 0.12) !important; 136 | } 137 | 138 | .annotations { 139 | font-size: small; 140 | } 141 | 142 | .container { 143 | display: flex; 144 | min-height: 100vh; 145 | } 146 | 147 | :root { 148 | --sidebar-margin: 14.5em; 149 | --scrollbar-width: 0.7em; 150 | } 151 | 152 | .content { 153 | flex: 1; 154 | display: flex; 155 | flex-direction: column; 156 | margin-top: 70px; 157 | margin-left: var(--sidebar-margin); 158 | margin-right: calc(var(--sidebar-margin) + var(--scrollbar-width)); 159 | width: 80%; 160 | padding: 2em; 161 | } 162 | 163 | footer { 164 | text-align: center; 165 | padding: 5px; 166 | margin-bottom: 0; 167 | margin-top: 10px; 168 | outline: 1px solid rgba(0, 0, 0, 0.1); 169 | background-color: rgba(255, 255, 255, 0.0512); 170 | } 171 | 172 | .theme { 173 | background: rgb(32, 32, 32); 174 | color: white; 175 | font-family: arial, helvetica, sans-serif; 176 | } 177 | 178 | .section { 179 | opacity: 0; 180 | transition: opacity 1s ease; 181 | } 182 | 183 | .section.fade-in { 184 | opacity: 1; 185 | } 186 | 187 | .faq h4 { 188 | margin-top: 1.7em; 189 | margin-bottom: 0.2em; 190 | } 191 | 192 | .mirror { 193 | rotate: 180deg; 194 | } 195 | 196 | .width-90 { 197 | max-width: 90% !important; 198 | } 199 | 200 | .width-70 { 201 | max-width: 70% !important; 202 | } 203 | 204 | .width-60 { 205 | max-width: 60% !important; 206 | } 207 | 208 | .width-40 { 209 | max-width: 40% !important; 210 | } 211 | 212 | textarea { 213 | padding: 1em !important; 214 | color: white; 215 | resize: none; 216 | cursor: pointer; 217 | } 218 | 219 | button.active { 220 | background-color: #4CAF50; 221 | color: white; 222 | } 223 | 224 | @keyframes rotate { 225 | 50% { 226 | transform: translateY(-6px) rotateZ(180deg); 227 | } 228 | 229 | 100% { 230 | transform: translateY(0px) rotateZ(360deg); 231 | } 232 | } 233 | 234 | @keyframes slide-down { 235 | from { 236 | max-height: 0; 237 | margin-top: -0.12px; 238 | } 239 | 240 | to { 241 | max-height: 5000px; 242 | } 243 | } 244 | 245 | @keyframes slide-up { 246 | from { 247 | max-height: 1000px; 248 | } 249 | 250 | to { 251 | max-height: 0; 252 | margin-top: -0.12px; 253 | } 254 | } 255 | 256 | @media only screen and (max-width: 1220px) { 257 | 258 | .content, 259 | .content-index { 260 | margin-right: 0px !important; 261 | } 262 | } 263 | 264 | @media only screen and (max-width: 900px) { 265 | 266 | .content, 267 | .content-index { 268 | margin-left: 0px; 269 | } 270 | } 271 | 272 | @media only screen and (max-width: 700px) { 273 | ul { 274 | margin-left: -1.75em; 275 | } 276 | 277 | ol { 278 | margin-left: -1.75em; 279 | } 280 | 281 | .content { 282 | padding: 4px; 283 | } 284 | 285 | .width-90 { 286 | max-width: 100% !important; 287 | } 288 | 289 | .width-70 { 290 | max-width: 90% !important; 291 | } 292 | 293 | .width-60 { 294 | max-width: 80% !important; 295 | } 296 | 297 | .width-40 { 298 | max-width: 70% !important; 299 | } 300 | 301 | #logoBig { 302 | display: none; 303 | } 304 | } 305 | 306 | @media only screen and (max-width: 470px) { 307 | .container { 308 | min-width: 100%; 309 | overflow-x: hidden; 310 | } 311 | 312 | .content { 313 | padding: 4px; 314 | width: 100%; 315 | min-width: 0; 316 | margin-left: 0; 317 | margin-right: 0; 318 | overflow-x: hidden; 319 | } 320 | 321 | .card, 322 | .card-red, 323 | .card-yellow, 324 | .card-green, 325 | .image-slider { 326 | max-width: 100%; 327 | overflow-x: hidden; 328 | } 329 | 330 | .image-container, 331 | .slider-container { 332 | max-width: 100% !important; 333 | } 334 | 335 | .slider-img { 336 | max-width: 100%; 337 | height: auto; 338 | } 339 | 340 | textarea { 341 | max-width: 95%; 342 | } 343 | } -------------------------------------------------------------------------------- /css/textIcons.css: -------------------------------------------------------------------------------- 1 | .link-download a::after, 2 | .link-page a::after { 3 | content: ""; 4 | margin-left: 10px; 5 | display: inline-block; 6 | width: 1.25em; 7 | height: 1.25em; 8 | transform: translateY(0.25em); 9 | background-size: contain; 10 | background-repeat: no-repeat; 11 | } 12 | 13 | .link-page a::after { 14 | background-image: url("../img/UI/Open.svg"); 15 | } 16 | 17 | .link-download a::after { 18 | background-image: url("../img/UI/Download.svg"); 19 | } -------------------------------------------------------------------------------- /files/3.3.3a Hotfix.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/files/3.3.3a Hotfix.7z -------------------------------------------------------------------------------- /files/DirectX Remover.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/files/DirectX Remover.7z -------------------------------------------------------------------------------- /files/TTW Changelog.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/files/TTW Changelog.7z -------------------------------------------------------------------------------- /files/Vanilla UI Plus Fallout 3 9.48.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/files/Vanilla UI Plus Fallout 3 9.48.7z -------------------------------------------------------------------------------- /finish.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Final Steps | The Best of Times 11 | 12 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
61 |
62 |
63 | 64 |
65 |
66 |
67 | 68 |
69 |
70 | 71 | The Best of Times 72 |
73 | 78 |
79 | 153 | 154 | 164 | 165 |
166 | 167 | 168 |

Finishing Notes

169 | 170 |
171 |

172 |

Running the Game

173 | Due to the way Mod Organizer 2 works, running programs through it is a requirement in order to load mods. This is done in the top-right corner of the manager, where the program to run is chosen. Here, select Tale of Two Wastelands. 174 |
175 |
176 | For the sake of convenience you may also create a shortcut (right below the Run button) so that you won't have to manually open MO2 each time before playing. 177 |
178 |
179 | Launching the game 180 |
181 |
182 |
183 | 184 |
185 |

186 | Q: Aren't you supposed to launch through NVSE? 187 |
188 |
189 | A: The 4GB Patcher and the Epic Games Patcher both allow the game's main executable to automatically load the script extender. 190 |
191 |


192 | Refer to the FAQ section for more information and solutions to possible problems you might encounter at this stage of the guide. 193 |

194 |
195 | 196 |
197 | You have now completed The Best of Times. If you don't want to mod your game further, you can now start playing. Have fun! 198 |

199 |
200 | 201 |
202 |

203 |

Want More?

204 | You may be interested in Wasteland Survival Guide, which offers a wider selection of mods leading to a completely different experience. Support for WSG provided in The Wasteland Supplemental Discord server. 205 |
206 |
207 | Adding mods independently and without the help of a guide is only recommended after you have learned the required information and workflow. These range from general technicalities about the game, to solving conflicts with xEdit through The Method. 208 |
209 |
210 | You can find sources for all this information and more in the Resources section of Viva New Vegas. You should also be aware of the Tools and Mods to Avoid. 211 | 212 |
213 |

214 | We may not provide support for setups that have added mods, especially if you went overboard! 215 |

216 |
217 | 218 |

219 |
220 |
221 | 222 | 223 |
224 | 242 |
243 |
244 | 245 | 251 |
252 | 253 | 257 |
258 | 259 | 260 | 261 | 267 | 268 | 269 | 270 | -------------------------------------------------------------------------------- /img/Coco/Blockquote.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Coco/Blockquote.webp -------------------------------------------------------------------------------- /img/Coco/Full 1 Extended.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Coco/Full 1 Extended.webp -------------------------------------------------------------------------------- /img/Coco/Full 1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Coco/Full 1.webp -------------------------------------------------------------------------------- /img/Coco/Full 2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Coco/Full 2.webp -------------------------------------------------------------------------------- /img/Coco/Head Logo Alt 2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Coco/Head Logo Alt 2.webp -------------------------------------------------------------------------------- /img/Coco/Head Logo Alt.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Coco/Head Logo Alt.webp -------------------------------------------------------------------------------- /img/Coco/Head Logo Extended.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Coco/Head Logo Extended.webp -------------------------------------------------------------------------------- /img/Coco/Head Logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Coco/Head Logo.webp -------------------------------------------------------------------------------- /img/Coco/Head.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Coco/Head.webp -------------------------------------------------------------------------------- /img/MO2/Connect.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/MO2/Connect.webp -------------------------------------------------------------------------------- /img/MO2/Executables.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/MO2/Executables.webp -------------------------------------------------------------------------------- /img/MO2/Folders.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/MO2/Folders.webp -------------------------------------------------------------------------------- /img/MO2/Install Archive.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/MO2/Install Archive.webp -------------------------------------------------------------------------------- /img/MO2/Install Path.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/MO2/Install Path.webp -------------------------------------------------------------------------------- /img/MO2/Instance.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/MO2/Instance.webp -------------------------------------------------------------------------------- /img/MO2/Profile Settings.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/MO2/Profile Settings.webp -------------------------------------------------------------------------------- /img/MO2/Settings.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/MO2/Settings.webp -------------------------------------------------------------------------------- /img/MO2/Start Menu.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/MO2/Start Menu.webp -------------------------------------------------------------------------------- /img/MO2/Tools.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/MO2/Tools.webp -------------------------------------------------------------------------------- /img/Others/Background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Background.webp -------------------------------------------------------------------------------- /img/Others/Card.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Card.webp -------------------------------------------------------------------------------- /img/Others/CardFO3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/CardFO3.webp -------------------------------------------------------------------------------- /img/Others/Download Example.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Download Example.webp -------------------------------------------------------------------------------- /img/Others/Dynamic Backgrounds/0.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Dynamic Backgrounds/0.webp -------------------------------------------------------------------------------- /img/Others/Dynamic Backgrounds/12.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Dynamic Backgrounds/12.webp -------------------------------------------------------------------------------- /img/Others/Dynamic Backgrounds/17.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Dynamic Backgrounds/17.webp -------------------------------------------------------------------------------- /img/Others/Dynamic Backgrounds/20.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Dynamic Backgrounds/20.webp -------------------------------------------------------------------------------- /img/Others/Dynamic Backgrounds/23.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Dynamic Backgrounds/23.webp -------------------------------------------------------------------------------- /img/Others/Dynamic Backgrounds/7.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Dynamic Backgrounds/7.webp -------------------------------------------------------------------------------- /img/Others/Dynamic Backgrounds/9.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Dynamic Backgrounds/9.webp -------------------------------------------------------------------------------- /img/Others/File Extensions.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/File Extensions.webp -------------------------------------------------------------------------------- /img/Others/Install TTW.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Install TTW.webp -------------------------------------------------------------------------------- /img/Others/Root Folder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Root Folder.webp -------------------------------------------------------------------------------- /img/Others/Start Game.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Start Game.webp -------------------------------------------------------------------------------- /img/Others/Start Launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Start Launcher.webp -------------------------------------------------------------------------------- /img/Others/Steam Library Tool Setup.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Steam Library Tool Setup.webp -------------------------------------------------------------------------------- /img/Others/Steam Location Pick.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModdingLinked/The-Best-of-Times/bdce21fa9fab3bf6479d6c6682eca3f025afd715/img/Others/Steam Location Pick.webp -------------------------------------------------------------------------------- /img/UI/Arrow.svg: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /img/UI/Chevron Down.svg: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /img/UI/Download.svg: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /img/UI/Maximize.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /img/UI/Minimize.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /img/UI/Navigation.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /img/UI/Open.svg: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | The Best of Times 11 | 12 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 82 | 83 | 84 |
85 |
86 |
87 | 88 | The Best of Times 89 |
90 | 95 |
96 |
97 | 98 |
99 |
100 | Background Image 101 |

Welcome to
The Best of Times!

102 |
103 |
104 |
105 | 106 | 107 |
108 |
109 | Video Guide 110 | 111 |
112 |
113 |
114 | 115 | 116 | -------------------------------------------------------------------------------- /intro.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Introduction | The Best of Times 11 | 12 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
61 |
62 |
63 | 64 |
65 |
66 |
67 | 68 |
69 |
70 | 71 | The Best of Times 72 |
73 | 78 |
79 | 153 | 154 | 164 | 165 |
166 | 167 | 168 | 169 |
170 |

171 | Coco blockquote 172 |

173 | IMPORTANT: 174 |
175 | Everything in this guide is written down for a reason! It is vital to read everything! 176 |
177 | You can NOT skip any paragraphs/instructions and expect your game to function as it should. 178 |
179 |

180 |
181 | 182 |

Introduction

183 |
184 |
185 |

186 |

Overview

187 |

188 |

189 | This guide will instruct you on how to properly install Tale of Two Wastelands - a total conversion mod for Fallout: New Vegas that merges the games of Fallout 3 and New Vegas together! 190 |
191 |
192 | All essential mods required for performance and stability will also be installed. 193 |

194 |

195 | The guide is highly accessible to everyone, no matter your modding experience. It is expected for you to be relatively experienced with operating a computer in general. 196 |
197 |
198 | As there are many small instructions that are vital for your game to function, it is incredibly important that you read all the instructions very carefully, even if you believe you are experienced enough to skip them. 199 |
200 |

201 |
202 | 203 |
204 | Logo of Coco - a dog mascot of ModdingLinked 205 |
206 | 207 |
208 | 209 |
210 |

211 |

Requirements

212 |
    213 |
  • English copies of both Fallout 3 and Fallout: New Vegas with all DLCs on either Steam, GOG, or the Epic Games Store. 214 |
      215 |
    • You may "mix and match" Steam, GOG, and Epic Games versions of the 2 games.
    • 216 |
    • Only the English version of the game is supported for maximum compatibility - translations can conflict with mods and cause issues.
    • 217 |
    • The Microsoft Store versions are not supported.
    • 218 |
    • The Polish-Czech-Russian (PCR) version of Fallout: New Vegas is fully supported as long as the game itself is in English.
    • 219 |
    • The German release uses a "No Gore" version, making it also incompatible with xNVSE. If you have it on Steam, you can use DepotDownloader to download the international EXE.
    • 220 |
    • The Games for Windows Live version of Fallout 3 is supported as long as it's the GOTY and in English.
    • 221 |
    222 |
  • 223 | 224 |
  • At least 40GB of free drive space, both games included. Tale of Two Wastelands itself is 17GB.
  • 225 |
  • Windows 10 or higher (64-bit).
  • 226 | 227 |
    228 |

    229 | Windows installations deviating from the public release (e.g. customized or LTSC) are not supported by us. We can refuse to provide help in such cases. 230 |
    231 | This is because they don't guarantee the default functionality expected from the public release, which can cause unforeseen issues. 232 |

    233 |
    234 | 235 |
  • A text editor (Notepad++ is recommended, but the default Windows notepad will work).
  • 236 |
  • An archiving tool (NanaZip is recommended).
  • 237 |
  • The latest GPU drivers (either Nvidia, AMD or Intel).
  • 238 |
  • A Nexus Mods account (a Premium subscription will allow uncapped download speeds).
  • 239 |
  • A MOD:PUB account.
  • 240 |
241 |

242 |
243 |
244 |

245 |

Recommended Specs

246 | The guide will make the game run better than vanilla. The game is much more CPU-intensive than GPU-intensive, and actually scales with modern hardware pretty well. Installing the game on an SSD will drastically improve loading times and decrease stuttering. 247 |

248 | Here are the recommended minimum specifications to run TBoT at 60 FPS 1080p with all the recommended mods and settings: 249 |
    250 |
  • CPU: Any quad-core processor (2.5GHz or more).
  • 251 |
  • RAM: 8GB or more.
  • 252 |
  • GPU: Matching or surpassing the performance of Nvidia's 600 series or AMD's 5500 series.
  • 253 |
254 |

255 |
256 |
257 | 258 | 269 |
270 | 271 | 275 |
276 | 277 | 278 | 279 | 280 | -------------------------------------------------------------------------------- /js/imageViewer.js: -------------------------------------------------------------------------------- 1 | // Image overlay 2 | 3 | document.addEventListener('DOMContentLoaded', function () { 4 | createImageHandlers(); 5 | }); 6 | 7 | function createImageHandlers() { 8 | const imageOverlay = document.getElementById('image-overlay'); 9 | const enlargedImage = document.getElementById('enlarged-image'); 10 | if (!enlargedImage || !imageOverlay) 11 | return; 12 | 13 | const images = document.querySelectorAll('.content-img'); 14 | 15 | if (!images) 16 | return; 17 | 18 | images.forEach(image => { 19 | image.addEventListener('click', function () { 20 | imageOverlay.style.display = "flex"; 21 | enlargedImage.src = this.src; 22 | }); 23 | }); 24 | 25 | imageOverlay.addEventListener('click', function () { 26 | imageOverlay.style.display = "none"; 27 | enlargedImage.src = ''; 28 | }); 29 | } -------------------------------------------------------------------------------- /js/javascript.js: -------------------------------------------------------------------------------- 1 | var menuIsOpen = false; 2 | 3 | // Global variables 4 | const progressBars = document.getElementsByClassName("progress-bar"); 5 | const sections = document.getElementsByClassName("section"); 6 | const sidebars = document.getElementsByClassName("sidebar"); 7 | const leftSideBar = document.getElementsByClassName("left-sidebar"); 8 | const autoSizeAreas = document.querySelectorAll('.auto-resize'); 9 | 10 | window.addEventListener('resize', sizeChanged); 11 | document.addEventListener('DOMContentLoaded', function () { 12 | updateProgressBarAndFadeIn(); 13 | createRightSidebar(); 14 | markActivePage(); 15 | resizeAllTextAreas(); 16 | setupExpanders(); 17 | }); 18 | window.onscroll = updateProgressBarAndFadeIn; 19 | 20 | document.addEventListener('keydown', (e) => { 21 | if (e.code === "ArrowRight") { 22 | window.open(document.getElementById("next").href, "_self") 23 | } 24 | else if (e.code === "ArrowLeft") { 25 | window.open(document.getElementById("previous").href, "_self") 26 | } 27 | }); 28 | 29 | function sizeChanged() { 30 | if (leftSideBar && leftSideBar.length > 0) { 31 | if (document.documentElement.clientWidth > 760) { 32 | leftSideBar[0].style.width = ""; 33 | } 34 | } 35 | 36 | resizeAllTextAreas(); 37 | } 38 | 39 | function toggleNav() { 40 | const sidebar = document.querySelector('.left-sidebar'); 41 | sidebar.classList.toggle('expanded'); 42 | } 43 | 44 | function fadeOut(element) { 45 | element.style.opacity = "0%"; 46 | } 47 | 48 | function rotate(element, rotation = 180) { 49 | element.style.transform = 'rotatex(' + rotation + 'deg)'; 50 | } 51 | 52 | function setupExpanders() { 53 | const expanders = document.querySelectorAll('.expander-top'); 54 | 55 | expanders.forEach((expander, index) => { 56 | // Remove any existing ID 57 | const oldId = expander.id; 58 | const contentId = oldId ? 59 | document.getElementById(oldId + 'expander') : 60 | expander.nextElementSibling; 61 | 62 | // Set new consistent IDs 63 | const newId = 'expander-' + index; 64 | expander.id = newId; 65 | 66 | if (contentId && contentId.classList.contains('expander-bottom')) { 67 | contentId.id = newId + '-content'; 68 | 69 | // Update onclick handler 70 | expander.setAttribute('onclick', `expandCard(this, document.getElementById('${newId}-content'))`); 71 | 72 | // Make sure it has the clickable class 73 | if (!expander.classList.contains('clickable')) { 74 | expander.classList.add('clickable'); 75 | } 76 | } 77 | }); 78 | } 79 | 80 | function expandCard(thisObj, $open, $dontReset) { 81 | const chevron = thisObj.getElementsByClassName("chevron")[0] 82 | if ($open.classList.contains('expander-opened') && !$dontReset) { 83 | rotate(chevron, 0) 84 | $open.classList.remove('expander-opened'); 85 | setTimeout(() => $open.style.display = "none", 400); 86 | thisObj.classList.remove('active'); 87 | } 88 | else { 89 | $open.classList.add('expander-opened'); 90 | rotate(chevron, 180); 91 | $open.style.display = "block"; 92 | thisObj.classList.add('active'); 93 | 94 | const textareas = $open.querySelectorAll('.auto-resize'); 95 | if (textareas) { 96 | for (var i = 0; i < textareas.length; i++) { 97 | autoResize(textareas[i]); 98 | } 99 | } 100 | } 101 | } 102 | 103 | function resizeAllTextAreas() { 104 | if (autoSizeAreas && autoSizeAreas.length > 0) { 105 | for (var i = 0; i < autoSizeAreas.length; i++) { 106 | autoResize(autoSizeAreas[i]); 107 | } 108 | } 109 | } 110 | 111 | function autoResize(textarea) { 112 | textarea.style.height = 'auto'; 113 | textarea.style.height = textarea.scrollHeight + 'px'; 114 | } 115 | 116 | function emToPixels(em) { 117 | const baseFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize); 118 | return em * baseFontSize; 119 | } 120 | 121 | function updateProgressBarAndFadeIn() { 122 | var winScroll = document.body.scrollTop || document.documentElement.scrollTop; 123 | var height = window.innerHeight; 124 | 125 | if (sections) { 126 | for (var i = 0; i < sections.length; i++) { 127 | var sectionTop = sections[i].getBoundingClientRect().top; 128 | var sectionHeight = sections[i].clientHeight; 129 | 130 | if (sectionTop < height && sectionTop + sectionHeight > 0) { 131 | sections[i].classList.add("fade-in"); 132 | } 133 | } 134 | } 135 | 136 | var progressBar = progressBars[0]; 137 | if (progressBar) { 138 | height = document.documentElement.scrollHeight - document.documentElement.clientHeight; 139 | var scroll = (winScroll / height); 140 | var bottomMargin = (height - 25) / height; 141 | progressBar.style.width = scroll * 100 + "%"; 142 | } 143 | 144 | 145 | if (sidebars) { 146 | var styleVal = "calc(100vh - 6.25em)"; 147 | 148 | if (document.documentElement.clientHeight > 900 && scroll > bottomMargin) { 149 | styleVal = "calc(100vh - 8.5em)"; 150 | } 151 | 152 | for (var i = 0; i < sidebars.length; i++) { 153 | sidebars[i].style.height = styleVal; 154 | } 155 | } 156 | } 157 | 158 | function createRightSidebar() { 159 | const content = document.getElementsByClassName('content')[0]; 160 | const sidebar = document.getElementById('sidebarContent'); 161 | if (!content || !sidebar) return; 162 | 163 | const sections = content.getElementsByClassName('section'); 164 | if (!sections.length) return; 165 | 166 | // Create fragment for batch updates (better performance) 167 | const fragment = document.createDocumentFragment(); 168 | 169 | for (const section of sections) { 170 | // Get section elements (both cards and expanders) 171 | const elements = [...section.children].filter(el => 172 | (el.classList.contains('card') || el.classList.contains('expander-top')) && 173 | el.parentNode === section 174 | ).sort((a, b) => 175 | a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1 176 | ); 177 | 178 | // Process headers within section 179 | section.querySelectorAll('h2').forEach(header => { 180 | if (!header.innerHTML) return; 181 | 182 | const div = document.createElement('div'); 183 | 184 | // Create header link 185 | const b = document.createElement('b'); 186 | b.innerHTML = `${header.innerHTML}`; 187 | div.appendChild(b); 188 | 189 | // Add all elements for this section 190 | elements.forEach(element => { 191 | const text = element.getAttribute('title') || 192 | element.id.replace(/([A-Z])/g, ' $1').trim(); 193 | 194 | if (!text) return; 195 | 196 | const a = document.createElement('a'); 197 | a.href = `#${element.id}`; 198 | a.textContent = text; 199 | div.appendChild(a); 200 | }); 201 | 202 | fragment.appendChild(div); 203 | }); 204 | } 205 | 206 | sidebar.appendChild(fragment); 207 | } 208 | 209 | function markActivePage() { 210 | const leftSidebar = document.querySelector(".sidebar.left-sidebar"); 211 | 212 | if (!leftSidebar) 213 | return; 214 | 215 | const sidebarLinks = leftSidebar.querySelectorAll(".sidebar a"); 216 | 217 | if (!sidebarLinks) 218 | return; 219 | 220 | const currentPage = "./" + window.location.pathname.split("/").pop(); 221 | 222 | let currentIndex = -1; 223 | 224 | // Loop through the links to find the current page index 225 | sidebarLinks.forEach((link, index) => { 226 | const linkPage = link.getAttribute("href"); 227 | 228 | if (linkPage === currentPage) { 229 | link.classList.add("active"); 230 | currentIndex = index; 231 | 232 | if (link.classList.contains("sublink")) { 233 | link.setAttribute('style', 'display:flex !important'); 234 | } 235 | } 236 | }); 237 | 238 | const allowedPageLinks = leftSidebar.querySelectorAll(".pageLinks"); 239 | if (allowedPageLinks) { 240 | let linkCount = 0; 241 | 242 | for (let i = 0; i < allowedPageLinks.length; i++) { 243 | linkCount += allowedPageLinks[i].children.length; 244 | } 245 | 246 | if (currentIndex > linkCount - 1) 247 | currentIndex = -1; 248 | 249 | createPageArrows(currentIndex); 250 | } 251 | } 252 | 253 | function createPageArrows(currentIndex) { 254 | const linkSections = document.querySelectorAll(".pageLinks"); 255 | 256 | if (!linkSections) 257 | return; 258 | 259 | const prevLink = document.getElementById("previous"); 260 | const nextLink = document.getElementById("next"); 261 | 262 | let sidebarLinks = []; 263 | 264 | for (let i = 0; i < linkSections.length; i++) { 265 | var list = linkSections[i].querySelectorAll(".sidebar a"); 266 | for (let j = 0; j < list.length; j++) { 267 | sidebarLinks.push(list[j]); 268 | } 269 | } 270 | 271 | // Set the previous and next links if the current page is found 272 | // Otherwise default to the home page 273 | if (currentIndex !== -1) { 274 | if (prevLink) { 275 | if (currentIndex > 0) { 276 | const prevPage = sidebarLinks[currentIndex - 1]; 277 | prevLink.href = prevPage.getAttribute("href"); 278 | prevLink.querySelector(".arrowText").textContent = prevPage.textContent.trim(); 279 | } else { 280 | prevLink.style.display = "none"; 281 | } 282 | } 283 | 284 | if (nextLink) { 285 | if (currentIndex < sidebarLinks.length - 1) { 286 | const nextPage = sidebarLinks[currentIndex + 1]; 287 | nextLink.href = nextPage.getAttribute("href"); 288 | nextLink.querySelector(".arrowText").textContent = nextPage.textContent.trim(); 289 | } else { 290 | nextLink.style.display = "none"; 291 | } 292 | } 293 | } 294 | else if (prevLink) { 295 | console.log("Current page not found in sidebar links"); 296 | const prevPage = sidebarLinks[0]; 297 | prevLink.href = prevPage.getAttribute("href"); 298 | prevLink.querySelector(".arrowText").textContent = prevPage.textContent.trim(); 299 | } 300 | } 301 | 302 | function isChildOfSidebar(element) { 303 | while (element) { 304 | if (element.classList && element.classList.contains('sidebar') && element.classList.contains('left-sidebar')) { 305 | return true; 306 | } 307 | element = element.parentElement; 308 | } 309 | return false; 310 | } 311 | 312 | document.addEventListener('click', function (event) { 313 | if (globalThis.menuIsOpen) { 314 | const target = event.target; 315 | if (target.id != "navButton" && isChildOfSidebar(target) == false) { 316 | toggleNav(); 317 | } 318 | } 319 | }); -------------------------------------------------------------------------------- /js/popup.js: -------------------------------------------------------------------------------- 1 | var lastPopupWindow = null; 2 | var lastPopupButton = null; 3 | 4 | function openPopup(thisObj, $target) { 5 | const rect = thisObj.getBoundingClientRect(); 6 | var popup = $target; 7 | 8 | const isVisible = popup.classList.contains('show'); 9 | if (!isVisible) { 10 | popup.style.top = `${rect.top}` - emToPixels(2) + "px"; 11 | popup.style.left = `${rect.right}px`; 12 | popup.style.display = 'block'; 13 | requestAnimationFrame(() => popup.classList.add('show')); 14 | } else { 15 | popup.classList.remove('show'); 16 | setTimeout(() => (popup.style.display = 'none'), 200); 17 | } 18 | 19 | lastPopupWindow = $target; 20 | lastPopupButton = thisObj; 21 | }; 22 | 23 | document.addEventListener('click', (e) => { 24 | if (lastPopupWindow && !lastPopupWindow.contains(e.target) && !lastPopupButton.contains(e.target)) { 25 | lastPopupWindow.classList.remove('show'); 26 | setTimeout(() => (lastPopupWindow.style.display = 'none', lastPopupWindow = null), 200); 27 | } 28 | }); 29 | 30 | window.addEventListener('scroll', () => { 31 | document.querySelectorAll('.popup').forEach(popup => { 32 | popup.classList.remove('show'); 33 | setTimeout(() => (popup.style.display = 'none'), 200); 34 | }); 35 | }, true); -------------------------------------------------------------------------------- /js/responsiveTitle.js: -------------------------------------------------------------------------------- 1 | document.addEventListener('DOMContentLoaded', function () { 2 | setupResponsiveElements(); 3 | window.addEventListener('resize', setupResponsiveElements); 4 | }); 5 | 6 | function setupResponsiveElements() { 7 | const abbreviations = { 8 | // Header titles 9 | "ModdingLinked": "ML", 10 | "Viva New Vegas": "VNV", 11 | "The Best of Times": "TBoT", 12 | "The Midnight Ride": "TMR", 13 | "A Dragonborn's Fate": "DBF", 14 | 15 | // Header links 16 | "Fallout: New Vegas": "FNV", 17 | "Tale of Two Wastelands": "TTW", 18 | "Fallout 4": "FO4", 19 | "Skyrim SE": "SSE" 20 | }; 21 | 22 | const isNarrow = window.innerWidth < 900; 23 | 24 | const headerTitle = document.getElementById('headerTitle'); 25 | if (headerTitle) { 26 | const fullTitle = headerTitle.getAttribute('data-full-title') || headerTitle.textContent; 27 | const shortTitle = abbreviations[fullTitle] || fullTitle.split(' ').map(word => word[0]).join(''); 28 | 29 | if (isNarrow) { 30 | if (headerTitle.textContent !== shortTitle) { 31 | headerTitle.textContent = shortTitle; 32 | if (!headerTitle.hasAttribute('data-full-title')) { 33 | headerTitle.setAttribute('data-full-title', fullTitle); 34 | } 35 | } 36 | } else if (headerTitle.textContent !== fullTitle) { 37 | headerTitle.textContent = fullTitle; 38 | } 39 | } 40 | 41 | const headerLinks = document.getElementById('headerLinks'); 42 | if (headerLinks) { 43 | headerLinks.querySelectorAll('a').forEach(link => { 44 | const fullText = link.getAttribute('data-full-text') || link.textContent; 45 | 46 | if (!link.hasAttribute('data-full-text')) { 47 | link.setAttribute('data-full-text', fullText); 48 | } 49 | 50 | const abbr = abbreviations[fullText] || fullText; 51 | link.textContent = isNarrow ? abbr : fullText; 52 | }); 53 | } 54 | } -------------------------------------------------------------------------------- /mo2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Mod Organizer 2 | The Best of Times 11 | 12 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |
62 | 63 |
64 |
65 |
66 | 67 |
68 |
69 | 70 | The Best of Times 71 |
72 | 77 |
78 | 152 | 153 | 163 | 164 |
165 | 166 | 167 |

Mod Organizer 2

168 | 169 |
170 |

171 |

What is Mod Organizer 2?

172 | Mod Organizer 2 (MO2) is an open source game mod manager, mainly used for Bethesda games. Its main features are: 173 |
    174 |
  • 175 | Virtual Filesystem (USVFS): MO2 does not install mods directly into the game's folder, but rather creates a virtual filesystem that the game reads from. This allows for: 176 |
      177 |
    • Safe mod installation and uninstallation,
    • 178 |
    • Being able to modify mod install order at any point,
    • 179 |
    • Having multiple profiles with different mod setups,
    • 180 |
    • Keeping original game files clean.
    • 181 |
    182 | The downsides to USVFS are: 183 |
      184 |
    • Mods installed through MO2 are "visible" only to programs launched using MO2,
    • 185 |
    • Some programs may not work properly with MO2's virtual filesystem,
    • 186 |
    • USVFS can cause performance overhead if you have tons of loose (not-BSA/BA2) files,
    • 187 |
    • USVFS works by "hooking" into the game (similarly to mods such as NVSE plugins, ReShade, etc.). This method can be considered as unsafe by some antivirus software due to its memory-invasive nature.
    • 188 |
    189 |
  • 190 |
  • 191 | Profile System: MO2 allows you to create multiple profiles with different mod setups, saves, and settings. 192 |
  • 193 |
  • 194 | Two pane interface: MO2 is split into two sides, the left side is the modlist and the right side is the plugin list. This allows for easy conflict resolution and mod management. 195 |
  • 196 |
  • 197 | Portability: Thanks to the use of USVFS, MO2 has a "portable" mode that allows you to move the entire MO2 folder to another location with minimal setup. 198 |
  • 199 |
  • 200 | Modding Community Integration: MO2 has built-in support for Nexus Mods, allowing you to download mods directly from the Nexus. 201 |
    202 | It also has a plugin system that allows for creation of custom plugins to extend its functionality. 203 | 204 |
    205 |

    206 | Mod Organizer 2 has NO support for Nexus' Collections feature, so you will have to download mods one by one. 207 |
    208 | This is not a big issue, as the guide will provide direct links to the mods you need, and most collections are low quality and not curated. 209 |


    210 | The closest alternative to Collections is Wabbajack, which is a community-made modlist installer that can install entire modlists with a single click. Due to its higher bar of entry for modlist creators, Wabbajack lists tend to be of higher quality compared to Collections. 211 |

    212 |
    213 | 214 |
  • 215 |
216 |

217 |
218 | 219 |
220 |

221 |

Why Mod Organizer 2?

222 | Mod Organizer 2 has been chosen for our guides due to its ease of use and its ability to keep the game's folder clean. This is important because it allows for easy conflict resolution and mod management, and makes correcting mistakes trivial - installed mods in the wrong order? Just drag them into the correct position! 223 |
224 |
225 | Compared to Vortex, MO2 doesn't hide the most important parts of modding from the user, making it easier to understand what is happening and why, albeit at the cost of potentially looking scary at first. 226 |
227 |
228 | That said, we are well aware that MO2 is not perfect, and it has its own set of issues and limitations, but it is the best tool for the job. 229 |

230 |
231 |
232 | 233 | 234 |

Installation

235 | 236 |
237 |

238 |

Installing Mod Organizer 2

239 |
    240 |
  1. Download Mod Organizer 2 from here.
  2. 241 |
  3. Once the download has finished, run the installer.
  4. 242 |
  5. Accept the license, click Next.
  6. 243 |
  7. 244 | When asked about the install location, change MO2 to The Best of Times and click Next. 245 |
    246 |
    247 | Change folder name to The Best of Times 248 |
    249 |
    250 | 251 |
    252 |

    253 | If you wish to install Mod Organizer 2 in a different location, you can do so by clicking the Browse button and selecting a different folder. 254 |
    255 |
    256 | The folder MUST be outside of the default Windows folders (such as Program Files x86) and outside of the game's Root folder. 257 |
    258 |
    259 | It's discouraged to store MO2 on Desktop or Documents if you use OneDrive or similar cloud providers, due to potential issues and degraded performance. 260 |

    261 |
    262 | 263 |
  8. 264 |
  9. On the install components page, use defaults.
  10. 265 |
  11. 266 | When asked about the Start Menu folder, change Mod Organizer to The Best of Times and click Next. 267 |
    268 |
    269 | Change the name to The Best of Times 270 |
    271 |
    272 |
  12. 273 |
  13. Don't create a Desktop shortcut - we will create our own later.
  14. 274 |
  15. On the final page, click Install.
  16. 275 |
  17. Once the installation is complete, ensure that Launch Mod Organizer is ticked and click Finish.
  18. 276 |
277 | 278 |
279 |

280 | MO2 refuses to open? Try these steps in the FAQ. 281 |

282 |
283 | 284 |

285 |
286 |
287 | 288 | 289 |

Setup

290 | 291 |
292 |

293 |

Configuring Mod Organizer 2

294 |
    295 |
  1. On the instance creation page, select Create a portable instance, click Next.
  2. 296 |
    297 | Select Portable Instance option 298 |
    299 |
    300 |
  3. Select Tale of Two Wastelands and click Next.
  4. 301 |
  5. Select the store where you bought the game, click Next.
  6. 302 |
  7. When asked about profile settings, enable all options and click Next.
  8. 303 |
  9. Keep the default location file path.
  10. 304 |
  11. Click Connect to Nexus.
  12. 305 |
306 | 307 |
308 |

309 | If you have MO2 installed on an SSD or a HDD with little space, you can check the Show advanced options box and change the Downloads file path to a different drive with more space. 310 |
311 | This will not affect the game's performance, the downloaded files can be deleted after the mods have been installed. 312 |

313 |
314 | 315 |
    316 |
  1. On the last page, select Finish.
  2. 317 |
  3. If you see a pop-up called Show tutorial?, select No.
  4. 318 |
  5. If you see a pop-up called Register?, select Yes.
  6. 319 |
  7. If you see a pop-up called INI file is read-only, select Remember my choice from the drop-down at the bottom then click Clear the read-only flag.
  8. 320 |
  9. If you see a pop-up called FalloutNV_lang.esp was found, select Yes.
  10. 321 |
322 |

323 |
324 | 325 |
326 |

327 |

Configuring Settings

328 |
    329 |
  1. Click the X in the bottom right of MO2 to close the log window.
  2. 330 |
  3. Click the MO2 settings button at the top of MO2 to open the settings.
  4. 331 |
  5. If you wish, you can select a different theme.
  6. 332 |
  7. In the Nexus tab, select Connect to Nexus.
  8. 333 |
    334 | Connect to Nexus 335 |
    336 |
    337 |
338 | 339 |
340 |

341 | This option will not show up if you have already connected your Nexus account on a different MO2 instance. 342 |

343 |
344 | 345 |
    346 |
  1. MO2 will open your browser and prompt you to authorize the connection.
  2. 347 |
  3. Once you authorize it, you can close your browser and of the MO2 settings.
  4. 348 |
  5. Allow MO2 to restart.
  6. 349 |
350 |

351 |
352 | 353 |
354 |

355 |

Game Settings

356 |
    357 |
  1. Open the game launcher using the Fallout Launcher option in MO2.
  2. 358 |
    359 | Run the launcher through MO2 360 |
    361 |
    362 |
  3. 363 | Inside the launcher, click Options and do the following: 364 |
      365 |
    1. 366 | Select the Ultra Preset. 367 | 368 |
      369 |

      370 | If you have a very weak PC, you can select the Medium Preset instead. 371 |

      372 |
      373 | 374 |
    2. 375 |
    3. 376 | Set Resolution to your monitor's native resolution. 377 | 378 |
      379 |

      380 | If you can't find the right resolution in the launcher's list, do the following: 381 |

        382 |
      1. Close the launcher.
      2. 383 |
      3. Click the Tools drop-down button at the top of MO2 and select INI Editor.
      4. 384 |
      5. Select the FalloutPrefs.ini tab.
      6. 385 |
      7. Change the following settings in the Display section: 386 |
        387 | iSize W = your screen width 388 |
        389 | iSize H = your screen height 390 |
      8. 391 |
      392 |

      393 |
      394 |
    4. 395 |
    396 |
  4. Close the launcher.
  5. 397 | 398 |
399 |

400 |
401 |
402 | 403 | 404 |

Mod Installation Instructions

405 | 406 |
407 |

408 |

How to use Nexus and MO2?

409 | When the guide says to install a mod, it will be formatted as Main File - Example 1.5, this is referring to the mod's category on Nexus and file name. 410 | 411 |
412 |

413 | IMPORTANT: 414 |
415 | Unless otherwise specified, always use Mod Manager Download. 416 |

417 |
418 | 419 |
420 | Download example 421 |
422 |
423 |
424 |
425 | Standard procedure through the manager: 426 |
    427 |
  1. Download the indicated file(s).
  2. 428 |
  3. Open the Downloads tab in MO2 (below the executable selector on the right).
  4. 429 |
  5. Double-click on the mod to install it.
  6. 430 |
  7. Enable the mod on the left pane by ticking its checkbox.
  8. 431 |
432 |
433 | If downloading through the manager is not an option, do the following: 434 |
    435 |
  1. Click the Manual Download button (or whatever the download button is for the respective site).
  2. 436 |
  3. Once the download has finished, click the MO2 archive button button at the top of MO2.
  4. 437 |
  5. From the new window, navigate to where the file was downloaded to and double-click it.
  6. 438 |
  7. Finish the install as you would with a Mod Manager Download mod.
  8. 439 |
440 |
441 | When installing a mod, MO2 might prompt you with multiple choices: 442 |
    443 |
  • Rename appears when you are trying to install a file with the same name as an existing one. If you are installing, for example, a secondary file necessary for the mod to work, then rename it accordingly with the name drop-down list or by typing the name manually.
  • 444 |
  • If you are updating from an old version of a mod, you should select Replace, this will automatically delete all the files from the old version of the mod and replace them with the ones from the new version.
  • 445 |
  • Merge should only be used when you are sure the mod will not be updated and in situations where a hotfix is uploaded as separate file. Avoid it if you can, for maximum modularity.
  • 446 |
447 |

448 |
449 |
450 | 451 | 462 |
463 | 464 | 468 |
469 | 470 | 471 | 472 | 478 | 479 | 480 | -------------------------------------------------------------------------------- /setup.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Initial Setup | The Best of Times 11 | 12 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |
62 | 63 |
64 |
65 |
66 | 67 |
68 |
69 | 70 | The Best of Times 71 |
72 | 77 |
78 | 79 | 153 | 154 | 164 | 165 |
166 | 167 | 168 |

Preparation

169 | 170 |
171 |

172 |

Installing VC++ Redistributables

173 | Most engine mods and tools require latest Visual C++ Redistributables to be installed. We will use an all-in-one package that will install all possible versions. 174 |
175 |

176 | Failure to have latest versions installed will result in an immediate crash when launching the game or modding tools. 177 |
178 |
179 | Please install the redistributables even if you have them installed already, as they are often outdated. 180 |

181 |
182 |
    183 |
  1. Download VC++ AIO from TechPowerUp.
  2. 184 |
  3. Extract the archive and run the included install_all.bat as an administrator.
  4. 185 |
  5. Restart your PC.
  6. 186 |
187 |

188 |
189 | 190 |
191 |

192 |

Enabling File Extensions

193 | Before we start, it is important to enable file extensions in Windows. 194 |

195 |

196 | By default, File Explorer will not show file extensions (such as .exe, .dll, or .esp). These extensions are very important when going through the guide, so it is highly recommended to enable visible file extensions: 197 |

    198 |
  1. Open File Explorer.
  2. 199 |
  3. Select the View tab at the top.
  4. 200 |
  5. Enable File name extensions in the Show section.
  6. 201 |
    202 | Show file extensions 203 |
    204 |
    205 |
206 |

207 |
208 | 209 |
210 |

211 |

Disabling Base Address Randomization

212 | Base Address Randomization is a security feature in Windows that allows program's starting address to be randomized, which is not the expected behavior in 32-bit programs like Fallout: New Vegas. This leads to crashes in a modded game. 213 |
214 |
215 | While the feature should be disabled by default, it is still recommended to sanity check if it is disabled: 216 |
    217 |
  1. Open Windows Security from your Start Menu.
  2. 218 |
  3. Click on App & browser control in the left sidebar.
  4. 219 |
  5. Click on Exploit protection settings under Exploit protection.
  6. 220 |
  7. Ensure Force randomization for images (Mandatory ASLR) is set to Use default (Off).
  8. 221 | 222 |
    223 |

    224 | If you don't want to change the global setting, you can add an exception just for the game: 225 |

      226 |
    1. Click on Program settings.
    2. 227 |
    3. Click on Add program to customize.
    4. 228 |
    5. Select Add program by name.
    6. 229 |
    7. Enter FalloutNV.exe in the box and save.
    8. 230 |
    9. Find the newly created entry on the list and click Edit.
    10. 231 |
    11. Find Force randomization for images (Mandatory ASLR).
    12. 232 |
    13. Check Override system settings, and set the toggle to Off.
    14. 233 |
    234 |

    235 |
    236 | 237 |
238 |

239 |
240 |
241 | 242 | 243 |

Installation

244 | 245 |
246 |

247 |

Choosing a Location

248 | A clean installation is not only required to get rid of any potential leftover mod files, but also to make sure the game is installed in a safe location. Here is what you need to know when choosing where to install your game: 249 |
250 |
    251 |
  • 252 | Avoid any default Windows folders: This includes but is not limited to C:\Program Files, C:\Program Files x86, your Desktop and your Documents folders. 253 |
    254 | This is because users lack write access to Program Files, while Desktop and Documents are often managed by OneDrive. This can cause many issues with the game and any modding tools. 255 |
    256 |
    257 | An example of a safe location is C:\Games 258 |
  • 259 |
  • 260 | Install on an SSD if possible: Having the game on an SSD will drastically improve loading times and decrease stuttering. 261 |
  • 262 |
  • Fallout 3 Installation: Fallout 3 only needs to be installed for running the TTW installer, and can be uninstalled after the installer completes. It still needs to be installed outside of any default Windows folder as outlined above.
  • 263 |
264 |

265 |
266 | 267 |
268 |

269 |

Uninstalling the Games

270 | 271 |
272 |

273 | If you never installed the games before, go directly to the next section. 274 |

275 |
276 | 277 | As the games are available on Steam, GOG, and Epic Games, there are separate instructions for each version. You obviously only need to follow the directions for the versions you have. 278 |
279 |

280 |

Steam

281 | UI element - Chevron 282 |

283 |
284 | 285 |
286 | 287 |
288 |

289 | If you already uninstalled the games, make sure to follow step 4 and 5 to ensure there are no leftovers. 290 |

291 |
292 | 293 |

Fallout: New Vegas

294 |
    295 |
  1. Open Steam and go to your Library.
  2. 296 |
  3. Find Fallout: New Vegas in the list.
  4. 297 |
  5. Right-click on it and select Manage -> Uninstall.
  6. 298 |
  7. Navigate to Steam\steamapps\common and, if present, delete the Fallout New Vegas folder.
  8. 299 |
  9. Navigate to Documents\My Games\FalloutNV and delete all INI files inside it.
  10. 300 |
301 |

Fallout 3

302 |
    303 |
  1. Open Steam and go to your Library.
  2. 304 |
  3. Find Fallout 3 in the list.
  4. 305 |
  5. Right-click on it and select Manage -> Uninstall.
  6. 306 |
  7. Navigate to Steam\steamapps\common and, if present, delete the Fallout 3 folder.
  8. 307 |
308 |
309 | 310 |
311 |

312 |

GOG

313 | UI element - Chevron 314 |

315 |
316 | 317 |
318 |

Fallout: New Vegas

319 |
    320 |
  1. Open GOG and go to your Library.
  2. 321 |
  3. Find Fallout: New Vegas in the list.
  4. 322 |
  5. Right-click on it and select Manage Installation -> Uninstall.
  6. 323 |
      324 |
    • If you used an offline installer then run the unins000.exe file in the game's Root folder.
    • 325 |
    326 |
  7. Navigate to Documents\My Games\FalloutNV and delete all INI files inside it.
  8. 327 |
328 |

Fallout 3

329 |
    330 |
  1. Open GOG and go to your Library.
  2. 331 |
  3. Find Fallout 3 in the list.
  4. 332 |
  5. Right-click on it and select Manage Installation -> Uninstall.
  6. 333 |
      334 |
    • If you used an offline installer then run the unins000.exe file in the game's Root folder.
    • 335 |
    336 |
337 |
338 | 339 |
340 |

341 |

Epic Games

342 | UI element - Chevron 343 |

344 |
345 | 346 |
347 | 348 |
349 |

350 | If you already uninstalled the games, make sure to follow step 4 to ensure there are no leftovers. 351 |

352 |
353 | 354 |

Fallout: New Vegas

355 |
    356 |
  1. Open the Epic Games Launcher and go to your Library.
  2. 357 |
  3. Find Fallout: New Vegas in the list.
  4. 358 |
  5. Click on 3 dots and select uninstall from the menu.
  6. 359 |
  7. Navigate to Documents\My Games\FalloutNV_Epic and delete all INI files inside it.
  8. 360 |
361 |

Fallout 3

362 |
    363 |
  1. Open the Epic Games Launcher and go to your Library.
  2. 364 |
  3. Find Fallout 3 in the list.
  4. 365 |
  5. Click on 3 dots and select uninstall from the menu.
  6. 366 |
  7. Navigate to Documents\My Games and delete the Fallout3 folder.
  8. 367 |
368 |
369 |

370 |
371 | 372 |
373 |

374 |

Installing the Games

375 | As the games are available on Steam, GOG, and Epic Games, there are separate instructions for each version. You obviously only need to follow the directions for the versions you have. 376 |
377 |

378 |

Steam

379 | UI element - Chevron 380 |

381 |
382 | 383 |
384 |

Creating a new Steam library

385 | 386 |
387 |

388 | It is strongly recommended to install the games outside of any default Windows folders (such as Program Files (x86)), as the the strict Windows file protections of these folders can break certain mods/tools. Instead, we will use a tool called Steam Library Setup Tool to create a new Steam library folder outside of any default Windows folders. 389 |
390 |
391 | If you already have Steam installed outside of any default windows folders then go directly to step 1 of the next section and install the games to your custom Steam library. 392 |

393 |
394 | 395 |
    396 |
  1. Completely exit out of Steam using Task Manager or System Tray.
  2. 397 |
  3. Download the steam_library_setup_tool-3.2.exe file from here.
  4. 398 |
  5. Once downloaded, run the file and add a new entry by clicking Add Row.
  6. 399 |
  7. Type the chosen path under Path, e.g. C:\Games\Steam
  8. 400 |
  9. Click Accept then Yes if prompted to create a new folder.
  10. 401 |
  11. The tool will ask to exit, select OK.
  12. 402 |
    403 | Steam library setup tool 404 |
    405 |
    406 |
407 |

Fallout: New Vegas

408 |
    409 |
  1. Open Steam and go to your Library.
  2. 410 |
  3. Find Fallout: New Vegas in the list and select Install.
  4. 411 |
  5. Under Install to:, select the library folder created with the tool, which is the second C:\ entry if you are installing on the main drive.
  6. 412 |
    413 | Example Steam install locations 414 |
    415 |
    416 |
  7. Select Next then wait for the install to finish.
  8. 417 |
418 | 419 |
420 |

421 | If you still do not see your new library, restart your PC. 422 |

423 |
424 | 425 |

Fallout 3

426 |
    427 |
  1. Open Steam and go to your Library.
  2. 428 |
  3. Find Fallout 3 in the list and select Install.
  4. 429 |
  5. Under Install to:, select the library folder created with the tool, which is the second C:\ entry if you are installing on the main drive.
  6. 430 |
    431 | Example Steam install locations 432 |
    433 |
    434 |
  7. Select Next then wait for the install to finish.
  8. 435 |
436 |
437 | 438 |
439 |
440 |

441 |

GOG

442 |

443 |
444 | UI element - Chevron 445 |
446 | 447 |
448 |

Fallout: New Vegas

449 |
    450 |
  1. Open GOG and go to your Library.
  2. 451 |
  3. Find Fallout: New Vegas in the list and select Install.
  4. 452 |
  5. Set the Install to location to a location of your choice.
  6. 453 |
      454 |
    • It is required to install the game outside of any default Windows folders (e.g., Program Files x86).
    • 455 |
    456 |
457 |

Fallout 3

458 |
    459 |
  1. Open GOG and go to your Library.
  2. 460 |
  3. Find Fallout 3 in the list and select Install.
  4. 461 |
  5. Set the Install to location to a location of your choice.
  6. 462 |
      463 |
    • It is required to install the game outside of any default Windows folders (e.g., Program Files x86).
    • 464 |
    465 |
466 |
467 | 468 |
469 |

470 |

Epic Games

471 | UI element - Chevron 472 |

473 |
474 | 475 |
476 |

Fallout: New Vegas

477 |
    478 |
  1. Open the Epic Games Launcher and go to your Library.
  2. 479 |
  3. Find Fallout: New Vegas in the list.
  4. 480 |
  5. Click on the game to install it.
  6. 481 |
      482 |
    • It is required to install the game outside of any default Windows folders (e.g., Program Files x86).
    • 483 |
    484 |
485 |

Fallout 3

486 |
    487 |
  1. Open the Epic Games Launcher and go to your Library.
  2. 488 |
  3. Find Fallout 3 in the list.
  4. 489 |
  5. Click on the game to install it.
  6. 490 |
      491 |
    • It is required to install the game outside of any default Windows folders (e.g., Program Files x86).
    • 492 |
    493 |
494 |
495 |

496 |
497 |
498 | 499 | 500 |

Post-Installation

501 | 502 |
503 |

504 |

Key Terminology

505 | Now that the game is installed, there are two folders from it that will be referred to in the guide often: 506 |
    507 |
  • Root folder: Where the game is installed.
  • 508 |
      509 |
    • For Steam: 510 |
      511 |

      Steam\steamapps\common\Fallout New Vegas

      512 |
      513 |
    • 514 |
    • For GOG: 515 |
      516 |

      GOG Galaxy\Games\Fallout New Vegas

      517 |
      (unless you manually changed the installation path). 518 |
    • 519 |
    • For Epic Games: 520 |
      521 |

      Epic Games\FalloutNewVegas\Fallout New Vegas English

      522 |
      (unless you manually changed the installation path). 523 |
    • 524 |
    525 |
526 | 527 |
    528 |
  • Data folder: Where all of the game's assets are located.
  • 529 |
      530 |
    • For Steam: 531 |
      532 |

      Steam\steamapps\common\Fallout New Vegas\Data

      533 |
      534 |
    • 535 |
    • For GOG: 536 |
      537 |

      GOG Galaxy\Games\Fallout New Vegas\Data

      538 |
      539 |
    • 540 |
    • For Epic Games: 541 |
      542 |

      Epic Games\FalloutNewVegas\Fallout New Vegas English\Data

      543 |
      544 |
    • 545 |
    546 |
547 |

548 |
549 |
550 |

551 |

Generating Fresh INI Files

552 |

Fallout: New Vegas

553 |
    554 |
  1. Run the game from Steam/GOG Galaxy, or through FalloutNVLauncher.exe in the game files if you are using an offline copy.
  2. 555 |
  3. Click OK to both pop-ups that say Detecting Video Hardware.
  4. 556 |
      557 |
    • If there aren't any pop-ups, navigate to Documents\My Games\FalloutNV and delete all INI files, then retry.
    • 558 |
    559 |
  5. Click OK then Exit.
  6. 560 |
561 |

Fallout 3

562 |
    563 |
  1. Run the game from Steam/GOG Galaxy, or through FalloutLauncher.exe in the game files if you are using an offline copy.
  2. 564 |
  3. Click OK to both pop-ups that say Detecting Video Hardware.
  4. 565 |
      566 |
    • If there aren't any pop-ups, navigate to Documents\My Games\Fallout3 and delete all INI files, then retry.
    • 567 |
    568 |
  5. Exit the launcher.
  6. 569 |
570 |

571 |
572 |
573 | 574 | 585 |
586 | 587 | 591 |
592 | 593 | 594 | 595 | 601 | 602 | 603 | 604 | -------------------------------------------------------------------------------- /sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | https://thebestoftimes.moddinglinked.com/essentials.html 5 | 0.90 6 | 2025-08-08 7 | 8 | 9 | https://thebestoftimes.moddinglinked.com/intro.html 10 | 0.90 11 | 2025-05-06 12 | 13 | 14 | https://thebestoftimes.moddinglinked.com/ttw.html 15 | 0.80 16 | 2025-08-07 17 | 18 | 19 | https://thebestoftimes.moddinglinked.com/mo2.html 20 | 0.70 21 | 2025-05-06 22 | 23 | 24 | https://thebestoftimes.moddinglinked.com/fo3.html 25 | 0.50 26 | 2025-08-08 27 | 28 | 29 | https://thebestoftimes.moddinglinked.com/ttwintro.html 30 | 0.50 31 | 2024-06-17 32 | 33 | 34 | https://thebestoftimes.moddinglinked.com/setup.html 35 | 0.50 36 | 2025-05-06 37 | 38 | -------------------------------------------------------------------------------- /ttw.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | TTW | The Best of Times 11 | 12 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
61 |
62 |
63 | 64 |
65 |
66 |
67 | 68 |
69 |
70 | 71 | The Best of Times 72 |
73 | 78 |
79 | 153 | 154 | 164 | 165 |
166 | 167 | 168 |

Installation

169 | 170 |
171 |

172 |

Installing Tale of Two Wastelands

173 |
    174 |
  1. Download the Tale of Two Wastelands Installer and extract the contents of the archive anywhere outside of the default Windows folders.
  2. 175 |
  3. Open Mod Organizer 2, select the MO2 Folders button at the top and select Open Mods folder.
  4. 176 |
  5. Here, create a folder named Tale of Two Wastelands and then copy its path.
  6. 177 |
  7. Close MO2.
  8. 178 |
  9. Back in the TTW Installer folder, right-click the TTW Install.exe and select Run As Administrator.
  10. 179 |
  11. In the installer, verify that the automatically set file paths for both your Fallout 3 and Fallout: New Vegas installations are correct.
  12. 180 |
  13. Paste the path you copied in step 3 in the last text field.
  14. 181 |
    182 | TTW installation paths 183 |
    184 |
    185 |
  15. Ensure your paths look similar to the example above, then Install.
  16. 186 |
187 | 188 |
189 |

190 | The installation might take a long time as the audio encoding section is very CPU-intensive. It takes about 40 minutes on a Ryzen 5 5600x but could take several hours or even longer on a slower CPU. 191 |
192 |
193 | It is recommended to close any other CPU-intensive application during this time to avoid slowdowns. 194 |
195 |
196 | If you run into any errors during the installation, check the solutions listed in the FAQ. 197 |

198 |
199 | 200 |

201 |
202 | 203 |
204 |

205 |

Activating and Size Check

206 |
    207 |
  1. Open MO2.
  2. 208 |
  3. If you installed TTW correctly, you should see the Tale of Two Wastelands mod in the left pane of MO2.
  4. 209 |
      210 |
    • If you do not see anything or the mod name is greyed out, you did not install TTW to the correct folder. 211 | Find out where the files were installed to and move them to the folder you created in step 3 of the previous section. 212 |
      213 | The path should look like this: YOUR MO2 FOLDER\mods\Tale of Two Wastelands 214 |
    • 215 |
    216 |
  5. Click the checkbox next to it in the left pane and the right pane should fill with plugins.
  6. 217 |
  7. In MO2, right-click Tale of Two Wastelands and Open in Explorer.
  8. 218 |
  9. Right-click anywhere in the folder (do not select any file inside) and open its Properties.
  10. 219 |
  11. The folder's size should be 17GB, reinstall Tale of Two Wastelands if it isn't. This can be done by first clearing the contents of the current folder, then repeating the installation steps.
  12. 220 |
221 |

222 |
223 | 224 |
225 |

226 |

227 | The latest YUPTTW version, split from the main TTW installer to allow an easy update for existing installations. 228 |

Installation instructions

229 |
    230 |
  • 231 | Main Files - YUPTTW 13.4 232 |
      233 |
    • 234 | Click MO2 download, then install the mod in MO2 by double clicking it in the Downloads tab. 235 |
    • 236 |
    237 |
  • 238 |
239 |

240 |
241 | 242 |
243 |

244 |

245 | Fixes the issue where Mr. House reverts to his pre-battle dialogue when you insert the override chip at Hoover Dam. 246 |

Installation instructions

247 |
    248 |
  • 249 | Main Files - Mr House Final Battle Dialogue Hotfix 250 |
      251 |
    • 252 | Click MO2 download, then install the mod in MO2 by double clicking it in the Downloads tab. 253 |
    • 254 |
    255 |
  • 256 |
257 |

258 |
259 |
260 | 261 | 272 |
273 | 274 | 278 |
279 | 280 | 281 | 282 | 288 | 289 | 290 | 291 | --------------------------------------------------------------------------------