Skip to content

Documentation

Gasterbuzzer edited this page May 14, 2026 · 84 revisions

List of JSON Keys (Not all values have to be used. Though some may)
If you do not know how to use a specific option, check out its corresponding guide.

Custom Entry Values

Main Values

  • "monster_name" (Example: "TEST_NAME"): Name of the monster.

  • "monster_description" (Example: "DESCRIPTION"): Description of the monster, allows special formatting.

  • "monster_portrait_image_name" (Example: "image.png"): Name of the image inside the same folder.

  • "monster_audio_clip_name" (Example: "sound.wav"): Name of the audio clip file inside the same folder.

  • "access_level" (Examples (INT): 0-5): Which access level is needed when playing the main campaign (0 → No permissions needed).

  • "include_campaign" (Examples: true, false) (Default: false): If to include it in the main campaign.

  • "attached_custom_campaign_name" (Example: "Name of custom campaign"): If to be included in a custom campaign. Only requires a name to be provided. Will only show up in the custom campaign provided.

Advanced

  • "monster_id" (Optional / Deprecated) (INT (Examples: 0-99999)): ID for the monster. It is best to leave it empty and let the mod handle it for you. If the ID already exists, it will instead replace it. I do not recommend using this to replace it unless you are replacing an entry in a complicated matter. Use the replace option in the advanced section instead!

Phobias

  • "spider_phobia" (Optional) (Examples: true, false) (Default: false): If to hide the image of the entry if spider phobia is enabled.

  • "darkness_phobia" (Optional) (Examples: true, false) (Default: false): If to hide the image of the entry if darkness phobia is enabled.

  • "dog_phobia" (Optional) (Examples: true, false) (Default: false): If to hide the image of the entry if dog phobia is enabled.

  • "holes_phobia" (Optional) (Examples: true, false) (Default: false): If to hide the image of the entry if holes phobia is enabled.

  • "insect_phobia" (Optional) (Examples: true, false) (Default: false): If to hide the image of the entry if insect phobia is enabled.

  • "watching_phobia" (Optional) (Examples: true, false) (Default: false): If to hide the image of the entry if watching phobia is enabled.

  • "tight_space_phobia" (Optional) (Examples: true, false) (Default: false): If to hide the image of the entry if tight spaces phobia is enabled.

DLC: Seasonal Worker

  • "only_dlc" (Examples: true, false) (Default: false): If to only show in the DLC.

  • "include_dlc" (Examples: true, false) (Default: false): If to also include in the DLC.

Caller Arcade Mode Values (Values of the caller for the Entry)

  • "arcade_calls" (List) (Example: ["Hello, I have this problem…", "Hi, I think I have this problem…"]): Texts that appear when called in Arcade (Training) Mode. Will choose a random one from the list.

  • "caller_audio_clip_name" (Example: "sound.wav"): Audio played when called for this entry.

Caller Main Campaign Values (Values of the caller for the entry) (Requires include_campaign to be true)

This is for main campaign callers! For custom campaigns, see how to add custom callers.

  • "caller_audio_clip_name" (Example: "sound.wav"): Audio played when called for this entry.

  • "caller_name" (Example: "John Safety"): Name of the caller.

  • "caller_transcript" (Example: "Hello, I need help."): Transcript of the caller in text form.

  • "caller_image_name" (Example: "image.png"): Name of the image for the caller inside the same folder.

  • "caller_chance" (Example: 0.3) (Default 0.1): Chance that this entry replaces the caller. Must be between 0.0 and 1.0. (Or equal). Requires to be included in the main campaign for it to work.

  • "allow_calling_again_over_restarts" (Default: true) (Example: true, false): If the call is allowed to happen again upon restarting the game. The default is true. If set to false, it would prevent you from getting that call again (Setting this to true or not providing the option will reset the previous save for it).

Consequence Main Campaign Values (Values of the caller for the entry after the player got it wrong) (Requires include_campaign to be true)

This is for main campaign consequence callers! For custom campaign, see how to add custom callers.

  • "consequence_caller_audio_clip_name" (Example: "sound.mp3"): Audio played when called for this entry after the player got it wrong.

  • "consequence_caller_name" (Example: "John Safety"): Name of the consequence caller.

  • "consequence_caller_transcript" (Example: "Hello, I need help."): Consequence caller transcript in text form.

  • "consequence_caller_image_name" (Example: "image.png"): Name of the image for the consequence caller inside the same folder.

Advanced Values

  • "replace_entry" (Examples: true, false) (Default: false): Replace an entry / monster instead of adding it. (Also works in custom campaigns)

  • "delete_entry" (Examples: true, false) (Default: false): Deletes an entry from a custom campaign. (Requires "replace_entry" to be set to true)

Custom Campaign Values

Main Values

  • "custom_campaign_name" (Example: "Custom Campaign Name"): The internal name of the custom campaign. Must be unique.

  • "custom_campaign_days" (Example: 5): Amount of days the custom campaign runs for. Do not provide fewer days than you actually use.

  • "custom_campaign_desktop_name" (Example: "Custom Campaign\nDesktop Name"): Name of custom campaign on the desktop. This option is purely cosmetic!

  • "custom_campaign_icon_image_name" (Example: "smug_cat.png"): Image used for icon on the desktop.

  • "custom_campaign_remove_main_entries" (Example: true) (Default: false): Removes all default entries / monsters from the custom campaign.

Thresholds for Warning and Game Over

  • "custom_campaign_gameover_threshold" (Default Value: 60): Threshold for when to trigger the game over screen at the end of the day. (Except the first day)

  • "custom_campaign_warning_threshold" (Default Value: 60): Threshold for when to trigger a warning call. As a reminder: it happens after a certain caller.

  • "custom_campaign_threshold_amount" (Example: [3, 2, 3, 4, 5, 7]):
    This refers to the amount of monster / entry callers that need to have called before the warning call happens. This does not include dynamic (non-entry) callers.

Game Over and End Cutscenes

  • "custom_campaign_end_cutscene_video_name" (Example: "cat_upset.mp4"): Cutscene video to show at the end of the campaign. Meaning that they finished the campaign successfully.

  • "custom_campaign_gameover_cutscene_video_name" (Example: "cat_upset.mp4"): Cutscene video to show when the player loses in the campaign. Meaning, when the player didn't have enough correct callers at the end of the day. This does not trigger on the first day.

Day Customization

  • "custom_campaign_days_names" (Example: ["Monday", "Second Day", ..., "Last Day]): A list of names for the different days. These get shown at the beginning of each day.

  • "start_year" (Example: 1997): The year that will be displayed on the desktop date.

  • "start_month": (Example: 12): The month that will be displayed on the desktop date.

  • "start_day" (Example: 15): The day that will be displayed on the desktop date.

  • "use_europe_date_format" (Example: true) (Default: false): If to show the desktop date in the European date format.

Loading Settings

  • "custom_campaign_loading_desktop_text1" (Example: ["First Text loading", "First Text loading.", "First Text loading..", "First Text loading..."]): Text shown when loading into the desktop. The game loops through each text in the list. So by adding a dot at the end, you can animate loading text.

  • "custom_campaign_loading_desktop_text2" (Example: ["Second Text loading", "Second Text loading\nSecond Text loading 2"]): This section of the loading screen just goes through each line and displays that (It does not loop).

Desktop Settings

  • "desktop_username_text" (Example: "USER Bob"): Username to show on the desktop.

  • "custom_campaign_desktop_backgrounds" (Example: ["firstDayBackground.png", "secondDayBackground.png"]): Background to show for each different day. The first image in the list is for the first day, the second image for the second day, and so on.

  • "custom_campaign_desktop_game_finished_background" (Example: "cat.jpg"): When the player beats the game, they get to see a custom background. You can provide that banner with this option.

  • "disable_green_color_on_desktop" (Default: false): Disables the green tint on the background if set to true.

  • "disable_desktop_logo" (Default: false): Disables the logo on top of the background on desktop.

  • "custom_desktop_logo_name" (Example: "cat.jpg"): If you wish to change the logo with an image, you can use this option.

  • "custom_desktop_logo_transparency" (Default: 0.2627): Allows you to set the transparency of the logo. Higher values mean less transparency, and lower values mean more transparency.

  • "rename_main_game_desktop_icon" (Example: "John Safety Hotline"): Renames the main game program to a different name.

  • "main_game_desktop_icon_path" (Example: "cat.jpg"): Allows you to change the image of the main program on the desktop.

Removing existing main campaign emails and videos

  • "remove_default_emails" (Default: true): Removes all the main campaign emails from appearing in the custom campaign.

  • "disable_main_campaign_videos" (Default: true): Removes all main campaign videos from appearing in the custom campaign.

  • "custom_campaign_empty_main_entries_permission" (Default: false): Makes all main campaign entries be unlocked by default.

  • "custom_campaign_show_new_tag_for_main_entries" (Default false): If to show the 'NEW' tag on entries from the main game when making the entries unlocked by default.

Music and Ringtone in custom campaigns

  • "remove_default_music" (Default false): If to remove the default music. This can be helpful in adding your own music but removing the original music.

  • "always_randomize_music" (Default true): If to always use random music in custom campaigns. If disabled, it will use the main game's logic for choosing the music for a specific day.

  • "do_not_account_default_ringtone" (Default true): If we have ringtones set to append (explanation in the ringtone section), it will per default not choose the default ringtone. But if set to false, it will also append the default ringtone.

Helper Options for Testing in Custom Campaign

  • "entry_browser_always_active" (Default: false): Enables the entry browser on the desktop to always be accessible.

  • "scorecard_always_active" (Default: false): Enables the scorecard to be always usable on the desktop.

  • "artbook_always_active" (Default: false): Enables the art book to be always accessible.

  • "arcade_always_active" (Default: false): Enables the arcade to be always accessible.

  • "always_show_skip_call_wait_time" (Default: false): Always enables the button which skips the call wait time.

  • "skip_callers_correctly" (Example: true) (Default: false): Makes all callers always be correct, even if the answer provided was wrong.

Themes and Modifiers in Custom Campaign

  • "disable_theme_dropdown" (Default: false): If to prohibit the user from changing the theme option.

  • "defaultTheme" (Example: Name of the theme to be applied): The default theme to apply automatically for the custom campaign. If this fails, try resetting the custom campaign or select it yourself manually in the settings menu.

Custom Caller in custom campaign

Main Values

  • "custom_caller_name" (Example: "Bob"): Name of the custom caller.

  • "custom_caller_transcript" (Example: "This is the safety of all home hotlines."): Transcript of the caller.

  • "custom_caller_image_name" (Example: "dog.png"): Image of the caller.

  • "custom_caller_audio_clip_name" (Example: "music.mp3"): Audio of the caller.

  • "custom_campaign_attached" (Example: "Name of custom campaign"): Name of the custom campaign it should be attached to.

  • "order_in_campaign" (Example: 0 or 32): This defines the order the caller should appear in the campaign. (Please be aware that it starts at 0).

More options

  • "custom_caller_monster_name" (Example: "Pizza Cat"): If this caller has an entry attached to it. Meaning it will ask for an answer.

  • "custom_caller_downed_network" (Default: false): Disables the viewing of entries while the caller is active (downed network).

  • "custom_caller_increases_tier" (Default: false): If to increase the tier when called. Only works in custom campaign.

  • "custom_caller_last_caller_day" (Default: false): If this caller was the last one for the day. Only works in custom campaign.

  • "custom_caller_consequence_caller_id" (Example: 23): If this caller is a consequence caller (If the original caller was given the wrong answer, then this current caller is the consequence caller). You only need to provide the ID of the original caller. It will only trigger if the original caller was given the wrong answer. Otherwise, this caller will be skipped.

Warning and Game Over

  • "is_warning_caller" (Default: false): If this caller is a warning caller (Replaces the default warning caller).

  • "warning_caller_day" (Example: 5): If provided, it will only use this warning caller for the provided day. If not provided, it will happen on each day (except it gets overridden by warning callers with a day provided).

  • "is_gameover_caller" (Default: false): If this caller should replace the default game over caller.

  • "gameover_caller_day" (Example: 1): Similar to how warning caller day is provided. If the game over should happen on a specific day (except the first day), this caller will appear for the provided day. If you do not provide this option, then this caller will appear for each day except if it already has a game over for that day.

Accuracy Caller

  • "is_accuracy_caller" (Default: false): If this caller is an accuracy caller.

  • "accuracy_required" (Example: 0.2 or [0.2, 0.5, 0.1]): The accuracy or multiple accuracies required for this caller to be shown.

  • "use_total_accuracy" (Example: false or [true, false, true]): If to check with the total accuracy (true) or if to check with the day's accuracy (false). If multiple checks exist, you can also check for a different accuracy. Only use a list if each check requires a different accuracy type. If not, you can provide a single one, and it will apply for all.

  • "accuracy_check_type" (Example: "eq" or ["geq", "leq"]): Defines what type of check should be performed. There are the following options: eq or equal, which means that it must be exactly equal to the required accuracy. geq or greaterorequal, which checks if the current accuracy is greater than or equal to the required accuracy. leq or lessorequal, which checks if the current accuracy is less than or equal to the required accuracy. neq or notequal, which checks if the current accuracy is not equal to the required accuracy. And there is none, which means that no check is required and that it will always work. Use this as a placeholder when you are not sure yet.

Advanced

  • "include_in_main_campaign" (Default: false): If it is part of the main campaign. Cannot be in a custom campaign if set to true.

  • "custom_caller_monster_id" (Example: 34): ID of the monster to be attached to. Avoid using if possible. Should only be used in the main campaign unless you can guarantee that it will bind correctly.

Custom Email Values

Main Values

  • "email_subject" (Example: "VERY IMPORTANT EMAIL SUBJECT"): Subject of the email. (Title of the email)

  • "email_custom_campaign_name" (Example: "Custom Campaign Name"): Name of the custom campaign to belong to.

  • "email_sender" (Example: "Car Dealership"): Name of the sender of the email.

  • "email_body" (Example: "We have been trying to reach you for your cars extended waranty..."): Main text contained in the email.

  • "email_unlock_day" (Example: 2): Day this email appears in the inbox.

  • "email_unlock_threshold" (Example: 90): If you wish to make the email unlock only if they unlocked at least a certain score on the previous day. 90 means 90% correct.

Image

  • "email_image" (Example: "parrot.png"): Image to show at the tail of the email.

Advanced

  • "email_in_main_campaign" (Default: false): If to include this email in the main campaign instead.

Custom Video Values

Main Values

  • "video_desktop_name" (Example: "dangerous_video"): Name of the video on the desktop. This is not the actual video file! (Cosmetic only)

  • "video_file_name" (Example: "video_file.mp4"): The video file name. This is what gets played.

  • "custom_campaign_attached" (Example: "Name of the custom campaign"): Name of the custom campaign to be included in.

  • "video_unlock_day" (Example: 1): When this video gets unlocked.

Custom Music Values

Main Values

  • "custom_campaign_attached" (Example: "Name of the custom campaign"): Name of the custom campaign to be included in.

  • "music_audio_clip_name" (Example: music.wav): The music file name. This is what gets played.

  • "unlock_day" (Default: 0) (Example: 1): Music is allowed to play on any day. By providing an unlock day, this music can only play starting from that day onwards.

Custom Theme Values

Main Values

  • "theme_custom_campaign_attached" (Example: "Name of the custom campaign"): Name of the custom campaign to be included in.

  • "theme_name" (Example: Coolest Theme ever): The name of the theme. Required for conditional themes.

  • "theme_in_main_campaign" (Default: false) (Example: true): If the theme should be in the main campaign only.

  • "title_bar_color" (Example: [0.5, 1, 1]): Color of the title bar. It is in RGB (Red, Green, Blue) format. You can also append the A (Alpha) at the end.

  • "menu_color" (Example: [0.5, 1, 1]): Color of the different menu options, such as buttons and text fields. It is in RGB (Red, Green, Blue) format. You can also append the A (Alpha) at the end. (These can either be in 0-1 format (1 = 100% and 0 = 0%). Or they can be in 0-255 format (255 = 100% and 0 = 0%))

  • "main_window_color" (Example: [255, 0, 125]): Color of the main window, usually the background of the window. It is in RGB (Red, Green, Blue) format. You can also append the A (Alpha) at the end. (These can either be in 0-1 format (1 = 100% and 0 = 0%). Or they can be in 0-255 format (255 = 100% and 0 = 0%))

  • "entry_font_color" (Example: [0.5, 1, 1]): Color for the entry text. This is the color of the text that you see when you see the entry list. It is in RGB (Red, Green, Blue) format. You can also append the A (Alpha) at the end. (These can either be in 0-1 format (1 = 100% and 0 = 0%). Or they can be in 0-255 format (255 = 100% and 0 = 0%))

Conditional Theme

  • "unlock_day": (Example [3, 4]): If you want your theme to only appear on certain days, you can give a list of days. This requires the option below!

  • "attached_to_theme": (Example: "Default Custom Campaign Theme"): If you have a conditional theme, you must make sure it's attached to a general theme for fallback. This option lets you attach it to a named theme.

Custom Ringtone Values

Main Values

  • "ringtone_audio_clip_name" (Example: "evilRingtone.mp3"): Audio file name of the ringtone to be played.

  • "custom_campaign_attached" (Example: "Name of the custom campaign"): Name of the custom campaign to be included in.

  • "unlock_day" (Example: 1): When this ringtone gets unlocked. Please note it will play only on this day. If you don't want this, use the below option.

  • "only_play_on_unlock_day" (Default: true): If the ringtone is only supposed to play on the unlock day. If you want the ringtone to be for every day, either set the unlock day to 0 or set this value to false.

Extra Options

  • "is_glitched_version" (Default: false): If you wish to replace the glitched phone call ringtone.

  • "is_append_ringtone" (Default: false): If you wish this ringtone to instead be added as a possible candidate. Meaning it will be randomly chosen from all ringtones that have been set to "append".

Custom Modifier Values

Main Values

  • "modifier_custom_campaign_attached" (Example: Name of the custom campaign): Name of the custom campaign to be included in.

Values to modify (More options to be added soon!)

  • "desktop_username_text" (Example: Bob): Username shown on the desktop.

  • "desktop_backgrounds" (Example: ["cat.png", "dog.png"]): Different desktop backgrounds. Will attempt to show the backgrounds in the same order as the unlock day if provided. If not, it will attempt to show it following the list.

  • "game_finished_desktop_background" (Example: cat.png): Image shown when the player has beaten the game.

  • "disable_green_color_on_desktop" (Default: false): If you want to disable the green tint on the desktop background.

  • "desktop_background_color" (Example: [0, 0.5, 0.5]): A new option that allows setting the background tint to another color instead. It is in RGB (Red, Green, Blue) format. You can also append the A (Alpha) at the end.

  • "disable_desktop_logo" (Default: false): If to disable the logo that hovers above the desktop background.

  • "desktop_logo_image_name" (Example: cat.png): If you want to change the logo that hovers above the desktop background to a different image.

  • "desktop_logo_transparency" (Example: 0.2627): Option to change the transparency of the logo. Note: This can also be done by setting the color.

  • "campaign_day_names" (Example: ["First Day", "Second Day", "Funny name"]): List of different name days that get shown at the beginning of a workday.

Desktop Program Modifier Values

  • "rename_main_game_desktop_icon" (Example: New main game desktop icon name): The name of the game's icon on the desktop.

  • "main_game_desktop_icon_path" (Example: cat.png): Icon of the game on the desktop.

  • "show_mailbox_icon_on_desktop" (Example: false): If to enable or disable the mailbox. Please note, setting it to false will hide the icon on the desktop.

  • "show_entry_browser_icon_on_desktop" (Example: false): If to enable or disable the entry browser. Please note, setting it to false will hide the icon on the desktop. This option is different from the custom campaign one.

  • "show_scorecard_icon_on_desktop" (Example: true): If to enable or disable scorecard. Please note, setting it to false will hide the icon on the desktop. This option is different from the custom campaign one.

  • "show_artbook_icon_on_desktop" (Example: false): If to enable or disable artbook. Please note, setting it to false will hide the icon on the desktop. This option is different from the custom campaign one.

  • "show_arcade_icon_on_desktop" (Example: true): If to enable or disable arcade. Please note, setting it to false will hide the icon on the desktop. This option is different from the custom campaign one.

  • "desktop_credits_image_name" (Example: two_cats.png): Changes the credits program icon to the provided valid image.

  • "desktop_mailbox_image_name" (Example: two_cats.png): Changes the mailbox program icon to the provided valid image.

  • "desktop_entry_browser_image_name" (Example: two_cats.png): Changes the entry browser program icon to the provided valid image.

  • "desktop_options_image_name" (Example: two_cats.png): Changes the options program icon to the provided valid image.

  • "desktop_artbook_image_name" (Example: two_cats.png): Changes the artbooks program icon to the provided valid image.

  • "desktop_arcade_image_name" (Example: two_cats.png): Changes the arcade program icon to the provided valid image.

  • "desktop_scorecard_image_name" (Example: two_cats.png): Changes the scorecard program icon to the provided valid image.

Conditional Modifier

  • "unlock_day": (Example [3, 4]): If you want your modifier to only appear on certain days, you can give a list of days.

That covers all the JSON values. If you have any questions or something is unclear, do not be afraid to ask!