shevy's (rarely updated) installed BG2 mods
shevy123456
Member Posts: 479
I have finally (recently) finished porting all my old installation "guides", if you
can even call them that, for BG2EE to a new format (.yml / YAML). As I did so, I also
put my current installation list onto github, as-is.
The link to this repository can be found here:
https://github.com/rubyFeedback/Baldurs_Gate_Data_Collection
This tiny repository contains about four files; I will explain the use case
for three of those files next. Without further ado ...
1) The first file is called:
array_mod_installation_order.yml
It could be seen remotely, as raw file, here:
https://raw.githubusercontent.com/rubyFeedback/Baldurs_Gate_Data_Collection/refs/heads/main/array_mod_installation_order.yml
Naturally you can simplify this name of the file, to, say, something like
"mod_installation_order.yml". I just like the leading "array_" part, as
my poor brain prefers simplicity everywhere.
What this simple file contains is basically a simple Array. This Array contains
a listing of all the BG2 mods I install, in the seen order - meaning, what is
shown first in that .yml file, will also be installed first. So it just goes
through that Array from start to finish - easy peasy.
What kind of logic did I use for creating this order? Mostly this is by trial
and order, and what works best for me. For instance, I install cdtweaks (Tweaks)
last. Whereas I installed the graphical update mod first. The others are in
between. Not all of this may be the best way to install mods, but I found
that it works quite ok-ish for me nowadays. If I need to make a change then
I simply put the corresponding entry to another position in that .yml file.
The leading part "!ruby/symbol " is not needed; I only use it so I can have a
Symbol in the programming language ruby, at the time of loading the .yml file.
If you wish to re-use this or any other .yml file then you can most likely
just drop that leading part and just have an Array of mods to install (such
as if you re-create the logic or use your own logic for that in python, or
any other programming language).
So, that simple .yml file, kind of acts as an "array of pointers", in that
it points to the second file, which will be described next.
2) The second .yml file is called:
detailed_mod_installation_instructions.yml
Its raw content can be found here:
https://raw.githubusercontent.com/rubyFeedback/Baldurs_Gate_Data_Collection/refs/heads/main/detailed_mod_installation_instructions.yml
As you can see, it currently contains 2245 lines. I started this about three
years ago or so, but not as a .yml file, just a simple text-file. Recently
I improved the way how I updated and install mods, so I also decided to
put all information into a more structured .yml file. That way I can more
easily - and automaticaly - update mods and so forth. My end goal is to
actually have a batch-installer too, but I don't know weidu.exe well and
I am a bit scared of it, but perhaps in the future that may work.
Now let me explain a few things about that second .yml file.
This second .yml file contains information about different repositories,
usually github, but other mod authors use other platforms. Lava uses his
website, morpheus too (and Dropbox) and so forth. For me personally, I
find github the most convenient though, largely due to "git clone URL".
So most of the code I wrote here, also taps into this primarily - but
the .yml file itself is agnostic, meaning it only provides data really;
any programming language could use it. And, you could use this too,
even if you do not use .yml - you can have a look if you are perhaps
missing some mods, and there are entries such as:
github: https://github.com/Gibberlings3/EET/ # or https://github.com/CamDawg/EET
For the EET mod, as one example. My thinking here was that this may be
interesting to other people, perhaps even newcomers, so they can have
a look, decide on their own, test things and so forth. Not all mods may
work very well for your use case(s), so you need to decide on your own
what to play and what to skip. If you only want to test a few mods or
so, then I can, for instance, recommend starting with simpler mods,
such as Lava; or more complete ones, such as the Dusk NPC / Fall NPC
mod. Simpler mods may be easier to get started; most NPC mods are quite
simple, so these can be an easy start. Mods such as the graphical overhaul
mod are, in my opinion, also great - I notice the enhanced lighting effects
in many areas. For instance, Umar Hills but also the main city, so this
mod is also highly recommendable.
Note that the .yml file currently has some wrong, outdated comments, so
do not rely 100% on anything written there. I am aware of these outdated
comments, but checking all of these for errors right now, is taking too
much time away. At a later point I may improve on it, but for now I just
want to publish that as-is, and move on (and start my next run too,
which I will do after having finished writing this thread).
Last but not least, the .rb file:
3) The raw .rb file can be seen here:
https://raw.githubusercontent.com/rubyFeedback/Baldurs_Gate_Data_Collection/refs/heads/main/prepare_mod.rb
This is currently not very useful because the rest of the code is not
published (I used to have it on rubygems.org, but I abandoned rubygems.org
a while ago; takes too long to explain, I will eventually republish
everything on github, but I can not make any promise when). So, even
though this .rb file is not functional as a standalone, I just wanted
to showcase and explain it a bit - perhaps others may wish to also
make use of a .yml file and may wish to implement the logic by themselves.
This should be trivial with e. g. python and I think many people know
python these days (I use both ruby and python, but usually I start with
ruby first).
So how to make use of those two .yml files?
The first one I currently don't use in a .rb file, as that idea was to
batch-install those mods, and I don't have that part yet; need to find
out how to do this best on windows. The second .yml file, the large
one, though, I do use to batch-update all mods.
The idea is mostly to look at the entry:
latest_release_at: https://github.com/Gibberlings3/EET/archive/refs/tags/v14.1.zip
Which should contain the URL to the downloadable file. I then simply
use "wget" via a system() call, to download that remote URL.
I also create a special local directory. This is where I put the download
into, via ruby. For instance, the GoneNuts mod, I will have a directory
such as:
057_GoneNuts_version_2.1.3_published_on_the_30.04.2026/
The leading number part is not necessary; I only use it so that I know
what to install first, the moment I look at the directory (on windows).
The other information is mostly to keep track of the version; and when
the mod was last published or changed or downloaded. Other people may
wat to use another variant of course, but I like this long name. It
instantly tells me what I want to know or need to know.
That's it for the most part. I may be unable to update this for some
months to come, but I think perhaps once or twice a year I may check
on it, depending on how many new mods may be released then perhaps
even sooner. I may eventually publish all the remaining .rb code for
those who are lazy and just want something finished, but this is on
my todo list. For now I am going to test this current installation
on my next run this weekend. \o/
(On my todo list I also have the create-a-BG2-mod; no clue when I have
enough time to commit to it, it will be a gnome-centric mod for the
most part, starting with a gnome NPC, but I will first write down
everything locally, before reading up on the code parts required by
the infinity engine.)
Edit: I forgot to mention, I also actually have more local "guides" too,
in case I forgot about a mod. This is initially written and stored in
an ancient .cgi file, but can be converted into a .html file (manually),
and has proper CSS and so forth - at the least for my use case. This
file is really huge though; I will polish it and then also publish it,
also as a standalone .html file. But I can not say when I will be
finished with this; the next months I have a rather annoying
schedule where I know I can not commit too much more time, so
this weekend and perhaps the next, may be the last I have available
for about four months or so, for playing games. Will commit to
this after that time, eventually. For now I am off to play BG2.
can even call them that, for BG2EE to a new format (.yml / YAML). As I did so, I also
put my current installation list onto github, as-is.
The link to this repository can be found here:
https://github.com/rubyFeedback/Baldurs_Gate_Data_Collection
This tiny repository contains about four files; I will explain the use case
for three of those files next. Without further ado ...
1) The first file is called:
array_mod_installation_order.yml
It could be seen remotely, as raw file, here:
https://raw.githubusercontent.com/rubyFeedback/Baldurs_Gate_Data_Collection/refs/heads/main/array_mod_installation_order.yml
Naturally you can simplify this name of the file, to, say, something like
"mod_installation_order.yml". I just like the leading "array_" part, as
my poor brain prefers simplicity everywhere.
What this simple file contains is basically a simple Array. This Array contains
a listing of all the BG2 mods I install, in the seen order - meaning, what is
shown first in that .yml file, will also be installed first. So it just goes
through that Array from start to finish - easy peasy.
What kind of logic did I use for creating this order? Mostly this is by trial
and order, and what works best for me. For instance, I install cdtweaks (Tweaks)
last. Whereas I installed the graphical update mod first. The others are in
between. Not all of this may be the best way to install mods, but I found
that it works quite ok-ish for me nowadays. If I need to make a change then
I simply put the corresponding entry to another position in that .yml file.
The leading part "!ruby/symbol " is not needed; I only use it so I can have a
Symbol in the programming language ruby, at the time of loading the .yml file.
If you wish to re-use this or any other .yml file then you can most likely
just drop that leading part and just have an Array of mods to install (such
as if you re-create the logic or use your own logic for that in python, or
any other programming language).
So, that simple .yml file, kind of acts as an "array of pointers", in that
it points to the second file, which will be described next.
2) The second .yml file is called:
detailed_mod_installation_instructions.yml
Its raw content can be found here:
https://raw.githubusercontent.com/rubyFeedback/Baldurs_Gate_Data_Collection/refs/heads/main/detailed_mod_installation_instructions.yml
As you can see, it currently contains 2245 lines. I started this about three
years ago or so, but not as a .yml file, just a simple text-file. Recently
I improved the way how I updated and install mods, so I also decided to
put all information into a more structured .yml file. That way I can more
easily - and automaticaly - update mods and so forth. My end goal is to
actually have a batch-installer too, but I don't know weidu.exe well and
I am a bit scared of it, but perhaps in the future that may work.
Now let me explain a few things about that second .yml file.
This second .yml file contains information about different repositories,
usually github, but other mod authors use other platforms. Lava uses his
website, morpheus too (and Dropbox) and so forth. For me personally, I
find github the most convenient though, largely due to "git clone URL".
So most of the code I wrote here, also taps into this primarily - but
the .yml file itself is agnostic, meaning it only provides data really;
any programming language could use it. And, you could use this too,
even if you do not use .yml - you can have a look if you are perhaps
missing some mods, and there are entries such as:
github: https://github.com/Gibberlings3/EET/ # or https://github.com/CamDawg/EET
For the EET mod, as one example. My thinking here was that this may be
interesting to other people, perhaps even newcomers, so they can have
a look, decide on their own, test things and so forth. Not all mods may
work very well for your use case(s), so you need to decide on your own
what to play and what to skip. If you only want to test a few mods or
so, then I can, for instance, recommend starting with simpler mods,
such as Lava; or more complete ones, such as the Dusk NPC / Fall NPC
mod. Simpler mods may be easier to get started; most NPC mods are quite
simple, so these can be an easy start. Mods such as the graphical overhaul
mod are, in my opinion, also great - I notice the enhanced lighting effects
in many areas. For instance, Umar Hills but also the main city, so this
mod is also highly recommendable.
Note that the .yml file currently has some wrong, outdated comments, so
do not rely 100% on anything written there. I am aware of these outdated
comments, but checking all of these for errors right now, is taking too
much time away. At a later point I may improve on it, but for now I just
want to publish that as-is, and move on (and start my next run too,
which I will do after having finished writing this thread).
Last but not least, the .rb file:
3) The raw .rb file can be seen here:
https://raw.githubusercontent.com/rubyFeedback/Baldurs_Gate_Data_Collection/refs/heads/main/prepare_mod.rb
This is currently not very useful because the rest of the code is not
published (I used to have it on rubygems.org, but I abandoned rubygems.org
a while ago; takes too long to explain, I will eventually republish
everything on github, but I can not make any promise when). So, even
though this .rb file is not functional as a standalone, I just wanted
to showcase and explain it a bit - perhaps others may wish to also
make use of a .yml file and may wish to implement the logic by themselves.
This should be trivial with e. g. python and I think many people know
python these days (I use both ruby and python, but usually I start with
ruby first).
So how to make use of those two .yml files?
The first one I currently don't use in a .rb file, as that idea was to
batch-install those mods, and I don't have that part yet; need to find
out how to do this best on windows. The second .yml file, the large
one, though, I do use to batch-update all mods.
The idea is mostly to look at the entry:
latest_release_at: https://github.com/Gibberlings3/EET/archive/refs/tags/v14.1.zip
Which should contain the URL to the downloadable file. I then simply
use "wget" via a system() call, to download that remote URL.
I also create a special local directory. This is where I put the download
into, via ruby. For instance, the GoneNuts mod, I will have a directory
such as:
057_GoneNuts_version_2.1.3_published_on_the_30.04.2026/
The leading number part is not necessary; I only use it so that I know
what to install first, the moment I look at the directory (on windows).
The other information is mostly to keep track of the version; and when
the mod was last published or changed or downloaded. Other people may
wat to use another variant of course, but I like this long name. It
instantly tells me what I want to know or need to know.
That's it for the most part. I may be unable to update this for some
months to come, but I think perhaps once or twice a year I may check
on it, depending on how many new mods may be released then perhaps
even sooner. I may eventually publish all the remaining .rb code for
those who are lazy and just want something finished, but this is on
my todo list. For now I am going to test this current installation
on my next run this weekend. \o/
(On my todo list I also have the create-a-BG2-mod; no clue when I have
enough time to commit to it, it will be a gnome-centric mod for the
most part, starting with a gnome NPC, but I will first write down
everything locally, before reading up on the code parts required by
the infinity engine.)
Edit: I forgot to mention, I also actually have more local "guides" too,
in case I forgot about a mod. This is initially written and stored in
an ancient .cgi file, but can be converted into a .html file (manually),
and has proper CSS and so forth - at the least for my use case. This
file is really huge though; I will polish it and then also publish it,
also as a standalone .html file. But I can not say when I will be
finished with this; the next months I have a rather annoying
schedule where I know I can not commit too much more time, so
this weekend and perhaps the next, may be the last I have available
for about four months or so, for playing games. Will commit to
this after that time, eventually. For now I am off to play BG2.
0