Adding Frostburgh to Darkflame Lego Universe
I run a private Darkflame Lego Universe instance for myself. There are instructions out in the wild for adding the seasonal map Frostburgh. Here are my steps for the docker-compose based setup that I use, to get Frostburgh as a playable and visitable map.
-
Download his asset.
This is from url https://www.mediafire.com/file/a04fq7yah3fbpst/frosty_22Jan24.zip/file. I had to use a browser because that is some landing page and not a direct link.
$ sha256sum frosty_22Jan24.zip 39ed16b1b1616c21dcd0691a8bc6edb53260cfd195c84bd4dcf6466f094d5132 frosty_22Jan24.zip
-
Convert original fdb to sqlite using https://fdb.lu-dev.net/
$ ll total 56784 -r--r--r-- 1 bgstack15 bgstack15 42140012 Nov 26 2011 cdclient.fdb -rw-rw-r-- 1 bgstack15 bgstack15 16003072 Nov 8 2024 cdclient.sqlite $ sha256sum * 875d887f806de7c3e0a9c3974f11dc2d5375d3ecfa3b5d3be5314d3da34b3aa4 cdclient.fdb 8f6ca2963ac3f33e23e5d38eed62f1795dc7d96aed084ea7fa97fb18ad574681 cdclient.sqlite
-
run FROSTY.sql
This is where I diverge minorly, because on GNU/Linux it's easy to redirect input and run the queries that add the relevant parts to the database. After extracting the zip file, run the queries.
$ <FROSTY.sql sqlite3 cdclient.sqlite
-
convert sql back to fdb
Use the same webpage to get it back. My directory now looks like:
$ sha256sum cdclient.fdb* bcb9cabb8274c1fcc0918115268e068b114b51fccbbc7d7cbed1b0810bfd854c cdclient.fdb 875d887f806de7c3e0a9c3974f11dc2d5375d3ecfa3b5d3be5314d3da34b3aa4 cdclient.fdb.orig
-
Update client files
-
Update locale.xml
On the client, manually update the locale/locale.xml with the contents of the locale.xml.txt from the zip. Add these
<phrase>
objects where they obviously go, below the last</phrase>
, above the<fonts>
. -
Update res directory
Copy the res/ directory from the expanded zip to the client directory. This will overwrite a few files.
cp -pr res/ ~/.wine-lego/drive_c/lego-universe-client/res/
-
Update cdclient.fdb
Replace the cdclient.fdb with the converted one from step 4.
-
-
Update server files
-
Server locale.xml
Take that client-updated locale.xml and place on server's client/locale/locale.xml file.
-
Update res directory
Copy the from-zip res/ directory to server's client directory.
~/darkflameserver/client$ 7za x frosty_22Jan24.zip res
-
Update CDServer.sqlite
I had updated CDServer.sqlite previously to fix a unicode eror for the Nexus dashboard admin mail function. So I also did this to the server's server/res/CDServer.sqlite:
<FROSTY.sql sqlite3 ~/darkflameserver/server/res/CDServer.sqlite
Thankfully the server uses sqlite so we do not need to convert this back to fdb.
-
Prepare the launchpads
I had to add to my docker-compose file container darkflameserver the volume entry:
- ./server/vanity:/app/vanity/
And then prepare it on my local filesystem from the default built-in ones.
sudo docker cp da59f6c5e6c4:/app/vanity ~/darkflamserver/server/
And then fix file permissions. And the format appears to be different now for objects in the vanity dev-tribute.xml. I found https://github.com/DarkflameUniverse/DarkflameServer/tree/v2.2.0/vanity which shows an NPC.xml which was indicated to be modified. Those contents now exist in dev-tribute.xml:
<object name="Nimbus to Frostburgh" lot="12442"> <locations> <location zone="1200" x="-362.17" y="290.31" z="209.85" rw="0.92" rx="0.0" ry="-0.38" rz="0.0" /> </locations> </object> <object name="Frostburgh to Nimbus" lot="12460"> <locations> <location zone="1260" x="-668.58" y="569.1109" z="629.85" rw="0.974" rx="0.0" ry="-0.22" rz="0.0" /> </locations> </object>
-
Now, restart the server and client. After all that I was able to visit Frostburgh from the launchpad placed near the launchpad to Starbase 3001 in Nimbus Station!
Screenshot of the new launchpad to Frostburgh:
Perhaps it would be easy to update the xml file around the holiday season to disable the launchpad, I don't plan on doing that. I guess Frostburgh is here to stay!