Electric Cherry
How to add Electric Cherry to your custom map
Just a heads up, this is a long and tedious process!
Step 1: Exporting the model (Skip if using a different model!)
Sharing the following model would be distributing copyrighted assets which is a crime!
- Download Greyhound and run
Greyhound.exe - Open Settings and ensure the following settings are checked:
In-Game Settings
- ☑️ Load "XModels" from the game
Model Settings
- ☑️ Export images with models
- ☑️ Export all available LODs
- ☑️ Export .XMODEL_BIN
Image Settings
- ☑️ Export format:
TIFF
- Open Black Ops II from Steam and launch Mob of the Dead
- In Greyhound, click
Load Gameand search forp6_zm_vending_electric_cherry - Highlight both the
_onand_offmodels and clickExport Selected
Step 2: Porting the model (Skip if using a different model!)
- From your Greyhound folder, open
exported_files\black_ops_2\xmodels - Copy your
.XMODEL_BIN's toCall of Duty Black Ops III\model_export\electric_cherry\p6_zm_vending_electric_cherry_offandp6_zm_vending_electric_cherry_onrespectively:
Copy your .tiff's in /_images and it's subfolders to Call of Duty Black Ops III\texture_assets\electric_cherry\ p6_zm_vending_electric_cherry_off and p6_zm_vending_electric_cherry_on respectively
- Open Asset Property Editor (APE) and create a new GDT if you don't already have one and save it to
Call of Duty Black Ops III\source_data
Step 3: p6_zm_vending_electric_cherry_off (Skip if using a different model!)
- Create a new asset
- Scroll down to LOD 0 and add your
p6_zm_vending_electric_cherry_off.XMODEL_BINfile - Under
Materialscreate a new Material formtl_p6_zm_al_glass_frosted_clear_centerand set it up like so: - Under
Colorcreate a new image forColor Mapand set theTextureto~-gzombie_vending_electric_cherry_c.tiff - Under
Specular and Glosscreate a new image forGloss Mapand set theTextureto~~-gglass_frosted_panel_spc-r~568cfc3f.tiff - Back to the model, create a new Material for
mtl_p6_zm_vending_electric_cherry_offand set it up like so: - Under
Colorcreate a new image forColor Mapand set theTextureto~-gzombie_vending_electric_cherry_c.tiff - Under
Normalcreate a new image forNormal Mapand set theTexturetozombie_vending_electric_cherry_n.tiff - Back to the model, create a new Material for
zm_al_blood_drips_run_mediumand set it up like so: - Under
Colorcreate a new image forColor Mapand set theTextureto~-gglo_dec_mature_blood_splt_~c028c2d0.tiff - Under
Normalcreate a new image forNormal Mapand set theTexturetoglo_dec_blood_splat_drip_run_medium_n.tiff
| Key | Value |
|---|---|
| Asset Name | p6_zm_vending_electric_cherry_off |
| Asset Type | xmodel |
| GDT File | Your GDT |
| Key | Value |
|---|---|
| Material Type | glass_transparent |
| Surface Type | glass |
| Gloss Range | glass |
| Usage | tools |
| Key | Value |
|---|---|
| Material Type | lit |
| Surface Type | metal |
| Gloss Range | metal |
| Usage | tools |
| Key | Value |
|---|---|
| Material Type | lit_alphatest |
| Surface Type | metal |
| Gloss Range | metal |
| Usage | tools |
Step 4: p6_zm_vending_electric_cherry_on (Skip if using a different model!)
- Create a new asset
- Scroll down to LOD 0 and add your
p6_zm_vending_electric_cherry_on.XMODEL_BINfile - Under
Materialsentermtl_p6_zm_vending_electric_cherry_offin the text box to the right ofmtl_p6_zm_vending_electric_cherry_on
| Key | Value |
|---|---|
| Asset Name | p6_zm_vending_electric_cherry_on |
| Asset Type | xmodel |
| GDT File | Your GDT |
Step 5: Setting up the code
- Download the file
- Save it to:
Call of Duty Black Ops III/map_source/_prefabs/zm/
in either zm_core or your maps folder
Option 1 (Download premade GSC):
- Download
_zm_perk_electric_cherry.gscand save it:
Call of Duty Black Ops III/share/raw/scripts/zm
Option 2 (Create GSC Manually):
- Open
_zm_perk_electric_cherry.gscin:
Call of Duty Black Ops III/share/raw/scripts/zm
- Find the line:
//TODO update these to proper settings
and change the
#define's to:#define ELECTRIC_CHERRY_PERK_COST 2000
#define ELECTRIC_CHERRY_PERK_BOTTLE_WEAPON "zombie_perk_bottle_cherry"
#define ELECTRIC_CHERRY_SHADER "specialty_blue_electric_cherry_zombies"
#define ELECTRIC_CHERRY_MACHINE_DISABLED_MODEL "p6_zm_vending_electric_cherry_off"
#define ELECTRIC_CHERRY_MACHINE_ACTIVE_MODEL "p6_zm_vending_electric_cherry_on"
#define ELECTRIC_CHERRY_RADIANT_MACHINE_NAME "vending_electriccherry"
#define ELECTRIC_CHERRY_MACHINE_LIGHT_FX "electric_cherry_light"
- Find:
function enable_electric_cherry_perk_for_level()
{
}
and replace the entire function with:
function enable_electric_cherry_perk_for_level()
{
zm_perks::register_perk_basic_info( PERK_ELECTRIC_CHERRY, "electric_cherry", ELECTRIC_CHERRY_PERK_COST, "Hold ^3[{+activate}]^7 for Electric Cherry [Cost: &&1]", GetWeapon( ELECTRIC_CHERRY_PERK_BOTTLE_WEAPON ) );
zm_perks::register_perk_precache_func( PERK_ELECTRIC_CHERRY, &electric_cherry_precache );
zm_perks::register_perk_clientfields( PERK_ELECTRIC_CHERRY, &electric_cherry_register_clientfield, &electric_cherry_set_clientfield );
zm_perks::register_perk_machine( PERK_ELECTRIC_CHERRY, &electric_cherry_perk_machine_setup );
zm_perks::register_perk_host_migration_params( PERK_ELECTRIC_CHERRY, ELECTRIC_CHERRY_RADIANT_MACHINE_NAME, ELECTRIC_CHERRY_MACHINE_LIGHT_FX );
zm_perks::register_perk_threads( PERK_ELECTRIC_CHERRY, &electric_cherry_reload_attack , &electric_cherry_perk_lost );
if( IS_TRUE( level.custom_electric_cherry_perk_threads ) )
{
level thread [[ level.custom_electric_cherry_perk_threads ]]();
}
init_electric_cherry();
}
- Find:
function electric_cherry_perk_machine_setup()
{
}
and replace the entire function with:
function electric_cherry_perk_machine_setup( use_trigger, perk_machine, bump_trigger, collision )
{
use_trigger.script_sound = "mus_perks_ec_jingle";
use_trigger.script_string = "electriccherry_perk";
use_trigger.script_label = "mus_perks_ec_sting";
use_trigger.target = "vending_electriccherry";
perk_machine.script_string = "electriccherry_perk";
perk_machine.targetname = "vending_electriccherry";
if ( IsDefined( bump_trigger ) )
{
bump_trigger.script_string = "electriccherry_perk";
}
}
- Save and close the file
Step 6: Loading the perk
- Open your map
.gscfile in your mapsscripts/zmfolder - At the bottom of your perk imports, under
#using scripts\zm\_zm_perk_staminup;
add:
#using scripts\zm\_zm_perk_electric_cherry;
- Open your map
.cscfile in your mapsscripts/zmfolder - Repeat step 4 for your
.csc file - In your maps folder in
Call of Duty Black Ops III/usermaps, open your.zonefile inzone_source, or open it from the Mod Tools Launcher by right clicking your map - Add the following lines:
xmodel,p6_zm_vending_electric_cherry_off
xmodel,p6_zm_vending_electric_cherry_on
scriptparsetree,scripts/zm/_zm_perk_electric_cherry.gsc
scriptparsetree,scripts/zm/_zm_perk_electric_cherry.csc