-LukaS- Posted February 28, 2022 Share Posted February 28, 2022 (edited) Hello! I'm proud to announce that a mod I've been working on for a while now is finally ready for a release! _________________________________ The Bestiary, for Don't Starve Together! _________________________________ https://steamcommunity.com/sharedfiles/filedetails/?id=2768642680 _________________________________ This mod adds a new book, similar to the Cookbook, that has useful information about all the mobs you can encounter throughout your journey through The Constant. It contains mobs' stats, drops, diet and information about their behavior. But why read a book in-game when you can just go to the wiki and read information there? Well, there is a configuration option called "Discoverable Mobs". This config will lock all the mobs' entries in the bestiary. In order to unlock said mob entries the player will have to find that particular mob and get near it to "discover it". This will unlock some information, like stats and the look of the mob. To learn more about the mob the player will have to kill it, therefore "learning" more about it. It's a simple mod that I'm surprised hasn't been done before but anyway, Enjoy! /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ Current mod version: 1.0.0 - Further modified the bestiary look - Changed filtering and sorting, all filters now have individual buttons, sorting only has 1 - Added mob search by name - Changed the torn page for shadow creatures back into a full one and added their names (for clarity) - Fixed a bug where a player would discover mobs as a ghost - Added the ability to add custom mobs into the bestiary, tutorial below The mod is officially out of beta. That doesn't mean I will stop working on it of course. Full release means the mod is in, what I would call, a stable, playable state. More updates will probably come out in the future. \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ \/ /\ How to add custom mobs to the bestiary: Spoiler There is a function in monsterinfo.lua that allows mod creators to add their own mobs into the bestiary. AddToBestiary(mob_data) All you need to do is add require("monsterinfo") and use this function with a table of data. There are 2 types of mob data tables, one containing 'forms' and one without 'forms'. Forms are used if you want to have 2 mobs inside one entry, for example, Clockwork Knight and Damaged Knight. This type of data adds 2 arrows to allow players to switch between different forms. An entry without forms looks like this: name = "Spider", -- Name that is displayed in the entry, also used in the Mob Search Bar prefab = "spider", -- Prefab of the mob bank = "spider", -- Bank of the mob build = "spider_build", -- Build of the mob anim_idle = "idle", -- Idle animation of the mob anim_action = "atk", -- An animation that should play when clicking on the mob, remove to disable scale = 0.7, -- Mobs scale, it's usually required to scale the mob down intent = STRINGS.BESTIARY_AGGRESSIVE, -- Mobs intent (neutral, passive or aggressive), used in filtering type = STRINGS.BESTIARY_MONSTER, -- Mobs type (animal, monster, boss, raid boss), used in filtering images = { grid_atlas = "images/monstergrid_bg_forest.xml", grid_image = "monstergrid_bg_forest.tex", atlas = "images/monster_bg_forest.xml", image = "monster_bg_forest.tex" }, -- Images used as background, 'grid' images are used in the scrolling grid, normal images in mob view rotations = { FACING_DOWN, FACING_RIGHT, FACING_UP, FACING_LEFT }, -- Directions that this mob can face, rotations can start from any rotation but MUST be sorted counter clockwise, remove if not needed stats = { -- Stats of the mob health = 100, -- Health - can be set to a string, for example, "100-200" damage = 20, -- Damage speed = 5, -- Speed diet = { "meat", "horrible" }, -- Diet, remove if not applicable drops = "none", -- Guaranteed drops with chance, displays as "Drops", remove if not applicable, spiders have none so here's a Rabbit example -- drops = { -- { prefab = "smallmeat", amount = 1, chance = 1 } -- Name of the prefab that's dropped, the amount, and chance (0.00 - 1.00) -- }, limited_drops = { -- A list of drops that only drop 1 of the prefabs inside it, displays as "*amount* Drop(s) Of", remove if not applicable amount = 1, -- The number of prefabs that can drop chosen from the list below loot = { -- loot table { prefab = "monstermeat", amount = 1, chance = 0.5 }, -- Name of the prefab that's dropped, the amount, and chance (0.00 - 1.00) { prefab = "silk", amount = 1, chance = 0.25 }, -- Name of the prefab that's dropped, the amount, and chance (0.00 - 1.00) { prefab = "spidergland", amount = 1, chance = 0.25 }, -- Name of the prefab that's dropped, the amount, and chance (0.00 - 1.00) } -- When using limited_drops the cumulative chance should be equal to 100% }, info = BESTIARYINFO.SPIDER -- Information text, displayed on the left of the mob view } An entry with forms looks like this: scale = 1, -- Scale, universal for all forms type = STRINGS.BESTIARY_ANIMAL, -- Type, universal for all forms images = { grid_atlas = "images/monstergrid_bg_savanna.xml", grid_image = "monstergrid_bg_savanna.tex", atlas = "images/monster_bg_savanna.xml", image = "monster_bg_savanna.tex" }, -- Images, universal for all forms forms = { -- Forms { -- Each form should be a table, 1st table - Rabbit name = "Rabbit", prefab = "rabbit", bank = "rabbit", build = "rabbit_build", anim_idle = "idle", anim_action = "hit", intent = STRINGS.BESTIARY_PASSIVE, stats = { health = 25, damage = 0, speed = 5, diet = { "veggies" }, drops = { { prefab = "smallmeat", amount = 1, chance = 1 } }, info = BESTIARYINFO.RABBIT } }, { -- Each form should be a table, 2nd table - Beardling name = "Beardling", prefab = "rabbit", bank = "rabbit", build = "beard_monster", anim_idle = "idle", anim_action = "hit", intent = STRINGS.BESTIARY_PASSIVE, stats = { health = 25, damage = 0, speed = 5, diet = { "veggies" }, drops = "none", limited_drops = { amount = 1, loot = { { prefab = "monstermeat", amount = 1, chance = 0.4 }, { prefab = "nightmarefuel", amount = 1, chance = 0.4 }, { prefab = "beardhair", amount = 1, chance = 0.2 }, } }, info = BESTIARYINFO.BEARDLING } } } For interested, this mod is on GitHub: https://github.com/only-t/dst-bestiary-mod Edited July 13, 2022 by -t- Updated adding custom mobs. 4 2 Link to comment Share on other sites More sharing options...
. . . Posted March 1, 2022 Share Posted March 1, 2022 Very cool :D! Link to comment 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