TShock
TShock copied to clipboard
Rewrite SSC
- [ ] Allow for Serverside features to work (jump pads or w/e)
- [ ] Allow for the server to control all aspects of the game
- [ ] Allow server owners to determine what the server controls
- [ ] Server side inventory
- [ ] Server side characters
- [ ] Server side load outs that can be applied at will
- [ ] Server side character can be saved to local file.
:+1:
So many work for 5.0! Good luck, @MarioE!
One of the things discussed in #1100 but not really highlighted as the primary issue is the ability to have an effectively passive SSC system, where the server sends and receives character data back and forth between server and client. This would enable owners to have SSC "enabled" but being permissive of existing inventories and flushing changes in server inventories back to characters as time progresses.
This can be accomplished by sending packet 7 to toggle SSC on and off and sending the inventory data back and forth. Alternatively, if this is a big issue we want to implement, yor seemed to imply that we could ask nicely for a new packet the exclusively toggles SSC on and off.
Thanks for addressing the issue we've discussed in PM @nicatronTg . I was going to write a comment but you ninja'd me and pretty much said what I've had on my mind. I remember SSC used to be called "server sided inventories" back in the days (SSI) and after a while it got changed to Server Sided Character. It would be awesome to allow servers to have SSC without necessarily having SSI because there are many great plugins which require access to modify TPlayer variables. Right now the two things are tied together. This can be accomplished as @nicatronTg described. I've personally used this method many times, and there is also a plugin in our resource manager by @ProfessorXZ If I'm correct, which uses this method, and it runs without issues. Of course it would be less hacky if we could convince the Terraria devs to introduce a new packet for this, or to modify SSC. (Maybe separate the things, have SSC and SSI)
I think we should break down the concepts in SSC and what we would need to do to make it something flexible.
- [ ] Allow for Serverside features to work (jump pads or w/e)
- [ ] Allow for the server to control all aspects of the game
- [ ] Allow server owners to determine what the server controls
- [ ] Server side inventory
- [ ] Server side characters
- [ ] Server side load outs that can be applied at will
- [ ] Server side character can be saved to local file.
The question quickly becomes, how much of this can be in tshock and how much should be in a plugin...
I support the bullet points @DogooFalchion outlined and have added them to the top of this issue.