• Content Count

  • Joined

  • Last visited

 Content Type 




Klei Bug Tracker

Game Updates

Hot Lava Bug Reporter

Posts posted by tehMugwump

  1. Yeah, first thing I tried was adding true, but using our builds.lua system it ignores it or errors out whether I add

    build_info.slurper.baseanim = "idle", true


    build_info.slurper.baseanim = ("idle", true)

    Seriously, I just wish there was some consistency here, but it's all over the map...

    Well considering some other entities (like the tentapillar) use things like


    and others use

    the second argument seems to be setting the behavior of the animation(?).

    Try using "loop" or true for the second argument [MENTION=10028]tehMugwump[/MENTION]

    Yes, they may be identifying a "subanimation". I wish those things had some documentation :/

    Most of the code can just be read. But things like that, directly exported by the engine, are a different story.

  2. [MENTION=44092]simplex[/MENTION], back on Test Tools previews. Have any idea why 'slurpers' will not show any anim in preview?

    If you remember, many anims show using my_anim:GetAnimState():PlayAnimation("idle")

    those that don't are handled through the builds.lua file or manually: build_info.slurper.baseanim = "idle_loop"

    slurper (and maybe a couple others) don't show no matter what. I've put every single PlayAnimation variation in from the SGslurper file and nothing.

    Thinking that maybe you had to be in a cave to get it to show (really grasping here!) I dug down and tried it in a cave, but nope.

    Wondering if some game variable has to be in place first because I can't spawn a slurper either...

    Any thoughts?

  3. Hmmm, here's where I put the code in and it crashes with a "assign to undeclared variable "ChangeTheImage"...

    -- ########################### ENTITYS ########################### --self.entitySpinner = Spinner(entityOptions, 180, spinnerHeight, spinnerFont, spinner_atlas, spinner_images)function self.entitySpinner:OnChanged(data, inst)			this.working.entityPrefab = data			this:UpdateSelectedEntity()-----------------------------    self.bg = self:AddChild(Image("scripts/images/panel.xml", "panel.tex")) -- new preview frame    	self.bg:SetScale(0.75,1,1)		self.bg:SetPosition(450,0,0)function ChangeTheImage(newatlas, newimage)  if self.bg then    self:RemoveChild(self.bg)  end    self.bg = self:AddChild(Image(newatlas, newimage))end---------------------
    Should 'AddChild(Image(newatlas, newimage))' be calling out an actual image?

  4. Thanks, I missed the earlier post. I'll give this a try!

    Looks like you're not removing the old anim before putting in the new one.

    Basically, to remove it, pair a "RemoveChild" with your "AddChild" call. In case you missed it in my earlier post (there were a lot today!):

    function ChangeTheImage(newatlas, newimage)  if self.object_image then    self:RemoveChild(self.object_image)  end    self.object_image = self:AddChild(Image(newatlas, newimage))end
    This same logic would apply if you're using a UIAnim instead of an Image. So basically it cleans up the existing image before putting in the new one. The parent of the AddChild/RemoveChild (self in this code) would need to be matched to your code, of course.

  5. I can see where Size isn't used for anims. I would use it so my previews all have a similar size instead of a Deerclops being 50 times larger than a bee (I have to have my preview background large enough for the Deerclops). No biggie though, I'll just live with it.Now I'm on to a refresh issue in between image views (right now they just all stack infinitely until you quit out of the test tools screen and reload). The below image also illustrates why I want to size all images to a specific size rather than scale.

    You can do this for images, but not for anims; anims don't really have a concept of how big they are, only their scale. (A scale of 1 is however big the artist made it; and its actual dimensions vary frame to frame depending on symbols, animation, etc.)Perhaps you could have everything scale to the same value (so they are relative to eachother in-game), and a few special cases for things like Deerclops?

  6. Quite frequently the answers to my obscure needs are "nope", so I don't expect a solution to the 'size' issue. Nor, a 'refresh' call which would keep each image from being plastered on top of the other over and over and over. (that's why I load the image box each time you load a new preview - to 'reset the stage' in a ham-handed way).

  7. [MENTION=44092]simplex[/MENTION], have you run across any code that would allow setting an image's size? Not scale, but a specific size. In my Test Tools preview windows, some objects fill the screen, while the next might be a bee. Quite small. I'd like to do something like:if date.size < (x, x) thendata.SetSize (y,y)endI've found SetScale, but nothing like SetSize...Current code just pulling the preview:

    self.objectSpinner = Spinner(objectOptions, 180, spinnerHeight, spinnerFont, spinner_atlas, spinner_images)		function self.objectSpinner:OnChanged(data)			this.working.objectPrefab = data			this:UpdateSelectedObject()			my_anim:SetScale(0.15,0.15,0.15) -- here everything is set to a specific scale, but Size if prefered
    Here's a current screenshot by the way:

  8. Man, I am an IDIOT. I didn't understand your intended purpose for builds.lua. Brilliant! I am humbled before greatness. You and Ipsy really saved my arse! You will be duly noted in the thanks section. :victorious:I've got some presentation issues to work out, so I'll get back to that...

    Since builds.lua is a valid Lua script, packaged for require()ing, I think you should do just that to make it easy to update it, improve it, etc. Let's say you put builds.lua in scripts/testtools/builds.lua inside your mod directory (the testtools directory in scripts/ is just to prevent possible filename clashes with other mods). Then, instead of your above snippet, you'd do:

    local build_info = require "testtools.builds"-- Do some manual overrides here if necessary.build_info.penguin.baseanim = "idle_loop"-- Now do the actual work (this would probably be inside a function, I'm just assuming-- there's some "global" data and my_anim to make code exposition easier).local info = build_info[data]if info then    my_anim:GetAnimState():SetBank( info.bank )    my_anim:GetAnimState():SetBuild( info.build )    my_anim:GetAnimState():PlayAnimation( info.baseanim )else    my_anim:GetAnimState():SetBank(data)    my_anim:GetAnimState():SetBuild(data)    my_anim:GetAnimState():PlayAnimation("idle")end
    The cases that currently don't show up could be handled by overrides, as I did above for the penguin. I took the penguin as a particular case to investigate why its baseanim wasn't getting set (and thus defaulting to "idle"). The reason is the baseanim is not defined in the prefab file, but in SGpenguin.lua. Since build_searcher.lua currently does not process stategraphs, it's not picking up on that. I'm guessing this is also the case in the others that don't show up. I may extend build_searcher.lua to also process stategraphs, but unless there are too many cases like that I think overrides should be enough.---edit---Alternatively, to make the code even more modular and easier to update and improve, you could put builds.lua in scripts/testtools/builds.lua and create a file scripts/testtools/builds_overrides.lua for the manual overrides. The contents of builds_overrides.lua would be something like:
    local build_info = require "testtools.builds"-- Do all the necessary manual overrides here.build_info.penguin.baseanim = "idle_loop"return build_info
    Then, inside the file that actually does the displaying of preview images, you'd do:
    local build_info = require "testtools.builds_overrides"-- Now do the actual work (this would probably be inside a function, I'm just assuming-- there's some "global" data and my_anim to make code exposition easier).local info = build_info[data]if info then    my_anim:GetAnimState():SetBank( info.bank )    my_anim:GetAnimState():SetBuild( info.build )    my_anim:GetAnimState():PlayAnimation( info.baseanim )else    my_anim:GetAnimState():SetBank(data)    my_anim:GetAnimState():SetBuild(data)    my_anim:GetAnimState():PlayAnimation("idle")end

  9. [MENTION=10028]tehMugwump[/MENTION]

    I wrote a simple (and highly hackish) Lua script to generate the list of builds. The list may be incomplete, and there may be some mistakes in it, but for its most part it should be correct.

    I'm attaching both the compiled list I posted inline and the script I used to generate it. It's stand alone, meaning it should be run directly by the Lua interpreter, and not by the game. It requires the LuaFileSystem library to run. To run it, pass as its sole argument the path to the scripts/ directory of the game.

    Well, that was easy:


    if data and data == "crow" thenmy_anim:GetAnimState():SetBank("crow")my_anim:GetAnimState():SetBuild("crow_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "abigail" thenmy_anim:GetAnimState():SetBank("ghost")my_anim:GetAnimState():SetBuild("ghost_wendy_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "ghost" thenmy_anim:GetAnimState():SetBank("ghost")my_anim:GetAnimState():SetBuild("ghost_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "babybeefalo" thenmy_anim:GetAnimState():SetBank("beefalo")my_anim:GetAnimState():SetBuild("beefalo_baby_build")my_anim:GetAnimState():PlayAnimation("idle_loop")	elseif data and data == "beefalo" thenmy_anim:GetAnimState():SetBank("beefalo")my_anim:GetAnimState():SetBuild("beefalo_build")my_anim:GetAnimState():PlayAnimation("idle_loop")	elseif data and data == "bat" then --won't show, but code is correctmy_anim:GetAnimState():SetBank("bat")my_anim:GetAnimState():SetBuild("bat_basic")my_anim:GetAnimState():PlayAnimation("idle") -- not in prefab	elseif data and data == "bee" thenmy_anim:GetAnimState():SetBank("bee")my_anim:GetAnimState():SetBuild("bee_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "icehound" thenmy_anim:GetAnimState():SetBank("hound")my_anim:GetAnimState():SetBuild("hound_ice")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "firehound" thenmy_anim:GetAnimState():SetBank("hound")my_anim:GetAnimState():SetBuild("hound_red")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "butterfly" thenmy_anim:GetAnimState():SetBank("butterfly")my_anim:GetAnimState():SetBuild("butterfly_basic")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "chester" then --won't show, but code is correctmy_anim:GetAnimState():SetBank("chester")my_anim:GetAnimState():SetBuild("chester")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "perd" thenmy_anim:GetAnimState():SetBank("perd")my_anim:GetAnimState():SetBuild("perd")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "killerbee" thenmy_anim:GetAnimState():SetBank("bee")my_anim:GetAnimState():SetBuild("bee_angry_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "krampus" thenmy_anim:GetAnimState():SetBank("krampus")my_anim:GetAnimState():SetBuild("krampus_build")my_anim:GetAnimState():PlayAnimation("run_loop")	elseif data and data == "walrus" thenmy_anim:GetAnimState():SetBank("walrus")my_anim:GetAnimState():SetBuild("walrus_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "little_walrus" thenmy_anim:GetAnimState():SetBank("walrus")my_anim:GetAnimState():SetBuild("walrus_baby_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "mandrake" thenmy_anim:GetAnimState():SetBank("mandrake")my_anim:GetAnimState():SetBuild("mandrake")my_anim:GetAnimState():PlayAnimation("ground")	elseif data and data == "merm" thenmy_anim:GetAnimState():SetBank("pigman")my_anim:GetAnimState():SetBuild("merm_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "monkey" thenmy_anim:GetAnimState():SetBank("kiki")my_anim:GetAnimState():SetBuild("kiki_basic")my_anim:GetAnimState():PlayAnimation("idle_loop")	elseif data and data == "monkeybarrel" thenmy_anim:GetAnimState():SetBank("barrel")my_anim:GetAnimState():SetBuild("monkey_barrel")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "penguin" thenmy_anim:GetAnimState():SetBank("penguin")my_anim:GetAnimState():SetBuild("penguin_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "pigguard" thenmy_anim:GetAnimState():SetBank("pigman")my_anim:GetAnimState():SetBuild("pig_guard_build")my_anim:GetAnimState():PlayAnimation("idle_loop")	elseif data and data == "pigking" thenmy_anim:GetAnimState():SetBank("Pig_King")my_anim:GetAnimState():SetBuild("Pig_King")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "pigman" thenmy_anim:GetAnimState():SetBank("pigman")my_anim:GetAnimState():SetBuild("pig_build")my_anim:GetAnimState():PlayAnimation("idle_loop")	elseif data and data == "rabbit" thenmy_anim:GetAnimState():SetBank("rabbit")my_anim:GetAnimState():SetBuild("rabbit_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "robin" thenmy_anim:GetAnimState():SetBank("crow")my_anim:GetAnimState():SetBuild("robin_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "rocky" thenmy_anim:GetAnimState():SetBank("rocky")my_anim:GetAnimState():SetBuild("rocky")my_anim:GetAnimState():PlayAnimation("idle_loop")	elseif data and data == "shadowskittish" thenmy_anim:GetAnimState():SetBank("shadowcreatures")my_anim:GetAnimState():SetBuild("shadow_skittish")my_anim:GetAnimState():PlayAnimation("idle_loop")	elseif data and data == "terrorbeak" thenmy_anim:GetAnimState():SetBank("shadowcreature2")my_anim:GetAnimState():SetBuild("shadow_insanity2_basic")my_anim:GetAnimState():PlayAnimation("idle_loop")	elseif data and data == "smallbird" thenmy_anim:GetAnimState():SetBank("smallbird")my_anim:GetAnimState():SetBuild("smallbird_basic")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "spider" thenmy_anim:GetAnimState():SetBank("spider")my_anim:GetAnimState():SetBuild("spider_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "spider_hider" thenmy_anim:GetAnimState():SetBank("spider_hider")my_anim:GetAnimState():SetBuild("DS_spider_caves")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "spider_spitter" thenmy_anim:GetAnimState():SetBank("spider_spitter")my_anim:GetAnimState():SetBuild("DS_spider2_caves")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "spider_warrior" thenmy_anim:GetAnimState():SetBank("spider")my_anim:GetAnimState():SetBuild("spider_warrior_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "spider_warrior" thenmy_anim:GetAnimState():SetBank("spider")my_anim:GetAnimState():SetBuild("spider_warrior_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "spiderqueen" thenmy_anim:GetAnimState():SetBank("spider_queen")my_anim:GetAnimState():SetBuild("spider_queen_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "koalefant_summer" thenmy_anim:GetAnimState():SetBank("koalefant")my_anim:GetAnimState():SetBuild("koalefant_summer_build")my_anim:GetAnimState():PlayAnimation("idle_loop")	elseif data and data == "koalefant_winter" thenmy_anim:GetAnimState():SetBank("koalefant")my_anim:GetAnimState():SetBuild("koalefant_winter_build")my_anim:GetAnimState():PlayAnimation("idle_loop")	elseif data and data == "tallbird" thenmy_anim:GetAnimState():SetBank("tallbird")my_anim:GetAnimState():SetBuild("ds_tallbird_basic")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "teenbird" thenmy_anim:GetAnimState():SetBank("tallbird")my_anim:GetAnimState():SetBuild("tallbird_teen_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "tentacle" thenmy_anim:GetAnimState():SetBank("tentacle")my_anim:GetAnimState():SetBuild("tentacle")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "tentacle_pillar_arm" thenmy_anim:GetAnimState():SetBank("tentacle_arm")my_anim:GetAnimState():SetBuild("tentacle_arm")my_anim:GetAnimState():PlayAnimation("breach_pre")	elseif data and data == "leif" thenmy_anim:GetAnimState():SetBank("leif")my_anim:GetAnimState():SetBuild("leif_build")my_anim:GetAnimState():PlayAnimation("idle_loop")	elseif data and data == "maxwell" thenmy_anim:GetAnimState():SetBank("maxwell")my_anim:GetAnimState():SetBuild("maxwell_build")my_anim:GetAnimState():PlayAnimation("appear")	elseif data and data == "robin_winter" thenmy_anim:GetAnimState():SetBank("crow")my_anim:GetAnimState():SetBuild("robin_winter_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "bishop" thenmy_anim:GetAnimState():SetBank("bishop")my_anim:GetAnimState():SetBuild("bishop")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "knight" thenmy_anim:GetAnimState():SetBank("knight")my_anim:GetAnimState():SetBuild("knight_build")my_anim:GetAnimState():PlayAnimation("idle")	elseif data and data == "deerclops" thenmy_anim:GetAnimState():SetBank("deerclops")my_anim:GetAnimState():SetBuild("deerclops_build")my_anim:GetAnimState():PlayAnimation("idle_loop")---------------------elsemy_anim:GetAnimState():SetBank(data)my_anim:GetAnimState():SetBuild(data)my_anim:GetAnimState():PlayAnimation("idle")end

    There's still a handful that don't show for whatever reason, like bat, chester, bishop, knight, gobbler(perd), and penguin (though you can still place most of these...)

  10. I know this is a losing battle, but I'm back at trying to get Test Tools to preview all Entities and Objects. I really don't expect help here because I understand this task is impossible, because the Entities' and Object's base (I'll get back to this in a sec) SetBuild is not always named the same as the prefab file. In fact, it's rarely named the same as the .lua file.

    Case in point: hound.lua. The 'base' SetBuild name is "hound". That's great and makes perfect sense. This also allows Test Tools to grab the 'base' image and load it in a 'preview' window. Just like it does with all the food and inventory items.

    Now, hound.lua also has two other hounds in there: Fire and Ice. If there was a way to probe the hound.lua file for those names, I'd be in business, but at least I can grab the 'base' hound image for Test Tools and leave the other digging for another day.

    bee.lua, on the other hand, does not follow this naming convention, and there lies the rub. If you dig into bee.lua, you'll see the 'base' SetBuild is not named "bee" (as you would expect) but "bee_build"! The programmers could have followed convention and made my life a lot easier, but they didn't. Seems they named it whatever came to mind at the time. I'll give them the benefit of the doubt and assume they had their reasons.

    So here we have names all over the place. The 'base' SetBuild is not "bee" but "bee_build". It's also in a function, not called bee, but workerbee. The other bee in there is the killer bee... except it's SetBuild is "bee_angry_build". Good luck trying to program for that.

    If a basic naming convention had been used, I could at least go in and grab the 'base' object/entity (hound, rock, tree, etc.). That would go along way. Then, you could go about writing code to probe for the other variations in the .lua file. As it is, though, we hit a wall that you can't get past, right off the bat.

    Now, of course, there was no way the game programmers could have foreseen an idiot like me would come along and try to get Test Tools to show preview images of everything and need a standardized naming convention. What's wrong with me!

    Anyway, as I say, I don't expect anyone to help here because it's an impossible task. But I did want to throw all this out there in case anyone was interested in why 90% of the Entity and Object previews are blanks.

    Anyway, thanks for listening! :highly_amused:

  11. How do you get the update? what am I missing? does it load when you sign on to the game? is there something i need to load myself? Is it a secret? I play the steam and stand alone games and have no up date as of yet my games still say the build is imminent.


    Tip on updating the stand alone version:

    Go into the latest updater directory you have and run updater.exe:


    [*]Running "C:\Program Files\DontStarve\updater\16\updater.exe"

    [*]It will create a new '17' update directory. Run THAT updater.exe.

    [*]It will create a new '18' update directory. Run THAT updater.exe to actually update your game.

    [*]I assume that the next update will require the updater.exe to run and create a '19' directory...

  12. Klei is certainly aware of things like this and is working to make the came a lighter load on our cpu's and gpu's. Things like unloading textures when not in use... As games progress, though, and get more involved, it's a sad fact they they just require more muscle to run. I've got a machine I built myself for gaming, but it's got a few years on it now and, while it can still run DS just fine, games like Cube World, lag like hell.Funny, that games you think would just zip along, lag and games you think would drag (like Borderlands 2) run great. Not sure what the issue is, except to have software and game designers work on the crappiest computers available instead of the best. (I'm looking at YOU Adobe...)

  13. I have a little suggestion, Biigfoot, it's time to change the 3 weeks between updates to four. A month.Finish coding in the first two weeks as always, and take your time to fix bugs.

    Currently, klei is reworking the actual mechanics of the game (we can see some of this with how the mods all break each update). I would think (and hope) that this gets better and better. As a consequence, they won't have so many game breaking bugs and can just concentrate on adding new things. I hope...

  14. I don't care, explain why steam gets the update first

    [MENTION=67945]monsterr4[/MENTION], Steam gets the update first because it is the testing platform. Steam is chosen because it's the one place Klei can control when and how to allow public preview testing and also when to pull it. This is why the Steam release is ready first and available first. The other platform releases are more involved and are not just a 'button push' release. Other servers are involved that are out Klei's control, so it takes more time.

  15. Well, [MENTION=1]JoeW[/MENTION], I hope the new greens are a lot more sociable than I am, haha.

    I will be adding some new greens here soon. The thing is, being a mod can put a lot of pressure on a person, and it's a lot to ask. So I try not to over-saturate the forum with mods. Most of our mods have checked in within the last 48 hours at least, they just don't posts as much. As [MENTION=2358]Syd[/MENTION] said, if you see an issue, report it.

  16. I apologize in advance if my question was answered in previous posts, and if it is in the incorrect location.

    I originally purchased the Strange New Powers version - standalone game via www.humblebundle.com. My ultimate question is how is the update delivered? I have since done the Stream download and it is updated appropriately, so I have found the workaround document already. So does anyone know how this is actually delivered on the standalone?

    I have checked the date stamp on the humblebundle site and it stays constantly at 07-17, so i'm not sure if it automatically makes the newer version available, or if its just a static one time download. I still haven't received the email notification of the update being available, even though I signed up for it from the games main screen. I manually ran the updater.exe and it once updated the updater but nothing more.

    Any help would be greatly appreciated.


    Read this first post. It shows how to manually update. Let us know if this doesn't work for you.

  17. I think he refers to in terms of activity. Most of them may be helping behind the scenes but they're pretty much dead as actual forum members.

    Might help, then, for OP to explain exactly want he thinks a moderator should be doing on the forums. Moderating or making friends? Maybe Klei can take it into consideration that the next moderator should be buddies with everyone and have an uber post count.

    Sorry, if that sounds snarky, but I don't think we're talking about moderating here as much as we're talking about a popularity contest.

  18. I'm not sure what you're after here. What would you have more moderators do? As Syd mentioned, if there are any issues, make use of the report option or call us with a mention. It's Klei's stance that we're not here to strong-arm arguments or opinions. What kind of a forum would that be? If you just want people that know the game inside and out and can help you out of a jam, well, there's a lot of those folks around already.Myself, I help with what I specialize in (mods) and anything else I hear about via a 'mention' or just browsing the forums. Never much trouble in general.I think there may be some confusion as to what a moderator does and what a good gamer/friend does.We're here to keep an eye on things, guide people with game/mod problems and step in when there's trouble, not lord it over the place. :loyal:

  19. Here you go. Look under 'Tech Trees'.

    Thank you , [MENTION=10028]tehMugwump[/MENTION]

    I now can exactly know what is not working , thanks to you :)

    But now I got new problem

    -I have a custom recipetabs

    -I have a custom item in my custom recipetabs

    E:/Games/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(17,1)	error calling gamepostinit in mod BRSITEM: ...steamapps/common/dont_starve/data/scripts/recipe.lua:26: attempt to index field 'level' (a number value)LUA ERROR stack traceback:        E:/Games/Steam/steamapps/common/dont_starve/data/scripts/recipe.lua(26,1) in function '_ctor'        E:/Games/Steam/steamapps/common/dont_starve/data/scripts/class.lua(28,1) in function 'Recipe'        E:/Games/Steam/steamapps/common/dont_starve/data/../mods/BRSITEM/modmain.lua(148,1)        =(tail call) ?        =[C] in function 'xpcall'        E:/Games/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(15,1)        E:/Games/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(405,1) in function 'SetPostEnv'        E:/Games/Steam/steamapps/common/dont_starve/data/scripts/mainfunctions.lua(562,1)
    It seems there is a new way how to declare recipe ?

    So, How it works now?

    Thanks anyway :joyous: