Jump to content

[MOD] SurvivalKit plugin system 0.01 (Alpha 7.5 b1)


DerPopo

Recommended Posts

Hello survivors,

 

Here's an update of my plugin system for 7 days to die.

It allows to load multiple plugins into the game instead of modifying Assembly-CSharp.dll and you don't have to update the plugin after each patch.

 

I have put a torch flicker remover plugin into the plugin folder.

 

Note that you aren't allowed to reupload it (or modificated versions of it) without my permission. An exception is the No Torch Flicker plugin.

You can download it here :

Click me

Instructions are located in the readme.

 

Here is a documentation and an example plugin source code for people who are interested in making plugins.

 

Have fun!

Link to comment
Share on other sites

Thanks DerPopo - this is great. :)

 

Would be great if the other modders (Red/Grim/etc) make their mods in this Mod.dll format - so that we can just add all the wanted individual mods to our folder easily. :)

 

- - - Updated - - -

 

Is this going to ( or is ) similar to bukkit for Minecraft?

 

At this point, this just means that you no longer have to replace the full Assembly_CSharp.dll to use a mod. The problem with this method is/was, that if someone makes Mod A and someone makes Mod B, that you couldn't combine them and use both at the same time, since you had to overwrite the same DLL-File.

 

Now, you can just add ModA.dll and ModB.dll to the folder, and it will use both mods.

 

This does not work server side yet (I assume), since these files are NOT forced/pushed from server to client. So it's not comparable to bukkit at this point. That's probably something TFP's need to change in their coding before it can be implemented.

Link to comment
Share on other sites

It does work for servers as servers also use Assembly-CSharp. There aren't many client features right now.

I also automized Assembly-CSharp-patching so it won't take 5 years until an update is released.

 

That's what SurvivalKit currently supports :

  • EntityMoveEvent (not working properly)
  • SetBlocksEvent (if you cancel it on a server, the client that sets the blocks still sees the blocks)
  • TorchFlickerUpdateEvent (torch light changes will only work if it's cancelled)
  • ProcessPacketEvent (when the server received something from the client, example : a SetBlocks packet, it will also fire SetBlocksEvent)
  • ReadPacketFromBufEvent (not cancellable, used after the server read the packet)
  • RPCEvent (when an RPC is received from server, example : RPC_ChatMessage, if you cancel it, you won't see a chat message from another player)

Link to comment
Share on other sites

Thanks DerPopo - this is great. :)

 

Would be great if the other modders (Red/Grim/etc) make their mods in this Mod.dll format - so that we can just add all the wanted individual mods to our folder easily. :)

At the moment it does not cover a lot of functionality. Although I'm sure with the way DerPopo has been building it, he'll cover a lot more. The current version covers some common areas some people may want to touch.

 

You are correct in that what you would like of pushing mods to clients is not a function of DerPopo's mod (yet). I said yet as the way he is going I imagine if the client and server were both running his mod he could code it to push any Mods loaded on the server. It would still require both the client and server to run it, but I could see that coming.

Link to comment
Share on other sites

It does work for servers as servers also use Assembly-CSharp. There aren't many client features right now.

I also automized Assembly-CSharp-patching so it won't take 5 years until an update is released.

 

That's what SurvivalKit currently supports :

  • EntityMoveEvent (not working properly)
  • SetBlocksEvent (if you cancel it on a server, the client that sets the blocks still sees the blocks)
  • TorchFlickerUpdateEvent (torch light changes will only work if it's cancelled)
  • ProcessPacketEvent (when the server received something from the client, example : a SetBlocks packet, it will also fire SetBlocksEvent)
  • ReadPacketFromBufEvent (not cancellable, used after the server read the packet)
  • RPCEvent (when an RPC is received from server, example : RPC_ChatMessage, if you cancel it, you won't see a chat message from another player)

 

Completely amazing release. Thanks again for your work.

BTW - I liked this quick summary. You should add a quick summary like this into the documentation on the next release.

 

I'd +rep you but I need to spread some before I can do that again.

Link to comment
Share on other sites

I can see the startings of mods from this :D I made several big mods for MC utilizing bukkit... Starting with the rpcevent, you can take a command input /command and thus not repeat it to other clients IE a read from the user.. The set block event will be very important for lot protection once the ability to modify blocks from serverside is added. IE if there is a command to remove block at X Y Z and make it a pick-up-able block, that would bypass the fact that once client sees a placed block and others dont. Once the server sends command to remove block there, the placed block client will still see it removed, and then all clients will see a pickup-able block..... Can't wait till next version :D I will be grinding out mods soon enough!

Link to comment
Share on other sites

Here is a small bugfix update.

Note that you aren't allowed to reupload it (or modificated versions of it) without my permission. You are allowed to upload this to a gameserver as long as it isn't public.

 

  • Plugins now get disabled when leaving a game (before GameManager.Cleanup()).
  • A cancelled SetBlocksEvent now also resets the blocks for clients immediately.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...