-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNexus.html
296 lines (267 loc) · 12.9 KB
/
Nexus.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="Styles/Raidcore.css">
<!-- GENERIC -->
<title>Raidcore - Nexus Addon API & Framework</title>
<meta content="Raidcore provides the ultimate addon solution for Guild Wars 2. With much more to come!" name="description">
<meta content="#0F79AA" data-react-helmet="true" name="theme-color">
<!-- OPEN GRAPH -->
<meta content="Raidcore | Addons, Guides and more for Guild Wars 2" property="og:site_name">
<meta content="Raidcore | Enhance your Guild Wars 2 experience" property="og:title">
<meta content="Raidcore provides the ultimate addon solution for Guild Wars 2. With much more to come!" property="og:description">
<meta content="https://raidcore.gg" property="og:url">
<meta content="https://raidcore.gg/Resources/Images/NEXUS_-_Ad_Banner_BW.jpg" property="og:image">
<!-- FACEBOOK -->
<meta content="Raidcore | Enhance your Guild Wars 2 experience" name="twitter:title">
<meta content="Raidcore provides the ultimate addon solution for Guild Wars 2. With much more to come!" name="twitter:description">
<meta content="summary_large_image" name="twitter:card">
<meta content="raidcore.gg" property="twitter:domain">
<meta content="https://raidcore.gg" property="twitter:url">
<meta content="https://raidcore.gg/Resources/Images/NEXUS_-_Ad_Banner_BW.jpg" name="twitter:image">
<link rel="shortcut icon" href="favicon.png" type="image/png">
<script src="https://kit.fontawesome.com/f09bb4c994.js" crossorigin="anonymous"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Titillium+Web:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700&display=swap"
rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Electrolize&display=swap" rel="stylesheet">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-H7W4X27VD1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag("js", new Date());
gtag("config", "G-H7W4X27VD1", { "anonymize_ip": true });
</script>
<script src="Scripts/collapsibles.js"></script>
</head>
<body>
<header>
<nav>
<a class="navbar-brand nav-link" href="/">Raidcore</a>
</nav>
</header>
<main>
<div class="content-page">
<center>
<p>
<a href="https://discord.gg/Mvk7W7gjE4">
<img class="memelink" src="https://discordapp.com/api/guilds/410828272679518241/widget.png?style=banner2" alt="">
</a>
<a href="https://www.patreon.com/bePatron?u=46163080" target="_blank">
<img class="memelink" src="Resources/Images/Patreon.png" alt="">
</a>
</p>
</center>
<section id="faq">
<h1 style="text-align: center;">Frequently Asked Questions</h1>
<p style="text-align: center;">
<i>Anything on this page is subject to change, as decisions are being re-evaluated with the community.</i>
</p>
<div class="container">
<h1>What is Raidcore Nexus?</h1>
<p>
Nexus is a next-gen Addon Manager & Loader for Guild Wars 2. It provides an API and Framework, which keeps your plugins always up-to-date.
No fidgeting with DLL files, crashing games after updates or inconsistent behaviour across addons.
</p>
<p>
<b>A single installation to manage all your extensions. This is as close to an official Addon API as it gets.</b>
</p>
<section>
<b>You can download the installer <a href="https://github.com/RaidcoreGG/NexusInstaller/releases/latest/download/NexusInstaller.exe">here</a>.</b>
<br />
More advanced users can download the .DLL directly <a href="https://api.raidcore.gg/d3d11.dll">here</a>.
</section>
<p>
Features:
<p>
<ul>
<li><b>Loading & unloading</b> addons <b>at runtime, without restarting.</b></li>
<li><b>Automatic updates.</b></li>
<li><b>Automatically disable volatile addons on game update.</b></li>
<li><b>Addon Library</b> for quick discovery & installation of new addons.</li>
<li><b>Globally handled keybinds.</b> No inconsistent behaviour from addon to addon.</li>
<li><b>Multiboxing compatible.</b></li>
<li><b>100% Terms of Service compliant.</b> Still not sure? Read more below.</li>
</ul>
<p>
If you are a developer and you wanna make a Nexus addon <a href="https://github.com/RaidcoreGG/api-cdi/tree/main/AddonHost">read about the API here</a>.
</p>
</div>
<div class="container">
<h1 onclick="toggleCollapsible(this, 'installation');" class="collapsible collapsed">Installation & Chainloading</h1>
<section id="installation" style="display: none;">
<h1>Installation</h1>
<ol>
<li>Download the d3d11.dll from the link above.</li>
<li>Place it next to Gw2-64.exe.</li>
<li>(Optional) Unblock the file, by right-clicking -> Properties. Near the bottom there should be a Checkbox you will have to tick.</li>
</ol>
<p>
When starting the game you should have either the menu pop up, or you should be able to see a new icon in the top left, where the shortcuts are. The default keybind to open the menu is CTRL+O.
</p>
<h1>Compatibility</h1>
<h1>ArcDPS, AddonLoader or any other D3D11 Wrapper</h1>
<p>
You can either chainload Nexus, or Nexus can chainload another wrapper. By default the D3DCreate call will be forwarded to d3d11_chainload.dll in the same directory, if it exists.
</p>
<h1>Reshade</h1>
<p>
If you want to run Reshade, rename it to dxgi.dll and place accordingly, since Guild Wars 2 switched to CEF, it could be any of the three:
</p>
<ul>
<li><code><Guild Wars 2>/dxgi.dll</code></li>
<li><code><Guild Wars 2>/bin64/dxgi.dll</code></li>
<li><code><Guild Wars 2>/bin64/cef/dxgi.dll</code></li>
</ul>
<h1>Transitioning from an ArcDPS installation</h1>
<ol>
<li>Move <code><Guild Wars 2>/d3d11.dll</code> into <code><Guild Wars 2>/addons</code>.</li>
<li>Move all ArcDPS plugins into <code><Guild Wars 2>/addons</code> as well. They might be in the main directory or in bin64.</li>
<li>Install Nexus as your new <code><Guild Wars 2>/d3d11.dll</code>.</li>
</ol>
<h1>Transitioning from an Addon Loader installation</h1>
<ol>
<li>Rename Addon Loader's <code>d3d11.dll</code> to <code>d3d11_chainload.dll</code></li>
<li>Install Nexus as your new <code><Guild Wars 2>/d3d11.dll</code>.</li>
<li>(Optional) Move ArcDPS and all its plugins into <code><Guild Wars 2>/addons</code>.</li>
</ol>
<h1>I don't know what my ArcDPS plugins are!</h1>
<p>
To find out which plugins are loaded into ArcDPS open the ArcDPS menu in-game and go to the "About" tab.
There all addons and their paths will be listed.
</p>
</section>
</div>
<div class="container">
<h1 onclick="toggleCollapsible(this, 'limited-test');" class="collapsible collapsed">About the Limited Test</h1>
<section id="limited-test" style="display: none;">
<p>
Currently the Raidcore Platform is not Live, so the integration with it is also limited.
</p>
<p>
Other currently disabled features, that will follow in updates:
</p>
<ul>
<li>Shared API/v2</li>
<li>Shared API/Combat</li>
<li>Shared API/WorldCompletion</li>
<li>Shared API/CharacterStats</li>
<li>Scripting API</li>
<li>Managed Settings</li>
<li>UI Rework</li>
</ul>
</section>
</div>
<div class="container">
<h1 onclick="toggleCollapsible(this, 'addons');" class="collapsible collapsed">How do I install new addons?</h1>
<section id="addons" style="display: none;">
<h1>Addons</h1>
<p>
Addons are loaded from <code><Guild Wars 2>/addons</code> and are expected to just have <code>GetAddonDef()</code> exported, more in the <a href="https://github.com/RaidcoreGG/api-cdi/tree/main/AddonHost/API" target="_blank">API Docs</a>.
</p>
<h1>Hot-Loading</h1>
<p>
Just drop your addon.dll into <code><Guild Wars 2>/addons</code> and they should show up in the addons window of Nexus.
If they don't show up you might have to click the refresh button.
</p>
</section>
</div>
<div class="container">
<h1 onclick="toggleCollapsible(this, 'what-it-means-for-developers');" class="collapsible collapsed">What does this mean for addon developers?</h1>
<section id="what-it-means-for-developers" style="display: none;">
<p>
Every time you wanna develop an addon you have to get the basics out of the way: handling keybinds, settings, updates, etc.
</p>
<p>
Nexus takes all that work from you, ensuring consistent behaviour among addons, while also making it easier for you to develop actual features.
</p>
<p>
Here's an overview what's included:
</p>
<ul>
<li><b>Hot-Loading</b></b></li>
<li><b>Automatic updates.</b></li>
<li><b>Event Publishing / Subscribing</b></li>
<li><b>Keybinds handled by Nexus.</b> <i>Unless you really want your own WndProc...</i></li>
<li><b>Resource Registry.</b> Making it easy to share data & functions between addons.</li>
<li><b>Texture Loader.</b> lifting all the heavy work for you. Load from URL, disk, resource or even the .DAT!</li>
<li>Easily access <b>Mumble, combat log, world & map completion progress & character stats.</b></li>
<li><b>Shared GW2 Web API & cache.</b></li>
</ul>
<p>
Obviously there is more to come. You can direct suggestions on <a href="https://discord.gg/Mvk7W7gjE4">discord</a> or the <a href="https://github.com/RaidcoreGG/api-cdi">api-cdi</a> repository.
</p>
</section>
</div>
<div class="container">
<h1 onclick="toggleCollapsible(this, 'porting');" class="collapsible collapsed">Why should I port to Nexus over AddonLoader or ArcDPS?</h1>
<section id="porting" style="display: none;">
<h1>Why not an ArcDPS extension?</h1>
<p>
If I want a simple compass addon, why do I have to install a DPS meter? Keeping it as user-friendly as possible is the primary goal.
</p>
<h1>Why not AddonLoader?</h1>
<p>
Addon Loader has some nice ideas, but ultimately it doesn't do much.
It loads addons (it's kind of in the name), but it doesn't provide anything that makes it easier to make new stuff or takes work off the developer.
It also is extremely difficult to set up causing constant problems.
It requires 3 DLLs just to function baseline, but then it also forces dependencies on addons that are self-contained to begin with.
Of course <i>Addon Manager</i> exists, but that is yet another program just to set it up correctly.
</p>
<ol>
<li>
<h1>A lot of the heavy lifting is taken from you and put into the loader.</h1>
<p>
This ensures consistent behaviour from addon to addon, but also makes it much faster to develop actual features, instead of having to write the same boilerplate each time.
These features include Keybinds, Event PubSub, AutoUpdates, Logging, Sharing Functions, Loading Textures, Getting the Mumble Context or using the GW2 API.
</p>
</li>
<li>
<h1>Faster iteration due to hot-loading.</h1>
<p>
Being able to just recompile after making a tiny change, without having to constantly restart the game makes it much faster to develop actual features.
</p>
</li>
<li>
<h1>One installation, not more.</h1>
<p>
All you have to do is place the d3d11.dll, once it's running. That's it.
You shouldn't have to fiddle with DLLs all the time.
</p>
</li>
</ol>
</section>
</div>
<div class="container">
<h1 onclick="toggleCollapsible(this, 'source');" class="collapsible collapsed">Source Code</h1>
<section id="source" style="display: none;">
<p>
As of June 21st, 2024 Nexus is open source!
</p>
<p>
You can find the source code under <a href="https://github.com/RaidcoreGG/Nexus" target="_blank">github.com/RaidcoreGG/Nexus</a>.
</p>
</section>
</div>
</div>
</main>
<footer>
<div id="footer-top"></div>
<div id="footer-bar">
<div id="footer-left">
<span>Copyright © 2023-2024 Raidcore</span>
</div>
<div id="footer-right">
<ul>
<li><a class="nav-link" href="Legal">Legal Documentation</a></li>
</ul>
</div>
</div>
</footer>
</body>
</html>