Jump to content

Inter-game mod compatibility request


Recommended Posts

  • Developer
DST does not seem to recognise "CAPY_DLC" as a global variable, which is utterly painful when making universally compatible mods.   My plead is simple: Add a variable "CAPY_DLC" to the global environment, which will make "IsDLCEnabled()" always return false (analogous to "REIGN_OF_GIANTS", which makes it return true).   Thank you for your consideration.

 

Hey @Mobbstar, I'm pulling your request into a new thread over here to get some input from everyone else. I can definitely add CAPY_DLC to the global environment so that your mod can be more compatible between the code bases, but IsDLCEnabled(REIGN_OF_GIANTS) actually returns false in DST because all the RoG contents were flattened and included in the base DST code base, so technically there is no DLC enabled.

TheSim:GetGameID should be used to determine if your mod is running in "DS" vs "DST".

Thoughts, questions, or concerns?

Link to comment
Share on other sites

@PeterA, I think this question really depends on an answer to the following question:

 

Is Klei planning on releasing Shipwrecked for Don't Starve Together?

  • If no, I don't think Don't Starve Together should support any feature from Shipwrecked.
  • If yes, I would agree we should get some type of indication on whether or not the DLC is enabled.

Klei originally said that Shipwrecked would be originally for Don't Starve but, gave no indication on whether it was coming to Don't Starve Together. Klei has also said Don't Starve Together would be getting Through the Ages as a DLC. When Through the Ages is released it will be brought up that Don't Starve should have variables/indication if Through the Ages is enabled so mods can continue to be supported globally.

 

As more and more DLC is released the more variables which you will need to add to both games in order to compensate for the other.

Link to comment
Share on other sites

  • Developer

@Kzisor, predicting the future can be a little tricky at times, but I believe the approach we'll take with future content/expansions for DST will be flatter approach, more along the lines of something like RoG in DST. Rather than a separate DLC folder structure/package I assume things will be integrated into the DST base code and then things are turned on or off based on ownership of that content. That would typically be a better approach for allowing all players to continue to play together whether or not they own certain DLC. Not splitting the community between players who have and don't have content was the driving force behind why RoG was bundled into the game rather than being a separate DLC pack, and I believe that motivation is still there. So basically I don't think the DS code will need to worry about what DLC comes to DST, they'll simply need to check for DST via GetGameID.

That said, content expansions could go in a different direction and all that I just said could be entirely wrong and misleading :)

Link to comment
Share on other sites

If this turns out to be totally wrong and misleading that would be terrible because this approach is the best one, and from far :-)

 

I think there should be some kind of a flag to allow simple mod to be made cmpatible with any version of the game, be it DST, DS, DS-ROG or DS-Shipwrecked. But it should just stop at a simple flag and nothing fancier. The single and multiplayer ar so different in the approach that has to be used to mod them that it would not make much sense do go further than that.

Edited by ZupaleX
Link to comment
Share on other sites

... I did not get a notification of this. Well done Klei forums! </sarcasm>

 

@PeterA, thank you for the clarification of how things work.

 

I am already testing for DST to get the code working. I just felt like it wasn't elegant. Besides, the RoG check works in DST just fine (eventhough it's meaningless), so a similiar "fail-safe" for SW seems reasonable. That's all I've been asking for.

 

EDIT: I guess the proper approach is to "boot-strap" the mod based on a single gamemode check? Did I use that word correctly? Are these rethoric or serious questions? Is the first one a question at all?

 

 

I think there should be some kind of a flag to allow simple mod to be made cmpatible with any version of the game, be it DST, DS, DS-ROG or DS-Shipwrecked. But it should just stop at a simple flag and nothing fancier. The single and multiplayer are so different in the approach that has to be used to mod them that it would not make much sense do go further than that.

 

I am dumb. Please explain what a "flag" is. Do you mean something like "dont_starve_compatible = true" or something like the flags one can use when executing programs from the command promt?

Edited by Mobbstar
Link to comment
Share on other sites

@PeterA, with this explanation I feel that you answered the question in a very professional manner.

 

Mods should first check to see which engine their running then simply process the information for that engine only. This means DST does not need a global variable for any DLC from Don't Starve and vice-versa. The best part about your explanation is that it will not matter if DLC goes in a different direction because the base premise behind intra-compatibility is still the same.

Edited by Kzisor
Link to comment
Share on other sites

Yeah, exactly something like "dont_starve_compatible = true" for each separate DLC or version of the game, to say "ok my mod is not doing anything super fancy and is using functions which are accessible whatever the version of my game is".

Link to comment
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
 Share

×
  • Create New...