Skip to content

Releases: SkyrimScripting/Bind

🦃 Thanksgiving 2024

24 Nov 08:30
565f2e9
Compare
Choose a tag to compare

Nov 24, 2024

🦃 Thanksgiving release

Built using NG as of CharmedBaryon/CommonLibSSE-NG@b93280e

The previous release might have worked too, but I wanted to:

  1. Update BIND's build files to use the latest Skyrim CommonLib packages from https://github.com/SkyrimScripting/Packages
  2. Build it and make sure it runs (which it does, but it might've already run)

I tested on Skyrim 1.6.1170.0 but it might possibly work for higher versions, if there are any at this time.

"They remember..." 🦖

15 Sep 02:31
0e6e87c
Compare
Choose a tag to compare

v1.1.1

Same as v1.1 with the following added features:

  • script binding now runs on coc again
  • scripts bound to named quests are remembered, they won't be bound to quest they've already been bound to
  • if a quest with the provided name already exists, a new quest will not be created
NameOfScript $Quest(MyNewCoolQuest)
NameOfScript $Quest(ExistingCoolQuest)

Total of 243 Lines of Code


Below are the v1.1 features

v1.1

Same as v1 with the following added features:

  • scripts are not bound to forms, if the form already has a script attached with the same name.
  • script binding runs on these events: new game, game loaded
    • This means that BIND no longer runs on coc events - you must quick save and load to run BIND

Total of 212 Lines of Code


Below are the v1 features

v1

The goal for v1 is to be as minimal as possible:

  • Bindings are defined in Scripts\Bindings\
  • Each file should contain 1 line per desired "binding" (attach script to something)
  • Support for binding to objects by Form ID
    NameOfScript 0x14
    
  • Support for binding to objects by Editor ID
    NameOfScript dlc1serana
    
  • Support for binding to the Player (as an Actor Form, not a ReferenceAlias)
    NameOfScript $Player
    
  • Support for binding to an anonymous/generated Quest
    NameOfScript $Quest
    
  • Support for binding to an anonymous/generated Quest with a provided editor ID
    NameOfScript $Quest(MyCoolQuest)
    
  • Support for binding to an anonymous/generated ObjectReference
    NameOfScript $Object
    

    Objects are ALWAYS placed in the WEMerchantChests cell. This is not configurable.

  • Support for binding to a generated ObjectReference of a specified base Form ID
    NameOfScript $Object(0x7)
    
  • Support for binding to a generated ObjectReference of a specified base Editor ID
    NameOfScript $Object(FoodSweetroll)
    
  • Support for determining what to bind to automatically based on script extends
    NameOfScript
    
    scriptName NameOfScript extends Quest ; Anonymous Quest
    scriptName NameOfScript extends Actor ; Player
    scriptName NameOfScript extends ObjectReference ; Anonymous Object
    scriptName NameOfScript extends CustomType ; CustomType parent(s) checked
  • Nothing is configurable

.dll and .pdb provided ~ v1.1 is now compiled in releasedbg

To install, install normally as a mod using your preferred mod manager

v1.1 - KISS (Only bind once)

10 Sep 18:25
79a5f26
Compare
Choose a tag to compare

v1.1

Same as v1 with the following added features:

  • scripts are not bound to forms, if the form already has a script attached with the same name.
  • script binding runs on these events: new game, game loaded
    • This means that BIND no longer runs on coc events - you must quick save and load to run BIND

Total of 212 Lines of Code


Below are the v1 features

v1

The goal for v1 is to be as minimal as possible:

  • Bindings are defined in Scripts\Bindings\
  • Each file should contain 1 line per desired "binding" (attach script to something)
  • Support for binding to objects by Form ID
    NameOfScript 0x14
    
  • Support for binding to objects by Editor ID
    NameOfScript dlc1serana
    
  • Support for binding to the Player (as an Actor Form, not a ReferenceAlias)
    NameOfScript $Player
    
  • Support for binding to an anonymous/generated Quest
    NameOfScript $Quest
    
  • Support for binding to an anonymous/generated Quest with a provided editor ID
    NameOfScript $Quest(MyCoolQuest)
    
  • Support for binding to an anonymous/generated ObjectReference
    NameOfScript $Object
    

    Objects are ALWAYS placed in the WEMerchantChests cell. This is not configurable.

  • Support for binding to a generated ObjectReference of a specified base Form ID
    NameOfScript $Object(0x7)
    
  • Support for binding to a generated ObjectReference of a specified base Editor ID
    NameOfScript $Object(FoodSweetroll)
    
  • Support for determining what to bind to automatically based on script extends
    NameOfScript
    
    scriptName NameOfScript extends Quest ; Anonymous Quest
    scriptName NameOfScript extends Actor ; Player
    scriptName NameOfScript extends ObjectReference ; Anonymous Object
    scriptName NameOfScript extends CustomType ; CustomType parent(s) checked
  • Nothing is configurable

.dll and .pdb provided ~ v1.1 is now compiled in releasedbg

To install, install normally as a mod using your preferred mod manager

v3 - {!BIND}

03 Jan 06:47
2afee3c
Compare
Choose a tag to compare

3.0 no longer supports the Bindings/ folder

All binding is now done via "docstring" comments on scripts:

scriptName HelloActor extends Actor
{!BIND HodRef|$Player}

v2.1- {!BIND}

03 Jan 02:45
Compare
Choose a tag to compare

Pull Requests:

  • #2 [Feature] Add support to bind multiple targets in a single line

Add support for multiple {!BIND} targets in one line, e.g.

scriptName SomeNPC extends Actor
{!BIND HodRef|$Player|0x123|HildeRef}

New contributors:

v2 - {!BIND}

01 Jan 07:55
Compare
Choose a tag to compare

v2

v2 has the same features as v1 except you no longer need to create a Scripts\Bindings\ folder.

Simply annotate your scripts by including !BIND commands into the script's top-level comment:

scriptName BindToSomeActors extends Actor
{
   !BIND HodRef
   !BIND SvenRef
   !BIND HildeRef 
}
scriptName BindToThePlayer extends Actor
{!BIND}
scriptName BindToNewQuest extends Quest
{!BIND $Quest(CoolEditorID)}

v1 Features (included)

The goal for v1 is to be as minimal as possible:

  • Bindings are defined in Scripts\Bindings\
  • Each file should contain 1 line per desired "binding" (attach script to something)
  • Support for binding to objects by Form ID
    NameOfScript 0x14
    
  • Support for binding to objects by Editor ID
    NameOfScript dlc1serana
    
  • Support for binding to the Player (as an Actor Form, not a ReferenceAlias)
    NameOfScript $Player
    
  • Support for binding to an anonymous/generated Quest
    NameOfScript $Quest
    
  • Support for binding to an anonymous/generated Quest with a provided editor ID
    NameOfScript $Quest(MyCoolQuest)
    
  • Support for binding to an anonymous/generated ObjectReference
    NameOfScript $Object
    

    Objects are ALWAYS placed in the WEMerchantChests cell. This is not configurable.

  • Support for binding to a generated ObjectReference of a specified base Form ID
    NameOfScript $Object(0x7)
    
  • Support for binding to a generated ObjectReference of a specified base Editor ID
    NameOfScript $Object(FoodSweetroll)
    
  • Support for determining what to bind to automatically based on script extends
    NameOfScript
    
    scriptName NameOfScript extends Quest ; Anonymous Quest
    scriptName NameOfScript extends Actor ; Player
    scriptName NameOfScript extends ObjectReference ; Anonymous Object
    scriptName NameOfScript extends CustomType ; CustomType parent(s) checked
  • Nothing is configurable

v1 - Easy Papyrus Scripts!

18 Dec 20:40
Compare
Choose a tag to compare

v1

The goal for v1 is to be as minimal as possible:

  • Bindings are defined in Scripts\Bindings\
  • Each file should contain 1 line per desired "binding" (attach script to something)
  • Support for binding to objects by Form ID
    NameOfScript 0x14
    
  • Support for binding to objects by Editor ID
    NameOfScript dlc1serana
    
  • Support for binding to the Player (as an Actor Form, not a ReferenceAlias)
    NameOfScript $Player
    
  • Support for binding to an anonymous/generated Quest
    NameOfScript $Quest
    
  • Support for binding to an anonymous/generated Quest with a provided editor ID
    NameOfScript $Quest(MyCoolQuest)
    
  • Support for binding to an anonymous/generated ObjectReference
    NameOfScript $Object
    

    Objects are ALWAYS placed in the WEMerchantChests cell. This is not configurable.

  • Support for binding to a generated ObjectReference of a specified base Form ID
    NameOfScript $Object(0x7)
    
  • Support for binding to a generated ObjectReference of a specified base Editor ID
    NameOfScript $Object(FoodSweetroll)
    
  • Support for determining what to bind to automatically based on script extends
    NameOfScript
    
    scriptName NameOfScript extends Quest ; Anonymous Quest
    scriptName NameOfScript extends Actor ; Player
    scriptName NameOfScript extends ObjectReference ; Anonymous Object
    scriptName NameOfScript extends CustomType ; CustomType parent(s) checked
  • Nothing is configurable