• Announcements

    • JoeW

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

      We are now ready to accept claims for PS4 Megapack replacements.  Once again, our deepest appologies for this entire situation. We understand that your purchase of the Megapack was a show of support by our fans, many of which already owned the game. Please know that we have done our best to push as hard as we can for a quick and fair resolution to this issue. This has taken WAY too long to be resolved but we have done everything in our power to make sure our fans get what they purchased.   We are going to use the voucher codes we have been using to provide the digital version to claim the physical replacement discs. For North America, we are handling these requests directly through our own store with help from our friends at IndieBox. Claims will be handled at no cost to you. For claims outside of North America, 505 will be taking your information and processing your claims.  Those who purchased the Megapack after 4/26/2018 should have been given a voucher at the time of purchase on your receipt.  Those who purchased before 4/26/2018 or did not get a code otherwise can contact us for a voucher code that will entitle them to the digital megapack and can be used to claim the physical replacement discs. We have been handing those out for a while now, but if you are in this category and have not requested a code, you can do so here: http://support.kleientertainment.com/customer/en/portal/articles/2935839-physical-mega-pack-disc-support-information Once you have a voucher code:
      For purchasers in Europe (SIEE). To make a claim you will need to make file a claim through 505 here: https://docs.google.com/forms/d/e/1FAIpQLSckru65CWkXH5RZ_3j2f5_h1djNiAyrl8R0PCvdKPmGwItyvA/viewform For purchasers in North America (SIEA). To make a claim you will use our support site and use the voucher code to claim a replacement here: http://support.kleientertainment.com/customer/portal/articles/2952265-ps4-faulty-disc-claim If you have any questions or concerns, please let us know here on this thread or contact us at livesupport@kleientertainment.com Thank you.   
    • JanH

      Rhymes with Play - Hot Lava Update Dev Stream   09/19/2018

      Episode 207 - Join the Hot Lava dev team on Twitch this Thursday, September 20th as we play and discuss new content, mechanics, and other cool stuff included in the recently released Buzz and Translation updates for the game. Don't forget to click the follow button on the Klei Twitch channel to get alerted whenever we go live. As always, the Rhymes with Play Dev Streams are live Thursdays at 3:30 PM Pacific (10:30 PM UTC) Where is it?
      https://www.twitch.tv/kleientertainment Use our handy widget below to see when the stream goes live in your area: Check out the stream announce thread for discussions!  


  • Content count

  • Joined

  • Last visited

Community Reputation

40 Excellent

About ksaab

  • Rank
    Junior Member

Recent Profile Visitors

992 profile views
  1. The repairer component has a super-weird implementation. So... The first strange thing: actioncomponents.lua (this collects all valid actions at current frame): for k, v in pairs(MATERIALS) do if target:HasTag("repairable_"..v) then if (inst:HasTag("work_"..v) and target:HasTag("workrepairable")) or (inst:HasTag("health_"..v) and target.replica.health ~= nil and not target.replica.health:IsFull()) or (inst:HasTag("freshen_"..v) and (target:HasTag("fresh") or target:HasTag("stale") or target:HasTag("spoiled"))) then table.insert(actions, ACTIONS.REPAIR) end return end end inst is an item you use as material and target is a broken thing you want to repair. Your items doesn't have a health component and they aren't perishable, so you need to adapt it for the first condition: You have the "workrepairable" tag from the workable component; Material must have the "work_stone" tag. This is a second strange thing — it doesn't. Look at the repairer component code: local function onrepairvalue(self) if self.repairmaterial ~= nil then onremovematerial(self, self.repairmaterial) if self.workrepairvalue > 0 then self.inst:AddTag("work_"..self.repairmaterial) end if self.healthrepairvalue > 0 or self.healthrepairpercent > 0 then self.inst:AddTag("health_"..self.repairmaterial) end if self.perishrepairpercent > 0 then self.inst:AddTag("freshen_"..self.repairmaterial) end end end It will add the "work_stone" tag only if repairer.workrepairvalue will be setted for a material-item prefab (stone materials have only healthrepeirvalue). So you have 3 ways to fix your issue: Set the workrepairvalue for all materials you want to use (good, but maybe It will make some thing repairable with incorrect materials); Push the tag to all materials (unsafe I think); Add the health component and tune the health value (health without combat? not sure). May be there is a way to fix this weird component with debug-upvalue, but it's a bit complicated.
  2. Version 1.0.3


    First: TFBP features require the «Green!». Spells will not work without it! Second: This mod is in development — issues are expected! Do you miss you favorite weapon or suit from The Forge event*? Then this is what you need! Almost all weapons (no Lucy); All hats and helms; 5 types of armor/clothes. All spells and item bonuses are implemented *Fossil effect replaced by freezing. Items, which shares sprites with skins, were recolored. All recipes require Prestihatitator (first magic tier). Steam version: Here
  3. Green!

    Version 1.1.4


    First: this mod doesn't have any gameplay content — it is the basis for other mods! Second: This mod is in development. Errors and issues are expected! Green! is a framework which improves magic in the game, adding a lot of roleplay features: Spells with skillshot-mechanic and cooldowns; Status effects (buffs and debuffs); Affixes (diablo-style modificators for items and creatures); More cool stuff like drinks, enchants, caster-creatures, etc. What can be done with this? The Forge-style weapon; Character with active spells (go away, boring passive perks!); Bleeding, deseases, poison and more dangerous (or useful) things; Spider-mages with meteors. Mods based on the Green!: Green World; The Forge Battle Pack. Steam vesrsion: here
  4. You need something like this: --prefab file local MULT = 1.25 local _newHealthDoDelta(self, amount, cause, ...) if amont > 0 and cause and cause.components.healer then amount = amount * MULT end return self.inst._oldHealthDoDelta(self, amount, cause, ...) end --prefab fn inst._oldHealthDoDelta = inst.components.health.DoDelta inst.components.health.DoDelta = _newHealthDoDelta Or you can add a custom tag to a character and add PostInit to the healer component.
  5. You have wrong condtions. Let the temperature be 65: if temp > 40 and temp <= 69 then --true inst.components.health:StartRegen(1.5, 2) end if temp > 30 and temp <= 39 then --false inst.components.health:StartRegen(0.5, 3) end if temp > 29 then --true inst.components.health:StartRegen(0, 0) end 2 of 3 conditions are valid and the last regen overwrites the first. But I think you just place wrong symbol for the last one (temp < 29). And as @Wolf_EX said — it will be better to replace inst:DoPeriodicTask by inst:ListenForEvent("temperaturedelta", CheckTemperature) and move it to the main prefab function.
  6. AddStategraphPostInit("stategraph_name", some_function) When the stategraph will be initiated, the some_function will be called with stategraph itself as the first argument. It gives you an access to all state's variables: local function some_function(sg) --sg is the statgraph "stategraph_name" local _onenter = sg.states["some_state"].onenter --saving old onenter function as a local var sg.states["some_state"].onenter = function(inst) --replacing it with a new one _onenter(inst) --call an original onenter if needed inst.SoundEmitter:PlaySound("some_sound") --new action for the state end end This code plays a sound when a creature comes to this state in addition to the original code. Or you can completely replace state with this: local function some_function(sg) --sg is the statgraph "stategraph_name" sg.states["some_state"] = State{ your state params } --or sg.states["some_state"] = state_var --if you've created a state before end Now look at your code: AddStategraphPostInit("SGbeequeenp", new_BeeQeen_Spawn) new_BeeQeen_Spawn is a state-type object (table generally). The game will try to call it as a function and... it will crash, because it's a table. AddStategraphState("stategraph_name", state_var) This adds a new state to the stategraph and the state_var is a state-type object. May be if you add a state with an existing name (state name, not a variable name), it will overwrite an original state. I'm not sure, but it should.
  7. Why do not you use AddPrefabPostInit? It is a bad practice to replace original game files. local addMoistTo = {"frog", "spider", "beefalo", etc} for _, prefab in pairs(addMoistTo) do AddPrefabPostInit(prefab, function(inst) inst:AddComponent("moisture") end) end And there aren't any details in your crash log, you should check the server_log.txt
  8. Custom Farming

    It's not a bug, I'm just too lazy to rename variables. Check ca_veggies.lua line 289
  9. Custom Farming

    No, basic farms and crops have different chances. When you change a weight for a crop, It does not impacts farms.
  10. require "stategraphs/commonstates" local CommonHandlers = GLOBAL.CommonHandlers It will work only it this order. You need to use require because GLOBAL.CommonHadlers doesn't exist when the modmain is called (I think it will be defined by the game when the first stategraph will be initiated). Anyway, it is not your main problem. You are trying to add a custom state, not to reinit existing: AddStategraphPostInit("SGbeequeenp", new_BeeQeen_Spawn) Must be used in another way. For example: local function SGWilsonPostInit(sg) local _onenter = sg.states["run_start"].onenter sg.states["run_start"].onenter = function(inst) _onenter(inst) if not (inst.sg.statemem.riding or inst.sg.statemem.heavy) and SlowEnoughSandWalk(inst) then inst.sg.statemem.sandstorm = true inst.AnimState:PushAnimation("sand_walk_pre") end end local _onenter2 = sg.states["run"].onenter sg.states["run"].onenter = function(inst) if not (inst.components.rider:IsRiding() or inst.components.inventory:IsHeavyLifting()) and SlowEnoughSandWalk(inst) then inst.components.locomotor:RunForward() if not inst.AnimState:IsCurrentAnimation("sand_walk") then inst.AnimState:PlayAnimation("sand_walk", true) end inst.sg:SetTimeout(inst.AnimState:GetCurrentAnimationLength()) else _onenter2(inst) end end end AddStategraphPostInit("wilson", SGWilsonPostInit) If you want to add a custom state, use AddStategraphState("stategraph_name", state_var)
  11. Hello. I don't think that modders can help me with this, but may be devs will read this thread. There is a problem and I do not see any good solutions — Woodie has too many tags. Error serializing tags for entity woodie[109330] - 32 tags; exceeds maximum size of 31 My mod uses 2 replicable components (it's mean 2 additional tags) and when Woodie turns into a beaver, he reaches the tag-list limit. One more and the game will crush. I see only one solution — remove some original tags (polite and woodcutter for ex.). I can't release my echanced-magic framework and update the Green World (it also suffers) because of this. Maybe someone already dealt with this problem? Thanks for your time.
  12. Custom Farming

    Yeah, but I need to examine it first (never used it before) It has high chance to replace carrot or corn with a new vegetable for a usual farm. It doesn't affect other seed-products (well, I've broken vanilla chances in the last update, not critically, but late noticed) New farming is a weighted system now, so you can change a chance for any crop you want (not as an option, from the code only) Thanks for your feedback.
  13. The default tile (not noise) texture for The Forge tiles isn't correct (well, it causes some С errors). Use an another tile (again, not noise) texture and it will work fine. You've asked about it in the Custom Tile Adder thread, but the forum didn't notify me.
  14. Custom Farming

    Version 1.2.0


    Grow vegetables and fruits 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 plants too! Cook new vegetables in a crockpot. New recipes: Bread (4 wheat); Fruit muffin (fruit, egg, wheat, honey) Tomato soup (2 tomato, veggies, no meat); Onion soup (2 onion, veggies, no meat); Meat soup (2 garlic, 1 additional veggie, 1 meat); Fish soup (2 potato, 2 fish); Pumpkin soup (pumpkin, 1 honey, wheat, no meat) Fruit pie (2 wheat, fruits, no meat) Vegetable pie (2 wheat, veggies, no meat) Meat pie (2 wheat, meat) Fish pie (2 wheat, fish) Sweet turnip (2 turnip, 2 honey, no meat) 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