====== Create a New Bonfire (DS3) ====== Authors: JeNoVaViRuS ===== Tools ===== - Smithbox - ESDStudio - Darkscript3 ===== Add the bonfire objects to the Map: ===== - Smithbox -> map editor -> load target map - Search for the place where you want to create your bonfire - Take a close object and move it to the location where you want to place your bonfire and note down its "Position" coordinates (on the right) - Then use "Edit" -> "Undo" to reverse the change and place the object back where it was - Search for a normal bonfire on the map (with no special interactions like the Firelink one) - There will be 4 objects: a spawnpoint - a four sided pyramid (where you respawn after death), a player - hexagonal pyramid (where you warp), a plain object - with the bonfire model, an enemy - half red orb (for talk menu) - Now you select each of them, duplicate them, move them slightly away to distinguish until you have 4 new objects. - Now select the enemy object and change its "EntityID" to an unused one (check in the map objects on the left side for other ones but one of the consecutive IDs should be free) e.g. 3500952 is the original then use 3500955 if free - Now take this ID and give the player the ID+20 (e.g. 3500975), the object the ID+1000 (e.g. 3501955), the Spawnpoint the ID+2000 (3502955). - Now select each of them and change their "Position" coordinates to the ones you noted down for your new bonfire location - Go the their new position and move the Spawnpoint and player objects a bit away where you want the player to spawn - Finally you need to click on the collision object of the map where the enemy model object resides on. Copy its name and insert it into the enemy objects "CollisionName" field. Clear all other "DrawGroup" and "EntityGroup" fields (set to 0). - In the enemy object note down the "TalkID" and then change it to match your last digit of the objects e.g. 350001 -> 350005 ===== Add the event: ===== - Use Darkscript3 and open "event -> mapID emevd file (ID from map editor) - Duplicate the last "RegisterBonfire" line at the top. Function structure: RegisterBonfire(eventFlagId, entityId, reactionDistance, reactionAngle, setStandardKindlingLevel) - Change the eventFlagId so the last digit matches the last digit of your objects, this flag sets the bonfire to be lit - Change the entityId so it matches your bonfire model object ID - reactionDistance is the distance you can start "talking" to the bonfire - reactionAngle is the player angle required to talk to the bonfire - setStandardKindlingLevel is deprecated and can be kept at 0 (in DS1 you can kindle bonfires and charge your flask higher, in DS3 you upgrade the flasks instead). ===== Add the bonfire talk: ===== - Open "ESDStudio" -> extend target map - Right click on the talk ID you noted down from the objects on the map in step 13 and select "Copy" - Right click on the map name and select "Paste ESD", it will ask you to set a new ID so change the last digit to match your IDs e.g. 5 from the map objects so the new ID would be 350005 - Save all (Ctrl+Shift+S) ===== Add a name for your bonfire: ===== - Smithbox -> text editor -> Menu Text - Bonfire name IDs begin at 211000 so add a new one starting at ID 211360 (high distance between base game ones and DLC ones but within the range) - Note down the ID and save (remember that the text needs to be set for the language your OS is) ===== Add the bonfire to the warp menu: ===== - Smithbox -> param editor -> BonfireWarpMenu - Find an existing entry for the map (via the "ListId" field) and duplicate it - Your new one should have ID 82 as this is the next free ID as of 1.15.2 (be aware that not the number of the ID but the order of the IDs in that list determine how they are listed in the warp menu) - Change the "Event Flag ID" to match the one from your emevd script - Change the "Bonfire Entity ID" to match your bonfire model object ID - Change the "Name ID" to match the ID from the text editor ID you created - Change the "Picture ID" so the last digit matches your last digit from the steps before - Set the "Play Region ID" to 0 or a region you want. - Save ===== Add the picture: ===== - In the game take a screenshot of your location (you can hide the HUD in the options, also you can temporarily set the "LockCamParam" with ID 0 (default) range higher e.g. 6 or 8 to zoom out) - Use Paint.net (software not a website), create a new picture and set it to 512x256 - Paste your screenshot in there and select "keep canvas size" and drag the picture so it matches the frame - Go to "menu/mapimage" folder and copy file that has the "ListId" to your mod folder (same structure) - Unpack it there with Witchy - Save your picture from 3. as a consecutive named file into this folder - Edit the Witchy XML file to also have your new image file - Repack it with Witchy ==== Deleting a bonfire ==== If you want to "delete" another bonfire because you create other ones instead then simply empty the "CollisionName" field for all related ojects. This will simply disable the bonfire. It's bad practice to delete original content.