Address library of SKSE plug-in

by meh321·v1.0·Updated 2020-02-08

Includes header files and database to easily achieve SKSE DLL plug-in version independence.

Screenshots 1 screenshots

About this mod Machine translation

Includes header files and database to easily achieve SKSE DLL plug-in version independence.

describe

Notice! This is a great resource for DLL plug-in authors! All of this will be of no use to you unless you've been explicitly told you need it! Do not endorse or consider this mod.

For regular mod users: You can download a specific version of the offset database from the Files section. Choose the version that matches the version of the game you are using. The file should be in a path like this:

data/skse/plugins/db-*-*-*-*.bin

You don't need to read all the rest.

For SKSE DLL plugin authors:

This is a modder resource (header file). You can load a database that stores offsets so that your DLL plugin can be version independent without recompiling.

How to use

Fastest way:

Spoilers: Show

Now you want to know what the value of "123" is there. This is the ID of the address. Different versions of the database have addresses with the same ID, but it may point to different values. To get a list of all ID and value pairs for a specific version:

Spoilers: Show

Instead 1, 5, 62, 0 would put in the version you want to reverse and become familiar with. You must first have the corresponding database files in the /Data/SKSE/Plugins directory.

After calling this name, you should have a new file in your Skyrim home directory named "offsets-1.5.62.0.txt", or whatever you entered as the filename. It will be in the following format:

Decimal ID <tab>Hex Offset <newline>

For example, if you wanted to make the version independent of address 142F4DEF8 (player character static pointer) in 1.5.62.0, you could do this:

  • Find 2F4DEF8 in the offset file. Because this is the offset 140000000 without base
  • Confirm that the ID is 517014 (decimal!)
  • If you want to use this address in the DLL at runtime, do the following:

void * addressOf142F4DEF8 = db.FindAddressById(517014);

There are.

The VersionDb structure has the following functions:

Spoilers: Show

Things you should know and remember:

  • You can include any (or all) database files in the plugin, but this may significantly increase the file size (around 2.5 mb). I recommend only including the latest version (1.5.97.0 at the time of writing), and if users want an older version they can point them here and let them download the specific version of the database themselves. While I don't have a problem with it, should you decide to include all database versions in the plugin, you can even upload them to other sites.
  • You should always load the database only once on startup, initialize/cache the required addresses, and then unload it. Unloading just means that the VersionDb structure is deleted or lost (if allocated on the stack). This ensures that you don't waste unnecessary memory while your game is running. No need to keep the database loaded during gameplay.
  • The database contains addresses of functions, global variables, RTTI, vtables, and anything else that may reference it. It does not contain addresses located in the middle of functions or in the middle of global variables. If you need an address in the middle of a function, you should look up the function base address and add the extra offset yourself.
  • You should always check the results to make sure the database was loaded successfully (bool Load returns true) and that the address queried actually returned a valid result (not NULL). If it does fail to load, the file is most likely missing. If the query fails, it means the address was not found in that version. This could mean that the game code has changed enough that the address is no longer valid for that version, or that the database itself failed to detect the correct address. If any of the above happens, you should fail the plugin initialization to let SKSE know that you are not loading it correctly. Or display the error message manually.
  • It is best to check and make sure the address exists in all versions of the game before releasing the DLL plugin. To do this, …

Install & use Install: follow the bundled instructions

  1. Unzip the archive from playbuff and read the bundled readme / instructions first.
  2. There is no universal mod manager for this game: some mods replace game files directly, some go into a game-specific Mods folder, and some need a game-specific community loader or tool first — follow the bundled readme.
  3. Place the files exactly as the readme says; mods with listed dependencies need those installed too.
  4. Launch the game to confirm it loaded; some games require enabling mods in settings or an in-game mod menu.

Install locations vary a lot between games and mods — the bundled readme is the most reliable guide.

File & checksum

Filename
SKSE插件的地址库
File size
2.1 KiB
SHA-256
be6aba075529a9d8bced20d0ee2e12f9deb2da381c51b4cac6b4a465b388e7e0
Stored at
2026-10-07 23:31