DeadlyFox Posted March 29, 2025 Share Posted March 29, 2025 I am trying to find wigfrids battle songs anim states, but i don't seem to find them anywhere, i need them for a item that i am working on right now. If anyone could help me I would be really grateful! Link to comment https://forums.kleientertainment.com/forums/topic/165115-need-help-finding-some-animstates/ Share on other sites More sharing options...
NPCMaxwell Posted March 29, 2025 Share Posted March 29, 2025 In SGWilson Wigfried has her own section for singing which is (not sure if in the latest updates it is still the same so I would be checking for it in your game's SGWilson, in case you want to make sure) -- Wigfrid State{ name = "sing_pre", tags = { "busy", "nointerrupt", "keep_pocket_rummage" }, onenter = function(inst) inst.components.locomotor:Stop() inst.AnimState:PlayAnimation("sing_pre", false) end, events = { EventHandler("animover", function(inst) if inst.AnimState:AnimDone() then local buffaction = inst:GetBufferedAction() local songdata = buffaction and buffaction.invobject.songdata or nil local singinginspiration = inst.components.singinginspiration if singinginspiration and songdata then if singinginspiration:IsSongActive(songdata) then inst:ClearBufferedAction() inst.components.talker:Say(GetActionFailString(inst, "SING_FAIL", "SAMESONG")) if not TryResumePocketRummage(inst) then inst.sg:GoToState("idle") end else inst.sg.statemem.keep_pocket_rummage_mem_onexit = true if singinginspiration:CanAddSong(songdata, buffaction.invobject) then inst.sg:GoToState("sing") else inst.sg:GoToState("cantsing") end end elseif not TryResumePocketRummage(inst) then inst.sg:GoToState("idle") end end end), }, onexit = CheckPocketRummageMem, }, State{ name = "sing_fail", tags = { "busy", "keep_pocket_rummage" }, onenter = function(inst) inst:PerformBufferedAction() if not TryResumePocketRummage(inst) then inst.sg:GoToState("idle") end --V2C: BAD! (code AFTER leaving state) -- Probably because they wanted talk to happen with "idle" state tag. -- Will just leave this one since talking is not that dangerous. -- PLEASE DO NOT COPY inst.components.talker:Say(GetActionFailString(inst, "SING_FAIL", "SAMESONG")) end, onexit = CheckPocketRummageMem, }, State{ name = "sing", tags = { "busy", "nointerrupt", "keep_pocket_rummage" }, onenter = function(inst) local buffaction = inst:GetBufferedAction() local songdata = buffaction and buffaction.invobject.songdata or nil if songdata ~= nil then inst.AnimState:PushAnimation(songdata.INSTANT and "quote" or "sing", false) if songdata.INSTANT then inst.components.talker:Say(GetString(inst, "ANNOUNCE_" .. string.upper(songdata.NAME)), nil, true) end end end, timeline = { TimeEvent(3 * FRAMES, function(inst) local buffaction = inst:GetBufferedAction() local songdata = buffaction and buffaction.invobject.songdata or nil if songdata then inst.SoundEmitter:PlaySound(songdata.SOUND or ("dontstarve_DLC001/characters/wathgrithr/"..(songdata.INSTANT and "quote" or "sing"))) end end), TimeEvent(24 * FRAMES, function(inst) inst:PerformBufferedAction() end), TimeEvent(34 * FRAMES, function(inst) inst.sg:RemoveStateTag("busy") inst.sg:RemoveStateTag("nointerrupt") end), FrameEvent(42, TryResumePocketRummage), }, events = { EventHandler("animover", function(inst) if inst.AnimState:AnimDone() then inst.sg:GoToState("idle") end end), }, onexit = CheckPocketRummageMem, }, State{ name = "cantsing", tags = { "keep_pocket_rummage" }, onenter = function(inst) local buffaction = inst:GetBufferedAction() local required_skill = buffaction and buffaction.invobject.songdata and buffaction.invobject.songdata.REQUIRE_SKILL or nil inst:ClearBufferedAction() local failstring = required_skill ~= nil and not inst.components.skilltreeupdater:IsActivated(required_skill) and "ANNOUNCE_NOTSKILLEDENOUGH" or "ANNOUNCE_NOINSPIRATION" inst.components.talker:Say(GetString(inst, failstring), nil, true) inst.AnimState:PlayAnimation("sing_fail", false) inst.SoundEmitter:PlaySound("dontstarve_DLC001/characters/wathgrithr/fail") end, timeline = { FrameEvent(34, TryResumePocketRummage), }, events = { EventHandler("animover", function(inst) if inst.AnimState:AnimDone() then inst.sg:GoToState("idle") end end), }, onexit = CheckPocketRummageMem, }, ------------------------------------------- in anim there are two zip folders called wathgrithr_mount_sing´and wathgrithr_sing which I assume may contain her singing animations Link to comment https://forums.kleientertainment.com/forums/topic/165115-need-help-finding-some-animstates/#findComment-1809851 Share on other sites More sharing options...
DeadlyFox Posted March 29, 2025 Author Share Posted March 29, 2025 (edited) Thanks @NPCMaxwell! Also could you help me again please because i had put this in my mod main : AddAction("SING", "Perform!", function(act) if act.invobject then act.invobject.components.performable:Sing(act.doer) return true end return false end) AddComponentAction("EQUIPPED", "performable", function(inst, doer, target, actions, right) if doer.replica.inventory:GetActiveItem() == nil and (doer.replica.rider == nil or not doer.replica.rider:IsRiding()) then table.insert(actions, GLOBAL.ACTIONS.SING) end end) AddStategraphActionHandler("wilson", GLOBAL.ActionHandler(GLOBAL.ACTIONS.SING, "dolongaction")) AddStategraphActionHandler("wilson_client", GLOBAL.ActionHandler(GLOBAL.ACTIONS.SING, "dolongaction")) local sing_state = GLOBAL.State{ name = "sing", tags = { "busy", "nointerrupt", "keep_pocket_rummage" }, onenter = function(inst) local buffaction = inst:GetBufferedAction() local songdata = buffaction and buffaction.invobject.songdata or nil if songdata ~= nil then inst.AnimState:PushAnimation(songdata.INSTANT and "quote" or "sing", false) if songdata.INSTANT then inst.components.talker:Say(GetString(inst, "ANNOUNCE_" .. string.upper(songdata.NAME)), nil, true) end end end, onexit = CheckPocketRummageMem, events = { EventHandler("animover", function(inst) if inst.AnimState:AnimDone() then inst.sg:GoToState("idle") end end), }, timeline = { TimeEvent(3 * FRAMES, function(inst) local buffaction = inst:GetBufferedAction() local songdata = buffaction and buffaction.invobject.songdata or nil if songdata then inst.SoundEmitter:PlaySound(songdata.SOUND or ("dontstarve_DLC001/characters/wathgrithr/"..(songdata.INSTANT and "quote" or "sing"))) end end), TimeEvent(24 * FRAMES, function(inst) inst:PerformBufferedAction() end), TimeEvent(34 * FRAMES, function(inst) inst.sg:RemoveStateTag("busy") inst.sg:RemoveStateTag("nointerrupt") end), FrameEvent(42, TryResumePocketRummage), }, } local sing_state_client = GLOBAL.State{ name = "sing", server_states = { "sing" }, forward_server_states = true, onenter = function(inst) inst.sg:GoToState("action_uniqueitem_busy") end } AddStategraphState("wilson_client", sing_state_client) AddStategraphState("wilson", sing_state) AddStategraphActionHandler("wilson", GLOBAL.ActionHandler(GLOBAL.ACTIONS.SING, "sing")) AddStategraphActionHandler("wilson_client", GLOBAL.ActionHandler(GLOBAL.ACTIONS.SING, "sing")) and it keeps crashing and i dont know what i did wrong, if you could help i would greatly apreciate it! Also here is the client log error: LUA ERROR stack traceback: =[C] in function 'error' scripts/strict.lua(23,1) scripts/mainfunctions.lua(1600,1) =[C] in function 'GetPersistentString' scripts/quagmire_recipebook.lua(54,1) in function 'Load' scripts/main.lua(394,1) in function 'ModSafeStartup' scripts/main.lua(506,1) =[C] in function 'SetPersistentString' scripts/mainfunctions.lua(29,1) in function 'SavePersistentString' scripts/modindex.lua(119,1) =[C] in function 'GetPersistentString' scripts/modindex.lua(106,1) in function 'BeginStartupSequence' scripts/main.lua(505,1) in function 'callback' scripts/modindex.lua(735,1) =[C] in function 'GetPersistentString' scripts/modindex.lua(709,1) in function 'Load' scripts/main.lua(504,1) in main chunk [00:01:36]: Faild to load the cookbook! false [string "scripts/json.lua"]:450: Failed to load string [ return "filters"] in JSON4Lua.decode_scanString at position 2 : 11 [00:01:36]: Failed to load the plantregistry! function: 0000000013F6E260 [00:01:36]: Failed to load the data in skilltree! false [string "scripts/json.lua"]:450: Failed to load string [ return "skillxp"] in JSON4Lua.decode_scanString at position 2 : 11 [00:01:36]: Trying to apply online cache of skilltree data.. [00:01:36]: Was a success, using old stored XP values of: [00:01:36]: K: willow V: 160 [00:01:36]: K: wilson V: 160 [00:01:36]: K: winona V: 8 [00:01:36]: K: wolfgang V: 42 [00:01:36]: K: woodie V: 160 [00:01:36]: K: wormwood V: 111 [00:01:36]: K: wurt V: 160 [00:01:36]: Also using old stored skill selection values of: [00:01:36]: K: willow V: table: 0000000012AD30B0 [00:01:36]: K: willow_allegiance_lunar_bernie V: true [00:01:36]: K: willow_allegiance_lunar_fire V: true [00:01:36]: K: willow_attuned_lighter V: true [00:01:36]: K: willow_bernieai V: true [00:01:36]: K: willow_berniehealth_1 V: true [00:01:36]: K: willow_bernieregen_1 V: true [00:01:36]: K: willow_bernieregen_2 V: true [00:01:36]: K: willow_berniesanity_1 V: true [00:01:36]: K: willow_berniesanity_2 V: true [00:01:36]: K: willow_controlled_burn_1 V: true [00:01:36]: K: willow_embers V: true [00:01:36]: K: willow_fire_ball V: true [00:01:36]: K: willow_fire_burst V: true [00:01:36]: K: willow_fire_frenzy V: true [00:01:36]: K: willow_lightradius_1 V: true [00:01:36]: K: wilson V: table: 0000000012AD36F0 [00:01:36]: K: wilson_alchemy_1 V: true [00:01:36]: K: wilson_alchemy_2 V: true [00:01:36]: K: wilson_alchemy_3 V: true [00:01:36]: K: wilson_alchemy_4 V: true [00:01:36]: K: wilson_alchemy_7 V: true [00:01:36]: K: wilson_allegiance_lunar V: true [00:01:36]: K: wilson_beard_1 V: true [00:01:36]: K: wilson_beard_2 V: true [00:01:36]: K: wilson_beard_4 V: true [00:01:36]: K: wilson_beard_7 V: true [00:01:36]: K: wilson_torch_1 V: true [00:01:36]: K: wilson_torch_2 V: true [00:01:36]: K: wilson_torch_4 V: true [00:01:36]: K: wilson_torch_5 V: true [00:01:36]: K: wilson_torch_7 V: true [00:01:36]: K: winona V: table: 0000000012AD2D40 [00:01:36]: K: winona_portable_structures V: true [00:01:36]: K: winona_spotlight_heated V: true [00:01:36]: K: wolfgang V: table: 0000000012AD2E30 [00:01:36]: K: wolfgang_allegiance_lunar_1 V: true [00:01:36]: K: wolfgang_critwork_1 V: true [00:01:36]: K: wolfgang_critwork_2 V: true [00:01:36]: K: wolfgang_dumbbell_crafting V: true [00:01:36]: K: wolfgang_normal_coach V: true [00:01:36]: K: wolfgang_normal_speed V: true [00:01:36]: K: wolfgang_overbuff_1 V: true [00:01:36]: K: wolfgang_overbuff_2 V: true [00:01:36]: K: wolfgang_planardamage_1 V: true [00:01:36]: K: woodie V: table: 0000000012AD2610 [00:01:36]: K: woodie_curse_goose_1 V: true [00:01:36]: K: woodie_curse_master V: true [00:01:36]: K: woodie_curse_moose_1 V: true [00:01:36]: K: woodie_curse_moose_2 V: true [00:01:36]: K: woodie_curse_weremeter_1 V: true [00:01:36]: K: woodie_curse_weremeter_2 V: true [00:01:36]: K: woodie_curse_weremeter_3 V: true [00:01:36]: K: woodie_human_lucy_1 V: true [00:01:36]: K: woodie_human_lucy_2 V: true [00:01:36]: K: woodie_human_lucy_3 V: true [00:01:36]: K: woodie_human_quickpicker_1 V: true [00:01:36]: K: woodie_human_quickpicker_2 V: true [00:01:36]: K: woodie_human_treeguard_1 V: true [00:01:36]: K: woodie_human_treeguard_2 V: true [00:01:36]: K: woodie_human_treeguard_max V: true [00:01:36]: K: wormwood V: table: 0000000012AD3100 [00:01:36]: K: wormwood_allegiance_lunar_mutations_1 V: true [00:01:36]: K: wormwood_allegiance_lunar_mutations_2 V: true [00:01:36]: K: wormwood_allegiance_lunar_mutations_3 V: true [00:01:36]: K: wormwood_berrybushcrafting V: true [00:01:36]: K: wormwood_blooming_farmrange1 V: true [00:01:36]: K: wormwood_blooming_speed1 V: true [00:01:36]: K: wormwood_identify_plants2 V: true [00:01:36]: K: wormwood_moon_cap_eating V: true [00:01:36]: K: wormwood_mushroomplanter_ratebonus1 V: true [00:01:36]: K: wormwood_mushroomplanter_ratebonus2 V: true [00:01:36]: K: wormwood_mushroomplanter_upgrade V: true [00:01:36]: K: wormwood_quick_selffertilizer V: true [00:01:36]: K: wormwood_reedscrafting V: true [00:01:36]: K: wormwood_saplingcrafting V: true [00:01:36]: K: wormwood_syrupcrafting V: true [00:01:36]: K: wurt V: table: 0000000012AD3150 [00:01:36]: K: wurt_amphibian_sanity_1 V: true [00:01:36]: K: wurt_amphibian_sanity_2 V: true [00:01:36]: K: wurt_amphibian_temperature V: true [00:01:36]: K: wurt_amphibian_thickskin_1 V: true [00:01:36]: K: wurt_amphibian_thickskin_2 V: true [00:01:36]: K: wurt_civ_2 V: true [00:01:36]: K: wurt_civ_3 V: true [00:01:36]: K: wurt_lunar_allegiance_1 V: true [00:01:36]: K: wurt_mermkingcrown V: true [00:01:36]: K: wurt_mermkingshoulders V: true [00:01:36]: K: wurt_mermkingtrident V: true [00:01:36]: K: wurt_mosquito_craft_1 V: true [00:01:36]: K: wurt_mosquito_craft_2 V: true [00:01:36]: K: wurt_mosquito_craft_3 V: true [00:01:36]: K: wurt_pathfinder V: true [00:01:36]: Saving skilltree file as a fixup. [00:01:36]: Failed to load the data in generickv! false [string "scripts/json.lua"]:450: Failed to load string [ return "kvs"] in JSON4Lua.decode_scanString at position 2 : 7 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "669A3770"] in JSON4Lua.decode_scanString at position 2 : 12 0 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "D7A1A9A1"] in JSON4Lua.decode_scanString at position 2 : 12 1 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "4144342"] in JSON4Lua.decode_scanString at position 2 : 11 2 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "60230443"] in JSON4Lua.decode_scanString at position 2 : 12 3 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "DF809124"] in JSON4Lua.decode_scanString at position 2 : 12 4 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "4C2B8B15"] in JSON4Lua.decode_scanString at position 2 : 12 5 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "CF1626"] in JSON4Lua.decode_scanString at position 2 : 10 6 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "9BC37EC7"] in JSON4Lua.decode_scanString at position 2 : 12 7 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "ABE2CCE8"] in JSON4Lua.decode_scanString at position 2 : 12 8 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "DF87DE19"] in JSON4Lua.decode_scanString at position 2 : 12 9 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "15B8981A"] in JSON4Lua.decode_scanString at position 2 : 12 10 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "3DC5793B"] in JSON4Lua.decode_scanString at position 2 : 12 11 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "21D9A5DC"] in JSON4Lua.decode_scanString at position 2 : 12 12 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "8770784D"] in JSON4Lua.decode_scanString at position 2 : 12 13 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "16EEC5E"] in JSON4Lua.decode_scanString at position 2 : 11 14 [00:01:36]: Failed to load the bucketdata in ScrapbookPartitions! false [string "scripts/json.lua"]:450: Failed to load string [ return "5C964CCF"] in JSON4Lua.decode_scanString at position 2 : 12 15 [00:01:36]: Faild to load the crafting menue profile! false [string "scripts/json.lua"]:450: Failed to load string [ return "version"] in JSON4Lua.decode_scanString at position 2 : 11 [00:01:36]: Failed to load the loading tips! false [string "scripts/json.lua"]:450: Failed to load string [ return "shownloadingtips"] in JSON4Lua.decode_scanString at position 2 : 20 [00:01:36]: DoLuaFile Error: (null) [00:01:36]: LuaError but no error string [00:01:36]: Error loading main.lua [00:01:36]: Failed mSimulation->Reset() [00:01:36]: [Workshop] CancelDownloads for all pending downloads [00:01:36]: Collecting garbage... [00:01:36]: lua_gc took 0.09 seconds [00:01:36]: ~ShardLuaProxy() [00:01:36]: ~cEventLeaderboardProxy() [00:01:36]: ~ItemServerLuaProxy() [00:01:36]: ~InventoryLuaProxy() [00:01:36]: ~NetworkLuaProxy() [00:01:36]: ~SimLuaProxy() [00:01:36]: [Workshop] CancelDownloads for all pending downloads [00:01:36]: lua_close took 0.05 seconds [00:01:37]: [Workshop] CancelDownloads for all pending downloads [00:01:37]: [Steam] Auth ticket cancelled [00:01:37]: CurlRequestManager::ClientThread::Main() complete [00:01:37]: HttpClient2 discarded 0 callbacks. [00:01:37]: Shutting down Edited March 29, 2025 by DeadlyFox Link to comment https://forums.kleientertainment.com/forums/topic/165115-need-help-finding-some-animstates/#findComment-1809862 Share on other sites More sharing options...
NPCMaxwell Posted March 29, 2025 Share Posted March 29, 2025 (edited) Sadly I can't help with that since I myself struggled too much with changing SGWilson via modmain so I made the worst sin and instead created an own SG for my modded character that I keep adkjusting with every game update ^^ But I hope someone who can READ client logs (I can't! I'm sorry, I only work with trial and error so far since I am a baby modder) and known better how to add states via modmain will be able to give you more help! (Maybe look through the mod forum here for people who have been doing trouble-shooting with reading logs before and attempt to tag them) Edited March 29, 2025 by NPCMaxwell 1 Link to comment https://forums.kleientertainment.com/forums/topic/165115-need-help-finding-some-animstates/#findComment-1809863 Share on other sites More sharing options...
DeadlyFox Posted March 29, 2025 Author Share Posted March 29, 2025 Its alright, and thatnks anyway! You have helped me find where the animations are, and i am grateful for that^^ 1 Link to comment https://forums.kleientertainment.com/forums/topic/165115-need-help-finding-some-animstates/#findComment-1809865 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