[{"data":1,"prerenderedAt":542},["ShallowReactive",2],{"/docs/exclusives/battlepass/custom-rewards":3,"/docs/exclusives/battlepass/custom-rewards-surround":532},{"id":4,"title":5,"body":6,"description":43,"extension":524,"head":525,"meta":526,"navigation":338,"path":527,"schemaOrg":525,"seo":528,"sitemap":529,"stem":530,"__hash__":531},"docs/1.docs/exclusives/2.battlepass/5.custom-rewards.md","Custom Rewards",{"type":7,"value":8,"toc":518},"minimark",[9,14,27,30,34,37,148,222,224,228,234,402,411,413,417,423,503,514],[10,11,13],"h2",{"id":12},"overview","Overview",[15,16,17,18,22,23,26],"p",{},"Battle Pass can send custom level, premium, and randomized rewards to ",[19,20,21],"code",{},"Functions.GiveCustomReward"," inside ",[19,24,25],{},"sky_base/config/sv_functions.lua",".\nUse this hook for rewards that are not handled by the default item, money, weapon, coin, or vehicle integrations.",[28,29],"hr",{},[10,31,33],{"id":32},"reward-structure","Reward Structure",[15,35,36],{},"Every custom reward uses the same reward table structure:",[38,39,44],"pre",{"className":40,"code":41,"language":42,"meta":43,"style":43},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n    label = \"Pet Dog\",\n    sort = \"pet\",\n    name = \"dog\",\n    amount = 1,\n    img = \"dog.png\"\n}\n","lua","",[19,45,46,55,78,95,112,126,142],{"__ignoreMap":43},[47,48,51],"span",{"class":49,"line":50},"line",1,[47,52,54],{"class":53},"sTEyZ","{\n",[47,56,58,61,65,68,72,75],{"class":49,"line":57},2,[47,59,60],{"class":53},"    label ",[47,62,64],{"class":63},"sMK4o","=",[47,66,67],{"class":63}," \"",[47,69,71],{"class":70},"sfazB","Pet Dog",[47,73,74],{"class":63},"\"",[47,76,77],{"class":53},",\n",[47,79,81,84,86,88,91,93],{"class":49,"line":80},3,[47,82,83],{"class":53},"    sort ",[47,85,64],{"class":63},[47,87,67],{"class":63},[47,89,90],{"class":70},"pet",[47,92,74],{"class":63},[47,94,77],{"class":53},[47,96,98,101,103,105,108,110],{"class":49,"line":97},4,[47,99,100],{"class":53},"    name ",[47,102,64],{"class":63},[47,104,67],{"class":63},[47,106,107],{"class":70},"dog",[47,109,74],{"class":63},[47,111,77],{"class":53},[47,113,115,118,120,124],{"class":49,"line":114},5,[47,116,117],{"class":53},"    amount ",[47,119,64],{"class":63},[47,121,123],{"class":122},"sbssI"," 1",[47,125,77],{"class":53},[47,127,129,132,134,136,139],{"class":49,"line":128},6,[47,130,131],{"class":53},"    img ",[47,133,64],{"class":63},[47,135,67],{"class":63},[47,137,138],{"class":70},"dog.png",[47,140,141],{"class":63},"\"\n",[47,143,145],{"class":49,"line":144},7,[47,146,147],{"class":53},"}\n",[149,150,151,164],"table",{},[152,153,154],"thead",{},[155,156,157,161],"tr",{},[158,159,160],"th",{},"Key",[158,162,163],{},"Description",[165,166,167,178,192,202,212],"tbody",{},[155,168,169,175],{},[170,171,172],"td",{},[19,173,174],{},"label",[170,176,177],{},"Display name shown to the player.",[155,179,180,185],{},[170,181,182],{},[19,183,184],{},"sort",[170,186,187,188,191],{},"Custom reward type. Use this value in ",[19,189,190],{},"GiveCustomReward"," to decide what should happen.",[155,193,194,199],{},[170,195,196],{},[19,197,198],{},"name",[170,200,201],{},"Internal reward name, item name, vehicle model, pet id, or any identifier your integration needs.",[155,203,204,209],{},[170,205,206],{},[19,207,208],{},"amount",[170,210,211],{},"Amount to give.",[155,213,214,219],{},[170,215,216],{},[19,217,218],{},"img",[170,220,221],{},"Image used in the UI or configurator.",[28,223],{},[10,225,227],{"id":226},"server-hook","Server Hook",[15,229,230,231,233],{},"Add your custom delivery logic in ",[19,232,25],{},":",[38,235,237],{"className":40,"code":236,"filename":25,"language":42,"meta":43,"style":43},"function Functions.GiveCustomReward(source, reward)\n    if reward.sort == \"pet\" then\n        exports[\"some_petscript\"]:GivePet(source, reward.name, reward.amount)\n        return\n    end\n\n    if reward.sort == \"crate\" then\n        exports[\"some_crate_script\"]:GiveCrate(source, reward.name, reward.amount)\n        return\n    end\nend\n",[19,238,239,270,294,324,329,334,340,359,386,391,396],{"__ignoreMap":43},[47,240,241,245,249,252,254,257,261,264,267],{"class":49,"line":50},[47,242,244],{"class":243},"s7zQu","function",[47,246,248],{"class":247},"s2Zo4"," Functions",[47,250,251],{"class":53},".",[47,253,190],{"class":247},[47,255,256],{"class":63},"(",[47,258,260],{"class":259},"sHdIc","source",[47,262,263],{"class":63},",",[47,265,266],{"class":259}," reward",[47,268,269],{"class":63},")\n",[47,271,272,275,278,281,284,286,288,291],{"class":49,"line":57},[47,273,274],{"class":243},"    if",[47,276,277],{"class":53}," reward.",[47,279,184],{"class":280},"sBMFI",[47,282,283],{"class":63}," ==",[47,285,67],{"class":63},[47,287,90],{"class":70},[47,289,290],{"class":63},"\" ",[47,292,293],{"class":243},"then\n",[47,295,296,299,301,304,306,309,312,315,317,320,322],{"class":49,"line":80},[47,297,298],{"class":53},"        exports[",[47,300,74],{"class":63},[47,302,303],{"class":70},"some_petscript",[47,305,74],{"class":63},[47,307,308],{"class":53},"]:",[47,310,311],{"class":247},"GivePet",[47,313,314],{"class":53},"(source, reward.",[47,316,198],{"class":280},[47,318,319],{"class":53},", reward.",[47,321,208],{"class":280},[47,323,269],{"class":53},[47,325,326],{"class":49,"line":97},[47,327,328],{"class":243},"        return\n",[47,330,331],{"class":49,"line":114},[47,332,333],{"class":243},"    end\n",[47,335,336],{"class":49,"line":128},[47,337,339],{"emptyLinePlaceholder":338},true,"\n",[47,341,342,344,346,348,350,352,355,357],{"class":49,"line":144},[47,343,274],{"class":243},[47,345,277],{"class":53},[47,347,184],{"class":280},[47,349,283],{"class":63},[47,351,67],{"class":63},[47,353,354],{"class":70},"crate",[47,356,290],{"class":63},[47,358,293],{"class":243},[47,360,362,364,366,369,371,373,376,378,380,382,384],{"class":49,"line":361},8,[47,363,298],{"class":53},[47,365,74],{"class":63},[47,367,368],{"class":70},"some_crate_script",[47,370,74],{"class":63},[47,372,308],{"class":53},[47,374,375],{"class":247},"GiveCrate",[47,377,314],{"class":53},[47,379,198],{"class":280},[47,381,319],{"class":53},[47,383,208],{"class":280},[47,385,269],{"class":53},[47,387,389],{"class":49,"line":388},9,[47,390,328],{"class":243},[47,392,394],{"class":49,"line":393},10,[47,395,333],{"class":243},[47,397,399],{"class":49,"line":398},11,[47,400,401],{"class":243},"end\n",[403,404,405],"tip",{},[15,406,407,408,410],{},"Keep custom reward logic server-side. The ",[19,409,260],{}," argument is the player receiving the reward.",[28,412],{},[10,414,416],{"id":415},"config-example","Config Example",[15,418,419,420,422],{},"Create a Battle Pass reward with the same ",[19,421,184],{}," value:",[38,424,426],{"className":40,"code":425,"language":42,"meta":43,"style":43},"{\n    label = \"Premium Pet\",\n    sort = \"pet\",\n    name = \"premium_pet\",\n    amount = 1,\n    img = \"premium_pet.png\"\n}\n",[19,427,428,432,447,461,476,486,499],{"__ignoreMap":43},[47,429,430],{"class":49,"line":50},[47,431,54],{"class":53},[47,433,434,436,438,440,443,445],{"class":49,"line":57},[47,435,60],{"class":53},[47,437,64],{"class":63},[47,439,67],{"class":63},[47,441,442],{"class":70},"Premium Pet",[47,444,74],{"class":63},[47,446,77],{"class":53},[47,448,449,451,453,455,457,459],{"class":49,"line":80},[47,450,83],{"class":53},[47,452,64],{"class":63},[47,454,67],{"class":63},[47,456,90],{"class":70},[47,458,74],{"class":63},[47,460,77],{"class":53},[47,462,463,465,467,469,472,474],{"class":49,"line":97},[47,464,100],{"class":53},[47,466,64],{"class":63},[47,468,67],{"class":63},[47,470,471],{"class":70},"premium_pet",[47,473,74],{"class":63},[47,475,77],{"class":53},[47,477,478,480,482,484],{"class":49,"line":114},[47,479,117],{"class":53},[47,481,64],{"class":63},[47,483,123],{"class":122},[47,485,77],{"class":53},[47,487,488,490,492,494,497],{"class":49,"line":128},[47,489,131],{"class":53},[47,491,64],{"class":63},[47,493,67],{"class":63},[47,495,496],{"class":70},"premium_pet.png",[47,498,141],{"class":63},[47,500,501],{"class":49,"line":144},[47,502,147],{"class":53},[504,505,506],"warning",{},[15,507,508,509,511,512,251],{},"The ",[19,510,184],{}," value in the reward config must match the value you check in ",[19,513,21],{},[515,516,517],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":43,"searchDepth":50,"depth":57,"links":519},[520,521,522,523],{"id":12,"depth":57,"text":13},{"id":32,"depth":57,"text":33},{"id":226,"depth":57,"text":227},{"id":415,"depth":57,"text":416},"md",null,{},"/docs/exclusives/battlepass/custom-rewards",{"title":5,"description":43},{"loc":527},"1.docs/exclusives/2.battlepass/5.custom-rewards","sG6zETopIktSa7cUTVEJ8DAPbUJlQgArVK1ZfdbgekQ",[533,538],{"title":534,"path":535,"stem":536,"description":537,"children":-1},"Jaksam Jobs Creator Quests","/docs/exclusives/battlepass/jobcreator","1.docs/exclusives/2.battlepass/4.jobcreator","This guide explains how to connect Battle Pass V3 quests with item collection using ox_inventory and Jaksam's Jobs Creator.",{"title":539,"path":540,"stem":541,"description":43,"children":-1},"Daily Rewards V3","/docs/exclusives/dailyrewards/dailyrewards","1.docs/exclusives/3.dailyrewards/1.dailyrewards",1780054822524]