Jump to content

Recommended Posts

ok now its good....i would say it was a relative succesfull week even if sometimes it was feeling like exhausting trying to figure out things...for next week i think just things that are left are well the most importand thing being the perks of:


being able to throw the hammer with right click so it deals damage something simmilar to wolfgang dumbbel throw i think, maybe the throw can deal slightly more damage

being able to hammer action faster and gain 5 sanity from completing it

the monster tag so pigs attack

and thank you for this journey

  • Thanks 1

monster tag is in, being able to right click to throw hammer? uhm i looked at the dumbbell file and uhm...looks too complicated as of now so lets do being able to faster hammer action and gain sanity from it

at first i tried just adding this line thinkin it would be correct
image.png.7e231602744abd6805db953420670188.png


uhm...seems not correct, not even tried as of now adding sanity untill faster hammer is done

image.jpeg.d8dd10b78e03618313efe55b88fec8e4.jpeg

image.png.fa5de707d0455ad9fc0fc63c68ab9815.pnghmm...crash is gone now but hammering is not any faster

 

lookin at a differend mod to see how to make the hammer throwable....

https://steamcommunity.com/sharedfiles/filedetails/?id=896539374&searchtext=throwing+weapon

tried to copy some bit of it wich maybe seems like it....

local function DropWeapon(inst,attacker,target)
    local weapon=SpawnSaveRecord(inst.components.aimedprojectile.weapon)
    local sound=nil

    if target and target.components.workable and target.components.workable:CanBeWorked() and weapon.components.tool then
        if weapon.components.tool:CanDoAction(target.components.workable:GetWorkAction()) then
            target.components.workable:WorkedBy(attacker,1)
            if weapon.components.tool:CanDoAction(ACTIONS.MINE) then
                if target:HasTag("frozen") then
                    sound="dontstarve_DLC001/common/iceboulder_hit"
                elseif target:HasTag("moonglass") then
                    sound="turnoftides/common/together/moon_glass/mine"
                else 
                    sound="dontstarve/wilson/use_pick_rock"
                end
            elseif weapon.components.tool:CanDoAction(ACTIONS.HAMMER) then
                sound="dontstarve/wilson/hit"
            end
        end
    end
    weapon.Transform:SetPosition(inst.Transform:GetWorldPosition())
    weapon.components.inventoryitem:OnDropped()
    if weapon.components.combat and target.components.combat and target.components.health and not (target:HasTag("player") or target:HasTag("companion") or target:HasTag("wall")) then
        if attacker.components.leader ~= nil and weapon.components.follower ~= nil then
            if attacker.components.minigame_participator == nil then
                attacker.components.leader:AddFollower(weapon)
            end
        end
        weapon.components.combat:GetAttacked(target,10)
    elseif weapon.components.combat and weapon.components.health then
        weapon.components.health:DoDelta(-10)
    end

    if sound then
        if weapon.SoundEmitter then
            weapon.SoundEmitter:PlaySound(sound)
        elseif target.SoundEmitter then
            target.SoundEmitter:PlaySound(sound)
        end
    end
    if weapon.components.finiteuses then
        weapon.components.finiteuses:Use((weapon.components.weapon.attackwear or 1) * weapon.components.weapon.attackwearmultipliers:Get()*inst.components.aimedprojectile.consumption)
    end


image.jpeg.4fdc13e9aea8a6998d2429dbb9177c9b.jpeg


there maybe some other words needed but i am not sure wich thing is related to the throwing part and what is not

actual progress, was able to make him use slingshot and have him be able to craft it and ammo, just the basic skilltree less ones as it seems those or the like portable campfire need something else but thats what ever...maybe now lookin for wes balloon makin

image.png.9b24f1cc3f3b82519c1ae3f56e8354e6.png

2 hours ago, Echsrick said:

actual progress, was able to make him use slingshot and have him be able to craft it and ammo, just the basic skilltree less ones as it seems those or the like portable campfire need something else but thats what ever...maybe now lookin for wes balloon makin

image.png.9b24f1cc3f3b82519c1ae3f56e8354e6.png

!!!! it'sa shy guy!

  • Like 1
1 hour ago, gaymime said:

!!!! it'sa shy guy!

its indeed a shy guy, the second character, for hammer bro well...he kind of is finished just flavour of being able to right click to throw the hammer is realy all thats needs but its ok if i cant find anything about that just like shy guy being able to make balloons, means i have to draw the next character

1 hour ago, Echsrick said:

its indeed a shy guy, the second character, for hammer bro well...he kind of is finished just flavour of being able to right click to throw the hammer is realy all thats needs but its ok if i cant find anything about that just like shy guy being able to make balloons, means i have to draw the next character

i suppose the boomarang is too much of a deviation? it is mechanically correct in every way except is is on a horizontal arching plane instead of a vertical one(though there are boomerang bros)

  • Like 1
8 minutes ago, gaymime said:

i suppose the boomarang is too much of a deviation? it is mechanically correct in every way except is is on a horizontal arching plane instead of a vertical one(though there are boomerang bros)

thing is then the hammer if it does have boomerang propertys will not be able to be used as a mellee weapon, actualy originaly plan was with skill tree there be a skill that boomerangs do like 10 more damager and other skills with overheat resistance and freeze ressistance but...skill trees realy are a differend kind of beast so i just settle down with relative simple characters with not too much fluff goin for

1 minute ago, Echsrick said:

thing is then the hammer if it does have boomerang propertys will not be able to be used as a mellee weapon, actualy originaly plan was with skill tree there be a skill that boomerangs do like 10 more damager and other skills with overheat resistance and freeze ressistance but...skill trees realy are a differend kind of beast so i just settle down with relative simple characters with not too much fluff goin for

fair! i hadnt really considered that

  • Like 1
9 minutes ago, gaymime said:

fair! i hadnt really considered that

i mean right now i got 2 characters to a good spot right now, where i think there fine enought, i allready think i will not go make all 8 of those conchepts real...drawing all these art asets realy is draining especialy when i am alsol play testing someones fan game and bug report all of that kind of sorts and suggestions, so yea maybe only 4 or 5 of them will actualy be made depending on life stuff and all, but the 2 most importand hammer bro and shy guy are in a good spot wich is most importand because it represents me and...someone i hold dear to me

  • Like 1

Bild

so i got the next character done...now i want him to be realy basic pretty much, and think of him having a dash like wheeler has maybe and being able to craft rope, boards, and cutstone with 1 less needed of its respective resource to be able to be made....now again how is the question, normal refined resource crafts as a cheaper character exclusive  alternative? and the whole dashing thing realy...thats realy the parts i feel helpless with

i cant...i just cant figure out how to do something simple as that, i look at several differend mods and....i just cant get smart with it, i think i realy need help, just the cheaper refined crafts if anything realy, i am goin to break my head at this, a headace, that realy sould not of happend...argh....

On 4/2/2026 at 11:07 AM, Echsrick said:

i cant...i just cant figure out how to do something simple as that, i look at several differend mods and....i just cant get smart with it, i think i realy need help, just the cheaper refined crafts if anything realy, i am goin to break my head at this, a headace, that realy sould not of happend...argh....

It’s pretty simple if you just add a new recipe and make it character-exclusive, but that would result in having two identical items in the Refine tab with different ingredient costs. Hiding the original, more expensive recipe is actually quite a challenge (at least for me). I’ve tested the code below using AI, and it seems to be working. As for the Wheeler-style dash, I’d suggest reaching out to the author of that mod; it’s always easier when you can learn from those who have done it before.
https://steamcommunity.com/sharedfiles/filedetails/?id=2399658326
 

Spoiler
-- Configuration: add characters and recipes here
-- Format: [original_recipe] = { tag = "builder_tag", recipe = "mod_recipe_name", ingredients = {...}, tech = TECH.xxx, tab = {"TAB"} }
local DISCOUNT_RECIPES = {
    {
        original  = "boards",
        tag       = "yourtag",
        name      = "boards_custom",
        product   = "boards",
        ingredients = { Ingredient("log", 2) },
        tech      = GLOBAL.TECH.ONE,
        tab       = { "REFINE" },
    },
    {
        original  = "rope",
        tag       = "yourtag",
        name      = "rope_custom",
        product   = "rope",
        ingredients = { Ingredient("cutgrass", 2) },
        tech      = GLOBAL.TECH.ONE,
        tab       = { "REFINE" },
    },
}

local blocked = {}
for _, entry in ipairs(DISCOUNT_RECIPES) do
    if blocked[entry.original] == nil then
        blocked[entry.original] = {}
    end
    blocked[entry.original][entry.tag] = true
    AddRecipe2(entry.name, entry.ingredients, entry.tech, {
        builder_tag = entry.tag,
        product     = entry.product,
    }, entry.tab)
end

AddClassPostConstruct("components/builder_replica", function(self)
    local _KnowsRecipe = self.KnowsRecipe
    self.KnowsRecipe = function(self, recipe, ...)
        if type(recipe) == "string" then
            recipe = GetValidRecipe(recipe)
        end
        if recipe ~= nil then
            local tags = blocked[recipe.name]
            if tags ~= nil then
                for tag, _ in pairs(tags) do
                    if self.inst:HasTag(tag) then
                        return false
                    end
                end
            end
        end
        return _KnowsRecipe(self, recipe, ...)
    end
    local _CanLearn = self.CanLearn
    self.CanLearn = function(self, recipename, ...)
        local tags = blocked[recipename]
        if tags ~= nil then
            for tag, _ in pairs(tags) do
                if self.inst:HasTag(tag) then
                    return false
                end
            end
        end
        return _CanLearn(self, recipename, ...)
    end
end)

 

 

1 hour ago, Haruhi Kawaii said:

It’s pretty simple if you just add a new recipe and make it character-exclusive, but that would result in having two identical items in the Refine tab with different ingredient costs. Hiding the original, more expensive recipe is actually quite a challenge (at least for me). I’ve tested the code below using AI, and it seems to be working. As for the Wheeler-style dash, I’d suggest reaching out to the author of that mod; it’s always easier when you can learn from those who have done it before.
https://steamcommunity.com/sharedfiles/filedetails/?id=2399658326
 

  Hide contents
-- Configuration: add characters and recipes here
-- Format: [original_recipe] = { tag = "builder_tag", recipe = "mod_recipe_name", ingredients = {...}, tech = TECH.xxx, tab = {"TAB"} }
local DISCOUNT_RECIPES = {
    {
        original  = "boards",
        tag       = "yourtag",
        name      = "boards_custom",
        product   = "boards",
        ingredients = { Ingredient("log", 2) },
        tech      = GLOBAL.TECH.ONE,
        tab       = { "REFINE" },
    },
    {
        original  = "rope",
        tag       = "yourtag",
        name      = "rope_custom",
        product   = "rope",
        ingredients = { Ingredient("cutgrass", 2) },
        tech      = GLOBAL.TECH.ONE,
        tab       = { "REFINE" },
    },
}

local blocked = {}
for _, entry in ipairs(DISCOUNT_RECIPES) do
    if blocked[entry.original] == nil then
        blocked[entry.original] = {}
    end
    blocked[entry.original][entry.tag] = true
    AddRecipe2(entry.name, entry.ingredients, entry.tech, {
        builder_tag = entry.tag,
        product     = entry.product,
    }, entry.tab)
end

AddClassPostConstruct("components/builder_replica", function(self)
    local _KnowsRecipe = self.KnowsRecipe
    self.KnowsRecipe = function(self, recipe, ...)
        if type(recipe) == "string" then
            recipe = GetValidRecipe(recipe)
        end
        if recipe ~= nil then
            local tags = blocked[recipe.name]
            if tags ~= nil then
                for tag, _ in pairs(tags) do
                    if self.inst:HasTag(tag) then
                        return false
                    end
                end
            end
        end
        return _KnowsRecipe(self, recipe, ...)
    end
    local _CanLearn = self.CanLearn
    self.CanLearn = function(self, recipename, ...)
        local tags = blocked[recipename]
        if tags ~= nil then
            for tag, _ in pairs(tags) do
                if self.inst:HasTag(tag) then
                    return false
                end
            end
        end
        return _CanLearn(self, recipename, ...)
    end
end)

 

 

hmmm, what if its just inside there character crafts instead? seperated? like not filter "refine" but character filter instead? inside the script folder? like maybe that works, i could copy this....and see later when i get the time for it...only confusing parts are these at that point

i guess its like trying to remove the old versions wich...its ok if i am not able to remove it fully, if there seperated in craft filters still, wheeler thing i too can ask later and maybe get info on that, thank you!

local blocked = {}
for _, entry in ipairs(DISCOUNT_RECIPES) do
    if blocked[entry.original] == nil then
        blocked[entry.original] = {}
    end
    blocked[entry.original][entry.tag] = true
    AddRecipe2(entry.name, entry.ingredients, entry.tech, {
        builder_tag = entry.tag,
        product     = entry.product,
    }, entry.tab)
end

AddClassPostConstruct("components/builder_replica", function(self)
    local _KnowsRecipe = self.KnowsRecipe
    self.KnowsRecipe = function(self, recipe, ...)
        if type(recipe) == "string" then
            recipe = GetValidRecipe(recipe)
        end
        if recipe ~= nil then
            local tags = blocked[recipe.name]
            if tags ~= nil then
                for tag, _ in pairs(tags) do
                    if self.inst:HasTag(tag) then
                        return false
                    end
                end
            end
        end
        return _KnowsRecipe(self, recipe, ...)
    end
    local _CanLearn = self.CanLearn
    self.CanLearn = function(self, recipename, ...)
        local tags = blocked[recipename]
        if tags ~= nil then
            for tag, _ in pairs(tags) do
                if self.inst:HasTag(tag) then
                    return false
                end
            end
        end
        return _CanLearn(self, recipename, ...)
    end
end)
3 hours ago, Echsrick said:

hmmm, what if its just inside there character crafts instead? seperated? like not filter "refine" but character filter instead? inside the script folder? like maybe that works, i could copy this....and see later when i get the time for it...only confusing parts are these at that point

i guess its like trying to remove the old versions wich...its ok if i am not able to remove it fully, if there seperated in craft filters still, wheeler thing i too can ask later and maybe get info on that, thank you!

local blocked = {}
for _, entry in ipairs(DISCOUNT_RECIPES) do
    if blocked[entry.original] == nil then
        blocked[entry.original] = {}
    end
    blocked[entry.original][entry.tag] = true
    AddRecipe2(entry.name, entry.ingredients, entry.tech, {
        builder_tag = entry.tag,
        product     = entry.product,
    }, entry.tab)
end

AddClassPostConstruct("components/builder_replica", function(self)
    local _KnowsRecipe = self.KnowsRecipe
    self.KnowsRecipe = function(self, recipe, ...)
        if type(recipe) == "string" then
            recipe = GetValidRecipe(recipe)
        end
        if recipe ~= nil then
            local tags = blocked[recipe.name]
            if tags ~= nil then
                for tag, _ in pairs(tags) do
                    if self.inst:HasTag(tag) then
                        return false
                    end
                end
            end
        end
        return _KnowsRecipe(self, recipe, ...)
    end
    local _CanLearn = self.CanLearn
    self.CanLearn = function(self, recipename, ...)
        local tags = blocked[recipename]
        if tags ~= nil then
            for tag, _ in pairs(tags) do
                if self.inst:HasTag(tag) then
                    return false
                end
            end
        end
        return _CanLearn(self, recipename, ...)
    end
end)

Ah, if it's in the character tab, you just need to use AddCharacterRecipe. You can refer to this article; my code above was just trying to make it work similarly to how Woodie crafts boards with fewer resources.

 

  • Like 1

i dont get it, why is it made weird?

image.png.6cc4a562930affa8e784912fcd53955e.png
image.jpeg.b257949c197c277c622174b787b4317d.jpeg

it realy is not helpfull when every example looks differend, other mods look differend in how they do it, your example looks differend, and that other gues example looks differend, why does it all look differend i cant do it, i realy cant do anything, that just realy confusing my brain that i cant even do it

wait, some progress, weird progress

image.jpeg.c944a9d52333aaafa7f8f64759eb4c4f.jpeg

i made rope for the mod character only and cheaper but somehow it made it so no one else could make normal rope

found the fix

image.png.e25a81a79cfd2a9ddb03335b29e8b19d.png

now mod character got his cheaper alternatives in his character filter and the other characters can still do there old ropes, now i can just copy these lines and replace words with boards and so on

  • Like 1
7 hours ago, Echsrick said:

i dont get it, why is it made weird?

image.png.6cc4a562930affa8e784912fcd53955e.png
image.jpeg.b257949c197c277c622174b787b4317d.jpeg

it realy is not helpfull when every example looks differend, other mods look differend in how they do it, your example looks differend, and that other gues example looks differend, why does it all look differend i cant do it, i realy cant do anything, that just realy confusing my brain that i cant even do it

I recommend using VS Code with the LuaHelper extension. It provides immediate syntax error feedback, so you won't launch the game with broken code like when using Notepad++. It also supports many other extensions for AI assistance and code formatting.

For faster testing, use mods that generate tiny maps (like a small island), AFK mods, and disable Caves to significantly reduce loading times. Additionally, install the Better Crash Screen client mod; in many cases, it allows you to reload your save or the game directly after a crash without wasting too much time.

next one done with the art at least

image.png.11da9532c617f35aa765a802f5d1597c.png

hmm...lets see...i think it be easyer if i know how i can find files for existing characters to make him have fire and overheat protection like willow aswell as him not gain or lose health from food like wormwood, but how?

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...