Sign in to follow this  
icies101010

Modding ROG giant's into DST

Recommended Posts

icies101010    0

Hey guys,

 

After playing DST with some friends and absolutely loving it I decided to try my hand at some modding by adding the Reign of Giant Giants into DST. I know Klei have said they will be adding ROG features into the game at some point but I thought this would be a good way to get my feet wet with the DS modding scene.

 

I'll prefix this by saying up front that I'm a web developer by trade so I've very familiar with JavaScript and not with Lua, luckily for me they are both loosely typed and Interpreted so I've not had to much trouble picking it up.

 

I've so far moved over the prefab, brain and state-graph files as well as the animation files for Bearger (I am starting with Bearger) and have modified them to function correctly with DST. I am able to DebugSpawn a Bearger that functions the same as in ROG.

 

I'm having some issues with integrating the prefab within the world however, as there are currently only two seasons DST I'll be looking to have Bearger arrive in Summer. I've tried a few different methods in the modmain.lua file but am not really sure where to start, I've not been able to find any example mods that implement this kind of logic.

 

If anyone can point me in the direction of one or give me a starting point I would be very grateful.

 

I've tried things like the following in the modmain.lua file that I've pieced together from other mods I've peaked at but don't think I'm heading in the right direction (especially with the looping through characters table which I saw on another mod but not sure how else to tackle it at this stage)

 

function ModCharacterInit(inst)   local function BeargerInit()      if _G.GetSeasonManager().current_season == _G.SEASONS.SUMMER then         print("Spawning Bearger")         local bearger = _G.SpawnPrefab("bearger")      end   end   _G.GetClock().inst:ListenForEvent("daytime", BeargerInit)endModCharacterInit()

Thanks guys!

 

Share this post


Link to post
Share on other sites
RedMattis    39

I think it's illegal upload DLC created by Klei.

Not 100% sure though.

I'm pretty sure I heard that mentioned about the RoG characters like Webber at least. I think it is better to leave the RoG stuff alone. Klei will probably implement it in some form later. Perhaps free to those who own the DLC with a bit of luck. :)

Edited by RedMattis

Share this post


Link to post
Share on other sites
DarkXero    2893

You can copy the basehassler component, and in your new file, change the name, change deerclops for bearger, winter for summer, and then make a inst:AddComponent("beargerhassler") in the forest prefab with a PostInit.

 

Or you can make a ComponentPostInit that listens to the world state when it's summer and then you use the public functions to set your own basehassler parameters. But remember to put another for winter to not delete the deerclops.

 

And there is no GetClock() and GetSeasonManager() in DST.

Share this post


Link to post
Share on other sites
icies101010    0

Thanks guys, I think I'll leave it to Klei then, hopefully the giants will be implemented at some point!

And thanks for the tips DarkXero - I might try and get it working locally just for kicks :p

Share this post


Link to post
Share on other sites
Aquaterion    821

I'm pretty sure I heard that mentioned about the RoG characters like Webber at least. I think it is better to leave the RoG stuff alone. Klei will probably implement it in some form later. Perhaps free to those who own the DLC with a bit of luck. :-)

 

Since they are combining DS with DST once it's done, I don't see why we would have to pay for RoG again just to be able to play it multiplayer.

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
Sign in to follow this