Address Library for SKSE Plugins at Skyrim Special Edition Nexus - anniversary edition翻译 (2024)

About this mod

Contains header file and a database to make SKSE DLL plugins version independent easily.

Requirements This mod does not have any known dependencies other than the base game.Mods requiring this fileMod nameNotes(DMC) Shiver Alpha - A Frostfall . Frostbite . CC Survival Animation Mod(FR) Completionist - Quest Tracker(FR) iEquip(FR) Mfg FixObligatoire sinon ça ne fonctionnera pas. 3rd Person Walk Fix ReduxHard Requirement.A Closer Look NGFor SE/AEA Closer Look SSEAcolyte - Divine CovenantsFor SPIDActor Limit FixActor Value GeneratorAnd make double sure you're using the right version for your gameAdamant - A Perk Overhaul (Mandarin)Hand to Hand 的前置AddItemMenu - NGAdjustable Attribute Consumption SKSEfor Skyrim SE 1.6.97 or 1.6.xx choose the one you need for your game versionAdvanced Notification Log NGAfterlife - ResurrectedAlchemist's JournalAlchemy PlusAmmo Enchanting - Craft Magical Arrows and BoltsAnalog Keyboard Helper (for Wooting users)Ancient Cultures Didn't Wear Amulets of the DivinesAddress Library is a requirement for CIDAndrealphus' Papyrus FunctionsAnimated Heavy Armory - DAR version with enchantments animations and patches[optional] Required by Dynamic Animation ReplacerAnimated IngredientsSelect right version based on your game runtimeAnimated PoisonsAnimated PotionsAnimated Static Reload FixAnimated Static Reload Fix - NGAnimation in AshstormAnimation in BlizzardAnimation Motion RevolutionRequired for SE and AE versionsAnimation Queue FixAnother Race Menu Rotation ModApprentice(Requied by Papyrus Extender)Arcane Disenchanter - NGArchery Locational DamageArchery Locational Damage - FrenchObligatoireArchery RebalanceArcing SpellsAre We There YetArmor Rating Rescaled SKSE RemakeAll-in-oneAurora FixAuto ChestsAll-in-one Or Your Current VersionAuto Input SwitchAuto Kill Move ScreenshotsGrab database for your game version.Auto MoveAuto ParallaxAuto Sheathe WeaponsAuto Use SoulgemsHard requirement for offsets.Auto Use Soulgems SKSE for AE 1.6.640Auto-Lockpicking - A Lockpicking OverhaulAutoBody AE - Configurable Randomized Bodiesmake sure you get the AE version.Barter Limit FixBase Object SwapperBash Bug FixBeard Mask Fix - Beards Use Slot 44 SKSE PluginFor Skyrim Special EditionBeard Mask Fix - Beards Use Slot 44 SKSE Plugin - RussianДля Skyrim Special EditionBehavior Data InjectorBest In Class Plus Plus SKSE RemakeAll-in-one or Your game versionBetter Combat Escape - NGBetter Combat Escape - SSEBetter Jumping SEBetter Power Attack Direction Control - SSEBetter Third Person Selection - BTPSBikiniborn - Huntress of SkyrimBikiniborn EX - Huntress of SkyrimBlade and Blunt - A Combat OverhaulFor the DLL to load.Blended Skills - Class Perks(Both - Requirement's Requirement)BlocTheWorker's NPC AI for SSEBook 'EmBounty Quests Redone - NGBug Fix - Sprinting Spell Handit's required by DARBug Fixes SSEBulk Enchanting RedoneBunny Hopper Of SkyrimAll-in-oneCamera Follows SKSECamera NoiseCamera Persistence FixesCarry My Burdens - Follower Carry Weight TransferCasting BarCatHubChallenging Spell LearningRequired as of v2.0.0Chocolate PoiseClassic Sprinting Redone (SKSE64)Clean Save Auto-reloaderCold Region Behavior - Beta TestNecessaryCoMAP - Common Marker Addon ProjectCombat AIAll-in-one Or Your Current VersionCombat Music Fix NGCombat Music Fix SKSECombat Pathing RevolutionCombat SpeechcraftCommunity ShadersCompletionist - Rastreador de Misiones y Objetos Latino-CastellanoCompletionist - Skyrim Completion Tracker (NG)MandatoryComprehensive Attack Rate Patch - SKSEAnd make double sure you're using the right version for your gameConditional EquipmentConditional Expressions - Subtle Face Animations - Polish Translationconfigurable discover distance multiplierConsole Commands ExtenderConsole Commands Extender - Anniversary Edition UpdateConsole TweaksRequired for copy / paste to and from clipboard.ConsoleUtilSSEConsoleUtilSSE NGConstructible Object Custom Keyword SystemFor Skyrim Special EditionContainer Item DistributorContextual CrosshairControlled CastingFor v2.0.0 and above; have the correct version for your game versionCoolStaggersAll-in-one Or Your Current VersionCopy Character AppearanceCrafting Recipe DistributorCrash LoggerCrash Logger SSE AE VR - PDB supportSelect SSE or AE only if usingCRITICAL SSE BUG FIX MODCustom Hair ColorCustom Skills FrameworkDaily Spell ListThis is a requirement for Papyrus ExtenderDeadly Combat 2023 EditionDetached LightningFor SE or AEDetection MeterDevola Racemenu PresetDialogue More NPC InfoSE or AE Version Pick the one you needDialogue Movement EnablerDifferent casting timeAll-in-one Or Your Current VersionDifficulty BalanceDifficulty Mult AdjusterDisable Fast Travel SKSE - No Janky Map UIDisable Follower CollisionDisk Cache EnablerDisplay Enemy LevelDiziet's Player Home Bath Undressing for SkyrimSEThis is a dependency for powerofthree's Papyrus Extender.dMenuDon't Eat Spell Tomes (API)For Skyrim Special EditionDon't hit me. I'm loading.Required for MCM HelperDon't send me there again (dosemetha)Don't Stay in The Water - NPC Water AI FixDragonborn Voice OverAddress Library for SKSE Plugins is required for ConsoleUtilsSSE NGdTry's Key UtilsDual Wield Parrying SKSEDynamic Animation Casting - NGMandatory. Use AE/SE version match your SkyrimSE.exeDynamic Animation ReplacerDynamic Armor VariantsFor Skyrim Special EditionDynamic Autosorting patch for Ld50365s' Player HomesHard requirement for SE/AE usersDynamic Collision AdjustmentDynamic Equipment Manager SKSE UpdatedAll-in-oneDynamic Gamma SKSEDynamic Key Action Framework NGDynDOLOD DLL NGEat Tomes 4 Known SpellsEatingSleepingDrinking - KuNeruNomu -Elden CounterRequiredElden ParryElden Parry -- Ordinator PatchENB AO TogglerENB Extender for SkyrimEither for AE or SE depending on your game versionENB Helper PlusENB Input DisablerENB Light Inventory Fix (ELIF)Either for AE or SE depending on your game versionENB Lights For Effect ShadersEnchantable Special Item FixFor Skyrim Special EditionEnchanted Arsenal - SSEEnchanted Weapon Charge FixEncounter Zones Unlocked SEEnemies Follow MeEnemies Respect Encounter ZonesEnemy Combat ParametersHard RequirementEnemy Friendly FireEnhanced Death CamEnhanced InvisibilityEnhanced ReanimationEnhanced Volumetric Lighting and Shadows (EVLaS)Either for AE or SE depending on your game versionEquip Enchantment FixEquipment Toggle 2Essential FavoritesEssentials Be Gone SKSE RebornAll-in-oneEternal FlamesRequired by Base Object Swapper.EVG - Animated Traversal - FREVG Animated TraversalEVG Conditional IdlesEVG Conditional Idles - FrenchObligatoireEVG Conditional Idles - Ukrainian translationExperienceSEExtended Hotkey SystemExtended Vanilla Menusrequired for Copy / Paste to and from system clipboard.Face Discoloration FixFor Skyrim Special EditionFatal WedgiesFavorite Misc ItemsFemale Equipment Scale FixHard requirementFenix Projectiles APIAll-in-one Or Your Current VersionFenix Stamina OverhaulAll-in-one Or Your Current VersionFenixDisenchanterAll-in-one Or Your Current VersionFire Hurts NGFires Hurt REAll-in-one Or Your Current VersionFishing Not GrindingRequired for Papyrus MessageBoxFix Note icon for SkyUI (SKSE64 plugin)Required for the Skyrim AE version.Fix Toggle Walk Run (SKSE plugin)FlashReaction-BlockAbilityFlasks - A Potion Utility ModFlat Map Markers AE - UpdatedFlat Map Markers SSEFlat World Map Framework (FWMF)MandatoryFlat World Map Framework (FWMF) - GermanFloating DamageFollower Combat PriorityForget SpellFor Skyrim Special EditionFormList Manipulator - FLMMandatoryFrozen Electrocuted CombustionrequiredGear SpreaderGiantess Mod - Size Matters SE AEFor DLL Version of the mod only.Glow Be Gone SKSE Updatedmh-hmGo to bedrequiredGo to Bed - RUнеобходимыйGrabbed Items Add WeightGrass Cache Helper NGFor SSE/AE/GOG versions users.GraveRobberThis is only required if you would like to have the SkyUI MCM menu.Hand to Hand - An Adamant AddonHard dependency. Hanna - A Face and Body Presets (CBBE 3BA 3BBB)For the Face And Body Preset OnlyHD Local MapHDT-SMP Force FieldsHelpExtenderHerika - The ChatGPT CompanionHide Those Futile Quests SEHorse Stamina HUD - Script-FreeFor Skyrim Special EditionHorseback - Witcher-style horse stamina mechanic (SKSE)Huishen Gameplay OverhaulI'm Walkin' HereI'm walkin' here NGiEquipEssentialiEquip - PORTUGUES BREssencialIFrame Generator REImmersive Activate SKSEImmersive Equipment DisplaysImmersive Spell Learning - DESTifiedImproved Camera SEImproved Help Command - SE - AEHard requirement.Improvement Names Customized AEImprovement Names Customized SSEIncremental InjuriesIndividual Shout Cooldown RemakeAll-in-one or your game versionInfinity UIIngredient Priority Fix NGInjuries for both PC AND NPCsInjuries for both PC AND NPCs - SpanishEs necesario para que funcione la versión original del modInstantly Skip Dialogue NGInteractive Skyrim - Work in ProgressInventory coinsAll-in-one Or Your Current VersionInventory Interface Information InjectorFor Skyrim Special EditionInworld Skyrim - AI NPCsItem Property Manipulator - IPMMandatoryItems Stolen Bug FixIWant Widgets NGJudgement Cut End - RE - Script Free(Requirement of PI, AMR and DAR)Jumping Costs StaminaKaputt - Melee Killmove ManagerKertam's Translate HelpermustKeyword Item Distributor (KID)for SE/AE usersKill Caps Lock NGKillEssentials NGDownload the version compatible with your SKSE and Skyrim.Killmove Paralysis PreventionKnow Your Enemy 2For SPIDKnow Your Enemy 2 - ArmorsFor SPID and KIDKreatEEither for AE or SE depending on your game versionLamasTinyHUD - A Quick Slot Mod with Elden Souls OptionChoose SE or AELegacy NG (DienesTools - Grimy Plugin - Grimy Utilities DLL)For SE/AE.Lesen bildet 1.1.2 DV und VR DVLimbs Injuries -- Combat overhaulAll-in-one Or Your Current VersionLocational Damage(SKSE Plugin)Locational Encounter ZonesLockBash NGDownload the version compatible with your SKSE and Skyrim.Locked Empty Container Activate Text FixLockpicking for BarbariansLog Inventory Item RotationLoki's Wade In Water - ESLifiedMagic Deflection APIAll-in-one Or Your Current VersionMagic Leveling FixMagic Sneak AttacksMain Menu Mesh RandomizerMain Menu Randomizer SEOnly for Skyrim AE > 1.6.629Mantella - Bring NPCs to Life with AIFor SE / AE usersMantella and Herika Compatibility PatchMap Flip for Beyond ReachMaximum CarnageMaximum DestructionMCM HelperFor Skyrim Special EditionMedia Keys Fix SKsem*nu Maid 2 - MCM managerMerchants Inventory RefreshMergeMapperSSE/AEMfg FixMfg Fix - Traduction FrancaiseNécessaireMIF - Mu Impact FrameworkFor SSE/AEMinimalistic Custom Skills Menu for AEMiniMapMisc High Heels Sitting Height FixMisc Hkx Xml Converter SSEMisty Skye - Sexlab Addon Version 4--DEWird benötigtModlist Update CheckerMolag's Will - A Vampire Skill TreeHard Requirement for Custom Skill Frameworkmonster race crash fixMoonlight Greatsword ProjectileEssential (required by KID/DAC-NG)Moons and Stars - Sky Overhaul SKSEMore Consistent Stamina Costs for Shield of StaminaMore Informative ConsoleRequired for versions 0.40 and upMore Plantable Plants for Creation ClubFor FLMmoreHUD SEmoreHUD SE - Polish TranslationWybrana wersja dla wersji twojej gry.Mu Joint Fix (Knee Fix dll edition)For SE/AEMu Skeleton Editorfor SSE/AEMum's the Word NGMy Main menu - Randomized CollectionOnly for Skyrim AE > 1.6.629Naked Dead NPC FixName Those Ash PilesNative EditorID FixEither for AE or SE depending on your game versionNo .espNo Attack MessagesNo Crime Teleport RENo Enchantment Restriction SKSE RemakeNo Follower Attack CollisionNo Follower Attack Collision NGNo Furniture CameraNo Lockpick Activate (SKSE) - UpdatedDownload all-in-one or version for whichever game version you use.No Opposite Gender Animations NGNo Stamina Consumption Outside CombatNotification Filter - Remove unwanted notificationsAll in oneNotification Log SSENotification Log SSE NGNPC AI Process Position Fix - NGNPCs use PotionsFor SE or AE VersionNVIDIA Reflex SupportOBody StandaloneRequire for MCM Helper. If you want to use MCM Menu version.One Click Power Attack NGOnHit Animations Framework - NGOnHit Animations Framework - SSEOpen Animation ReplacerOppai ScalingOSAUse the correct version for your Skyrim (AE vs SE)OSL Aroused - Arousal RebornOStim - OSex overhaul and APIOStim - OSex overhaul and API (RUS)Paired Animation ImprovementsPAPERPapyrus INI Getter Plugin-SSEPapyrus Ini ManipulatorFor SE or AE.Papyrus MessageBox - SKSE NGAll of my SKSE plugins require Address LibraryPapyrus ProfilerPapyrus Tweaks NGPapyrusUtil SE - Modders Scripting Utility Functionsfor v4.1+Parrying -- weapons bounce on impactAll-in-one Or Your Current VersionParrying RPGParty Combat ParametersHard RequirementPassive Weapon Enchantment Recharging - Enchanted Weapons Recharge Over TimePause After Load Unscripted NGNeeded for CommonLibSSE to work properlyPayload InterpreterPerk Entry Point ExtenderPerk Point Awards ReduxHard Requirement for Spell Perk Item DistributorPersonalized MannequinsHard RequirementPhenderix ElementsrequiredPhoto ModePhoto Mode - DeutschPhoto Mode - FrenchObligatoirePilgrim - Custom Skills Framework AddonPlantable Northern FlaxPlay as a Dragon SE - and - Steerable Dragon With Bend Will ShoutPlayer Rotation in ShowRaceMenuPlayerPayCrimeGold Tweak (aka No Crime Teleport NG)SE or AEPocket MammothsFor Open/Dynamic Animation ReplacerPOISE - Stagger Overhaul SKSEPopola Racemenu PresetPoser Hotkeys Plus SSEPoser Hotkeys Plus SSE - For 2.5.1 - Simplifiled Chinese TranslationPost-Hit Killmove and Execution (Unsupported)ObviouslyPotion CombiningPotions Animated NG (PANG)Power Attack Direction Fix - AEPower Attack Key NGpowerofthree's Papyrus Extenderpowerofthree's TweaksPrecision - Accurate Melee CollisionsPrelude to Purgatory - A Lich Custom Skill TreeImplicit - Required for SSE Engine FixesPrint FAll-in-one Or Your Current VersionPrintF - NGrequired for Special EditionProjectile Blood (Proof of Concept)Projectile Sense - Incoming Arrow And Magic Slows TimeProtect NPC SE AE VR SKSEAEProteus - SE - AE - TRPseudo Physical Weapon Collision and Parry AE SE VRHard requirement for AE/SE playersQUIQuick Loot RERace Menu Player RotationRain Extinguishes FiresImplicit - Required by the required files and their requirements.Random Main Menu MusicRandomIdleAnimationRead Or Take SKSERead the Room - Immersive and Animated Helmet Management(Requirement's Requirement) Required by Immersive Equipment DisplaysReading Is Bad SKSEReading Is Good (SKSE)Realistic Body System 2020(SSE)Recipe Auto-LearnRecoil On HitRecoil On ObjectsRecursion MonitorRegen Adjuster SKSERegen Adjuster SKSE - NGObviouslyRegen Adjuster SKSE - NG - UpdatedRegional Fast TravelRemember Lockpick Angle - UpdatedBe sure to grab updated database for whatever version of the game you use - these are NOT included!RemoveAllItems Freeze FixRequiem - Lock Bashing VisualizedReShade TogglerResistances RescaledRequiredResurrection APIAll-in-one Or Your Current VersionRetreat - A Better End to CombatReveal Your Secrets - A Map Marker Location ModRogue Master DetectorRogue's GalleryUse your respective game versionRudy ENB for NAT 3Rudy ENB SE for Cathedral WeathersRunecarver - ESO style enchanting overhaulS.M.C. - SKYRIM MOTION CONTROLYou need thisSave Game EncodingScaleform Translation Plus PlusScaleform Translation Plus Plus NGSCAR - Skyrim Combos AI RevolutionmandatoryScattered Object SolutionScrambled BugsScreenshot HelperSeasons of Skyrim SKSESecurity Overhaul SKSE - Lock VariationsSensual DancerSerana Follower Frameworkfrom v1.5.0 onwards (if using SKSE plugin - otherwise not required)Set NPC LevelRequired by ConsoleUtilSSE.Shadow BoostShield Of Stamina - Blocking ReduxShmoot's Gym-for modifying jumping, falling, and perk points...Show Animation CommandShow Player In MenusRequired for SKSE plugins to work.Show Player In Menus - FrenchObligatoireSimple Block Sparks- Script FreeSimple Display - Battleaxe and Warhammer(Requirement's Requirement) Required by Immersive Equipment DisplaysSimple Display - Multiple Greatswords(Requirement's Requirement) Required by Immersive Equipment DisplaysSimple Dual SheathSimple Hotkeys - SKSEHard requirement for relocate offset when Skyrim SE updated.Simple Offence SuppressionSimple Sit Idle AnimationSimple Weapon Swing Parry - NGSink Or Swim NGSkill of SneakingSkip DeathcamNeeded for Engine FixesSKO - Simple Knock OutIs required for Spell Perk Item Distributor.Sky Fantasy XVIII - Gameplay OverhaulSky Sprint SESkyrim 40000 - A W40k storySkyrim Character SheetSE or AE Version Pick the one you needSkyrim Character Sheet - RussianSkyrim Directional CombatRequiredSkyrim Dual Sense Adaptive Trigger Mod AE and SSESkyrim Input Method - Use System's IMESkyrim Outfit System SE RevivedSkyrim PlatformSkyrim Skill Uncapper for SE and AESkyrim Souls RE - UpdatedSkyrim Species RandomizerNeeded for Monster Race Crash FixSkyrim Together RebornSkyrim Together Reborn - Turkish Localization 1.5.0Skyrim Together Reborn ---- Traduzione italianaSkyrim Upscaler - DLSS FSR2 XeSSSkyrim World Randomizer (WIP)- REQUIRED -Skyrim's ParagliderSkyTEST - Racial Jump Diversity100% REQUIREDSkyUI AIO Survival (SAS)Needed only for AE versionSkyUI Weapons Pack SE - Unofficial PatchesSlayable Offspring SKSESleep to Gain ExperienceSmart Harvest NG AutoLootFor CommonLibSSESmart NPC Potions - Enemies Use Potions and PoisonsFor SE/AESmart NPC Potions - Enemies Use Potions and Poisons - Turkish TranslationSmoothCamSMP-NPC crash fixRequired on versions other than 1.6.640Soaking Wet - Character Wetness EffectSoft ShadowsSouls-Like SmoothCam Presetsmoothcam needs this alsoSoulsy HUDSound Record DistributorSpeed Casting SKSE RemakeAll-in-one or your game versionSpell Extender - Additional Papyrus Functions (NG)Make sure you have the right version for your game versionSpell Perk Item Distributor (SPID)For Skyrim Special Edition users. Not required for VR and Anniversary EditionSpell Thief - NGmandatory for Skyrim SE 1.6.97 or 1.6.xx choose the one you need for your game versionSprint Sneak Movement Speed FixSprint TweaksSSE Display TweaksSSE Engine Fixes (skse64 plugin)SSE HooksOptionalSSE ReShade HelperSSETUPP - DisplayTweaks Utra Performance PackRequiredStagger Direction Fix - NGStagger Direction Fix - SSEStagger On Hit SKSEStat RequirementsStatic Skill Leveling (Experience Mod Add-on)Stay At The System Page - AEAE versionStay At The System Page - UpdatedStay At The System Page NGSteam Keyboard Integration (for Big Picture)Stop Automatic Weapon Draw NGfor Skyrim SE / AEStop On Slash AE - Hitstop and ScreenshakeStormcrown - A Shout OverhaulStormcrown - A Shout Overhaul - RussianStrange Runeshard requirementSure of StealingSurvival Control PanelSurvival Mode Improved - SKSESwap ConsumableMandatorySwift Potion NGSwitch Combat View - SKSEuse the one for your game versionTarget FocusThe Ancestors Care - A Dunmer PassiveImplicit - Required for Spell Perk Item Distributor to functionThe Dragon Cult - PriesthoodThird Person First Person AimingTime Format ChangerTK Dodge RE - Script FreemandatoryToo many notificationsAll-in-one Or Your Current VersionToxiRandomizer SE-AE-VRTranscribe Spells - Convert Known Spells to Tomes(Requirement’s Requirement)True Directional Movement - Modernized Third Person GameplayTrue Spear Combat - DARTrueHUD - HUD AdditionsTweak Potion WeightTwisted's Command Binders - MCM HelperUI-Integrated Hotkeys SystemHard RequirementUltimate Animated Potions NGUndaunted NGUnderwear.dllUnequip Quiver SEUnique Actor Values For SummermystImplicit - Required by Actor Value Generator.Unique Map WeatherUnlimited Fast TravelUnlimited Stamina - NGfor non-VR usersUnskippable Dialogue NGVampire Feed ProxyVampire Lords Can Fly (With Collision)Vanilla HDRVindictus Fiona CounterVisual Lock OwnershipVitrium - Spells and Tools Pack - SpanishVokrii - Hand to Hand and Security AddOnWade In Water RedoneWait Menu RedirectedWarmer Dwemer LightsRequired by Base Object SwapperWeapons Repositioner SEmandatoryWearable Lanterns MCM Fixed No DLL Errorwithout this you still get a DLL error from some other fileWeatherInfoWeightless Bound ArrowsHard requirementWeightless NGWheeler - Quick Action Wheel Of SkyrimWhere Are You - Lookup And Track Followers and other NPCsRequired. Choose a version compatible with your game (SE or AE).Where s the keyAll-in-one Or Your Current VersionWhich Key NGWho's Who (April Fools Mod)Whose Quest Is It AnywayWhose Quest Is It Anyway - Russian TranslationWhose Quest Is It Anyway EspanolDebes instalar sus requisitos tambien, si en caso tuviese alguno necesario.Whose Quest is it Anyway NGWhose Quest is it Anyway NG - Ukrainian translationWindhelm Brazier Replacer - Base Object SwapperNeeded for Base Object Swapper to functionWitcher CamMandatoryXanthys Unofficial Port To SE!!These two mods are a fix for the Mannimarco black face bug that can happen in VR, or in general!! Not needed but suggested heavily.YASTM - Yet Another Soul Trap ManagerHard requirement.Yes Im SureYes Im Sure NGYou Can Sleep SKSE RemakeAll-in-one Or Your Current Versionzone magicneeded for version 0.2 and abovezxlice BackStab and Parry SSE - Script Freezxlice hitStop SSE - Script Freezxlice's ultimate potion animation - ZUPA Permissions and credits Credits and distribution permission Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources Upload permissionYou can upload this file to other sites but you must credit me as the creator of the file Modification permissionYou must get permission from me before you are allowed to modify my files to improve it Conversion permissionYou can convert this file to work with other games as long as you credit me as the creator of the file Asset use permissionYou are allowed to use the assets in this file without permission or crediting me Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms Asset use permission in mods/files that earn donation pointsYou are allowed to earn Donation Points for your mods if they use my assetsAuthor notes

This author has not provided any additional notes regarding file permissions

File credits

This author has not credited anyone else in this file

Donation Points system

This mod is opted-in to receive Donation Points

Changelogs Version 2Updated database files, they were missing most RTTI info. IMPORTANT! This is now split into 2 versions: Special Edition (1.5.x) and Anniversary Edition (1.6.x). The IDs that point to addresses will not match between those 2 versions (the game executable is too different to match, and even if they matched the code within those functions is different anyway).

Description

For regular mod users: Download and install the "all-in-one" package from files section. You can use mod manager or do it manually. The .bin files should go here:Data/SKSE/Plugins/There is no need for you to read the rest of any of this.

For SKSE DLL plugin authors:This is a modder resource (a header file). You can load a database that stores offsets so your DLL plugin can be version independent without requiring to be recompiled. The header file can be downloaded from the optional section of the files. For Anniversary Edition the header file is called versionlibdb.h instead of versiondb.h! If you are using CommonLib then all of this is already built in and you don't need anything from here.

How to use

The quickest way:

Spoiler: Show#include "versiondb.h"

void * MyAddress = NULL;unsigned long long MyOffset = 0;

bool InitializeOffsets(){// Allocate on stack so it will be unloaded when we exit this function.// No need to have the whole database loaded and using up memory for no reason.VersionDb db;

// Load database with current executable version.if (!db.Load()){_FATALERROR("Failed to load version database for current executable!");return false;}else{// "SkyrimSE.exe", "1.5.97.0"_MESSAGE("Loaded database for %s version %s.", db.GetModuleName().c_str(), db.GetLoadedVersionString().c_str());}

// This address already includes the base address of module so we can use the address directly.MyAddress = db.FindAddressById(123);if (MyAddress == NULL){_FATALERROR("Failed to find address!");return false;}

// This offset does not include base address. Actual address would be ModuleBase + MyOffset.if (!db.FindOffsetById(123, MyOffset)){_FATALERROR("Failed to find offset for my thing!");return false;}

// Everything was successful.return true;}

Now you're wondering what is that "123" value there. This is the ID of an address. Different version databases will have the same ID for an address but it may point to different values. To get a list of all ID and value pair for a specific version do this:

Spoiler: Show#include "versiondb.h"

bool DumpSpecificVersion(){VersionDb db;

// Try to load database of version 1.5.62.0 regardless of running executable version.if (!db.Load(1, 5, 62, 0)){_FATALERROR("Failed to load database for 1.5.62.0!");return false;}

// Write out a file called offsets-1.5.62.0.txt where each line is the ID and offset.db.Dump("offsets-1.5.62.0.txt");_MESSAGE("Dumped offsets for 1.5.62.0");return true;}

Instead of 1, 5, 62, 0 put the version you are reversing and familiar with. You must have the corresponding database file in /Data/SKSE/Plugins directory first.

After you call this you should have a new file in the main Skyrim directory called "offsets-1.5.62.0.txt" or whatever you put as the file name. It will be in the format where each line is:Decimal IDHex Offset

For example if you have an address 142F4DEF8 (player character static pointer) in 1.5.62.0 that you want to make version independent you would do this:1. Look up 2F4DEF8 in the offsets file. Because this is the offset without the base 1400000002. See that the ID is 517014 (decimal!)3. If you want this address in your DLL at runtime do this:

void* addressOf142F4DEF8 = db.FindAddressById(517014);

And there you have it.

The VersionDb struct has the following functions:

Spoiler: Showbool Dump(const std::string& path); // Dump currently loaded database to filebool Load(int major, int minor, int revision, int build); // Load a specific version if the db-major-minor-revision-build.bin exists in Data/SKSE/Plugins directorybool Load(); // Load the version for current applicationvoid Clear(); // Clear currently loaded databasevoid GetLoadedVersion(int& major, int& minor, int& revision, int& build) const; // Get the version of database file we have loaded right nowbool GetExecutableVersion(int& major, int& minor, int& revision, int& build) const; // Get the version of currently executing applicationconst std::string& GetModuleName() const; // Get the name of currently loaded database module, this should show "SkyrimSE.exe"const std::string& GetLoadedVersionString() const; // Get the currently loaded version as string, e.g. "1.5.62.0"const std::map& GetOffsetMap() const; // Get the map of ID to offset if you need to iterate it manuallyvoid* FindAddressById(unsigned long long id) const; // Find address by ID, this will already include base and be correct address. It will return NULL if not found!bool FindOffsetById(unsigned long long id, unsigned long long& result) const; // Find offset by ID, this will just be offset without base included.bool FindIdByAddress(void* ptr, unsigned long long& result) const; // Find ID by address, this will attempt a reverse lookup to convert address to IDbool FindIdByOffset(unsigned long long offset, unsigned long long& result) const; // Find ID by offset, this will attempt a reverse lookup to convert offset to ID

Things you should know and keep in mind:

1. You can include any (or all) of the database files with your plugin but it may increase the file size considerably (by around 2.5 mb). So far it has been common to mark this mod as a dependency instead.

2. You should ALWAYS only load database once at startup, initialize/cache the addresses you need and let it unload. Unloading just means the VersionDb struct gets deleted or lost (if you allocated on stack). This will make sure you don't use unnecessary amount of memory during game runtime. There's no need to keep the database loaded during gameplay. This is a moot point if you use CommonLib as it only loads it once instead of for each DLL.

3. The database contains addresses of functions, global variables, RTTI, vtables, and anything else that may have a reference to it. It does not contain addresses that are in the middle of functions or middle of globals. If you need an address in the middle of the function you should look up the function base address and add the extra offset yourself. It also does not contain useless stuff such as alignment around functions (which are referenced in rdata), pdata section is discarded and some compiler generated SEH info from rdata is discarded.

4. You should always check the result to make sure the database loaded successfully (bool Load returned true) and that the addresses queried actually returned a valid result (not NULL). If it does fail to load it means the file was missing most likely or wrong version (e.g. trying to use SE header in AE). If the query fails it means the address could not be found in that version. This could mean either the game code changed enough that the address is no longer at all valid for that version OR the database itself failed to detect the correct address. If either of those things happen you should fail the plugin initialization to let SKSE know you did not load correctly. Or manually show an error message.

5. It would also be best if you checked to make sure the address exists in all versions of the game before publishing your DLL plugin. To do that load each version of the database file and query the same address ID in each of them to make sure it exists:

Spoiler: Showbool LoadAll(std::vector& all){static int versions[] = { 3, 16, 23, 39, 50, 53, 62, 73, 80, 97, -1 };for (int i = 0; versions[i] >= 0; i++){VersionDb * db = new VersionDb();if (!db->Load(1, 5, versions[i], 0)){delete db;return false;}all.push_back(db);}return true;}

bool ExistsInAll(std::vector& all, unsigned long long id){unsigned long long result = 0;for (auto db : all){if (!db->FindOffsetById(id, result))return false;}return true;}

void FreeAll(std::vector& all){for (auto db : all)delete db;all.clear();}

bool IsOk(){std::vector all;if (!LoadAll(all)){_FATALERROR("Failed to load one or more version databases for current executable!");FreeAll(all);return false;}

if (!ExistsInAll(all, 517014)){_FATALERROR("517014 does not exist in all versions of the database!");FreeAll(all);return false;}

FreeAll(all);// Ok!return true;}

This way you can be sure your DLL mod will work in all versions, or if it does not work in some versions you can write that on your mod page.

6. Sometimes you'll need to do something different based on running game version. You can do that with this code snippet:

Spoiler: Showint major = 0, minor = 0, revision = 0, build = 0;if (!db.GetExecutableVersion(major, minor, revision, build)){_FATALERROR("Something went wrong!");return false;}

// Running game is 1.5.x and at least version 1.5.39.0if (major == 1 && minor == 5 && revision >= 39){// Stuff ... ?}

7. Please keep in mind: if you compile your SKSE DLL in debug mode the load time of database can be around 14 seconds! In release mode this is around 0.2 seconds. This is due to standard library containers being very slow in that mode (std map).

Permissions

Do whatever you want.

Address Library for SKSE Plugins at Skyrim Special Edition Nexus - anniversary edition翻译 (2024)
Top Articles
Latest Posts
Article information

Author: Sen. Ignacio Ratke

Last Updated:

Views: 6422

Rating: 4.6 / 5 (76 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Sen. Ignacio Ratke

Birthday: 1999-05-27

Address: Apt. 171 8116 Bailey Via, Roberthaven, GA 58289

Phone: +2585395768220

Job: Lead Liaison

Hobby: Lockpicking, LARPing, Lego building, Lapidary, Macrame, Book restoration, Bodybuilding

Introduction: My name is Sen. Ignacio Ratke, I am a adventurous, zealous, outstanding, agreeable, precious, excited, gifted person who loves writing and wants to share my knowledge and understanding with you.