The weekly maintenance restart will happen on Wednesday, May 1st this week.
ago

[RELEASED] Server mod loader + priest + crops + seasons + server packs + bag of holding

Recommended Posts

17 hours ago, ago said:

The hitchingpost mod is basicly just a demo case of how new items and new vehicles can be added with the modloader. I don't actively develop it so it's not in the main distribution. I usually only push the zip when there are actual changes to the mod.

 

I don't suppose you know why the post appears as a bag?  I'm not asking you to fix it, but I'd just like to know if it is fixable. 

Share this post


Link to post
Share on other sites

If something shows as a bag it means you don't have the texture files on your client for the model. I believe for this to work you also have to have the client modloader installed on your client, and have the serverpacks.mod enabled. I don't use hitching post myself, so I am not positive though. But the serverpacks mod lets the server download needed files to the client, so it seems likely.

  • Like 1

Share this post


Link to post
Share on other sites
23 hours ago, Romen said:

If something shows as a bag it means you don't have the texture files on your client for the model. I believe for this to work you also have to have the client modloader installed on your client, and have the serverpacks.mod enabled. I don't use hitching post myself, so I am not positive though. But the serverpacks mod lets the server download needed files to the client, so it seems likely.

 

I'll give this a try.  Thanks.

Edited by Lichbane

Share this post


Link to post
Share on other sites

Would it be possible to have a couple additional configuration options for announcer mod?

 

- Ability to have the server broadcast when a player leaves the world (not logout)

- Ability to have the server broadcast when a player loses link (logsout)

- Ability to not have a GM character announced when they login

Share this post


Link to post
Share on other sites

I've been thinking about some better system for mod communication between Client and Server mods.

 

Currently, serverpacks and that new tooltip mod by @tmarchuk send messages to special channel tabs ":mod:whatever", which are filtered by the client side mods if those are present. However if the client side mod isn't present this will show up as a normal chat tab with gibberish in it. This is already pretty intrusive and will become even more annoying as more mods start to do that.

 

I'm thinking about a less annoying system that includes some kind of "handshake" when clients log in that lets server side mods know if the matching client side mod is installed and vice versa that will be non-intrusive if one of the sides is unmodded.

 

My current ideas:

  • Mods register "channels" for communication using some kind of API in the modloader during startup.
  • When a client logs in, the server will send a predefined message to the event tab. The message will be human readable, telling the user to get ***
  • If the user has the client modloader installed - this message is intercepted and the client responds with a list of registered mod channels, either using a special chat command or a new packet.
  • If the server receives that message it compares the list of channels reported by the client to the channels registered by server mods. Any matches are marked as "enabled" and the owner mod is notified. The server then sends another message to the client with it's own list of enabled channels.
  • If the client did not receive the predetermined message - it assumes that the server is unmodded and all channel functionality is disabled.
  • If the server did not receive the response with a list of channels - it assumes that the client is unmodded and all channel functionality is disabled.
  • Once a channel is enabled, mods can use some kind of API in the modloader to send messages across.
  • When registering a channel, mods provide a listener that will receive messages and notifications that a new player with a matching client side mod has connected.

I'm interested in writing the needed code if there's any interest in adding something like that to the modloaders.

 

  • Like 1

Share this post


Link to post
Share on other sites
23 hours ago, bdew said:

I've been thinking about some better system for mod communication between Client and Server mods.

 

Currently, serverpacks and that new tooltip mod by @tmarchuk send messages to special channel tabs ":mod:whatever", which are filtered by the client side mods if those are present. However if the client side mod isn't present this will show up as a normal chat tab with gibberish in it. This is already pretty intrusive and will become even more annoying as more mods start to do that.

 

I'm thinking about a less annoying system that includes some kind of "handshake" when clients log in that lets server side mods know if the matching client side mod is installed and vice versa that will be non-intrusive if one of the sides is unmodded.

 

My current ideas:

  • Mods register "channels" for communication using some kind of API in the modloader during startup.
  • When a client logs in, the server will send a predefined message to the event tab. The message will be human readable, telling the user to get ***
  • If the user has the client modloader installed - this message is intercepted and the client responds with a list of registered mod channels, either using a special chat command or a new packet.
  • If the server receives that message it compares the list of channels reported by the client to the channels registered by server mods. Any matches are marked as "enabled" and the owner mod is notified. The server then sends another message to the client with it's own list of enabled channels.
  • If the client did not receive the predetermined message - it assumes that the server is unmodded and all channel functionality is disabled.
  • If the server did not receive the response with a list of channels - it assumes that the client is unmodded and all channel functionality is disabled.
  • Once a channel is enabled, mods can use some kind of API in the modloader to send messages across.
  • When registering a channel, mods provide a listener that will receive messages and notifications that a new player with a matching client side mod has connected.

I'm interested in writing the needed code if there's any interest in adding something like that to the modloaders.

 

 

 

I like where your going with this.     A mod framework is long overdue.   And I think its getting to the point where we might have to settle on a player made API mod to act as a listener for external programs, DB's or other mods.     It would be nice to get a structured forum for Mods compatible with this new system as well.   I like the idea of what mods are supported by each version of CC's releases as well.   

I think it almost takes a committee to do this sort of project as one person would certainly burn out as a structured MOD community would bring more attention to new development projects. . 

Share this post


Link to post
Share on other sites

https://github.com/ago1024/WurmServerModLauncher/releases/tag/v0.17

Version 0.17

  • Trait handling for creature mod adjusted to account for added traits 23, 24 and 25
  • Build system changed to maven

  • individual mod packages with property files

  • server-modlauncher distribution package contains upgrades to the mod jars but not the mod property files

What do the last two lines mean: To add a mod you'll extract the individual mod package (e.g. spellmod.zip) into the dedicated server folder. This will add everything for the mod like jars and properties. To update the modloader and any of my mods just extract server-modlauncher-dist-version.zip over the dedicated server folder. This will just update the jars and keep all configurations untouched.

 

The maven build essentially allows me to setup a repository with the modloader and hopefully even  the server jar so other modules can use those as dependencies.

 

The traits for breed animals can now be controlled by the mod. By default all newborn creatures get some traits assigned up to trait 26. This excludes some of the horse traits from creature mod.

Edited by ago

Share this post


Link to post
Share on other sites

https://github.com/ago1024/WurmServerModLauncher/releases/tag/v0.18

Version 0.18

  • all setters in CreatureTemplateBuilder are public
  • main mod interface renamed to WurmServerMod

To install the modloader or to upgrade an existing installation download server-modlauncher-0.18.zip
To install a mod download the package for the mod.

 

The change from WurmMod to WurmServerMod should be transparent for existing mods. When the client modloader and the mods are updated in the same way it'll be possible to detect client mods loading in the server and vice versa.

Share this post


Link to post
Share on other sites

Are you accepting any donations? Thank you for all your work ago! :)

Share this post


Link to post
Share on other sites

Problem Solved and I be king of silly mistakes....it helps when you implement the Initable interface. Of coarse the init() and PreInit() section won't run if that isn't done. I deleted the stuff I originally wrote.

Edited by joedobo

Share this post


Link to post
Share on other sites
On 4/25/2016 at 3:12 PM, bdew said:

I've been thinking about some better system for mod communication between Client and Server mods.

 

Currently, serverpacks and that new tooltip mod by @tmarchuk send messages to special channel tabs ":mod:whatever", which are filtered by the client side mods if those are present. However if the client side mod isn't present this will show up as a normal chat tab with gibberish in it. This is already pretty intrusive and will become even more annoying as more mods start to do that.

 

I'm thinking about a less annoying system that includes some kind of "handshake" when clients log in that lets server side mods know if the matching client side mod is installed and vice versa that will be non-intrusive if one of the sides is unmodded.

 

My current ideas:

  • Mods register "channels" for communication using some kind of API in the modloader during startup.
  • When a client logs in, the server will send a predefined message to the event tab. The message will be human readable, telling the user to get ***
  • If the user has the client modloader installed - this message is intercepted and the client responds with a list of registered mod channels, either using a special chat command or a new packet.
  • If the server receives that message it compares the list of channels reported by the client to the channels registered by server mods. Any matches are marked as "enabled" and the owner mod is notified. The server then sends another message to the client with it's own list of enabled channels.
  • If the client did not receive the predetermined message - it assumes that the server is unmodded and all channel functionality is disabled.
  • If the server did not receive the response with a list of channels - it assumes that the client is unmodded and all channel functionality is disabled.
  • Once a channel is enabled, mods can use some kind of API in the modloader to send messages across.
  • When registering a channel, mods provide a listener that will receive messages and notifications that a new player with a matching client side mod has connected.

I'm interested in writing the needed code if there's any interest in adding something like that to the modloaders.

 

 

Submitted a PR with the proposed system: https://github.com/ago1024/WurmServerModLauncher/pull/14

 

Any comments are welcome.

 

  • Like 1

Share this post


Link to post
Share on other sites

I see what you are doing, and I appreciate the attention to detail. I just have to say though, how tedious to go back through all the mods and change 1 word from WurmMod to WurmServerMod hahahaa, anyway I do appreciate the organization and proper referencing work. Keep up the good work, I can deal with it lol :D

Share this post


Link to post
Share on other sites

Should 0.19 work with 1.0.0.5  ? 

 

Edit:  Never mind. Up on 1.0.0.6   Chained mod is broken.   All working fine now.

 

Edited by razoreqx

Share this post


Link to post
Share on other sites

the link to the version 0.19 is not working ago

have anyone a idea if the new serverversion is not working with modloader 0.18?

i have massive problems since yesterday, my server dont like to run on citadel

Share this post


Link to post
Share on other sites
1 minute ago, Eject said:

the link to the version 0.19 is not working ago

have anyone a idea if the new serverversion is not working with modloader 0.18?

i have massive problems since yesterday, my server dont like to run on citadel

 

Your problem has been written in red...

 

 

What problems do you run into??

Share this post


Link to post
Share on other sites

it seems you are right sklo =)

i bought a second server days ago for linking maps. the new server is still on version 1.0.0.5 without mods, but also not running since yesterday

maybe i will go to another hoster or to hetzner if they cant fix this problems.

now i thought, maybe its because the new modloader version that i havent installed (still 0.18 on the machine)

Share this post


Link to post
Share on other sites

So you can't start the server up anymore?

 

Are you using the surface mining fix MOD??

Share this post


Link to post
Share on other sites

yes i use this mod...this is also the mod with the surface mining pickaxe or?

, but they renamed the mod-folder to modsbackup for testing without mods, but nothing happens

Share this post


Link to post
Share on other sites

yea i see now, serfacemining fix is also isntalled, shall i delete it?

Share this post


Link to post
Share on other sites

ok, the link was now working and i installed the new modloader self, now all is working, thank you =)

and thanks to citadel who forgot to update the modloader lol

Share this post


Link to post
Share on other sites

Found a bug. 

 

Players who are on other clusters when the servers were patched to 1.0.0.6 that logged out before I patched to the new version of the modloader   v0.19 did not seem to get the packs correctly. 

We tested having them travel back to the login server, log out and log in, then travel back to the cluster appears to fix the issue.

There appears to be a problem with getting packs delivered down to these players.

I noticed in the logs when they hit the login server their session ID's are changed early in the login process.  I assume this is the player being moved to the correct cluster they logged off on .

We never encountered these issues with previous versions. 

Ive double and triple checked the configurations.   They're the same as they were in previous releases

 

 

Thoughts?

Edited by razoreqx

Share this post


Link to post
Share on other sites

Are you sure your network/firewall/etc. is correctly set up?

 

When connecting to your (i guess) main server i'm getting theese 2 packs:

 

http://104.230.141.144:8787/packs/D80AA93E063D7D405D4E87B3D9C110CF297C473A

http://104.230.141.144:8787/packs/A0553A65523FE3159852CCAF022C54E021E81492

 

But the server doesn't seem to be responding on this port?

 

Nevermind, it did load, just veeeery sloooowly. Looking into what's going wrong.

 

Looks like it was a version mismatch of serverpacks mod on the other server, talked to razor in game.

 

Also what looked like unresponsive packs web server was because of a relatively big pack (29mb) that took a while to download.

 

Because the web server is single threaded - it will backlog all new connections while sending out data. It could probably be changed to use a thread pool or something to send the data. Not sure if it's a big enough issue to be really worth it.

Edited by bdew

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now