yolkbot scrapes a lot of data from the game source to provide you with the most up-to-date information about Shell Shockers. This data is either heavily used or not at all.
following internal changes inside of yolkbot, we have moved some constants to data.yolkbot.xyz. a list of the data on data.yolkbot.xyz is accessible at https://data.yolkbot.xyz/manifest.json.
manifest.json is an object with the following structure:
{ "name": { "hash": "...", "path": "..." }, "name2": { ... } }
hash refers to a sha256 hash (no salt) of the file. path refers to the file name relative to https://data.yolkbot.xyz (e.g. data.yolbot.xyz/shopItems.json)
you can fetch the manifest and use the hashes to check if any files need to be updated inside of your code!
Challenges are a giant array of all possible challenges in the game.
The array is filled with objects that contain the following properties:
id: number - the ID of the challengeloc_ref: number - the localization reference ID for the challenge nametype: number - the type of the challenge (see the ChallengeTypes constant)subType: number - the subtype of the challenge (see the ChallengeSubTypes constant)period: number - always 0, likely unused propgoal: number - the goal of the challenge - used to signify a numeric goal (e.g. 10 for get 10 kills) - unused in some challenges even though it should be?? (see chlg_kill_streak_five)reward: number - the reward for completing the challenge (in eggs)conditional: number - likely some conditional value for the challenge that we don't know what it meansvalue: string | null but it's actually a number but as a string for some reason - the value of the challenge, used usually for numeric valuesvalueTwo: string | null but it's actually a number but as a string for some reason - the second value of the challenge, used as special indicators for non-numeric values that are not known to ustier: number - a difficulty measurement from 0 to 3loc: object - the english localization object for the challenge, containing:
name: string - the name of the challengedescription: string - the description of the challengeThe changelog is an array of the changelog entries.
An example object in the changelog array looks like this:
{
"version": "2.0.0",
"date": "June 1 2025",
"content": [
"This is a changelog entry",
"We added a new feature",
"We fixed a few bugs"
]
}
version: string - the version of the gamedate: string - the date of the changelog entry, formatted MMMM D YYYYcontent: string[] - an array of strings that contain the content of the changelog entryThis is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
This is the various data that is used to promote BWD's socials and other games on the main game page.
It's an object with the following properties:
big - an array of objects that are used as the big image for promoting other gamessmall - an array of objects that are used as the small image for promoting other gamesbigBanner - an array of objects that are used as the big banner for promoting other games and VIPhouseAdPercentChance: number - the percentage chance of showing a house adspecialItemsTag: number - the tag for special items (used to show special items in the shop)featuredSocialMedia: string - their featured social mediapremFeatured: string - their featured premium adsmHouseAds: array - an array of objects that are used as the small house adsshellLogo: array - an array of objects that are used as the Shell Shockers logo for various eventsThis is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
Items are the various items that can be purchased from the shop.
It's an array of objects that contain the following properties:
id: number - the ID of the itemname: string - the name of the itemprice: number - the price of the item in eggstype: number - the type of the item (see the ItemTypes constant)item_type_name: string - the name of the item type (see the ItemTypes constant)exclusive_for_class: number | null - the gun ID that the item is foritem_data: object - the data for the item, which can contain various properties depending on the item type
item_data.mesh: string - the mesh name for the itemitem_data.tags: string[] - the tags for the item that are used to find it when searchingis_available: boolean - whether the item is available for purchaseunlock: 'default' | 'purchase' | 'physical' | 'manual' | 'premium' | 'vip' - how the item is unlockedalign: object - the specific alignment of the item in the shop
x: number - the X alignment of the itemy: number - the Y alignment of the itemz: number - the Z alignment of the itemThis is the scraped English localization data. It's a key/value object where the key is the localization reference ID and the value is the localized string.
This is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
A list of all maps in the game. This does not have full map data (like the yolkorg/maps repository).
Map IDs are calculated based on their index in this array, starting from 0.
Maps have the following properties:
filename: string - the filename of the maphash: string - the "hash" of the mapname: string - the stylized name of the mapmodes: object - the game modes that the map supports
FFA: boolean - whether the map supports FFATeams: boolean - whether the map supports TeamsSpatula: boolean - whether the map supports CTSKing: boolean - whether the map supports King of the Coopavailable: 'public' | 'private' | 'both' - where the map can be playednumPlayers: string (could easily be converted to number) - the recommended number of players for the mapThis is just an object with a version property that is used to attempt to reload and recache when the game updates. The version is bumped anytime the game has an update critical enough to warrant a reload of the game.
This is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
This is an array of all of the regions, filled with objects with the following properties:
id: string - the ID of the region, effectively the name (i.e. useast, germany, etc)sub: string - the subdomain used to connect to the region. this subdomain exists on all of the game domainsThis is an array of objects that contains the latest news from the top right feed on the homescreen.
Each object has the following properties:
active: boolean - whether the news item shows upcontent: string - the text content of the news itemimageExt: string - the image extension of the news item (e.g. .png, .jpg)id: string: a random ID prefixed with news_elId: string - a random string used for the news element IDlink: string? - possibly a link to open when the news item is clickedlinksToChangeLog: string? - should the changelog open when the news item is clicked?linksToVipStore: string? - should the VIP store open when the news item is clicked?This is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
This is an array of objects that contains the latest videos from the top right feed on the homescreen.
Each object has the following properties:
active: boolean - whether the video shows uplink: string - the link to the video (full)desc: string - the description of the video (always empty)imageExt: string - the image extension of the video thumbnail (always empty)id: string - a fully random character stringauthor: string - the author of the video (sometimes has trailing spaces, use .trim())title: string - the title of the video (sometimes has trailing spaces, use .trim())externalImg: string - the displayed image URL of the videoThis is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
The various items that appear in the shop, such as the bundles. It's an array of objects with the following properties:
itemIds: number[] | null - the IDs of the items in the bundle, or null if it's not a bundlesku: string - the SKU of the itemname: string - the name of the itemprice: number - the price of the item in USDsalePrice: number | null - i got no clue chatflagText: string - extra text that appears on the item in the form of a loc keytype: 'currency' | 'item' | 'subscription' | 'pass' | 'bundle' - the type of the iteminStore: number - should it show up in the store?currency: number - the currency the item grants, or 0isActive: boolean - whether the item is active in the storeid: number - the ID of the itemThis is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
This is an object that looks like this:
{
"resources": [
"sound_source_1.webm",
"sound_source_2.ogg",
"sound_source_3.mp3"
],
"spritemap": {
"sound_1": {
"start": 0,
"end": 1000,
"loop": true
},
"sound_2": {
"start": 1000,
"end": 2000,
"loop": false
}
}
}
Each of the resources is a sound file that is imported ingame. It's one big file with each of the sounds that start and end at the specific time specified in the spritemap.
This is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
yolkbot scrapes a lot of data from the game source to provide you with the most up-to-date information about Shell Shockers. This data is either heavily used or not at all.
following internal changes inside of yolkbot, we have moved some constants to data.yolkbot.xyz. a list of the data on data.yolkbot.xyz is accessible at https://data.yolkbot.xyz/manifest.json.
manifest.json is an object with the following structure:
{ "name": { "hash": "...", "path": "..." }, "name2": { ... } }
hash refers to a sha256 hash (no salt) of the file. path refers to the file name relative to https://data.yolkbot.xyz (e.g. data.yolbot.xyz/shopItems.json)
you can fetch the manifest and use the hashes to check if any files need to be updated inside of your code!
Challenges are a giant array of all possible challenges in the game.
The array is filled with objects that contain the following properties:
id: number - the ID of the challengeloc_ref: number - the localization reference ID for the challenge nametype: number - the type of the challenge (see the ChallengeTypes constant)subType: number - the subtype of the challenge (see the ChallengeSubTypes constant)period: number - always 0, likely unused propgoal: number - the goal of the challenge - used to signify a numeric goal (e.g. 10 for get 10 kills) - unused in some challenges even though it should be?? (see chlg_kill_streak_five)reward: number - the reward for completing the challenge (in eggs)conditional: number - likely some conditional value for the challenge that we don't know what it meansvalue: string | null but it's actually a number but as a string for some reason - the value of the challenge, used usually for numeric valuesvalueTwo: string | null but it's actually a number but as a string for some reason - the second value of the challenge, used as special indicators for non-numeric values that are not known to ustier: number - a difficulty measurement from 0 to 3loc: object - the english localization object for the challenge, containing:
name: string - the name of the challengedescription: string - the description of the challengeThe changelog is an array of the changelog entries.
An example object in the changelog array looks like this:
{
"version": "2.0.0",
"date": "June 1 2025",
"content": [
"This is a changelog entry",
"We added a new feature",
"We fixed a few bugs"
]
}
version: string - the version of the gamedate: string - the date of the changelog entry, formatted MMMM D YYYYcontent: string[] - an array of strings that contain the content of the changelog entryThis is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
This is the various data that is used to promote BWD's socials and other games on the main game page.
It's an object with the following properties:
big - an array of objects that are used as the big image for promoting other gamessmall - an array of objects that are used as the small image for promoting other gamesbigBanner - an array of objects that are used as the big banner for promoting other games and VIPhouseAdPercentChance: number - the percentage chance of showing a house adspecialItemsTag: number - the tag for special items (used to show special items in the shop)featuredSocialMedia: string - their featured social mediapremFeatured: string - their featured premium adsmHouseAds: array - an array of objects that are used as the small house adsshellLogo: array - an array of objects that are used as the Shell Shockers logo for various eventsThis is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
Items are the various items that can be purchased from the shop.
It's an array of objects that contain the following properties:
id: number - the ID of the itemname: string - the name of the itemprice: number - the price of the item in eggstype: number - the type of the item (see the ItemTypes constant)item_type_name: string - the name of the item type (see the ItemTypes constant)exclusive_for_class: number | null - the gun ID that the item is foritem_data: object - the data for the item, which can contain various properties depending on the item type
item_data.mesh: string - the mesh name for the itemitem_data.tags: string[] - the tags for the item that are used to find it when searchingis_available: boolean - whether the item is available for purchaseunlock: 'default' | 'purchase' | 'physical' | 'manual' | 'premium' | 'vip' - how the item is unlockedalign: object - the specific alignment of the item in the shop
x: number - the X alignment of the itemy: number - the Y alignment of the itemz: number - the Z alignment of the itemThis is the scraped English localization data. It's a key/value object where the key is the localization reference ID and the value is the localized string.
This is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
A list of all maps in the game. This does not have full map data (like the yolkorg/maps repository).
Map IDs are calculated based on their index in this array, starting from 0.
Maps have the following properties:
filename: string - the filename of the maphash: string - the "hash" of the mapname: string - the stylized name of the mapmodes: object - the game modes that the map supports
FFA: boolean - whether the map supports FFATeams: boolean - whether the map supports TeamsSpatula: boolean - whether the map supports CTSKing: boolean - whether the map supports King of the Coopavailable: 'public' | 'private' | 'both' - where the map can be playednumPlayers: string (could easily be converted to number) - the recommended number of players for the mapThis is just an object with a version property that is used to attempt to reload and recache when the game updates. The version is bumped anytime the game has an update critical enough to warrant a reload of the game.
This is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
This is an array of all of the regions, filled with objects with the following properties:
id: string - the ID of the region, effectively the name (i.e. useast, germany, etc)sub: string - the subdomain used to connect to the region. this subdomain exists on all of the game domainsThis is an array of objects that contains the latest news from the top right feed on the homescreen.
Each object has the following properties:
active: boolean - whether the news item shows upcontent: string - the text content of the news itemimageExt: string - the image extension of the news item (e.g. .png, .jpg)id: string: a random ID prefixed with news_elId: string - a random string used for the news element IDlink: string? - possibly a link to open when the news item is clickedlinksToChangeLog: string? - should the changelog open when the news item is clicked?linksToVipStore: string? - should the VIP store open when the news item is clicked?This is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
This is an array of objects that contains the latest videos from the top right feed on the homescreen.
Each object has the following properties:
active: boolean - whether the video shows uplink: string - the link to the video (full)desc: string - the description of the video (always empty)imageExt: string - the image extension of the video thumbnail (always empty)id: string - a fully random character stringauthor: string - the author of the video (sometimes has trailing spaces, use .trim())title: string - the title of the video (sometimes has trailing spaces, use .trim())externalImg: string - the displayed image URL of the videoThis is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
The various items that appear in the shop, such as the bundles. It's an array of objects with the following properties:
itemIds: number[] | null - the IDs of the items in the bundle, or null if it's not a bundlesku: string - the SKU of the itemname: string - the name of the itemprice: number - the price of the item in USDsalePrice: number | null - i got no clue chatflagText: string - extra text that appears on the item in the form of a loc keytype: 'currency' | 'item' | 'subscription' | 'pass' | 'bundle' - the type of the iteminStore: number - should it show up in the store?currency: number - the currency the item grants, or 0isActive: boolean - whether the item is active in the storeid: number - the ID of the itemThis is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.
This is an object that looks like this:
{
"resources": [
"sound_source_1.webm",
"sound_source_2.ogg",
"sound_source_3.mp3"
],
"spritemap": {
"sound_1": {
"start": 0,
"end": 1000,
"loop": true
},
"sound_2": {
"start": 1000,
"end": 2000,
"loop": false
}
}
}
Each of the resources is a sound file that is imported ingame. It's one big file with each of the sounds that start and end at the specific time specified in the spritemap.
This is no longer in the yolkbot code and is instead distributed through data.yolkbot.xyz.