Leonardo Cox

  • Content Count

  • Joined

  • Last visited

 Content Type 




Klei Bug Tracker

Game Updates

Hot Lava Bug Reporter

Posts posted by Leonardo Cox

  1. Assets = 
    	Asset("ATLAS", "images/inventoryimages/petalsalve.xml"),

    Issue is that you didn't include the image in the asset table:

    Assets = 
    	Asset("IMAGE", "images/inventoryimages/petalsalve.tex" ),
    	Asset("ATLAS", "images/inventoryimages/petalsalve.xml"),

    In addition you'll need to specify the .tex being used in your recipe (assuming it wasn't working either)

    local petalsalve = AddRecipe("petalsalve", 
    	Ingredient("petals", 4),
    	Ingredient("rocks", 1)
    GLOBAL.RECIPETABS.SURVIVAL, TECH.SCIENCE_ONE, nil, nil, nil, nil, nil, "images/inventoryimages/petalsalve.xml", "petalsalve.tex")

    Let me know if that solved your issue.

  2. 10 hours ago, Mr. Tiddles said:

    Have confirmed. I had to change a few things for Warfarin but they were all my mistake that just came into effect with Reforged's imrpoved code. :p Most other mods that have Forge support shouldn't need to change though.


    Having a bit of fun as Wortox - kinda funny considering Warf's Forge power was going to be a dagger that let them dash. Though was the removal of the iFrames intentional for balance or simply an oversight due to not being able to take health while the character is invulnerable?

    I assume you mean wortox's teleportation iframes? In which case, we did it for both balance and needing to take health away.

  3. For icons in the crafting menu (outside of tab icons themselves) you'll want it to be 64x64. Atlas and tex packager is fine if you're already using it, as Handsome Matt's Tex Tools has some weird bugs in its latest version where it won't compile correctly. For the white background thing, you'd need to double check that the image is actually transparent.

  4. This post is incredibly late, oops.


    Massive Forged Forge Update
    It’s finally here, after several months of ups, downs, and hardwork, we finally finished the massive rework. There’s quite a bit to cover and while I want to talk about the content right now, there is something that current users of Forged Forge (FF) will need to know:

    Re-uploading the mod
    Unfortunately to some, this update will be hosted on a re-uploaded version of Forged Forge (rebranded to Reforged). While this will be annoying to some, including those who run dedicated servers, hear me out.
    Mods uploaded to the workshop for some reason do not allow contributors to edit/update the mod. This can lead to potential issues later down the road. So to prevent these issues and give more freedom to other people working on the mod, we have set up a group account which we will upload this rework on.
     From this point onward, only the new uploaded mod will receive updates, the old FF mod will be up for a few months (to allow users to be notified and move over to the new mod) and will be deleted or hidden afterwards.

    With that out of the way, we can now talk about the content in this rework:

    Loads of Bug Fixes/Accuracy improvements
    It’s not a secret that our current state of FF is not very accurate and tends to be very exploitable.  We took it upon ourselves to research as much as we could of Forge and prove all behaviors with evidence, and what we found was surprising. As a result, everything has changed in various ways. We will share our findings in a later post that will show proof supporting these changes. While most of these changes won’t be noticeable to the average player, it’s important to us that the mod achieves its goal of recreating the Forge event.

    New Features!
    It’d be pretty lame if the only thing we did was fix bugs. So we added many new things, the most important of which is the new Game Settings Panel. Here you can change the game settings on the fly, no longer will you need to restart or manually edit your mod config files to play a different waveset. You’ll notice in this pic below that there’s also quite a few new options on customizing your forge experience.

    Mutators are options that you can apply to your new run of forge. While a few of these options seem familiar, we added some new ones as well. Think you can beat the forge without your HUD? Can you beat it with PvP enabled? Or maybe you think you can beat it without being able to sleep mobs? OR maybe you’ll try out endless mode, where the waves reset when beaten with it getting progressively difficult each time. You can do all these options and even have more than one enabled at a time.

    Gametypes are a more indepth modification of the forge game itself, changing how it works. Red Light/Green Light from Forged Forge has been converted into a gametype and we added a new RL/GL version introducing some new lights as well. I don’t want to spoil on what these lights do, but it’s definitely harder than the old RL/GL.

    A brand new feature is the addition of a difficulty setting. Currently, we only have one new difficulty: Hard Mode. This makes changes to the mobs and some other mechanics to make things… well, hard. I don’t want to spoil all of the new stuff there that comes with hard mode so I recommend checking it out for yourself. Difficulty settings can be run on any waveset and gametype as well.

    New Lobby Features
    We added some fun stuff in the lobby: Interactable characters, dynamic shifting of portraits, and most importantly *the ability to vote kick*. Yes, finally you have the option to vote kick that one Wilson who never readies up. You can also vote to change game settings, force start, and cancel force start. Admins have the power to avoid voting if they choose to. There are also some new chat features which include removing the auto scroll to the bottom if a new message has been posted, notifying you of a new message in chat if not scrolled down all the way, and increasing the chat limit. You probably also noticed…

    Exp System
    You can now earn exp and level up like in the original Forge. However, it’s slightly different. There is now a rank system. When you level up to certain milestones you will notice that your avatar’s banner will change as you level up. You might also notice that the level displayed on your character is different when switching between characters and that it differs from your level on the player list. This is because now each individual character (including modded) now has their own individual level as well. Players can now use this level system to know how much experience a player has playing Forge and how much experience they have on a specific character. This is purely cosmetic and you will NOT unlock forge chests.

    New Characters’ Perks and Optional Balance changes
    Of course we didn’t forget about the new characters. Wortox, Warly, Wormwood, and Wurt are finally now complete with their own new unique perks and custom weapons.

    There are currently three modes available: Forge S01, Forge S02, and ReForged. Now you can choose which year of Forge you want to play. Currently this just changes mob behaviours and does not affect item drops. ReForged is our own version of the Forge where we attempt to balance the Forge based on community feedback (like making Abigail useful). Currently it doesn’t change much, but we will continue to add to it as we gather ideas for it.

    Modding Improvements
    We rewrote most of the code and now things are a lot more organized/optimized and it is now a lot easier to make mods with ReForged. The depth of these changes will be in the guides we are making. With all the new additions above, you can also mod in your own additions to these! 


    We got plans for Reforged later down the line to help keep things interesting, including Hallowed Forge in halloween of 2020!

    New mod is here: https://steamcommunity.com/sharedfiles/filedetails/?id=1938752683


  5. 26 minutes ago, Tosh said:


    I agree this is not the place to continue this discussion. But if you're interested in continuing this I'm free in my DMs or other places (like Discord). If this is all truly a misunderstanding (which I doubt) then perhaps we can settle it there. 

    Edit: Also just looking through the screencaps now, we weren't even rude to him (we didn't even him call idiotic). I'm even seeing stuff that doesn't line up with your post.

  6. 21 minutes ago, Tosh said:

    Like this, don’t say stuff like this. I’m friends with Fuffles outside of the community so I’m aware of how rude people have been to him. I’m sure it’s not you’re intention, but avoid presuming to know someone’s situation and definitely don’t try to attack or laugh at someone when they’re already upset. 

    Just be nicer. If Fuffles decides to come back and share the free content that he’s spent 1,000+ hours making, then that’s fantastic. Ultimately it’s gonna be his decision alone.


    (I should make it clear that even though I’m friends with Fuffles, I don’t speak for him)

    Idk if you've ever been there when this stuff happens, but he has a history of being arrogant and pretty rude to people right off the bat. A good example is when he left all the public discords. It started off as an innocent conversation where Fuffles thought the malbatross wings were 3D, when proof was shown that it was just fancy 2D animation tricks, rather than admitting he was wrong, he instead double downed and got to the point where he was faking evidence to back up his claims. When called out on it, he called everyone stupid for falling for an epic troll, called us all triggered and proceeded to leave several discords. He turned into drama for no reason. This is a common theme with him and has been for a long time.

    Now ofc people shouldn't be mean to Fuffles or harass him and its a shame that he decided to leave, etc etc. But if you're going to be outright rude or talk down to people, people aren't going to be nice to you in return. A fact that Fuffles doesn't seem to understand. I do hope he returns and keeps up with modding, because he does do pretty great work, especially with art.

  7. Knockback is handled in the knockback eventhandler:

    EventHandler("knockback", function(inst, data)
            if not (inst.components.health:IsDead() or inst:HasTag("beaver")) then
                if inst.sg:HasStateTag("parrying") then
                    inst.sg.statemem.parrying = true
                    inst.sg:GoToState("parry_knockback", {
                        timeleft =
                            (inst.sg.statemem.task ~= nil and GetTaskRemaining(inst.sg.statemem.task)) or
                            (inst.sg.statemem.timeleft ~= nil and math.max(0, inst.sg.statemem.timeleft + inst.sg.statemem.timeleft0 - GetTime())) or
                        knockbackdata = data,
                    inst.sg:GoToState((data.forcelanded or inst.components.inventory:ArmorHasTag("heavyarmor") or inst:HasTag("heavybody")) and "knockbacklanded" or "knockback", data)

    copied from SG wilson. So do the same thing you did with the onattacked and just alter this event to your liking.

  8. you want to use prefab postinits, heres an example of one I used in one of my mods:

    local function FriendlyWaspInit(prefab)
    	local function OnNearBy(prefab, target)
    	if prefab.components.childspawner ~= nil and not target:HasTag("bee") then
            prefab.components.childspawner:ReleaseAllChildren(target, "killerbee")
    	if prefab.components.playerprox then
    AddPrefabPostInit("wasphive", FriendlyWaspInit)

    Note: Make sure you check if the components exist even if you're sure they do, as sometimes when the code is ran the components aren't loaded in quite yet.

  9. you probably want to look at the daisyform and piggy change functions. All you really need to do though to transform is change your bank and build and probably stategraph (depends on what you're wanting to transform into), then have something watch the conditions you want and call that function when conditions are met.

  10. 23 hours ago, Dr0Shadow said:

    NOTICE: I haven't read deeply into the forums, so I'm sorry if I'm asking something that's already been brought up (probably has).

    Is there a reason why Shipwrecked's water hasn't been ported over with modding into DST yet? I've seen some attempt at it but it seams to have fallen through. If the games share a similar code shouldn't it be fairly straightforward to do it?

    The main difference between DS and DST is that DS is programmed for singleplayer and DST is programmed for multiplayer (which is more complicated in some areas). SW was built with singleplayer in mind so some things have to be reworked or rewritten entirely for it to work in DST. I'm just making assumptions here but I imagine the SW water mechanics are the hardest thing to port over because of this. (If it was easy, island adventures would've already been out by now)

  11. local function FindPlayers(inst)
        local x, y, z = inst.Transform:GetWorldPosition()
        local ents = TheSim:FindEntities(x, y, z, 30, {"player"}, {"playerghost", "INLIMBO"})
        return #ents > 0 and ents or nil
    local function UpdateStats(inst)
    	local pals = FindPlayers()
    	if pals ~= nil then
    		local health_percent = inst.components.health:GetPercent()
    		inst.components.health.maxhealth = 200 * pals
    --in master_postinit
    inst:DoPeriodicTask(2, UpdateStats)

    I'm very tired so I didn't check to see if this works, but its basically what you're wanting to do:

    Every 2 seconds the character will search the area around him in a radius of 30 to find players (dead players do not count, don't remember if you count). If they're any players nearby it will multiply your health by the number of players and scale your current health accordingly. Obviously its OP as is and you should adjust it to what you want it to be.

  12. 8 hours ago, K1NGT1GER609 said:

     That can also work as well so use either listenforevent or periodictask, as for why I sometimes get annoyed trying to remember certain events and getting the event's names exactly right. If I get the name wrong I spend more time browsing files trying to find the correct name, and last note which is completely unrelated to this forum you get some interesting results with that in don't starve(not together). By interesting I mean you're frozen in place since that event happens every millisecond.

    Seems to work fine on Wolfgang (in DS)?

    As for DoPeriodicTask, you might want to tie it to a variable so you can cancel it via inst.mytask:Cancel() incase you need to stop it for whatever reason. Iirc theres no other way to stop it (besides despawning). Please correct me on that if I'm wrong though.