Content
Introduction
In this guide you’ll learn how to:
Set up Layout Banks
Create related configurations
Create Chapter Sets and activate them in Game Settings
Table of Contents
Triple Tile User Guide:
https://tripledotstudios.atlassian.net/wiki/x/WAAotg
Setting up Layout Banks
Some parts of this process are done via API. Please read the instructions below before getting started:
Prerequisites
User Token
In order create Chapters and Levels, please make sure you have access to or Level Editor (UI tool).
To use the API or configure levels using Level Editor, you’ll require a user token generated from Game Server. Read the instructions below to generate one.
Editor Privileges
You will also require Editor Privileges in order to create or edit levels. To obtain Editor privileges, follow the next steps:
Navigate to Levels & Chapters , and select Layout Banks
Click [View] next to your layout bank
Add your username/email to Users and save the changes
Generating a User Token
In Game Server, navigate to your profile
Click [Generate User Token]. A new alphanumeric user token will be generated. Copy and store it in a safe location.
Use this new
user_tokenin your API Calls
Creating Layout Banks via API
The instructions in this guide refer to the creation of Layout Banks via API.
You can also create Layout Banks via Level Editor. Read the instructions here to know more.
Once you’ve obtained your user token, you can go ahead and create Layout Banks. The Layout Bank will then be saved in the Level Bank.
Creating a Level Layout - POST {{host}}/api/internal/tile/level_layouts
Example request URI: https://game-server-staging.tripledotapi.com/api/internal/tile/level_layouts
Query parameters:
| Parameter | Type | Description |
| --- | --- | --- |
| user token | string | You user token generated in Game Server > Profile |
| app_id | string | Your app ID For Triple Tile, use 9 |
| bank_id | string | ID of the level |
| name | string | Name of the level |
| content_hash | string | Generated in the client |
| valid_for_use | string | True/False |
| type | string | Your type of level. Use classic, match_four, or goals |
| data | string | Your level layout. Example: {"some_key": 10} |
Example call:
{
"user_token": "{{user_token}}", //https://game-server-staging.tripledotapi.com/admin/admin_users
"app_id": 9,
"bank_id": "8",
"name": "new level layout",
"content_hash": "42425tsg34tkngwlg2kjgk2j3gf2",
"valid_for_use": false,
"type": "classic", //or "match_four" or "goals"
"data": {"some_key": 10}
}
Responses:
200 OK application/json
Updating a Level Layout - PATCH {{host}}/api/internal/tile/level_layouts
Query parameters:
| Parameter | Type | Description |
| --- | --- | --- |
| user token | string | You user token generated in Game Server > Profile |
| app_id | string | Your app ID For Triple Tile, use 9 |
| bank_id | string | ID of the level |
| name | string | Name of the level |
| content_hash | string | Generated in the client |
| valid_for_use | string | True/False |
| type | string | Your type of level. Use classic, match_four, or goals |
| data | string | Your level layout. Example: {"some_key": 10} |
Example call:
{
"user_token": "{{user_token}}",
"app_id": 9,
"bank_id": "8",
"name": "new level layout",
"content_hash": "42425tsg34tkngwlg2kjgk2j3gf2",
"valid_for_use": false,
"type": "classic", //or "match_four"
"data": {"some_key": 10}
}
Responses:
200 OK
Creating Layout Banks in Game Server
Any changes made to Layout Banks need to be saved by clicking [Save] on the upper right corner.
You can also create Layout Banks in Game Server. However, the upload of layouts is done via API.
Once you’ve set up your Level Layouts, you can create Layout Banks with them.
Navigate to Levels & Chapters > Layout Banks and click [+New].
Add a name for your Bank, add a description, labels if needed, and click [Save].
Once your Bank has been created, you can add your Layouts via API.
When Level Layouts have been uploaded, you’ll be able to visualise the details via Game Server, as well as duplicating both the bank and the levels, or reorder them.
![]()
Uploading, Replacing and Duplicating Layout Banks
You can duplicate existing Layout Banks using the [Duplicate] button on top.
You can download the layout banks form Game Server in order to import them into Production/Staging. The downloaded file contains:
You can also replace existing layout banks. To do so, use the [Replace] button on the upper right corner. You’ll need to hash of the level bank to replace.
![]()
Uploading & Clearing Seeds
It is possible to upload specific seeds for each level from Game Server. This process is done via a CSV file which should include the numbers of seeds which should be used for each level.
In your Layout Bank, click [Upload Seeds].
Select a CSV file with the following format:
Click [Save]
About Seeds
Please take in consideration the following points:
Number of seeds = number of comma separated integers
You can upload seeds multiple times, but take into consideration that the data from the new file will override/update existing data.
Creating Related Configurations
In order to configure Chapter Sets, you will need the following entities to be already added/configured:
DDA Schemas
DDA Schema Sets
Reward Schema Sets
Creating DDA Schemas & DDA Schema Sets
DDA (Dynamic Difficulty Adjustment) Schemas are used to apply a more personalised difficulty adjustment for each user based on their win rate, power-up usage, and revive usage, with the ultimate goal of increasing the long term retention of installs and maintaining cumulative rewarded ad revenue.
The workflow goes as follows:
Create the DDA Schemas
Create DDA Schema Sets
Enable them in Game Settings Override
Creating DDA Schemas
Select your game, navigate to Levels and Chapters , and select DDA Schemas. Click [+New] to create a new Schema. You can copy an existing schema by using the blue duplicate button
. Add the relevant information for your configuration, and click [Save] when you’re done.
Creating DDA Schema Sets
Once you have created your schemas, you can place them together into Schema Sets. These Sets can be later be added to Game Setting overrides to facilitate A/B experiments.
To create DDA Schema Sets, follow the steps below:
Navigate to DDA Schema Sets , and click [+New] in the upper right corner.
Give your Set a name, and add the DDA schemas that will be part of the set. Under From/To , select the range of Chapters that the DDA Schema will apply to. If using “All next”, all next chapters will use this DDA schema. To include a new chapter, click [+Add Difficulty Schema]. When you’re done, click [+Save].
After creating your DDA Schema Sets, the final step is enabling them in Game Settings:
![]()
Creating Reward Schema Sets
To create Reward Schema Sets, navigate to Levels & Chapters > Reward Schema Sets. In this page you’ll be able to see the existing sets, and in which configuration they’re being used.
Give your set a name, assign a label if needed, and click [+Add Chapter Range]. A new chapter range will appear, which by default, includes all chapters available. To edit the rewards per chapter, click again [+Add Chapter Range] to include a new range of chapters.
Click [+Add Reward] to include any Game Item as a reward and its quantity. You can also add different rewards for players who reach the middle of a chapter by clicking [+Add Midchapter Reward].
If you select a Chest as a reward (bundle of Game Items), the folder icon will be active. Clicking it will redirect you to the Chest so that you can see the detailed view of Game Items
When you’re done with the configuration, please navigate to Game Settings and enable your Reward Schema Set:
![]()
Creating a Chapter Set
When you’ve created all your configurations, you can go ahead and create your Chapter Set. Chapters Sets are the container where you’ll find all your levels.
Navigate to Levels & Chapters > Chapter Sets. A table is shown with all the existing Sets, their availability and where they’re being used. Click [+New] to create a new Set.
Name your Chapter Set, and start configuring the Chapter Structure:
About Mass Operations
The Mass Operations button allows you to:
Copy chapters from one Chapter Set to another
Batch update Chapters Keep in mind that only the changed fields will be applied and overridden.
Change the status of test Chapter Sets to Live
Chapter Sets & Layout Banks Validations
Editing Layouts is not allowed when they are being used in Chapter Sets. To make any modifications, create a new entity (or duplicate) and then choose it in the Chapter Set.
Note that you must have editor privileges on the layout bank page to make any edits. Also, you cannot alter a layout bank that has already been used.
Make sure that that each level is given a unique name, and that the level is marked as "valid for use" with a value of "true." Failure to do so will result in the level not being displayed in the list of available layouts for Chapter Sets.
Enabling your Chapter Sets in Game Settings
Once you’ve configured your Chapter Sets, it’s time to enable them in Game Settings so that they can be sent to players.
To do so, navigate to Game Settings, and click the green plus button to enable Chapter Sets. Once done, select your Chapter Set from the dropdown.
Chapter Sets are A/B testable entities, which allows you to create experiments with them. Read more about A/B Experiments here.
Comparing Configurations
The configuration inside Chapter Sets can be compared using the Comparison Tool. This tool compares 2 different entities, highlighting differences and underlining where these differences are.
![]()
To use this tool, follow the steps below:
Navigate to Chapter Sets, and click [Compare] on the upper right corner of the screen:
Select the entities you’d like to compare, and click the blue compare button
A new screen will appear where the differences will be highlighted:
The Comparison Tool is available for the following entities:
Chapter Sets
Scrapbooks
Picture Banks
Download Layout Banks & Chapter Sets JSON File
This section explains how to download a level layout bank and chapter sets file sfrom Game Server for review, backup, or transfer. Use the table’s Actions column to export the selected bank.
Download Layout Banks/Chapter Sets File
From the top-left app switcher, choose the relevant game (e.g., TripleTile).
Go to Layout Banks: Levels & Chapters → Layout Banks.
Find the relevant bank: use Filter (top bar) or page through the list.
In the actions column of the bank row, click the Download icon (↓).
Your browser will download the bank file (usually JSON/CSV; format depends on the bank).To download a chapter sets file, go to chapter sets: Levels & Chapters → Chapter Sets.
Repeat the steps 3 and 4 above to download a chapter sets file.
Upload a Level Layout Bank (via Upload file )
Import a whole level bank (with all its layouts) from a JSON/CSV file.
Navigate to Layout Banks.
Click the green Upload button.
In the file picker, select the json/csv file and click Open.
The bank is created/imported. You’ll be returned to the Layout Banks table.
Find the new bank at/near the top of the list (check Updated at time).
Click the bank name to open View Layout Bank.
(Optional) Adjust details:
![]()
Create Chapter Sets from a CSV
This section explains how to create/update Layout Banks and Chapter Sets from a CSV file.
CSV Format
Fields marked optional should only be included if the script requires them for your game.
| Column | Required | Type / Validation | Notes |
| Level_ordinal | Yes | Integer, min 1 | The absolute level number in the target Chapter Set (no upper limit). |
| Level_hash | Yes | Non-empty | Hash used to look up an existing Level Layout. |
| Origin_layout_bank_id | Yes | Integer, non-empty | ID of the existing Layout Bank from which the Level Layout is copied. |
| New_layout_bank | Yes | String, unique per new bank | Name of the destination Layout Bank to create/apply in the duplicate Chapter Set. |
| Level_position | Optional | Integer, min 1 | Position within the Layout Bank (use only if required by script). |
| Chapter_position | Optional | Integer, min 1 | Chapter index in the Chapter Set (use only if required by script). |
_ Create new chapter set from .csv _
In GS, select the correct environment (Staging or Production) and the correct Application.
Go to Levels & Chapters: Chapter Sets.
Click Create new chapter set from .csv.
On the Create Chapter Set from CSV screen:
Click Upload to run validations and start the script.
Watch the Script Log:
The Script Log shows parsing, validation results, and progress.
If there are validation errors, the log will list the rows with issues; fix your CSV and re-upload.
If all checks pass, the script will create/reuse Layout Banks, duplicate the selected Chapter Set, and apply levels.
![]()
What the script does
Create new Layout Banks for every unique New_layout_bank in the CSV only if they differ from the referenced origin layout bank content.
Reuse existing Layout Bank (from Origin_layout_bank_id) if there are no differences vs. the CSV.
Duplicate the selected Chapter Set with the provided New Chapter Set Name.
Apply Layout Banks to the correct positions in the duplicated Chapter Set.
Place levels into those banks based on Level_ordinal (and Level_position if used).
Post‑upload verification
In Chapter Sets, open the newly created set by name.
Confirm new Layout Banks were created only where changes exist; unchanged segments reuse origin banks.
Check level counts, ordering (by Level_ordinal / Level_position), and layout types.
Smoke test any downstream visuals/themes/goals that depend on layout type.
Chunks 2
**Introduction**
In this guide you’ll learn how to:
- Set up Layout Banks
- Create related configurations
- Create Chapter Sets and activate them in Game Settings
**Table of Contents**
**Triple Tile User Guide:**
[https://tripledotstudios.atlassian.net/wiki/x/WAAotg](https://tripledotstudios.atlassian.net/wiki/x/WAAotg)
* * *
## Setting up Layout Banks
Some parts of this process are done via API. Please read the instructions below before getting started:
### Prerequisites
**User Token**
In order create Chapters and Levels, please make sure you have access to [](https://tripledotstudios.postman.co/workspace/Tripledot-Studios~27e83636-a522-451e-8a35-a9e93f6ebe81/request/11806556-08c0fd26-7d35-4058-b39c-1e60ecde67a0) or [Level Editor](/wiki/spaces/TRIP/pages/2779349212/Level+Editor+Overview) (UI tool).
To use the API or configure levels using Level Editor, you’ll require a user token generated from Game Server. Read the instructions below to generate one.
**Editor Privileges**
You will also require Editor Privileges in order to create or edit levels. To obtain Editor privileges, follow the next steps:
- Navigate to **Levels & Chapters** , and select **Layout Banks**
- Click **[View]** next to your layout bank
- Add your username/email to **Users** and save the changes
Generating a User Token
1. In Game Server, navigate to your profile
2. Click **[Generate User Token].** A new alphanumeric user token will be generated. Copy and store it in a safe location.
3. Use this new `user_token` in your API Calls
* * *
### Creating Layout Banks via API
The instructions in this guide refer to the creation of Layout Banks **via API**.
You can also create Layout Banks via _Level Editor_. Read the instructions [here](/wiki/spaces/TRIP/pages/2779349212/Level+Editor+Overview) to know more.
Once you’ve obtained your user token, you can go ahead and create Layout Banks. The Layout Bank will then be saved in the Level Bank.
Creating a Level Layout - POST {{host}}/api/internal/tile/level\_layouts
**Example request URI:** `https://game-server-staging.tripledotapi.com/api/internal/tile/level_layouts`
**Query parameters:**
| **Parameter** | **Type** | **Description** |
| --- | --- | --- |
| `user token` | _string_ | You user token generated in Game Server \> Profile |
| `app_id` | _string_ | Your app ID For Triple Tile, use `9` |
| `bank_id` | _string_ | ID of the level |
| `name` | _string_ | Name of the level |
| `content_hash` | _string_ | Generated in the client |
| `valid_for_use` | _string_ | True/False |
| `type` | _string_ | Your type of level. Use `classic`, `match_four`, or `goals` |
| `data` | _string_ | Your level layout. Example: `{"some_key": 10}` |
**Example call:**
{
"user_token": "{{user_token}}", //https://game-server-staging.tripledotapi.com/admin/admin_users
"app_id": 9,
"bank_id": "8",
"name": "new level layout",
"content_hash": "42425tsg34tkngwlg2kjgk2j3gf2",
"valid_for_use": false,
"type": "classic", //or "match_four" or "goals"
"data": {"some_key": 10}
}
**Responses:**
200 OK _application/json_
Updating a Level Layout - PATCH {{host}}/api/internal/tile/level\_layouts
**Query parameters:**
| **Parameter** | **Type** | **Description** |
| --- | --- | --- |
| `user token` | _string_ | You user token generated in Game Server \> Profile |
| `app_id` | _string_ | Your app ID For Triple Tile, use `9` |
| `bank_id` | _string_ | ID of the level |
| `name` | _string_ | Name of the level |
| `content_hash` | _string_ | Generated in the client |
| `valid_for_use` | _string_ | True/False |
| `type` | _string_ | Your type of level. Use `classic`, `match_four`, or `goals` |
| `data` | _string_ | Your level layout. Example: `{"some_key": 10}` |
**Example call:**
{
"user_token": "{{user_token}}",
"app_id": 9,
"bank_id": "8",
"name": "new level layout",
"content_hash": "42425tsg34tkngwlg2kjgk2j3gf2",
"valid_for_use": false,
"type": "classic", //or "match_four"
"data": {"some_key": 10}
}
**Responses:**
200 OK
### Creating Layout Banks in Game Server
Any changes made to Layout Banks need to be saved by clicking **[Save]** on the upper right corner.
You can also create Layout Banks in Game Server. However, the upload of layouts is done via API.
Once you’ve set up your Level Layouts, you can create Layout Banks with them.
1. Navigate to **Levels & Chapters \> Layout Banks** and click **[+New].**
2. Add a name for your Bank, add a description, labels if needed, and click **[Save].**
3. Once your Bank has been created, you can add your Layouts via API.
When Level Layouts have been uploaded, you’ll be able to visualise the details via Game Server, as well as duplicating both the bank and the levels, or reorder them.

**Uploading, Replacing and Duplicating Layout Banks**
- You can duplicate existing Layout Banks using the **[Duplicate]** button on top.
- You can download the layout banks form Game Server in order to import them into Production/Staging. The downloaded file contains:
- You can also replace existing layout banks. To do so, use the **[Replace]** button on the upper right corner. You’ll need to hash of the level bank to replace.

#### Uploading & Clearing Seeds
It is possible to upload specific seeds for each level from Game Server. This process is done via a CSV file which should include the numbers of seeds which should be used for each level.
1. In your Layout Bank, click **[Upload Seeds].**
2. Select a CSV file with the following format:
3. Click **[Save]**
**About Seeds**
Please take in consideration the following points:
- Number of seeds = number of comma separated integers
- You can upload seeds multiple times, but take into consideration that the data from the new file will override/update existing data.
* * *
## Creating Related Configurations
In order to configure Chapter Sets, you will need the following entities to be already added/configured:
- DDA Schemas
- DDA Schema Sets
- Reward Schema Sets
### **Creating DDA Schemas & DDA Schema Sets**
DDA (Dynamic Difficulty Adjustment) Schemas are used to apply a more personalised difficulty adjustment for each user based on their win rate, power-up usage, and revive usage, with the ultimate goal of increasing the long term retention of installs and maintaining cumulative rewarded ad revenue.
The workflow goes as follows:
1. Create the DDA Schemas
2. Create DDA Schema Sets
3. Enable them in Game Settings Override
#### Creating DDA Schemas
1. Select your game, navigate to **Levels and Chapters** , and select **DDA Schemas**. Click **[+New]** to create a new Schema. You can copy an existing schema by using the blue duplicate button  .
2. Add the relevant information for your configuration, and click **[Save]** when you’re done.
#### Creating DDA Schema Sets
Once you have created your schemas, you can place them together into Schema Sets. These Sets can be later be added to Game Setting overrides to facilitate A/B experiments.
To create DDA Schema Sets, follow the steps below:
1. Navigate to **DDA Schema Sets** , and click **[+New]** in the upper right corner.
2. Give your Set a name, and add the DDA schemas that will be part of the set. Under **From/To** , select the range of Chapters that the DDA Schema will apply to. If using “All next”, all next chapters will use this DDA schema. To include a new chapter, click **[+Add Difficulty Schema]**. When you’re done, click **[+Save].**
After creating your DDA Schema Sets, the final step is enabling them in Game Settings:
.gif?version=2&modificationDate=1687786465720&cacheVersion=1&api=v2&width=807&height=439)
### **Creating Reward Schema Sets**
1. To create Reward Schema Sets, navigate to **Levels & Chapters \> Reward Schema Sets**. In this page you’ll be able to see the existing sets, and in which configuration they’re being used.
2. Give your set a name, assign a label if needed, and click **[+Add Chapter Range].** A new chapter range will appear, which by default, includes all chapters available. To edit the rewards per chapter, click again **[+Add Chapter Range]** to include a new range of chapters.
3. Click **[+Add Reward]** to include any Game Item as a reward and its quantity. You can also add different rewards for players who reach the middle of a chapter by clicking **[+Add Midchapter Reward].**
If you select a Chest as a reward (bundle of Game Items), the folder icon will be active. Clicking it will redirect you to the Chest so that you can see the detailed view of Game Items
When you’re done with the configuration, please navigate to Game Settings and enable your Reward Schema Set:

Creating a Chapter Set
When you’ve created all your configurations, you can go ahead and create your Chapter Set. Chapters Sets are the container where you’ll find all your levels.
1. Navigate to **Levels & Chapters \> Chapter Sets**. A table is shown with all the existing Sets, their availability and where they’re being used. Click **[+New]** to create a new Set.
2. Name your Chapter Set, and start configuring the Chapter Structure:
**About Mass Operations**
The Mass Operations button allows you to:
- Copy chapters from one Chapter Set to another
- Batch update Chapters **Keep in mind that only the changed fields will be applied and overridden.**
- Change the status of test Chapter Sets to Live
**Chapter Sets & Layout Banks Validations**
- Editing Layouts is **not allowed** when they are being used in Chapter Sets. To make any modifications, create a new entity (or duplicate) and then choose it in the Chapter Set.
- Note that you must have editor privileges on the layout bank page to make any edits. Also, you cannot alter a layout bank that has already been used.
- Make sure that that each level is given a unique name, and that the level is marked as "valid for use" with a value of "true." Failure to do so will result in the level not being displayed in the list of available layouts for Chapter Sets.
## Enabling your Chapter Sets in Game Settings
Once you’ve configured your Chapter Sets, it’s time to enable them in Game Settings so that they can be sent to players.
To do so, navigate to Game Settings, and click the green plus button to enable Chapter Sets. Once done, select your Chapter Set from the dropdown.

Chapter Sets are A/B testable entities, which allows you to create experiments with them. Read more about A/B Experiments [here](/wiki/spaces/KB/pages/2581889051/Setting+up+A+B+Experiments).
## Comparing Configurations
The configuration inside Chapter Sets can be compared using the Comparison Tool. This tool compares 2 different entities, highlighting differences and underlining where these differences are.

To use this tool, follow the steps below:
1. Navigate to Chapter Sets, and click **[Compare]** on the upper right corner of the screen:
2. Select the entities you’d like to compare, and click the blue compare button 
3. A new screen will appear where the differences will be highlighted:
The Comparison Tool is available for the following entities:
- Chapter Sets
- Scrapbooks
- Picture Banks
## Download Layout Banks & Chapter Sets JSON File
This section explains how to download a level layout bank and chapter sets file sfrom Game Server for review, backup, or transfer. Use the table’s Actions column to export the selected bank.
### Download **Layout Banks/Chapter Sets File**
1. From the top-left app switcher, choose the relevant game (e.g., _TripleTile_).
2. Go to Layout Banks: Levels & Chapters → Layout Banks.
3. Find the relevant bank: use Filter (top bar) or page through the list.
4. In the actions column of the bank row, click the Download icon (↓).
Your browser will download the bank file (usually JSON/CSV; format depends on the bank).
5. To download a chapter sets file, go to chapter sets: Levels & Chapters → Chapter Sets.
6. Repeat the steps 3 and 4 above to download a chapter sets file.
### Upload a Level Layout Bank (via **Upload file** )
Import a whole level bank (with all its layouts) from a JSON/CSV file.
1. Navigate to Layout Banks.
2. Click the green Upload button.
3. In the file picker, select the json/csv file and click **Open**.
4. The bank is created/imported. You’ll be returned to the Layout Banks table.
5. Find the new bank at/near the top of the list (check Updated at time).
6. Click the bank name to open View Layout Bank.
7. (Optional) Adjust details:

## Create Chapter Sets from a CSV
This section explains how to create/update Layout Banks and Chapter Sets from a CSV file.
### CSV Format
Fields marked **optional** should only be included if the script requires them for your game.
| **Column** | **Required** | **Type / Validation** | **Notes** |
| **Level\_ordinal** | Yes | Integer, min 1 | The absolute level number in the target Chapter Set (no upper limit). |
| **Level\_hash** | Yes | Non-empty | Hash used to look up an existing Level Layout. |
| **Origin\_layout\_bank\_id** | Yes | Integer, non-empty | ID of the existing Layout Bank from which the Level Layout is copied. |
| **New\_layout\_bank** | Yes | String, unique per new bank | Name of the destination Layout Bank to create/apply in the duplicate Chapter Set. |
| **Level\_position** | Optional | Integer, min 1 | Position within the Layout Bank (use only if required by script). |
| **Chapter\_position** | Optional | Integer, min 1 | Chapter index in the Chapter Set (use only if required by script). |
### _ **Create new chapter set from .csv** _
1. In GS, select the correct environment (Staging or Production) and the correct Application.
2. Go to Levels & Chapters: Chapter Sets.
3. Click Create new chapter set from .csv.
4. On the Create Chapter Set from CSV screen:
5. Click **Upload** to run validations and start the script.
6. Watch the Script Log:
- The Script Log shows parsing, validation results, and progress.
- If there are validation errors, the log will list the rows with issues; fix your CSV and re-upload.
- If all checks pass, the script will create/reuse Layout Banks, duplicate the selected Chapter Set, and apply levels.

### What the script does
1. Create new Layout Banks for every unique New\_layout\_bank in the CSV only if they differ from the referenced origin layout bank content.
2. Reuse existing Layout Bank (from Origin\_layout\_bank\_id) if there are no differences vs. the CSV.
3. Duplicate the selected Chapter Set with the provided New Chapter Set Name.
4. Apply Layout Banks to the correct positions in the duplicated Chapter Set.
5. Place levels into those banks based on Level\_ordinal (and Level\_position if used).
* * *
### Post‑upload verification
1. In Chapter Sets, open the newly created set by name.
2. Confirm new Layout Banks were created only where changes exist; unchanged segments reuse origin banks.
3. Check level counts, ordering (by Level\_ordinal / Level\_position), and layout types.
4. Smoke test any downstream visuals/themes/goals that depend on layout type.