Plug-in manager

  • I understand it is way too early for implementing anything of this kind, but I'll start venting the idea, so that it does not fall through...


    A plug-in manager would be nice to have, tentatively with the following basic functions:


    *) list of all installed plug-ins, possibly with title, version and contact URL / e-mail of the author
    *) choice to enable / disable each plug-in (without actually uninstalling it)


    In single-player, it could be an option in the top menu (parallel to "Single Player" / "Multiplayer" / ... options) or of the "Settings" dialogue box(es). I believe the requirement to be out of any world in order to change the status of a plug-in would be perfectly acceptable.


    With a dedicated server it would be probably more complex, but a way to enable / disable individual plug-ins without restarting the server would be great.


    P.S.: I think it is better to keep this purely local functions separate from other functions which would access external resources, like a plug-in downloader/installer. To discuss the latter, it would be better to open a separate thread.

  • Hi Miwarre,


    Good idea to branch this off the other discussion. This really is a subject on its own. I was thinking of a plugin manager in terms of handling installing and distribution but a plugin manager should also offer a way to enable/disable a plugin. I'm almost positive this has not been brought up before so kudos to you :)


    I'm sure Red51 already have implemented some kind of process manager to handle the plugins, each plugin would have to be threaded already. So maybe it would be possible to load/unload a plugin while game is running. This might add to complexities to us as plugin developers but it would be an excellent feature. I'd love to hear Red51 chime in on this. I'll nudge him right now on addressing this. I know he's been discussing internally yesterday about the finalized form of plugin implementation and many of our concerns we also brought up (e.g subfolders) did come up. He should be making an official announcement soon so I'll give him a heads up :)

  • A plugin manager is definitely a nice idea. Especially being able to enable/disable plugins without uninstalling them would be quite useful. This way people can also verify if the plugin was "installed" correctly ;)
    Having something like this in the main menu is also a comfortable for users who want to use plugins in singleplayer.


    Being able to enable/disable plugins while the game or the server is running is more complicated, but we will keep it in mind. But at least the ability to reload a plugin (without having to restart the server) is on our list^^

  • Hi Red,


    I would think that in the case of the server, a client should not be disabling a server-side plugin. The admin of the server should already have tested plugins on the server to ensure compatibility. A client disabling a server plugin could be seen as cheating or just not adhering to the experience of that server. For example, I should not be able to write something to enable an action that a server explicitly denies. I shouldn't be able to write a 3d model plugin client side to inject objects into a server unless the server is allowed (how would permissions for an event like that be handled?).. What happens if both client and server have a "compass" plugin loaded? Does the game load that twice? I honestly haven't used any plugins on client side, only server side so I'm unaware of the behavior currently with LUA scripting. All the ones I've seen have been implemented server side only.

  • Thanks to @red51 for his reply.


    For the dedicated server, I share @zfoxfire concerns and fully agree with his cautions: the possibility of plug-in enabling / disabling should not be in the hand of 'regular' players and probably it should not even be in the game at all. It could be an external command, via some kind of console (not the in-game console) or RCON, accessible only to the server owner.


    A plug-in reload feature would already go noticeably in this direction, though.



    (As an aside, commenting on @zfoxfire observations, as far as I understand it, there are no client-side plug-ins; plug-in are only loaded server-side; even if the user has some plug-ins installed in his local RW copy, they are loaded when a local world is entered (i.e. when the local, implicit, 'server' is started), but are ignored when going multi-player; at least, this is how the current LUA framework works and I assume it would be the same for the Java framework).

  • @zfoxfire: Oh, no no, don't get me wrong, the client will never be able to disable a server-side plugin. Otherwise this could completely break gameplay (as you mentioned, basically like "cheating", but even worse) and may have other unforeseen effects. In a nutshell: It would be the ultimate worst case scenario :S
    With a plugin manager, only the server admin can enable/disable plugins on his server (not sure if we even implement a remote tool, might be worth to consider [maybe something for the RCON tool], but originally I was only thinking about a local tool), and the client will only be able to enable/disable plugins for singleplayer (every plugin out there can be used in singleplayer by putting it in the "plugins" folder in the game directory, but of course they will be ignored when joining a multiplayer server) ;)

  • Actually you can create a scripts folder on your local copy and install scripts for local game. I am not sure if this local is ignored when you enter a server game. I would assume so.


    I am ok with scripts managed locally as for local games only but as I understand the way Rising World is going is that the plugins are loaded into the server and any client connecting uses those plugins too.


    This is opposite from the minecraft approach where mods have to be installed on both local and server copy before a connection will occur... this is a bad approach but might be due to how hacking mods are installed. I do not know what the behavior is for vanilla minecraft mods.

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!