DarkXero

Registered Users
  • Content count

    2,886
  • Joined

  • Last visited


Community Reputation

2510 Excellent

About DarkXero

  • Rank
    Senior Member

Recent Profile Visitors

6,043 profile views
  1. You can nuke those components via replacing them with your mod with files with empty classes. e.g mymod/scripts/components/desolationspawner.lua: return Class(function(self, inst) self.inst = inst end) Or you can nuke the constructors from modmain: GLOBAL.require("components/desolationspawner")._ctor = function() end GLOBAL.require("components/regrowthmanager")._ctor = function() end Since the components aren't referenced anywhere beyond AddComponent functions, you are good to go.
  2. Hope all is well.

    You were a large driving force to get me to spew code out in the Mods and Tools subforum before you could do the same.

     

    1. DarkXero

      DarkXero

      All is well.

      Thank you for your kind words.

  3. Hello DarkXero,

        Long time no see. Here I need your generous help again.

        Since the cave edition of DST was officially published, the mod of World Regrowth didn't work for this edition to make the cave resouces respawnable. I have tried and tried with no result. Would you please help me? Much appreciate!

    Sincerely Yours,

    Jupiters

    World Regrowth.zip

  4. Very nice. The beefalo bugs were fixed, and the domesticatable component is more robust. I have seen way less instances of domestication loss ticks. The beefalo doesn't go feral as fast as before, which is nice. However, a few of them are still there. I write the test process again. 1) Pick character 2) c_give("dragonpie", 2) 3) c_spawn("saltlick") 4) c_spawn("beefalo") 5) Give dragonpies to beefalo 6) Run away from beefalo, about a screen and a half (so the greetings and begs don't get in the way) 7) c_godmode() 8) c_speedup() Those pies should give around 2.5% of domestication. Now wait 5, or 10 days or until the salt lick runs out. Go for a coffee. If everything went fine, then no decay should be observable. You can also pen the beefalo in a very tiny cage instead of letting it wander and it will sometimes lose domestication.
  5. I went to test the beefalo changes. With the sleeping and entity asleep changes, most problems were addressed. Beefalo won't lose domestication while asleep, and the extra range helps them lick the salt while off-screen. This is pretty good for people that go caving. However, there's still a problem, easy to see. 1) Spawn beefalo. 2) Spawn salt lick. 3) Give the beefalo a dragonpie, some twigs. 4) Give yourself V2C mode (godmode). 5) Stand a screen away from the salt lick (so the beefalo won't run to greet you, but it's awake). 6) c_select() the beefalo, c_speedup() the game. 7) You will see 99.9% of the time the (nodecay) tag. What happens on the 0.01% of the time? The beefalo needs to salt itself again. But it's far from the salt lick, the distance needed is 4, instead of 15. So it needs to walk to it. If it takes too long, you can get a domestication loss tick in there. Why could this happen? It wandered too far from the lick, because of its brain, or because it went to greet you and spent some extra seconds on alarm state or beg state. So basically, solitary bases are fine. Bases with people running around may find their beefalo go feral without notice. Also these weren't fixed. I updated the reports with possible solutions. On a more happy note, the twiggy trees have the perfect ornament distribution out of all the Winter's Feast trees.
  6. Don't redeem it if you aren't on the beta. Game will crash, and you will get a blank thingy on the Steam inventory. Oops. Well, if anybody commits the same mistake, don't worry, you got it. It will appear later. Probably. You can only use it on the beta branch, as of now.
  7. Do c_gonext("deerspawningground"), and if there's none, then there won't be a sack. I looked at the content retrofitter: local deciduousfn = function(x, y, z, prefab) return TheWorld.Map:GetTileAtPoint(x, y, z) == GROUND.DECIDUOUS end print ("Retrofitting for A New Reign: Herd Mentality.") RetrofitNewContentPrefab(inst, "deerspawningground", 1, 10, deciduousfn) It seems that adds new spawning grounds only on deciduous turf (which you do not have because it's a non-RoG world).
  8. The deer spawn on specific places in the world (like an invisible Goose nest), on the deciduous forest and the mosaic biome. The sack will spawn on one of the deer grounds. The deer ground chosen requires to not have any player within 35 units (9 turfs). In case many deer grounds meet this requirement, the game will pick the one that has less structures within 5 units (1 turf). Basically, where there you saw deer, you will see sack. Basically. They come during autumn, they mature on winter and they get ready to leave. You can stack on antlers though, the herd spawn size is 5 or more. So getting the minimum antlers and using 1 antler per instance allows you to fight Klaus until the next autumn/winter cycle arrives.
  9. If starting on autumn, the sack takes (length of autumn + math.random(4)), which is 21-24 days, to appear. Else (starting season isn't autumn), it takes (NO_BOSS_TIME), which is 26 days, to appear. After the sack is opened, it will start the respawn process. It takes (KLAUSSACK_RESPAWN_TIME), which is 20 days, to respawn. The respawn time isn't affected by the season. I'm also plugging what to do with the christmas tree:
  10. Here's my tree again. It has a more pleasant distribution.
  11. That green bauble should be hanging lower. There's wasted space on that tree. Protip: you can time yourself putting the lights so that they either turn on at the same time (fancy color combinations), or that you get always one turned on (great for nights).
  12. The files were great, they provided me with insight, and I managed to track the bug. Here it is.
  13. Problem in Builder:DoBuild(recname, pt, rotation): local prod = SpawnPrefab(recipe.product) if prod then if prod and prod.components.moisturelistener and wetLevel then prod.components.moisturelistener.moisture = wetLevel prod.components.moisturelistener:DoUpdate() end The moisture update comes BEFORE setting position/owner of the prefab. Which means it defaults to position (0, 0, 0). Inside MoistureListener:UpdateMoisture(dt), the following triggers: if not (self.inst.components.inventoryitem and self.inst.components.inventoryitem.owner) then if self.inst.Transform then local x,y,z = self.inst.Transform:GetWorldPosition() if x and y and z then if GetWorld().Flooding ~= nil and GetWorld().Flooding:OnFlood(x, y, z) then self.moisture = math.max(self.moisture, TUNING.MOISTURE_FLOOD_WETNESS) end end end end The item doesn't have an owner, but it has the defaulted (0, 0, 0). If by any chance, that position is flooded, then the crafted item will be wet, no matter where you are. Solution: delay the update to the next frame (after position/owner is setup) or insert the code after prod is built (but before the returns). local function DelayedMoistureUpdate(prod, wetLevel) prod.components.moisturelistener.moisture = wetLevel or 0 prod.components.moisturelistener:DoUpdate() end function Builder:DoBuild(recname, pt, rotation) local recipe = GetRecipe(recname) local buffered = self:IsBuildBuffered(recname) if recipe and self:IsBuildBuffered(recname) or self:CanBuild(recname) then local wetLevel = 0 if self.buffered_builds[recname] then wetLevel = self.buffered_builds[recname].wetLevel self.buffered_builds[recname] = nil else local mats = self:GetIngredients(recname) wetLevel = self:GetIngredientWetness(mats) or 0 self:RemoveIngredients(mats) end local prod = SpawnPrefab(recipe.product) if prod then if prod and prod.components.moisturelistener and wetLevel then prod:DoTaskInTime(0, DelayedMoistureUpdate, wetLevel) end
  14. I'm still waiting for any saved files where the bug is present and running.