Page 1 of 2

Ingame Mod Manager

Posted: Thu Jul 26, 2012 11:21
by Jeija
This video says it:
YouTube

Image


The modmanager is coded in Lua and C++.
Using lua makes it more customizable (it wasn't really easier to code).
Every subgame should contain a modmanager.lua file that contains the functions to contact the "central server" (modlist server). Therefore the modmanager is "branded" by the selected game!

Current functions are:
- Install a mod
- Remove a mod
- Search mods

Todo:
- Search modlist (DONE)
- (Auto-)Update
- Your feature Requests

It has additional dependencies:
- luazip
- luasocket

(On arch they are available in the official repo)

Admin Tools
I also wrote a lua script that helps game admins create a modlist. By default the script uses a ftp server, but it should not be too hard to change it to http.

Plans
It would be awesome if people create their own games with their own modmanager.lua + central server. I was not planning to make a mod repo server myself.
The final goal: No more topics like "HEEEEEEELP PLSSSS!!!!!! CANNOT INSTALL MODSSSS!!!"

Download:
GitHub
GitHub - Admin tools
Just compile it like a normal minetest with the dependencies installed.
This is NOT a mod, you need to compile it.

Mind this is still in an early phase.
What features would you like to have?

Posted: Thu Jul 26, 2012 11:59
by sfan5
Nice!

Posted: Thu Jul 26, 2012 12:15
by mauvebic
pretty nice, though i have a feature request: when you remove a mod, the mod manager should create dummy nodes for the unknown nodes and run an abm to remove them automatically. (or something like that)

Posted: Thu Jul 26, 2012 12:52
by Stef
for windows pleas? maybe also an ingame texture pack changer

Posted: Thu Jul 26, 2012 13:08
by Jeija
I don't use windows and therefore don't know how to use it (in the way of compiling, dependencies...)
Maybe someone else can compile it for you.
sfan5?

Posted: Thu Jul 26, 2012 14:29
by sfan5
I provide Windows Builds now:
Go check them out at http://sfan.sf.funpic.de/minetest-builds/

Posted: Thu Jul 26, 2012 14:30
by Calinou
Wow, awesome. :P
Should be in the default/official game.

Posted: Thu Jul 26, 2012 14:36
by sfan5
I dont think celeron55 would add it :P

Posted: Thu Jul 26, 2012 15:00
by u34
Whats about a ingame multiplayer browser for various server-IP's ?

Posted: Thu Jul 26, 2012 15:01
by Jeija
I'd like to do all of these things, but I'd also like to make sure that it gets merged later on.

Posted: Thu Jul 26, 2012 18:51
by dannydark
Nice work Jeija, downloading now.

How about adding an auto-refresh feature for the mods list? or maybe make it optional to have the list auto-refresh with a checkbox maybe?

It would be nice to see this merged upstream.

Posted: Thu Jul 26, 2012 18:53
by Jeija
Everyone please mind that the windows version does NOT work yet!

@dannydark:
Auto-refresh would be nice, but refreshing takes like 1 second, and that can be annoying. It already has modlist caching so that it does not have to refresh every time it needs the modlist.

Posted: Fri Jul 27, 2012 05:14
by Jeija
I'd like to push this, but it should be 100% working.
If someone knows a little using cmake and porting this, please help!
I have to add luazip and luasocket so that they compile on windows.

Posted: Fri Jul 27, 2012 11:32
by dannydark
Jeija wrote:I'd like to push this, but it should be 100% working.
If someone knows a little using cmake and porting this, please help!
I have to add luazip and luasocket so that they compile on windows.
help with a windows build? or just help in general?

I will try doing a windows build when I get home from work tonight, I tried it out on my linux desktop yesterday so didn't have any problems, although I tend to use windows as my main OS so I will need to compile it for that anyway.

Posted: Fri Jul 27, 2012 12:43
by Jeija
Some help for the windows build would be awesome!!!
I can do everything apart from that, but I will wait with new features until the windows build
suceeds and possibly help you building minetest with luasocket + luazip (maybe also luafilesystem) on windows (although I do not know that much about cmake)

Posted: Sat Jul 28, 2012 10:21
by Jeija
Did it work, dannydark?

Posted: Sat Jul 28, 2012 13:53
by dannydark
Sorry Jeija, didn't get chance to compile last night had a call out to fix some clients servers that experienced system failure after one of there developers did a hard reboot on them during updates ¬_¬

I've got the servers back up and running, just need to restore there websites from backup and then I should be able to have a look at compiling this for you.

Should be in the next couple of hours hopefully.

Posted: Sat Jul 28, 2012 14:45
by Jeija
:D

Posted: Sat Jul 28, 2012 16:28
by dannydark
Is the mod server down at the moment? keep getting "Error: invalid server reply" when trying to fetch the mods list.

Posted: Sun Jul 29, 2012 10:36
by Jeija
So did it compile? [k]Did you add luasocket and luazip to cmake?[/k]
No, the mod server is not down. Does it show a lua error in the console? (zip could not be found or sth like this)

Posted: Sun Jul 29, 2012 11:57
by cornernote
Hi Jeija,

I downloaded, then compiled, then ran (on the surface everything seems to work).

I clicked "Refresh", and this is what is looks like:

Image

Posted: Sun Jul 29, 2012 13:58
by Jeija
Jeija wrote:Everyone please mind that the windows version does NOT work yet!
-.- of course it doesn't work yet. Dannydark is working on the problem, trying to add luazip and luasocket to minetest.

Posted: Sun Jul 29, 2012 16:44
by dannydark
No errors other than that, I've manually compiled luasocket and luazip to test, I will get them added to cmake and will send a pull request on github when I get home in about an hour.

EDIT: I think I know why celeron55 probably won't include this upstream, as it adds quite a few more dependencies, I will keep going ahead adding them in, but was just thinking would it not just be easier to link to the pre-compiled windows binaries needed for this?

The reason I say that is because the extra lua libraries and there dependencies are not actually required to build minetest with the mod manager...however, they are obviously needed for it to function.

I will see if I can come up with a better way to do this for windows, but at the moment I'm not really sure what the best approach would be for this, although saying that I'm not all that sure the pre-compiled binaries work properly as I now seem to be getting a segfault when trying to refresh the mod list ¬_¬. Will keep you updated.

EDIT2: Here are the links to the windows files if anyone wants to try them:

LuaZip: http://files.luaforge.net/releases/luaz ... -lua51.zip
LuaSocket: http://files.luaforge.net/releases/luas ... 32-vc8.zip

Posted: Mon Jul 30, 2012 00:08
by cornernote
Does it HAVE to be part of minetest? Perhaps a 2nd exe to manage mods wouldn't be such a bad idea. Could also double up as a server finder/connecter.

Posted: Mon Jul 30, 2012 05:44
by Jeija
It is not part of minetest (only the GUI, but that has to be part of it). All he rest is in lua.
Why do you think there is an advantage when using a second exe? It needs the librarys anyway, the lua script needs them.