Pick-A-Toon Screen

In Toontown Realms, Realm hosters can customize the Pick-A-Toon screen.

To customize the Pick-A-Toon screen, create a new file named pickatoon.json in the config/ folder in your Realms's root directory.

Pick-A-Toon Format

Note: For the background to load in-game, you need to at least specify either a dna_file or at least one prop. You can combine these, but you must have at least one of these.

key type description
camera_pos PosHpr (Read Below) Specifies the position of the camera. The 6 floats specify, in this order, the x, y, and z positions, and the h, p, and r rotations.
dna_storages List of string [Optional, required if "dna_file" is specified] Specifies which DNA Storages to load. DNA Storages specify which models are available for DNA files to load
dna_file string [Optional, required if "props" is not specified or empty] Specifies the DNA file to load for the background. If this is unspecified, no DNA file will be loaded but you will still be allowed to use the rest of the custom Pick-A-Toon features, like props.
sky int [Optional] Specifies which sky texture we're using. The indexes can be found below
toon_positions List of 6 PosHpr (Read Below) [Optional] Species the positions to place the player's Toon models in 3D space. If this is unspecified, the game will continue to show the 2D 6-square picker, but will still show your 3D background.
props List of Prop (Read Below) Specifies a list of props to load. Currently there is a limit of 300 props.

PosHpr Type

A PosHpr type is simply a list of 6 floats that specify the x, y, and z positions, and h, p, and r rotations. Example:

"camera_pos": [-8.5, 15, 5.42, 0, -15, 0],

"toon_positions": [
    [-16, 26, -0.48, 210, 0, 0],
    [-13, 27, -0.48, 200, 0, 0],
    [-10, 31, 0.02, 190, 0, 0],
    [-7, 31, 0.02, 160, 0, 0],
    [-4, 28, -0.48, 153, 0, 0],
    [-1, 26, -0.48, 136, 0, 0]
],

Sky Indexes

  1. Toontown Central / Daisy Gardens (Day Sky)
  2. Donald's Dock / The Brrrgh (Foggy Sky)
  3. Minnie's Melodyland (Evening Sky)
  4. Donald's Dreamland (Night Sky)
  5. Cog HQs

Prop Type

key type description
model_path string Specifies the model bam file to load
node_path string [Optional] Specifies a path to search for to find a sub node within the loaded model, such as finding a specific door type in the door model file which includes all door types
pos List of 3 float [Optional | default = (0, 0, 0)] Specifies the x, y, and z position to place this prop at
hpr List of 3 float [Optional | default = (0, 0, 0)] Specifies the h, p, and r rotation to place this prop at
scale List of 3 float [Optional | default = (1.0, 1.0, 1.0)] Specifies the x, y, and z scale to set the prop to
color List of 4 int[0-255] [Optional | default = (255, 255, 255, 255)] Specifies the red, blue, green, and alpha color scales - This is on a 0-255 scale, not 0.0-1.0
texture_overrides Dictionary of key-value pairs [Optional] Specifies texture overrides for specific nodes in the loaded model. The key will be the node path name, the value will be the new texture file path.

Prop Example

This example loads a texture plane prop which we then will set to the appearance of water

"props": [
    {
        "model_path": "phase_14.5/models/props/ttoff_m_propgen_texPlane",
        "pos": [4, 25, -0.5],
        "hpr": [0, 90, 0],
        "scale": [20, 20, 20],
        "color": [255, 255, 255, 120],
        "texture_overrides": {
            "Plane": "phase_4/maps/water3.png"
        }
    }
]

Complete Example #1

This example loads the DNA file of the Minnie's Melodyland themed main menu background, adds a couple of props, and uses 3D Toon models

{
    "dna_storages": [
        "phase_6/dna/ttrm_d_strg_mml.dna",
        "phase_6/dna/ttrm_d_strg_mml_sz.dna",
        "phase_6/dna/ttrm_d_strg_mml_town.dna"
    ],
    
    "dna_file": "phase_3/dna/ttoff_d_launch_backgroundMM.dna",
    "camera_pos": [-8.5, 15, 5.42, 0, -15, 0],
    "toon_positions": [
        [-16, 26, -0.48, 210, 0, 0],
        [-13, 27, -0.48, 200, 0, 0],
        [-10, 31, 0.02, 190, 0, 0],
        [-7, 31, 0.02, 160, 0, 0],
        [-4, 28, -0.48, 153, 0, 0],
        [-1, 26, -0.48, 136, 0, 0]
    ],
    "sky": 2,
    "props": [
        {
            "model_path": "phase_4/models/props/tt_a_ara_ttc_sillyMeter_default.bam"
        },
        {
            "model_path": "phase_14.5/models/props/ttoff_m_propgen_texPlane",
            "pos": [4, 25, -0.5],
            "hpr": [0, 90, 0],
            "scale": [20, 20, 20],
            "color": [255, 255, 255, 120],
            "texture_overrides": {
                "Plane": "phase_4/maps/water3.png"
            }
        }
    ]
}

This example loads the same scene above, except instead of using 3D Toon models, it uses the classic 2D picker

{
    "dna_storages": [
        "phase_6/dna/ttrm_d_strg_mml.dna",
        "phase_6/dna/ttrm_d_strg_mml_sz.dna",
        "phase_6/dna/ttrm_d_strg_mml_town.dna"
    ],
    
    "dna_file": "phase_3/dna/ttoff_d_launch_backgroundMM.dna",
    "camera_pos": [-8.5, 15, 5.42, 0, -15, 0],
    "sky": 2,
    "props": [
        {
            "model_path": "phase_4/models/props/tt_a_ara_ttc_sillyMeter_default.bam"
        },
        {
            "model_path": "phase_14.5/models/props/ttoff_m_propgen_texPlane",
            "pos": [4, 25, -0.5],
            "hpr": [0, 90, 0],
            "scale": [20, 20, 20],
            "color": [255, 255, 255, 120],
            "texture_overrides": {
                "Plane": "phase_4/maps/water3.png"
            }
        }
    ]
}
An unhandled exception has occurred. See browser dev tools for details. Reload 🗙