Creating a new Gracesite
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
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
- 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 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)
- 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 high2
- 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
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:
- 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
- Player will now be 1050380981
- Asset will now be 1050381951 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
- 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
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
- 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
- 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
- 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!
- Bonfire Entity ID - Needs to be the EntityID of your Asset Object - so here 1050381951
- 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
- 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:
- 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
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
- 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
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
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
- 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!
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 \\!)
- 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: