• Announcements

    • JoeW

      [UPDATED] Physical Megapack Disc Issues   04/16/2018

      Update 5/11/2018 We do not have any more information at this time. The last we spoke to 505 indicated that the discs should be ready very soon. We will likely have more information next week; hopefully with full explanation of when and how to get new discs.    Updated: 4/27/2018

      On April 17th, the Don't Starve Megapack was released. Almost immediately, it was discovered that the wrong content was printed on the PS4 retail version of Don’t Starve Mega Pack (the Xbox One version is not affected). The disc contained Don't Starve Together, but was without Don't Starve, Reign of Giants and Shipwrecked. As soon as we confirmed the problem we contacted our retail publisher to find out how this happened and what could be done. It's taken some time to get this far, but this is all the information we have at this time. The current status of the issue is as follows: New copies are currently in print and will be on shelves ASAP, hopefully within a few weeks.  When the new discs arrive in stores, players who already purchased misprinted discs will be able to exchange the disc for a new one in store. Details will follow as we figure out the exact timing, the procedures with specific retailers and what the exchange will entail.  Players who already purchased the faulty disc previous to 4/26/2018 can now contact Klei support HERE for a Playstation Store voucher code that includes Don't Starve Together, Don't Starve, Shipwrecked and the Reign of Giants DLC that you can play now. Please specify your country as certain vouchers only work in certain regions.  New purchasers of the Megapack in store as of 4/26/2018 should be given a voucher at the time of purchase on your receipt. If you do not get a code, contact us ALL purchasers will have a path to get a new disc when they are ready. We do not have details at this time, but we are comitted to ensuring that all players get what they purchased.  We are hearing from some players that some retailers are telling players that they will not be exchanging discs. We believe this to be incorrect and that particular person or location is just misinformed. 505 has ensured us that they are doing their best to make sure these discs are being replaced for all players. We will not allow anybody to fall through the cracks here. We will buy and ship the discs ourselves if we have too.   This was our first major retail release and we're extremely disappointed that our players have been let down with their purchase of the Don't Starve Megapack. We're doing our best to make sure this issue gets resolved as quickly as possible. Thanks everybody for your support and patience. We'll keep you updated.    UPDATE: (4/26/2018) We are now ready to send out vouchers to players who purchased the physical version of the Don't Starve Megapack - These codes will allow players to download and play Don't Starve and DLC as well as Don't Starve Together To get a voucher players can contact as at our support site: http://support.kleientertainment.com/customer/portal/emails/new  For the subject, choose "PS4 Megapack" and fill in the form and we'll get you fixed up as soon as possible.  We will require a picture of your receipt, your Klei account ID and the region you are located in (so we can give you the proper voucher).  UPDATE: (4/24/2018) Earlier this week, we discovered that the wrong content was printed on the PS4 retail version of Don’t Starve Mega Pack (the Xbox One version is not affected). It’s a really unfortunate situation and we’ve been working hard with 505 to resolve this as soon as possible. Below is the latest information: New copies are currently in print and will be on shelves ASAP, hopefully within a few weeks. When the new discs arrive in stores, players who already purchased misprinted discs will be able to exchange the disc for a new one in store. Details will follow as we figure out the exact timing, the procedures with specific retailers and what the exchange will entail.  Players who already purchased the faulty disc will also be able to contact Klei support for a voucher code that includes Don't Starve, Shipwrecked and the Reign of Giants DLC until the new disc is ready. Please specify your country as certain vouchers only work in certain regions.  We will have more details when they become available including details on contacting us and what information we might need.  Once again, thanks to everybody for their patience while we work this out. For questions or concerns, the forum discussion can be found below:   


  • Content count

  • Joined

  • Last visited

Community Reputation

33 Excellent

About ksaab

  • Rank
    Junior Member

Recent Profile Visitors

766 profile views
  1. Custom Farming

    Version 1.0.2


    Grow vegetables without a farm! How to do it? Create a hoe; Till the ground; Fertilize the soil; Plant a seed! It is possible to grow vanilla vegetables (eggplants, carrots, pumpkins, corn) too! Cook new vegetables in a crockpot. Nine new recipes: Bread; Four kinds of soups; Four kinds of pies. How to get new seeds? It's pretty simple — new vegetables can be grown from usual seeds. Also you can get specific seeds using a birdcage. Don't like the new farming system? Disable the hoe recipe and grow new vegs on usual farms. Steam links: Together, Single
  2. Hey. Are there any interested modders, who want to create items (like The Forge weapons) or characters with active spells? I've moved and improved the spells and effects stuff from the Green World to the standalone mod-framework, which I plan to use later. Here you can find the preview version of this mod and some examples for it: Character spells for Wilson, Wigfrid, WX. WX spell requires electrical doodads; Weapon with spells (some spells can be switched by rmb on an equipped item). Bee dart uses bees as an ammo; Amulet with an ability to duplicate spells (lightning spear spells can be duplcated). Example items are available on the Magic tab;
  3. Green World

    It's not possible now, but I try to move all important staff to a standalone mod and make it compatible with single DS. There are not "impassable" tiles in the game. The game draws a blocker line between the ground and... non-ground during the world creation. But there is a small hack — you can remove the tile, rebake the map and place the tile back. Rebaking takes about 0.5-1 second for a medium-size world on i5 4.0GHz.
  4. I don't know about LoadPostPass, but you can use something like that: Disable saving: local function AddChild(self, child) if self.children[child] ~= nil then print("Already added child", child) return end child.persists = false --disable saving for this entity, we will save/load it in another way self.children[child] = child self.numchildren = GetTableSize(self.children) end Save/Load function BeeSummoner:OnSave() local children = {} for k, v in pairs(self.children) do table.insert(children, v:GetSaveRecord()) end return {children = children} end function BeeSummoner:OnLoad(data) if data and data.children then for k, v in pairs(data.children) do local obj = SpawnSaveRecord(v) --some code — attach the spawned bee to the component owner end end end I use the similar code to save/load the prefab info (Ancient Watcher in the Green World), not sure about components.
  5. Green World

    The world will be bigger. I think other mods do the same.
  6. Green World

    I thought about it and even tried to deal with Klei shaders, but I've failed. It's possible to add an option for colour change, but creatures will look a bit weird. Maybe I should ask for help with shaders. Yep. I reworked the spell and effect systems, and now can make affixes more "immersive". Thanks for the translation.
  7. if not GLOBAL.TheWorld.ismastersim then return end local _oldOnActivate = inst.components.teleporter.onActivate inst.components.teleporter.onActivate = function(inst, doer) if doer.prefab == "esctemplate" and doer.components.sanity and not doer.components.sanity.ignore then doer.components.sanity.ignore = true _oldOnActivate(inst, doer) doer.components.sanity.ignore = false else _oldOnActivate(inst, doer) end end
  8. The player has more than 10 tags at a time. Full list you can get with parsing the result of: inst.entity:GetDebugString()
  9. I'm not sure about documentation but you can check guides here (some of them are outdated, but still may be useful).
  10. DoTaskInTime is the entity function: object:DoTaskInTime(delay, fn(object, somedata), somedata) --delay in seconds; somedata isn't necessary So you need something like this: v:PushEvent("respawnfromghost") v:DoTaskInTime(1, function(player) player.components.health:SetPercent(1) player.components.hunger:SetPercent(1) player.components.sanity:SetPercent(1) end) Just in case (devs had a reason to do it), the flag will be setted to the correct value by the game later.
  11. Inventory is empty (doesn't check equip slots and backpack), when inst.components.inventory:NumItems() == 0 If you need to check equip slots and backpack: #(inst.components.inventory:ReferenceAllItems()) == 0 If you want to check inventory for an item with specified prefab: inst.components.inventory:Has("prefab", count) For a specified item (inst is the item, owner is the inventory owner): inst.components.inventoryitem:IsHeldBy(owner)
  12. Player death and revive events are pretty complicated things in the game code. Maybe devs will do somethnig with it, but now it is a hardcore part of modding. Anyway: 1) Objects collect events at the next frame the event was pushed. So, when you do: PushEvent("respawnfromghost"), the player is still dead and don't know about the resurrection event. But the player has health, hunger and sanity components (it's wierd, but "after-resurrect" values are setted when the player dies). For some reason the sanity component for the ghost form has the "ignore" flag, so it ignores any attempts to change the sanity value. Thats why "v.components.sanity:SetPercent(1)" doesn't work. So, I think there are two ways: Do it with a small delay with DoTaskInTime, and it should be longer then one frame (because "respawnfromghost" pushes another events) Do something like this: local prev = v.components.sanity.ignore v.components.sanity.ignore = false v.components.sanity:SetPercent(1) v.components.sanity.ignore = prev 2) SuUsed is a some kind of a log(?), I don't think it can be useful.
  13. Yeah, It should. I've forgotten that the GROUND table contains numbers and not strings.
  14. if tile ~= GROUND.SAVANNA and tile ~= GROUND.ROCKY and tile ~= GROUND.DESERT_DIRT then or local GROUND = GLOBAL.GROUND local ignoreGreenGrass = { GROUND.SAVANNA = true, GROUND.ROCKY = true, GROUND.DESERT_DIRT = true, } AddPrefabPostInit("grass", function(inst) -- Alternate texture. inst:DoTaskInTime(0, function(inst) local tile = GLOBAL.TheWorld.Map:GetTileAtPoint(inst.Transform:GetWorldPosition()) if not ignoreGreenGrass[tile] then inst.AnimState:SetBuild("grassgreen_build") end end) end)
  15. When you (or the game) create an entity, its coordinates are 0, 0, 0. So you need to wait for one frame before check the tile: AddPrefabPostInit("grass", function(inst) inst:DoTaskInTime(0, function(inst) local tile = GLOBAL.TheWorld.Map:GetTileAtPoint(inst.Transform:GetWorldPosition()) if tile ~= GLOBAL.GROUND.SAVANNA then inst.AnimState:SetBuild("grass1_forest") end end) end)