Making a new Gracesite in Elden Ring

What you’ll need:

Smithbox (https://github.com/vawser/Smithbox/releases)
Unpacked Game with UXM (https://www.nexusmods.com/eldenring/mods/1651?tab=files)
DarkScript3 (https://github.com/AinTunez/DarkScript3/releases)


Creating the new Gracesite

Open Smithbox and create a new Project, name it how you want and point it to a project folder of your choosing. Point to the eldenring.exe and make sure Import Row Names is checked

VSIQhXm.png

Map Editor

  • Inside the Map Editor of Smithbox you need to load the map where you want the grace to be. In this example I’m going to add a Grace next to Gowry’s Shack, the mapID being m60_50_38_00
    • Make sure you right click the mapID and choose the option Load related maps - that ensures that all the terrain is shown, so that you don’t end up putting your grace inside a rock
PCxnetC.png
  • You’ll need to find an existing Gracesite on the map - you will see that a Gracesite consists of 3 Objects:
    • Asset with the Model Name AEG099_060 (This is the Gracesite model)
      kN1Tv7w.png
    • Make sure that these fields on the Asset are pointing to it correctly! You should see a small grace appear1
    • Enemy with the Model Name c1000, the NpcParam 10000000 and TalkID 1000 (The Gracesite is an “enemy” aka NPC you talk to, that’s how interacting with it works)
      1PQisrM.png
      Elyvoaf.png
    • Player with the Model Name c0000 (This controls where the player spawns when dying or warping to this grace)
      fmfggvD.png
  • Mark all 3 of these Objects and duplicate them with Ctrl+D and move them to where you want the Gracesite to be
  • The Asset and Enemy need to overlap, the Player can be anywhere around the Gracesite, depending on how you want to spawn, change it to your liking, making sure its flush with the ground, otherwise you’ll spawn inside the ground and fall or fall slightly onto the ground if too high2
    N3dL1X1.png
  • What you need to do now is change the Entity IDs of the given Objects
  • If you duplicated the Gracesite in the same map, copy the Entity ID of the given Object and go to Search Properties and choose Entity ID and search for it
  • You will find the Object that has the Entity ID, now press + until there is nothing found, this means that this Entity ID is not used by another Gracesite and you can safely use it
    Mah5dSr.png

An Explanation on the IDs:

  • The Entity IDs follow a very specific pattern that you need to follow for your Gracesite too
  • Here is the Gracesite of Church of Elleh for example, which I will use to explain the pattern, the IDs for it are as follows:
    • Enemy - Has the Entity ID 1042360950
    • Player - Has the Entity ID 1042360980
    • Asset - Has the Entity ID 1042361950
  • The mapID for Church of Elleh is m_60_42_36_00 (which can be shown as m_AA_BB_CC_DD for clarity) where you can see a connection to the mapID, the Entity ID follows this pattern for the first Gracesite in a given map:
    • 10BBCC0950 - Enemy
    • 10BBCC0980 - Player (Enemy + 30)
    • 10BBCC1950 - Asset (Enemy + 1000)34
  • With that knowledge we know how to change the Entity IDs now!
  • In my example I duplicated the Gracesite of Church of Elleh into the map of Gowry’s Shack, even though it has a Gracesite present, just for showing how to change the IDs
  • Given that Gowry’s Shack mapID is m60_50_38_00 we need to change the EntityIDs to the following:
    • Enemy will now be 1050380951
      1SQuxNz.png
    • Player will now be 1050380981
      oQDOJDX.png
    • Asset will now be 1050381951
      ZdizjYm.png
      since it is the second Gracesite on this map!5
  • With these IDs now changed, we can change the Collision Part Name of the Enemy Object as a precaution - not all Gracesites do this, but some do, I would argue it’s a safe bet to add the Collision Part Name of the collision the Gracesite sits on incase that is needed (I believe it’s more needed if the Gracesite sits on Terrain itself, if it is on another Asset, that has a collision itself, like a Bridge you most likely won’t need to change it)
  • In my example the Gracesite sits on the Collision h503801
    2DYwPtg.png
  • Copy that name and paste it into the Enemy’s Collision Part Name field at the bottom
    LV4uMLJ.png
    Make sure to save the Map now with Ctrl+S or right clicking the Map and saving it - you can unload the maps to free up some resources if you’d like

Param Editor

We can now move on to the Param Editor as we are finally done with the Map Editor part!

  • Go into BonfireWarpParam and search for a Gracesite that is in the same map as your new one and mark the last one of that map and press Ctrl+D to duplicate it - if your map did not have any Gracesite, just duplicate any Gracesite that is near your map with a similar ID and same Area (aka Caelid, etc.) and duplicate that
  • I will duplicate Church of the Plague, as this is a Gracesite that exists in the map I’m using
    ymsCdaG.png
  • Now we need to change some specific Fields:
    • Name - Change it to the Gracesite name you want to use, I’ll be calling mine Gowry’s Shack
      fHysKol.png
    • ID - can stay the same if it’s a duplicate of an existing Gracesite but needs to be changed into XXBBCC00 when not from the same map - with XX being the starting numbers of the ID as you duplicated one from the same area (e.g. Caelid which would be 64) and BBCC being from your mapID as earlier and at the end 00 with each consecutive Gracesite being +1, so in my example the ID would be 64(Caelid)5038(mapIDBBCC)01(00 is the existing Gracesite) - simplified: 64503801
      EXfLitO.png
    • Event Flag ID - needs to be a unique ID as this is used for the registering of the Gracesite and the unlocking of it on the map. You can just use a consecutive EventID from the same pattern used as before like this: 10BBCC0000 (AABB0000 on maps >60/61) with each consecutive Gracesite being +1
    • so in this case it is 1050380001 as it is the second Gracesite in the map!
      oDtVhzs.png
    • Bonfire Entity ID - Needs to be the EntityID of your Asset Object - so here 1050381951
      tD7VZag.png
    • Subcategory ID - The area your Gracesite is in, can usually stay the same, but if your Gracesite is not in that area, change it to the one it is - you can find the areaID in BonfireWarpSubCategoryParam - here it stays 64000 for Caelid6
      B442DYa.png
    • MapArea - AA of mAA_BB_CC_DD
    • MapBlock - BB of mAA_BB_CC_DD
    • MapRegion - CC of mAA_BB_CC_DD
    • m60_50_38_00:
      V2YK4LX.png
    • Coordinate: X - Needs to be the X Coordinate of your Enemy Object
    • Coordinate: Y - Needs to be the Y Coordinate of your Enemy Object
    • Coordinate: Z - Needs to be the Z Coordinate of your Enemy Object7
      Q1k60Kd.png
      Wcrs6b4.png

Text Editor

  • Go into the Text Editor and click on Locations under Menu Text
  • Search for the Gracesite you just duplicated and you’ll find an ID with the name of it, right click it and duplicate the entry
    ycG5NRn.png
  • Here I duplicated Church of the Plague and now you can rename it to the name your new Gracesite has - in my example Gowry’s Shack, while making sure there are no extra characters after the name (like a new line etc.)
    OwPl98i.png
  • Make sure to save the new entry by pressing Ctrl+S or clicking on File - Save All Modified Text

Back to Param Editor

  • Continuing with the Fields:
    • Text ID - Change this to the ID of the Text Entry you just created of your Gracesite8
      xJip19w.png

Now save the Param Editor with Ctrl+S, we can now move on to the Event step of this guide - we are almost done!


DarkScript3

  • Open up DarkScript3 and click on File - Open Project and choose the project.json in your project folder
    aMX3ml8.png
    XQu6Nsl.png
  • On the left you will see a list of all maps in Elden Ring, find yours and double click it and choose Elden Ring if asked - you will now see all the events that exist in that map
    X7nF4a2.png
  • Inside $Event0 you will see a RegisterBonfire event if your map had an existing Gracesite present - copy the full line and paste it right under and add a // Comment naming it - this is so you can see what you changed in the file and know what’s yours and what is vanilla
    Z6doCvz.png
  • Change the first number inside the () of RegisterBonfire to the EventID you used in the Param Editor too, following the pattern - here it will be 1050380001, the next number after the first one
  • Change the second number to the Bonfire Entity ID found in the Param Editor - here 1050381951
    Ka0klSS.png
  • If your emevd does not contain an event like this, just create one as the first line under Event 0 with this line:
//Gracesitename
RegisterBonfire(uniqueEventID, BonfireEntityID, 0, 0, 0, 5);
  • Save the file with Ctrl+S or File - Save and close DarkScript3

We are done! We can now test the new grace and make sure everything is working fine!


Finished! Testing the Gracesite

  • Open your config_eldenring.toml and point ModEngine2 to your mods project folder like so, adding a new line if needed: (Make sure to use double slashes \\!)
    kwb3ZtC.png
  • Launch the game with launchmod_eldenring.bat and test if your Gracesite works! If you followed everything correctly it should work.

Here is a video of my tutorial Gracesite working as intended: