tehMugwump Posted August 7, 2013 Share Posted August 7, 2013 (edited) 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? Edited August 7, 2013 by tehMugwump Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-282126 Share on other sites More sharing options...
Developer Ipsquiggle Posted August 7, 2013 Author Developer Share Posted August 7, 2013 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.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))endThis 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. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-282175 Share on other sites More sharing options...
tehMugwump Posted August 7, 2013 Share Posted August 7, 2013 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))endThis 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. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-282383 Share on other sites More sharing options...
tehMugwump Posted August 8, 2013 Share Posted August 8, 2013 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? Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-283228 Share on other sites More sharing options...
simplex Posted August 8, 2013 Share Posted August 8, 2013 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?It's because you're trying to set a global variable (ChangeTheImage) from inside a function. Don't Starve runs in strict mode, triggering an error.But ideally you shouldn't be exporting global variables from a mod anyway, can't ChangeTheImage be defined as a method, or as a local function? Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-283489 Share on other sites More sharing options...
Developer Ipsquiggle Posted August 8, 2013 Author Developer Share Posted August 8, 2013 (edited) 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?I just wrote this as a function (and an incorrect one it turns out) just because that's what I usually do when I come up with a "chunk" of code. However, looking at the TestScreen file, I see that you actually use a separate anim/image for each "kind" of thing, so you'll need to do something like this: self.entitySpinner = Spinner(entityOptions, 180, spinnerHeight, spinnerFont, spinner_atlas, spinner_images) function self.entitySpinner:OnChanged(data) this.working.entityPrefab = data this:UpdateSelectedEntity() self.image = self:AddChild(Image("images/ui.xml", "portrait_bg.tex")) self.image:SetScale(1,1,1) -- large portrait box self.image:SetPosition(350,-25,0) if self.entity_preview then self:RemoveChild(self.entity_preview) end self.entity_preview = self:AddChild(UIAnim(data)) self.entity_preview:GetAnimState():SetBank(data) self.entity_preview:GetAnimState():SetBuild(data) self.entity_preview:GetAnimState():PlayAnimation("idle") --if entity_preview:GetAnimState():SetBank(data) then self.entity_preview:SetScale(0.25,0.25,0.25) self.entity_preview:SetPosition(350,-70,0) endWhat I changed: I store the result of self:AddChild to a variable on self rather than a local, so that it's saved. Then, I can check to see if that child exists, and if so, remove it before adding a new one.You'll have to do the same for the food preview, object, etc. Edited August 8, 2013 by Ipsquiggle Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-283568 Share on other sites More sharing options...
tehMugwump Posted August 8, 2013 Share Posted August 8, 2013 (edited) [MENTION=55]Ipsquiggle[/MENTION], [MENTION=44092]simplex[/MENTION], nearly done!. I threw a test build up if you want to check it out >>. All I need to do now is have the Object items clear out the image left from Entity and vis-versa.Ipsquiggle, you'll see I had to throw in a self.entity_preview:Hide() in your if self.entity_preview code. Strange, but what it was doing wasn't removing the image, but moving almost off screen to the bottom of the table it seems. I could tell when I loaded taller objects. The Hide function took care of it perfectly. End result was the same though, nice clean image previews. Edited August 8, 2013 by tehMugwump Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-283751 Share on other sites More sharing options...
_Q_ Posted August 8, 2013 Share Posted August 8, 2013 [MENTION=55]Ipsquiggle[/MENTION]Please create mod request subforum. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-283759 Share on other sites More sharing options...
Developer Ipsquiggle Posted August 8, 2013 Author Developer Share Posted August 8, 2013 (edited) @tehMugwumpAha! I didn't know this before, but you actually need to kill the element as well, like:self:RemoveChild(self.entity_preview)self.entity_preview:Kill()So remove child just made it so the image or whatever was no longer choosing it's position relative to the screen (so it appeared some place funny). Kill() actually gets rid of it. Hide() would work as well, visually, but it means that you're getting a bunch of invisible images/anims stacking up in the bottom corner doing no one any good. ---e: Actually Kill removes it from it's parent, so that can just be:if self.entity_preview then self.entity_preview:Kill()end Edited August 8, 2013 by Ipsquiggle Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-283760 Share on other sites More sharing options...
Developer Ipsquiggle Posted August 8, 2013 Author Developer Share Posted August 8, 2013 @IpsquigglePlease create mod request subforum.Indeed, something could be done about this... I'll have a talk with Joe and see how we want to handle it. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-283767 Share on other sites More sharing options...
tehMugwump Posted August 8, 2013 Share Posted August 8, 2013 Thanks [MENTION=55]Ipsquiggle[/MENTION], one more question and I promise I'll leave you alone! (for a bit anyway, )From one function [function self.objectSpinner:OnChanged(data)] I need to kill self.bg in another function [function self.entitySpinner:OnChanged(data)]Basically, the Object function calls a background for the previews. I kill it with each preview change so it doesn't stack and get messy. When I go to the Entity function, I need to kill the background that's left over from the Object preview, but I don't know how to jump into another function like that...From here in the Object function:if self.bg2 thenself:RemoveChild(self.bg2)self.bg2:Kill()endand here in the Entity function:if self.bg thenself:RemoveChild(self.bg)self.bg:Kill()endEach needs to kill the other's bg image... Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-283926 Share on other sites More sharing options...
Developer Ipsquiggle Posted August 8, 2013 Author Developer Share Posted August 8, 2013 @tehMugwumpSince you're just modifying data, you can just copy it into eachother's functions.if self.bg then self.bg:Kill() self.bg = nilendif self.bg_2 then self.bg_2:Kill() self.bg_2 = nilendself.bg = blah.blah So when that bit runs (whichever function it's in) it will destroy both images, if possible. (And do nothing to an image if it's already been destroyed -- notice how I set the "unused" self.bg_2 to nil, so that the 'if' will be false if we try again. It's not actually necessary to set self.bg to nil, because we set it to something else in the very next line. I just did it here so that it's a bit more explanitory what's happening and so this code can be more safely copied and pasted around.) Then it will create one new image and save it as self.bg.So the above would be copied into both/all applicable locations, swapping which image is being killed and replaced, of course. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-283964 Share on other sites More sharing options...
_Q_ Posted August 9, 2013 Share Posted August 9, 2013 [MENTION=55]Ipsquiggle[/MENTION]What changes additions will get to mod api on the next update? Any chances for crock pot food mods and custom mini map images? Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-284697 Share on other sites More sharing options...
tehMugwump Posted August 9, 2013 Share Posted August 9, 2013 (edited) Hmm, isn't working. (though it still removes it's own picture frame) The image stays in place (Objects loads it's preview frame on top of Entities frame and images, so none of those preview images are visible. Here's the two fucntions. If you want, you can just paste this into Test Tools replacing the two functions. (though you'll need the 'test' build I have uploaded)-- ########################### ENTITYS ########################### --self.entitySpinner = Spinner(entityOptions, 180, spinnerHeight, spinnerFont, spinner_atlas, spinner_images)function self.entitySpinner:OnChanged(data) this.working.entityPrefab = data this:UpdateSelectedEntity()------- clean up preview framesif self.bg thenself:RemoveChild(self.bg) self.bg:Kill() self.bg = nilendif self.bg_2 thenself:RemoveChild(self.bg2) self.bg_2:Kill() self.bg_2 = nilend-- then load picture frame 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)------- clean up preview framelocal info = build_info[data]if info then if self.entity_preview then self:RemoveChild(self.entity_preview) self.entity_preview:Kill() end--$$$$$$$$$$$$$$$$$$$$$$$$$ pulls from builds.lua $$$$$$$$$$$$$$$$$$$$$$$$$--build_info.penguin.baseanim = "idle_loop"build_info.bat.baseanim = "fly_loop"build_info.bishop.baseanim = "idle_loop"build_info.knight.baseanim = "idle_loop"build_info.chester.baseanim = "idle_loop"build_info.pigman.baseanim = "idle_happy"build_info.merm.baseanim = "idle_happy"build_info.perd.baseanim = "idle_loop"build_info.walrus.baseanim = "idle_angry"build_info.tentacle.baseanim = "atk_loop"build_info.tentacle_pillar_arm.baseanim = "atk_loop"build_info.pigguard.baseanim = "idle_happy"build_info.lureplant.baseanim = "idle_out"build_info.eyeplant.baseanim = "atk"build_info.slurper.baseanim = "idle", true -- everything in SGslurper.lua tried - NOTHING worksself.entity_preview = self:AddChild(UIAnim(data))self.entity_preview:GetAnimState():SetBank( info.bank )self.entity_preview:GetAnimState():SetBuild( info.build )self.entity_preview:GetAnimState():PlayAnimation( info.baseanim ) elseself.entity_preview:GetAnimState():SetBank(data)self.entity_preview:GetAnimState():SetBuild(data)self.entity_preview:GetAnimState():PlayAnimation("idle") endself.entity_preview:SetScale(0.25,0.25,0.25)self.entity_preview:SetPosition(440,-100,0)end-- end ENTITY-- ########################### OBJECTS ########################### --self.objectSpinner = Spinner(objectOptions, 180, spinnerHeight, spinnerFont, spinner_atlas, spinner_images)function self.objectSpinner:OnChanged(data) this.working.objectPrefab = data this:UpdateSelectedObject()------- clean up preview frameif self.bg thenself:RemoveChild(self.bg) self.bg:Kill() self.bg = nilendif self.bg_2 thenself:RemoveChild(self.bg2) self.bg_2:Kill() self.bg_2 = nilend-- then load picture frame self.bg2 = self:AddChild(Image("scripts/images/panel.xml", "panel.tex")) -- new preview frame self.bg2:SetScale(0.75,1,1) self.bg2:SetPosition(450,75,0)------- clean up preview frame local info = build_info[data]if info then if self.entity_preview then self:RemoveChild(self.entity_preview) self.entity_preview:Kill() end self.entity_preview = self:AddChild(UIAnim(data)) self.entity_preview:GetAnimState():SetBank( info.bank ) self.entity_preview:GetAnimState():SetBuild( info.build ) self.entity_preview:GetAnimState():PlayAnimation( info.baseanim )else self.entity_preview = self:AddChild(UIAnim(data)) self.entity_preview:GetAnimState():SetBank(data) self.entity_preview:GetAnimState():SetBuild(data) self.entity_preview:GetAnimState():PlayAnimation("idle")endself.entity_preview:SetScale(0.25,0.25,0.25)self.entity_preview:SetPosition(450,-50,0)end@tehMugwumpSince you're just modifying data, you can just copy it into eachother's functions.if self.bg then self.bg:Kill() self.bg = nilendif self.bg_2 then self.bg_2:Kill() self.bg_2 = nilendself.bg = blah.blah So when that bit runs (whichever function it's in) it will destroy both images, if possible. (And do nothing to an image if it's already been destroyed -- notice how I set the "unused" self.bg_2 to nil, so that the 'if' will be false if we try again. It's not actually necessary to set self.bg to nil, because we set it to something else in the very next line. I just did it here so that it's a bit more explanitory what's happening and so this code can be more safely copied and pasted around.) Then it will create one new image and save it as self.bg.So the above would be copied into both/all applicable locations, swapping which image is being killed and replaced, of course. Edited August 9, 2013 by tehMugwump Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-284756 Share on other sites More sharing options...
simplex Posted August 9, 2013 Share Posted August 9, 2013 [MENTION=55]Ipsquiggle[/MENTION], [MENTION=44092]simplex[/MENTION], nearly done!. I threw a test build up if you want to check it out >>. All I need to do now is have the Object items clear out the image left from Entity and vis-versa.Great! I'll take a look at it! (: Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-284857 Share on other sites More sharing options...
Developer Ipsquiggle Posted August 9, 2013 Author Developer Share Posted August 9, 2013 Hmm, isn't working. (though it still removes it's own picture frame) The image stays in place (Objects loads it's preview frame on top of Entities frame and images, so none of those preview images are visible. Here's the two fucntions. If you want, you can just paste this into Test Tools replacing the two functions. (though you'll need the 'test' build I have uploaded)The answer to this actually caught my by surprise!In the "OnChanged" functions (e.g. self.objectSpinner:OnChanged() ) the functions are class functions (they are defined using a colon : ).This means they automatically provide the "self" value.So when you write self.bg in that function, it's not the TestScreen's bg, but the objectSpinner's bg! So the answer was to make sure we were pointing at the correct backgrounds and previews.So the thing I did to fix it was move the creation of both spinners to the top (for cleanliness, you might want to move ALL the spinners to the top of the TestScreen:DoInit() function so they are together).Then I assigned the spinners to some local variables, so I could access them without relying on 'self'.Finally, the cleanup functions check the backgrounds/previews of the other spinner in addition to its own (self).-- ########################### ENTITYS ########################### -- self.entitySpinner = Spinner(entityOptions, 180, spinnerHeight) self.objectSpinner = Spinner(objectOptions, 180, spinnerHeight) local entitySpinner = self.entitySpinner local objectSpinner = self.objectSpinner function self.entitySpinner:OnChanged(data) this.working.entityPrefab = data this:UpdateSelectedEntity() ------- clean up preview frames if self.bg then self.bg:Kill() self.bg = nil end if objectSpinner.bg_2 then objectSpinner.bg_2:Kill() objectSpinner.bg_2 = nil end if objectSpinner.entity_preview then objectSpinner.entity_preview:Kill() objectSpinner.entity_preview = nil end -- then load picture frame self.bg = self:AddChild(Image("scripts/images/panel.xml", "panel.tex")) -- new preview frame self.bg:SetScale(0.75,1,1) self.bg:SetPosition(480,0,0) ------- clean up preview frame local info = build_info[data] if info then if self.entity_preview then self:RemoveChild(self.entity_preview) self.entity_preview:Kill() end--$$$$$$$$$$$$$$$$$$$$$$$$$ pulls from builds.lua $$$$$$$$$$$$$$$$$$$$$$$$$-- build_info.penguin.baseanim = "idle_loop" build_info.bat.baseanim = "fly_loop" build_info.bishop.baseanim = "idle_loop" build_info.knight.baseanim = "idle_loop" build_info.chester.baseanim = "idle_loop" build_info.pigman.baseanim = "idle_happy" build_info.merm.baseanim = "idle_happy" build_info.perd.baseanim = "idle_loop" build_info.walrus.baseanim = "idle_angry" build_info.tentacle.baseanim = "atk_loop" build_info.tentacle_pillar_arm.baseanim = "atk_loop" build_info.pigguard.baseanim = "idle_happy" build_info.lureplant.baseanim = "idle_out" build_info.eyeplant.baseanim = "atk" build_info.slurper.baseanim = "idle", true -- everything in SGslurper.lua tried - NOTHING works self.entity_preview = self:AddChild(UIAnim(data)) self.entity_preview:GetAnimState():SetBank( info.bank ) self.entity_preview:GetAnimState():SetBuild( info.build ) self.entity_preview:GetAnimState():PlayAnimation( info.baseanim ) else self.entity_preview:GetAnimState():SetBank(data) self.entity_preview:GetAnimState():SetBuild(data) self.entity_preview:GetAnimState():PlayAnimation("idle") end self.entity_preview:SetScale(0.25,0.25,0.25) self.entity_preview:SetPosition(440,-100,0) end-- end ENTITY-- ########################### OBJECTS ########################### -- function self.objectSpinner:OnChanged(data) this.working.objectPrefab = data this:UpdateSelectedObject()------- clean up preview frame if entitySpinner.entity_preview then entitySpinner.entity_preview:Kill() entitySpinner.entity_preview = nil end if entitySpinner.bg then entitySpinner.bg:Kill() entitySpinner.bg = nil end if self.bg_2 then self.bg_2:Kill() self.bg_2 = nil end-- then load picture frame self.bg_2 = self:AddChild(Image("scripts/images/panel.xml", "panel.tex")) -- new preview frame self.bg_2:SetScale(0.75,1,1) self.bg_2:SetPosition(450,75,0)------- clean up preview frame local info = build_info[data] if info then if self.entity_preview then self:RemoveChild(self.entity_preview) self.entity_preview:Kill() end self.entity_preview = self:AddChild(UIAnim(data)) self.entity_preview:GetAnimState():SetBank( info.bank ) self.entity_preview:GetAnimState():SetBuild( info.build ) self.entity_preview:GetAnimState():PlayAnimation( info.baseanim ) else self.entity_preview = self:AddChild(UIAnim(data)) self.entity_preview:GetAnimState():SetBank(data) self.entity_preview:GetAnimState():SetBuild(data) self.entity_preview:GetAnimState():PlayAnimation("idle") end self.entity_preview:SetScale(0.25,0.25,0.25) self.entity_preview:SetPosition(450,-50,0) endThere are quite a number of ways we could have solved this (as with most programming problems!) but this is one. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-285224 Share on other sites More sharing options...
Developer Ipsquiggle Posted August 9, 2013 Author Developer Share Posted August 9, 2013 Crock pots will be partially added (Custom recipes and ingredients! They won't show up in the pot yet but that's on my to-do). Custom minimap icons will probably not make this update but I'm gonna try.Most of the updates to the API have been around creating "AddPostInit" style functions for a wider range of features so that it's more straightforward and standard to do common things, along the lines of the world gen functions from last update. I'll post a full list on Preview day once I've finalized what that list is. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-285236 Share on other sites More sharing options...
tehMugwump Posted August 9, 2013 Share Posted August 9, 2013 [MENTION=55]Ipsquiggle[/MENTION], that did it. When I ran it, though, all I got was a blank screen with the red lined background.... Found out I had to keep the full lines up top:self.entitySpinner = Spinner(entityOptions, 180, spinnerHeight, spinnerFont, spinner_atlas, spinner_images)self.objectSpinner = Spinner(objectOptions, 180, spinnerHeight, spinnerFont, spinner_atlas, spinner_images)I think this is damn near it fellas! Couldn't have done it without ya! Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-285315 Share on other sites More sharing options...
simplex Posted August 10, 2013 Share Posted August 10, 2013 [MENTION=10028]tehMugwump[/MENTION]About why ("idle_loop", true) is failing for the Slurper, I really have no idea. All my tests failed, just like yours.But I'm posting this here because, upon finally running the Test Tools for actual testing (huh), I realized something quite a bit more strange. Nothing appears for me, under Linux. I tried booting into Windows, and over there everything is fine (except for these minor issues, such as the invisible Slurper). But under Linux this is what I get:Everything is functional: I can click on the spinners, I hear a sound and they actually do the spinning. Except that everything is invisible. So perhaps Ipsquiggle here might have some clue on what could be OS sensitive about the mod's contents. I never had any graphical issues with Don't Starve, and log.txt doesn't give any errors or warnings. It's so weird. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-286696 Share on other sites More sharing options...
tehMugwump Posted August 11, 2013 Share Posted August 11, 2013 [MENTION=55]Ipsquiggle[/MENTION], a request for the Mod community:Can we please get an Enable ALL button on the mod screen? I've lost count how many times the game has crashed and disabled all mods, I go in and fix the problem (because I was testing a mod) and each time have to go in and MANUALLY enable all 14 mods I'm running.An Enable ALL button would make our lives SO much easier! Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-287170 Share on other sites More sharing options...
Heavenfall Posted August 11, 2013 Share Posted August 11, 2013 I also find it very annoying that the game disables all mods sometimes. In my opinion, the game shouldn't do that, but instead just display a warning that a mod caused a crash but the game doesn't know which one. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-287180 Share on other sites More sharing options...
simplex Posted August 11, 2013 Share Posted August 11, 2013 I also find it very annoying that the game disables all mods sometimes. In my opinion, the game shouldn't do that, but instead just display a warning that a mod caused a crash but the game doesn't know which one.The game does that to prevent the game from not loading at all due to a mod. This needs to be done at some extent to avoid lockups. But it would be nicer if the game prompted the user with a dialog for choosing between disabling all mods or not instead. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-287204 Share on other sites More sharing options...
tehMugwump Posted August 11, 2013 Share Posted August 11, 2013 The game does that to prevent the game from not loading at all due to a mod. This needs to be done at some extent to avoid lockups. But it would be nicer if the game prompted the user with a dialog for choosing between disabling all mods or not instead.That's why and Enable ALL button on the mod screen is needed. Either way, you're going to get in there and correct the problem and going back and manually enabling all your mods one by one is quite a pain. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-287302 Share on other sites More sharing options...
tehMugwump Posted August 11, 2013 Share Posted August 11, 2013 (edited) [MENTION=55]Ipsquiggle[/MENTION], though nothing has been touched in, on, or around the character select screen, I started getting reports of Test Tools crashing after selecting a new 'toon. Verified myself and it's a mystery why it's started crashing out of nowhere. Perhaps a backend change somewhere? Anyway, here's the relevant part of the log text:C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modindex.lua(106,1) loaded modindexC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modindex.lua(47,1) ModIndex: Beginning normal load sequence.C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(254,1) Loading modworldgenmain.lua for Test ToolsC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(262,1) Mod Test Tools had no modworldgenmain.lua. Skipping.C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(254,1) Loading modmain.lua for Test ToolsC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modutil.lua(9,1) Test Tools AddGamePostInitC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modutil.lua(9,1) Test Tools AddSimPostInitC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modutil.lua(9,1) Test Tools AddComponentPostInit ambientsoundmixerC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(340,1) Registering prefabs for Test ToolsC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(346,1) Registering Test Tools prefab: characterselectdummyC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(362,1) Registering default mod prefab for Test ToolsLOADING LUA SUCCESSC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/playerdeaths.lua(72,1) loaded morgue_releaseC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/playerprofile.lua(212,1) loaded profileC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/saveindex.lua(65,1) loaded saveindexC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/gamelogic.lua(71,1) LOAD BEC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/gamelogic.lua(75,1) LOAD BE: doneC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/gamelogic.lua(332,1) Loading Nav GridMiniMapComponent::SetAtlasInfo( minimap/minimap_data.xml )C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modindex.lua(57,1) ModIndex: Load sequence finished successfully.Reset() returningHttpClientWriteCallback (0x05913EA7, 1, 16, 0x05AFF824)HttpClientWriteCallback READ 16 (16 total)QueryServerComplete for handle [1] ok, HTTP 200: {"result":"OK"}MiniMapRenderer::GenerateForeground(): mAtlas = 095FAC68MiniMapComponent::SetAtlasInfo( minimap/minimap_data.xml )...mon/dont_starve/data/scripts/components/overseer.lua:28: attempt to call method 'Equip' (a nil value)LUA ERROR stack traceback: C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/components/overseer.lua(28,1) in function 'FightStat_Equip' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/components/inventory.lua(614,1) in function 'Equip' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/components/inventory.lua(119,1) in function 'OnLoad' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/entityscript.lua(1021,1) in function 'SetPersistData' C:/Program Files/Steam/steamapps/common/dont_starve/data/../mods/Test Tools/scripts/commands.lua(199,1) in function 'cb' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/screens/characterselectscreen.lua(72,1) in function 'onclick' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/animbutton.lua(52,1) in function 'domouseup' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/widget.lua(211,1) in function 'OnMouseUp' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/widget.lua(19,1) in function 'fn' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/entityscript.lua(585,1) in function 'PushEvent' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/input.lua(85,1) in function 'OnMouseButton' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/input.lua(219,1)C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modindex.lua(63,1) ModIndex: There was a mod crash at an unrecoverable state in loading.C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/frontend.lua(257,1) SCRIPT ERROR! Showing error screenMiniMapRenderer::GenerateForeground(): mAtlas = 095FAC68Collecting garbage...lua_gc took 0.17 seconds~SimLuaProxy()lua_close took 0.21 secondsOrphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager. Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager. HttpClient::ClientThread::Main() completeShutting downIt says error - overseer.lua(28,1), attempt to call method 'Equip' (a nil value), but open overseer.lua and it's all comments to line 47.Side note: characterselectscreen, when called by Test Tools, can't find biobox.tex unless I change this line and supply the files: Is this images being unloaded after game starts so it's not available?--self.biobox = self.fixed_root:AddChild(Image("images/fepanels.xml", "biobox.tex")) -- line from Hungerself.biobox = self.fixed_root:AddChild(Image("scripts/images/biobox.xml", "biobox.tex")) -- line from Powers Edited August 11, 2013 by tehMugwump Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-287801 Share on other sites More sharing options...
simplex Posted August 11, 2013 Share Posted August 11, 2013 [MENTION=55]Ipsquiggle[/MENTION], though nothing has been touched in, on, or around the character select screen, I started getting reports of Test Tools crashing after selecting a new 'toon. Verified myself and it's a mystery why it's started crashing out of nowhere. Perhaps a backend change somewhere? Anyway, here's the relevant part of the log text:C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modindex.lua(106,1) loaded modindexC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modindex.lua(47,1) ModIndex: Beginning normal load sequence.C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(254,1) Loading modworldgenmain.lua for Test ToolsC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(262,1) Mod Test Tools had no modworldgenmain.lua. Skipping.C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(254,1) Loading modmain.lua for Test ToolsC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modutil.lua(9,1) Test Tools AddGamePostInitC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modutil.lua(9,1) Test Tools AddSimPostInitC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modutil.lua(9,1) Test Tools AddComponentPostInit ambientsoundmixerC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(340,1) Registering prefabs for Test ToolsC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(346,1) Registering Test Tools prefab: characterselectdummyC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/mods.lua(362,1) Registering default mod prefab for Test ToolsLOADING LUA SUCCESSC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/playerdeaths.lua(72,1) loaded morgue_releaseC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/playerprofile.lua(212,1) loaded profileC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/saveindex.lua(65,1) loaded saveindexC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/gamelogic.lua(71,1) LOAD BEC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/gamelogic.lua(75,1) LOAD BE: doneC:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/gamelogic.lua(332,1) Loading Nav GridMiniMapComponent::SetAtlasInfo( minimap/minimap_data.xml )C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modindex.lua(57,1) ModIndex: Load sequence finished successfully.Reset() returningHttpClientWriteCallback (0x05913EA7, 1, 16, 0x05AFF824)HttpClientWriteCallback READ 16 (16 total)QueryServerComplete for handle [1] ok, HTTP 200: {"result":"OK"}MiniMapRenderer::GenerateForeground(): mAtlas = 095FAC68MiniMapComponent::SetAtlasInfo( minimap/minimap_data.xml )...mon/dont_starve/data/scripts/components/overseer.lua:28: attempt to call method 'Equip' (a nil value)LUA ERROR stack traceback: C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/components/overseer.lua(28,1) in function 'FightStat_Equip' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/components/inventory.lua(614,1) in function 'Equip' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/components/inventory.lua(119,1) in function 'OnLoad' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/entityscript.lua(1021,1) in function 'SetPersistData' C:/Program Files/Steam/steamapps/common/dont_starve/data/../mods/Test Tools/scripts/commands.lua(199,1) in function 'cb' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/screens/characterselectscreen.lua(72,1) in function 'onclick' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/animbutton.lua(52,1) in function 'domouseup' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/widget.lua(211,1) in function 'OnMouseUp' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/widget.lua(19,1) in function 'fn' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/entityscript.lua(585,1) in function 'PushEvent' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/input.lua(85,1) in function 'OnMouseButton' C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/input.lua(219,1)C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/modindex.lua(63,1) ModIndex: There was a mod crash at an unrecoverable state in loading.C:/Program Files/Steam/steamapps/common/dont_starve/data/scripts/frontend.lua(257,1) SCRIPT ERROR! Showing error screenMiniMapRenderer::GenerateForeground(): mAtlas = 095FAC68Collecting garbage...lua_gc took 0.17 seconds~SimLuaProxy()lua_close took 0.21 secondsOrphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager. Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager. HttpClient::ClientThread::Main() completeShutting downIt says error - overseer.lua(28,1), attempt to call method 'Equip' (a nil value), but open overseer.lua and it's all comments to line 47.Side note: characterselectscreen, when called by Test Tools, can't find biobox.tex unless I change this line and supply the files: Is this images being unloaded after game starts so it's not available?--self.biobox = self.fixed_root:AddChild(Image("images/fepanels.xml", "biobox.tex")) -- line from Hungerself.biobox = self.fixed_root:AddChild(Image("scripts/images/biobox.xml", "biobox.tex")) -- line from Powers?It's not commented!@components/overseer.lua 27 function FightStat_Equip(item,slot) 28 GetPlayer().components.overseer:Equip(item,slot) 29 endBut anyway, I'll see if I can track this down. Link to comment https://forums.kleientertainment.com/forums/topic/18801-modders-your-new-friend-at-klei/page/22/#findComment-287806 Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now