Authors: Lucy
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
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
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)
Make sure that these fields on the Asset are pointing to it correctly! You should see a small grace appear. If existing Gracesites use 090 instead, change them to 060 and the other fields in it too!.
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)
Player with the Model Name c0000 (This controls where the player spawns when dying or warping to this grace)
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 high. If there is an existing Gracesite, making a new one is the easiest, but some maps do not have an existing Gracesite - then you’ll have to duplicate it from another map, find one, mark all 3 Objects and press Shift+D, it will ask you to which map you want to duplicate it to, choose the one you want.
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
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:
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:
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:
Since it is the second Gracesite on this map!
With the end being 0 for the first Gracesite (which here is Church of the Plague) in the map and every next Gracesite being +1, make sure you follow the consecutive order in your map, if there are 5 Graces present, your IDs should end with 5, since 0-4 is used by the others.
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
Copy that name and paste it into the Enemy’s Collision Part Name field at the bottom
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
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
Now we need to change some specific Fields:
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
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.)
Make sure to save the new entry by pressing Ctrl+S or clicking on File - Save All Modified Text
Continuing with the Fields:
If the Gracesite you duplicated has a bunch of Talk IDs or NPC IDs after this one you can safely change them to -1 or 0 respectively, as those control specific Questlines or show the name of an NPC on the map ingame
Now save the Param Editor with Ctrl+S, we can now move on to the Event step of this guide - we are almost done!
Open up DarkScript3 and click on File - Open Project and choose the project.json in your project folder
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
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
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
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!