0 of 0

File information

Last updated

Original upload

Created by

EphemeralSagacity

Uploaded by

EphemeralSagacity

Virus scan

Safe to use

About this mod

VersionManager is a simple Papyrus system for handling quest script updates in Starfield. It detects version changes and restarts quests automatically, ensuring new logic is applied without requiring a new save. Designed for A.C.T., MORPH, and MORPH Effects, it provides seamless script updates with minimal setup.

Requirements
Permissions and credits
Overview

Version Manager is a lightweight Papyrus-based system designed to help modders manage script updates in Starfield without requiring users to start a new save. It allows quest scripts to detect version changes and automatically restart, ensuring that new script logic is applied seamlessly.

This system was originally created for my own A.C.T., MORPH, and MORPH Effects mods to ensure they could update cleanly without forcing users to restart their game or manually stop and restart quests. However, it can be used for any mod that needs an easy way to manage script updates.
How It Works

  • Your quest script registers itself with Version Manager using RequestVersionManagement during OnQuestInit and OnPlayerLoadGame.
  • Version Manager checks if the version has changed:
    • If unchanged, nothing happens.
    • If changed, the quest stops and restarts to apply the latest script logic.
  • This means your quest must be designed to handle being restarted properly in OnQuestInit.
How to Use

1. Add a Property for Version Manager

In your quest script, add a property that references

VersionManager

Like so and ensure that the VersionManager quest instance is being passed to it in the CK:

VersionManagerQuestScript Property VersionManager Auto


2. Register for Version Management in

OnQuestInit and OnPlayerLoadGame

Your quest script should register itself with Version Manager when it initializes and when the player loads a save:

Event OnQuestInit()
RegisterForRemoteEvent(Game.GetPlayer(), "OnPlayerLoadGame")
ManageVersion()
EndEvent

Event Actor.OnPlayerLoadGame(Actor akSender)
ManageVersion()
EndEvent

3. Implement

ManageVersion()

to Directly Pass the Version

Always call RequestVersionManagement with the version string directly inside the function ensuring it is a stack variable otherwise you can end up passing in the stale version number even though the new script is installed:

Function ManageVersion()
VersionManager.RequestVersionManagement(self, "0.9.0")
EndFunction

What Happens When a Version Change is Detected?

If the version string provided to RequestVersionManagement does not match the last registered version, Version Manager will:
  • Stop the quest (Stop())
  • Restart the quest (Start())
This ensures that the latest script logic is always applied without requiring a new save.
Important Considerations
  • Quest state resets – Since the quest is stopped and restarted, any progress stored inside the quest script will be lost unless properly reloaded in OnQuestInit.
  • Your quest must be designed to reload necessary data when restarted.
  • Not recommended for complex progression quests – If your quest has multiple stages that must persist across updates, Version Manager is not a good fit. Instead, consider:
    • Storing progress in global variables
    • Using an external save system

Why Use Version Manager?

✔ Ensures users always get the latest script logic when updating mods
✔ Prevents users from needing a new save when updating
✔ Simple to implement with just a few lines of Papyrus
✔ No SFSE or external dependencies – pure Papyrus solution
✔ Works for gameplay mods that need periodic updates without save issues
Compatibility

✅ Works with all Starfield quest scripts
✅ No SFSE dependency – fully Papyrus-based
✅ Compatible with other mods (as long as they don’t interfere with stopping or restarting the quest)
Installation & Usage
  • Add Version Manager to your mod as a dependency.
  • Centralize the version management call by implementing ManageVersion() in your quest script.
  • Register for version tracking during OnQuestInit and OnPlayerLoadGame.
That’s it! Version Manager will now handle version updates automatically.
Final Notes
  • If your mod requires persistent quest progression, do not use Version Manager. Instead, handle version updates manually.
  • However, if your mod’s scripts can safely restart, Version Manager ensures users always get the latest logic without requiring a new save.
  • I originally created Version Manager to support A.C.T., MORPH, and MORPH Effects, but it can be used for any mod that needs automatic script updates.
Need Help?If you have any questions or need help integrating Version Manager into your mod, feel free to reach out!
If you like this mod, check out my other mods: