Web frontend for modmapper.com https://modmapper.com
Go to file
Tyler Hallada 513e95d697 Don't terminate & recreate workers after each task
After some testing, I'm fairly confident the issue I was seeing before isn't
happening now. After re-processing ~250 plugins a few times with the same
workers I was seeing significant slow-downs with large plugins. Also, if I was
listening to music in the browser it would start crackling and popping.

My hypothesis is that wee_alloc was causing a memory leak in the old version
which was causing browsers to freak out unless I recreated the workers on every
run. Though I'm not sure if that theory holds since I wasn't seeing out of
control memory usage in the dev tools. Perhaps wee_alloc just wasn't good at
managing memory after a certain number of allocate/deallocate cycles and was
putting a huge strain on the browser.

I'm hoping that reusing workers like this will also speed up processing and
possibly resolve some crashing that some users were seeing.
2022-09-26 23:04:48 -04:00
components Fix white cell outline after selection 2022-09-23 17:43:40 -04:00
data Map with heaptmap overlay and layer toggles 2022-01-17 17:46:34 -05:00
lib Don't terminate & recreate workers after each task 2022-09-26 23:04:48 -04:00
pages Try to fix logrocket 2022-08-29 22:51:12 -04:00
public Convert readme screenshot to jpg image 2022-04-28 23:05:47 -04:00
slices Finish support for multiple games 2022-09-03 15:41:44 -04:00
styles Finish support for multiple games 2022-09-03 15:41:44 -04:00
workers Render plugin data from static server 2022-03-12 14:00:40 -05:00
.babelrc Add logrocket integrations 2022-08-29 01:19:01 -04:00
.eslintrc.json Initial commit from Create Next App 2022-01-13 23:27:27 -05:00
.gitignore Add sentry for error tracking 2022-08-29 01:01:51 -04:00
.nvmrc Add .nvmrc file for cloudflare pages 2022-02-14 00:16:48 -05:00
filesystem.d.ts Refactor drag-n-drop to component with overlay 2022-03-10 00:35:04 -05:00
next-env.d.ts Initial commit from Create Next App 2022-01-13 23:27:27 -05:00
next-sitemap.config.js Finish support for multiple games 2022-09-03 15:41:44 -04:00
next.config.js Add sentry for error tracking 2022-08-29 01:01:51 -04:00
package-lock.json Upgrade skyrim-cell-dump-wasm 2022-09-26 22:57:20 -04:00
package.json Upgrade skyrim-cell-dump-wasm 2022-09-26 22:57:20 -04:00
README.md Add Mapbox token instructions to README 2022-08-20 01:49:16 -04:00
sentry.client.config.js Prevent TypeError in sentry beforeSend 2022-09-12 21:19:04 -04:00
sentry.properties Fixup sentry config 2022-08-29 22:18:57 -04:00
sentry.server.config.js Convert env vars to NEXT_PUBLIC_* vars 2022-08-29 22:37:13 -04:00
tsconfig.json Implement WorkerPool, use webkitdirectory input 2022-03-04 23:49:14 -05:00
webkitdirectory.d.ts Implement WorkerPool, use webkitdirectory input 2022-03-04 23:49:14 -05:00
worker.d.ts Default sidebar and WIP PluginLoader 2022-02-27 01:17:52 -05:00

modmapper-web

This is the frontend code for the modmapper project. Modmapper is an interactive map of Skyrim mods.

View the site live at modmapper.com.

Screenshot of the website

This project renders every cell edit from all Skyrim SE mods on nexusmods.com as a heatmap on top of a map of Skyrim.

You can click on a cell to see all of the mods that edit that cell sorted by popularity. Clicking on a mod in that list will show you all of the cells that the mod edits (across all files and versions of the mod). You can also search for a mod by name or a cell by x and y coordinates in the search bar at the top.

You can also upload the plugins from your Skyrim Data folder and the load order from your plugins.txt to view all of the edited cells in your current load order. Red cells indicate multiple mods editing the same cell. Clicking on a plugin in your load order will show the cells that the plugin edits and the mods and files it belongs to on nexusmods.com (if it can be found on there).

If you like the Modmapper project and found it useful, please consider donating me a dollar or two on my NexusMods profile if you can spare it to cover the hosting costs of running the site.

  • modmapper: program to automate downloading, extracting, and parsing plugins
  • skyrim-cell-dump: library for parsing skyrim plugin files and extracting CELL data
  • skyrim-cell-dump-wasm: exports skyrim-cell-dump's functions for WebAssembly

Getting Started

This is a Next.js project bootstrapped with create-next-app.

First, install the dependencies:

npm install

Then create a file named .env at the root of the project with the contents:

NEXT_PUBLIC_MAPBOX_TOKEN=tokengoeshere

You can get a Mapbox token by creating a mapbox account and generating a token on the access token page.

Now, run the dev server:

npm run dev

Open http://localhost:3000 with your browser to see the site.

This site is deployed as a static website (with next build && next export), so be aware that SSR and other Node.js features are not supported.