<commit_before><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"/>
<title>JA++ - Bit-field Calculator</title>
<link href="styles.css" rel="stylesheet" />
<script type="text/javascript" language="javascript">
function hide( id ) {
	document.getElementById( id ).style.display = 'none';
}
function show( id ) {
	document.getElementById( id ).style.display = '';
}
function spoilerhide() {
	for ( i=0; i<document.getElementsByTagName( 'div' ).length; i++ ) {
		if ( document.getElementsByTagName( 'div' )[i].className == 'spoiler' ) {
			document.getElementsByTagName( 'div' )[i].style.color = '#000000';
		}
	}
}
function spoilershow() {
	for ( i=0; i<document.getElementsByTagName( 'div' ).length; i++ ) {
		if ( document.getElementsByTagName( 'div' )[i].className == 'spoiler' ) {
			document.getElementsByTagName( 'div' )[i].style.color = '#FFFFFF';
		}
	}
}
</script>
</head>
<body onload="init_bar();">

<h1>Bit-field Calculator</h1>

<hr />

<div id="pagewrap">
	<p>Many cvars in JA++ use a technique called <a href="https://en.wikipedia.org/wiki/Bit_field">bit-fields</a> to compactly store settings.<br/>
	The down-side to this is it can be difficult or time-consuming changing these seemingly magic values.<br/>
	To combat this, I've developed a calculator of sorts that will be kept up to date with the latest JA++ versions, to do the tedious work for you.</p>
	<p>Hover your mouse over settings to see their description.</p>
	<script type="text/javascript">

	const sv_bitfields = [
		{ ln:"dmflags", sn:"dmflags", desc:"Various settings", ashex:false,
			bitvalues:[
				{ disp:null, def:false, desc:"N/A" },
				{ disp:null, def:false, desc:"N/A" },
				{ disp:null, def:false, desc:"N/A" },
				{ disp:"DF_NO_FALLING", def:false, desc:"No fall damage" },
				{ disp:"DF_FIXED_FOV", def:false, desc:"Force cg_fov 80" },
				{ disp:"DF_NO_FOOTSTEPS", def:false, desc:"No footsteps" },
				{ disp:"DF_NO_DROWN", def:false, desc:"No drowning" }
			]
		},

		{ ln:"g_allowVote", sn:"vote", desc:"Enable these options for /callvote", ashex:false,
			bitvalues:[
				{ disp:"allready", def:true, desc:"Disable voting for allready" },
				{ disp:"capturelimit", def:true, desc:"Disable voting for capturelimit" },
				{ disp:"clientkick", def:true, desc:"Disable voting for clientkick" },
				{ disp:"cointoss", def:true, desc:"Disable voting for cointoss" },
				{ disp:"fraglimit", def:true, desc:"Disable voting for fraglimit" },
				{ disp:"g_gametype", def:true, desc:"Disable voting for g_gametype" },
				{ disp:"japp_instagib", def:true, desc:"Disable voting for japp_instagib" },
				{ disp:"japp_promode", def:true, desc:"Disable voting for japp_promode" },
				{ disp:"japp_shootFromEye", def:true, desc:"Disable voting for japp_shootFromEye" },
				{ disp:"japp_speedCaps", def:true, desc:"Disable voting for japp_speedCaps" },
				{ disp:"japp_suicideDropFlag", def:true, desc:"Disable voting for japp_suicideDropFlag" },
				{ disp:"kick", def:true, desc:"Disable voting for kick" },
				{ disp:"map", def:true, desc:"Disable voting for map" },
				{ disp:"map_restart", def:true, desc:"Disable voting for map_restart" },
				{ disp:"nextmap", def:true, desc:"Disable voting for nextmap" },
				{ disp:"pause", def:true, desc:"Disable voting for pause" },
				{ disp:"shuffle", def:true, desc:"Disable voting for shuffle" },
				{ disp:"timelimit", def:true, desc:"Disable voting for timelimit" },
				{ disp:"warmup", def:true, desc:"Disable voting for warmup" }
			]
		},

		{ ln:"g_privateDuel", sn:"privduel", desc:"Private duel options", ashex:false,
			bitvalues:[
				{ disp:"PRIVDUEL_ALLOW", def:true, desc:"Allow private duels" },
				{ disp:"PRIVDUEL_MULTI", def:true, desc:"Allow multiple duels at once" },
				{ disp:"PRIVDUEL_RESPAWN", def:true, desc:"Respawn players where duel was initiated after it ends" },
				{ disp:"PRIVDUEL_NOSEVER", def:false, desc:"Don't cancel a duel if the combatants get too far away" },
				{ disp:"PRIVDUEL_TEAM", def:true, desc:"Allow duel in team gametypes" },
				{ disp:"PRIVDUEL_WEAP", def:false, desc:"Allow weapon duels" }
			]
		},

		{ ln:"g_forcePowerDisable", sn:"force", desc:"Disable certain force powers", ashex:false,
			bitvalues:[
				{ disp:"FP_HEAL", def:true, desc:"Heal" },
				{ disp:"FP_LEVITATION", def:false, desc:"Jump" },
				{ disp:"FP_SPEED", def:true, desc:"Speed" },
				{ disp:"FP_PUSH", def:true, desc:"Push" },
				{ disp:"FP_PULL", def:true, desc:"Pull" },
				{ disp:"FP_TELEPATHY", def:true, desc:"M<NAME>" },
				{ disp:"FP_GRIP", def:true, desc:"Grip" },
				{ disp:"FP_LIGHTNING", def:true, desc:"Lightning" },
				{ disp:"FP_RAGE", def:true, desc:"Dark Rage" },
				{ disp:"FP_PROTECT", def:true, desc:"Protect" },
				{ disp:"FP_ABSORB", def:true, desc:"Absorb" },
				{ disp:"FP_TEAM_HEAL", def:true, desc:"Team Heal" },
				{ disp:"FP_TEAM_FORCE", def:true, desc:"Team Energize" },
				{ disp:"FP_DRAIN", def:true, desc:"Drain" },
				{ disp:"FP_SEE", def:true, desc:"Sight" },
				{ disp:"FP_SABER_OFFENSE", def:false, desc:"Saber Attack" },
				{ disp:"FP_SABER_DEFENSE", def:false, desc:"Saber Defend" },
				{ disp:"FP_SABERTHROW", def:true, desc:"Saber Throw" }
			]
		},

		{ ln:"g_weaponDisable", sn:"weaps", desc:"Disable certain weapon pickups", ashex:false,
			bitvalues:[
				{ disp:"WP_NONE", def:true, desc:"None" },
				{ disp:"WP_STUN_BATON", def:true, desc:"Stun Baton" },
				{ disp:"WP_MELEE", def:false, desc:"Melee" },
				{ disp:"WP_SABER", def:false, desc:"Lightsaber" },
				{ disp:"WP_BRYAR_PISTOL", def:true, desc:"DL-44 Blaster Pistol" },
				{ disp:"WP_BLASTER", def:true, desc:"E-11 Blaster Rifle" },
				{ disp:"WP_DISRUPTOR", def:true, desc:"Tenloss DXR-6 Disruptor" },
				{ disp:"WP_BOWCASTER", def:true, desc:"Wookiee Bowcaster" },
				{ disp:"WP_REPEATER", def:true, desc:"Heavy Repeater" },
				{ disp:"WP_DEMP2", def:true, desc:"Destructive Electro-magnetic Pulse 2" },
				{ disp:"WP_FLECHETTE", def:true, desc:"Golan Arms FC-1 Flechette Launcher" },
				{ disp:"WP_ROCKET_LAUNCHER", def:true, desc:"Merr-Son PLX-2M Portable Missile Launcher" },
				{ disp:"WP_THERMAL", def:true, desc:"Thermal Detonator" },
				{ disp:"WP_TRIP_MINE", def:true, desc:"Trip Mine" },
				{ disp:"WP_DET_PACK", def:true, desc:"Detonation Pack" },
				{ disp:"WP_CONCUSSION", def:true, desc:"Stouker Concussion Rifle" },
				{ disp:"WP_BRYAR_OLD", def:true, desc:"Bryar Pistol" },
				{ disp:"WP_EMPLACED_GUN", def:false, desc:"Emplaced Gun" },
				{ disp:"WP_TURRET", def:false, desc:"Turret" }
			]
		},

		{ ln:"g_duelWeaponDisable", sn:"duelweaps", desc:"Disable certain weapon pickups in Duel gametypes", ashex:false,
			bitvalues:[
				{ disp:"WP_NONE", def:true, desc:"None" },
				{ disp:"WP_STUN_BATON", def:true, desc:"Stun Baton" },
				{ disp:"WP_MELEE", def:true, desc:"Melee" },
				{ disp:"WP_SABER", def:false, desc:"Lightsaber" },
				{ disp:"WP_BRYAR_PISTOL", def:true, desc:"DL-44 Blaster Pistol" },
				{ disp:"WP_BLASTER", def:true, desc:"E-11 Blaster Rifle" },
				{ disp:"WP_DISRUPTOR", def:true, desc:"Tenloss DXR-6 Disruptor" },
				{ disp:"WP_BOWCASTER", def:true, desc:"Wookiee Bowcaster" },
				{ disp:"WP_REPEATER", def:true, desc:"Heavy Repeater" },
				{ disp:"WP_DEMP2", def:true, desc:"Destructive Electro-magnetic Pulse 2" },
				{ disp:"WP_FLECHETTE", def:true, desc:"Golan Arms FC-1 Flechette Launcher" },
				{ disp:"WP_ROCKET_LAUNCHER", def:true, desc:"Merr-Son PLX-2M Portable Missile Launcher" },
				{ disp:"WP_THERMAL", def:true, desc:"Thermal Detonator" },
				{ disp:"WP_TRIP_MINE", def:true, desc:"Trip Mine" },
				{ disp:"WP_DET_PACK", def:true, desc:"Detonation Pack" },
				{ disp:"WP_CONCUSSION", def:true, desc:"Stouker Concussion Rifle" },
				{ disp:"WP_BRYAR_OLD", def:true, desc:"Bryar Pistol" },
				{ disp:"WP_EMPLACED_GUN", def:true, desc:"Emplaced Gun" },
				{ disp:"WP_TURRET", def:true, desc:"Turret" }
			]
		},

		{ ln:"japp_allowHook", sn:"grapple", desc:"Allow grapple hook in these gametypes", ashex:false,
			bitvalues:[
				{ disp:"GT_FFA", def:true, desc:"Deathmatch" },
				{ disp:"GT_HOLOCRON", def:false, desc:"Holocron Deathmatch" },
				{ disp:"GT_JEDIMASTER", def:false, desc:"Jedi Master" },
				{ disp:"GT_DUEL", def:false, desc:"Duel" },
				{ disp:"GT_POWERDUEL", def:false, desc:"Power Duel" },
				{ disp:"GT_SINGLE_PLAYER", def:false, desc:"Single Player" },
				{ disp:"GT_TEAM", def:false, desc:"Team Deathmatch" },
				{ disp:"GT_SIEGE", def:false, desc:"Siege" },
				{ disp:"GT_CTF", def:false, desc:"Capture The Flag" },
				{ disp:"GT_CTY", def:false, desc:"Capture The Ysalimiri" }
			]
		},

		{ ln:"japp_allowVoiceChat", sn:"voicechat", desc:"Allow voice chat in these gametypes", ashex:false,
			bitvalues:[
				{ disp:"GT_FFA", def:false, desc:"Deathmatch" },
				{ disp:"GT_HOLOCRON", def:false, desc:"Holocron Deathmatch" },
				{ disp:"GT_JEDIMASTER", def:false, desc:"Jedi Master" },
				{ disp:"GT_DUEL", def:false, desc:"Duel" },
				{ disp:"GT_POWERDUEL", def:false, desc:"Power Duel" },
				{ disp:"GT_SINGLE_PLAYER", def:false, desc:"Single Player" },
				{ disp:"GT_TEAM", def:true, desc:"Team Deathmatch" },
				{ disp:"GT_SIEGE", def:true, desc:"Siege" },
				{ disp:"GT_CTF", def:true, desc:"Capture The Flag" },
				{ disp:"GT_CTY", def:true, desc:"Capture The Ysalimiri" }
			]
		},

		{ ln:"japp_spawnWeaps", sn:"spawnweaps", desc:"Spawn with these weapons", ashex:false,
			bitvalues:[
				{ disp:"WP_NONE", def:false, desc:"None" },
				{ disp:"WP_STUN_BATON", def:false, desc:"Stun Baton" },
				{ disp:"WP_MELEE", def:true, desc:"Melee" },
				{ disp:"WP_SABER", def:true, desc:"Lightsaber" },
				{ disp:"WP_BRYAR_PISTOL", def:true, desc:"DL-44 Blaster Pistol" },
				{ disp:"WP_BLASTER", def:false, desc:"E-11 Blaster Rifle" },
				{ disp:"WP_DISRUPTOR", def:false, desc:"Tenloss DXR-6 Disruptor" },
				{ disp:"WP_BOWCASTER", def:false, desc:"Wookiee Bowcaster" },
				{ disp:"WP_REPEATER", def:false, desc:"Heavy Repeater" },
				{ disp:"WP_DEMP2", def:false, desc:"Destructive Electro-magnetic Pulse 2" },<commit_msg>Added japp_saberTweaks to bit-value calculator<commit_after><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"/>
<title>JA++ - Bit-field Calculator</title>
<link href="styles.css" rel="stylesheet" />
<script type="text/javascript" language="javascript">
function hide( id ) {
	document.getElementById( id ).style.display = 'none';
}
function show( id ) {
	document.getElementById( id ).style.display = '';
}
function spoilerhide() {
	for ( i=0; i<document.getElementsByTagName( 'div' ).length; i++ ) {
		if ( document.getElementsByTagName( 'div' )[i].className == 'spoiler' ) {
			document.getElementsByTagName( 'div' )[i].style.color = '#000000';
		}
	}
}
function spoilershow() {
	for ( i=0; i<document.getElementsByTagName( 'div' ).length; i++ ) {
		if ( document.getElementsByTagName( 'div' )[i].className == 'spoiler' ) {
			document.getElementsByTagName( 'div' )[i].style.color = '#FFFFFF';
		}
	}
}
</script>
</head>
<body onload="init_bar();">

<h1>Bit-field Calculator</h1>

<hr />

<div id="pagewrap">
	<p>Many cvars in JA++ use a technique called <a href="https://en.wikipedia.org/wiki/Bit_field">bit-fields</a> to compactly store settings.<br/>
	The down-side to this is it can be difficult or time-consuming changing these seemingly magic values.<br/>
	To combat this, I've developed a calculator of sorts that will be kept up to date with the latest JA++ versions, to do the tedious work for you.</p>
	<p>Hover your mouse over settings to see their description.</p>
	<script type="text/javascript">

	const sv_bitfields = [
		{ ln:"dmflags", sn:"dmflags", desc:"Various settings", ashex:false,
			bitvalues:[
				{ disp:null, def:false, desc:"N/A" },
				{ disp:null, def:false, desc:"N/A" },
				{ disp:null, def:false, desc:"N/A" },
				{ disp:"DF_NO_FALLING", def:false, desc:"No fall damage" },
				{ disp:"DF_FIXED_FOV", def:false, desc:"Force cg_fov 80" },
				{ disp:"DF_NO_FOOTSTEPS", def:false, desc:"No footsteps" },
				{ disp:"DF_NO_DROWN", def:false, desc:"No drowning" }
			]
		},

		{ ln:"g_allowVote", sn:"vote", desc:"Enable these options for /callvote", ashex:false,
			bitvalues:[
				{ disp:"allready", def:true, desc:"Disable voting for allready" },
				{ disp:"capturelimit", def:true, desc:"Disable voting for capturelimit" },
				{ disp:"clientkick", def:true, desc:"Disable voting for clientkick" },
				{ disp:"cointoss", def:true, desc:"Disable voting for cointoss" },
				{ disp:"fraglimit", def:true, desc:"Disable voting for fraglimit" },
				{ disp:"g_gametype", def:true, desc:"Disable voting for g_gametype" },
				{ disp:"japp_instagib", def:true, desc:"Disable voting for japp_instagib" },
				{ disp:"japp_promode", def:true, desc:"Disable voting for japp_promode" },
				{ disp:"japp_shootFromEye", def:true, desc:"Disable voting for japp_shootFromEye" },
				{ disp:"japp_speedCaps", def:true, desc:"Disable voting for japp_speedCaps" },
				{ disp:"japp_suicideDropFlag", def:true, desc:"Disable voting for japp_suicideDropFlag" },
				{ disp:"kick", def:true, desc:"Disable voting for kick" },
				{ disp:"map", def:true, desc:"Disable voting for map" },
				{ disp:"map_restart", def:true, desc:"Disable voting for map_restart" },
				{ disp:"nextmap", def:true, desc:"Disable voting for nextmap" },
				{ disp:"pause", def:true, desc:"Disable voting for pause" },
				{ disp:"shuffle", def:true, desc:"Disable voting for shuffle" },
				{ disp:"timelimit", def:true, desc:"Disable voting for timelimit" },
				{ disp:"warmup", def:true, desc:"Disable voting for warmup" }
			]
		},

		{ ln:"g_privateDuel", sn:"privduel", desc:"Private duel options", ashex:false,
			bitvalues:[
				{ disp:"PRIVDUEL_ALLOW", def:true, desc:"Allow private duels" },
				{ disp:"PRIVDUEL_MULTI", def:true, desc:"Allow multiple duels at once" },
				{ disp:"PRIVDUEL_RESPAWN", def:true, desc:"Respawn players where duel was initiated after it ends" },
				{ disp:"PRIVDUEL_NOSEVER", def:false, desc:"Don't cancel a duel if the combatants get too far away" },
				{ disp:"PRIVDUEL_TEAM", def:true, desc:"Allow duel in team gametypes" },
				{ disp:"PRIVDUEL_WEAP", def:false, desc:"Allow weapon duels" }
			]
		},

		{ ln:"g_forcePowerDisable", sn:"force", desc:"Disable certain force powers", ashex:false,
			bitvalues:[
				{ disp:"FP_HEAL", def:true, desc:"Heal" },
				{ disp:"FP_LEVITATION", def:false, desc:"Jump" },
				{ disp:"FP_SPEED", def:true, desc:"Speed" },
				{ disp:"FP_PUSH", def:true, desc:"Push" },
				{ disp:"FP_PULL", def:true, desc:"Pull" },
				{ disp:"FP_TELEPATHY", def:true, desc:"Mind Trick" },
				{ disp:"FP_GRIP", def:true, desc:"Grip" },
				{ disp:"FP_LIGHTNING", def:true, desc:"Lightning" },
				{ disp:"FP_RAGE", def:true, desc:"Dark Rage" },
				{ disp:"FP_PROTECT", def:true, desc:"Protect" },
				{ disp:"FP_ABSORB", def:true, desc:"Absorb" },
				{ disp:"FP_TEAM_HEAL", def:true, desc:"Team Heal" },
				{ disp:"FP_TEAM_FORCE", def:true, desc:"Team Energize" },
				{ disp:"FP_DRAIN", def:true, desc:"Drain" },
				{ disp:"FP_SEE", def:true, desc:"Sight" },
				{ disp:"FP_SABER_OFFENSE", def:false, desc:"Saber Attack" },
				{ disp:"FP_SABER_DEFENSE", def:false, desc:"Saber Defend" },
				{ disp:"FP_SABERTHROW", def:true, desc:"Saber Throw" }
			]
		},

		{ ln:"g_weaponDisable", sn:"weaps", desc:"Disable certain weapon pickups", ashex:false,
			bitvalues:[
				{ disp:"WP_NONE", def:true, desc:"None" },
				{ disp:"WP_STUN_BATON", def:true, desc:"Stun Baton" },
				{ disp:"WP_MELEE", def:false, desc:"Melee" },
				{ disp:"WP_SABER", def:false, desc:"Lightsaber" },
				{ disp:"WP_BRYAR_PISTOL", def:true, desc:"DL-44 Blaster Pistol" },
				{ disp:"WP_BLASTER", def:true, desc:"E-11 Blaster Rifle" },
				{ disp:"WP_DISRUPTOR", def:true, desc:"Tenloss DXR-6 Disruptor" },
				{ disp:"WP_BOWCASTER", def:true, desc:"Wookiee Bowcaster" },
				{ disp:"WP_REPEATER", def:true, desc:"Heavy Repeater" },
				{ disp:"WP_DEMP2", def:true, desc:"Destructive Electro-magnetic Pulse 2" },
				{ disp:"WP_FLECHETTE", def:true, desc:"Golan Arms FC-1 Flechette Launcher" },
				{ disp:"WP_ROCKET_LAUNCHER", def:true, desc:"Merr-Son PLX-2M Portable Missile Launcher" },
				{ disp:"WP_THERMAL", def:true, desc:"Thermal Detonator" },
				{ disp:"WP_TRIP_MINE", def:true, desc:"Trip Mine" },
				{ disp:"WP_DET_PACK", def:true, desc:"Detonation Pack" },
				{ disp:"WP_CONCUSSION", def:true, desc:"Stouker Concussion Rifle" },
				{ disp:"WP_BRYAR_OLD", def:true, desc:"Bryar Pistol" },
				{ disp:"WP_EMPLACED_GUN", def:false, desc:"Emplaced Gun" },
				{ disp:"WP_TURRET", def:false, desc:"Turret" }
			]
		},

		{ ln:"g_duelWeaponDisable", sn:"duelweaps", desc:"Disable certain weapon pickups in Duel gametypes", ashex:false,
			bitvalues:[
				{ disp:"WP_NONE", def:true, desc:"None" },
				{ disp:"WP_STUN_BATON", def:true, desc:"Stun Baton" },
				{ disp:"WP_MELEE", def:true, desc:"Melee" },
				{ disp:"WP_SABER", def:false, desc:"Lightsaber" },
				{ disp:"WP_BRYAR_PISTOL", def:true, desc:"DL-44 Blaster Pistol" },
				{ disp:"WP_BLASTER", def:true, desc:"E-11 Blaster Rifle" },
				{ disp:"WP_DISRUPTOR", def:true, desc:"Tenloss DXR-6 Disruptor" },
				{ disp:"WP_BOWCASTER", def:true, desc:"Wookiee Bowcaster" },
				{ disp:"WP_REPEATER", def:true, desc:"Heavy Repeater" },
				{ disp:"WP_DEMP2", def:true, desc:"Destructive Electro-magnetic Pulse 2" },
				{ disp:"WP_FLECHETTE", def:true, desc:"Golan Arms FC-1 Flechette Launcher" },
				{ disp:"WP_ROCKET_LAUNCHER", def:true, desc:"Merr-Son PLX-2M Portable Missile Launcher" },
				{ disp:"WP_THERMAL", def:true, desc:"Thermal Detonator" },
				{ disp:"WP_TRIP_MINE", def:true, desc:"Trip Mine" },
				{ disp:"WP_DET_PACK", def:true, desc:"Detonation Pack" },
				{ disp:"WP_CONCUSSION", def:true, desc:"Stouker Concussion Rifle" },
				{ disp:"WP_BRYAR_OLD", def:true, desc:"Bryar Pistol" },
				{ disp:"WP_EMPLACED_GUN", def:true, desc:"Emplaced Gun" },
				{ disp:"WP_TURRET", def:true, desc:"Turret" }
			]
		},

		{ ln:"japp_allowHook", sn:"grapple", desc:"Allow grapple hook in these gametypes", ashex:false,
			bitvalues:[
				{ disp:"GT_FFA", def:true, desc:"Deathmatch" },
				{ disp:"GT_HOLOCRON", def:false, desc:"Holocron Deathmatch" },
				{ disp:"GT_JEDIMASTER", def:false, desc:"Jedi Master" },
				{ disp:"GT_DUEL", def:false, desc:"Duel" },
				{ disp:"GT_POWERDUEL", def:false, desc:"Power Duel" },
				{ disp:"GT_SINGLE_PLAYER", def:false, desc:"Single Player" },
				{ disp:"GT_TEAM", def:false, desc:"Team Deathmatch" },
				{ disp:"GT_SIEGE", def:false, desc:"Siege" },
				{ disp:"GT_CTF", def:false, desc:"Capture The Flag" },
				{ disp:"GT_CTY", def:false, desc:"Capture The Ysalimiri" }
			]
		},

		{ ln:"japp_allowVoiceChat", sn:"voicechat", desc:"Allow voice chat in these gametypes", ashex:false,
			bitvalues:[
				{ disp:"GT_FFA", def:false, desc:"Deathmatch" },
				{ disp:"GT_HOLOCRON", def:false, desc:"Holocron Deathmatch" },
				{ disp:"GT_JEDIMASTER", def:false, desc:"Jedi Master" },
				{ disp:"GT_DUEL", def:false, desc:"Duel" },
				{ disp:"GT_POWERDUEL", def:false, desc:"Power Duel" },
				{ disp:"GT_SINGLE_PLAYER", def:false, desc:"Single Player" },
				{ disp:"GT_TEAM", def:true, desc:"Team Deathmatch" },
				{ disp:"GT_SIEGE", def:true, desc:"Siege" },
				{ disp:"GT_CTF", def:true, desc:"Capture The Flag" },
				{ disp:"GT_CTY", def:true, desc:"Capture The Ysalimiri" }
			]
		},

		{ ln:"japp_saberTweaks", sn:"sabertweak", desc:"Saber tweaks", ashex:false,
			bitvalues:[
				{ disp:"SABERTWEAK_INTERPOLATE", def:false, desc:"use SP style interpolation, also fix various small issues" },
				{ disp:"SABERTWEAK_PROLONGDAMAGE", def:false, desc:"allow damaging in wind-up and return animations" },
				{ disp:"SABERTWEAK_POSDEFLECTION", def:false, desc:"calculate deflection based on position rather than animation" },
				{ disp:"SABERTWEAK_SPECIALMOVEDMG", def:false, desc:"tweak damages for special moves" },
				{ disp:"SABERTWEAK_TRACESIZE", def:false, desc:"use SP saber trace size or based off radius defined in .sab file" },
				{ disp:"SABERTWEAK_REDUCEBLOCKS", def:false, desc:"reduce chance of blocking based on saber stance" },
				{ disp:"SABERTWEAK_TWOBLADEDEFLECTFIX", def:false, desc:"fix deflection bug when toggling second saber" },
				{ disp:"SABERTWEAK_NERFDMG", def:false, desc:"nerf moves like roll-stab" },
				{ disp:"SABERTWEAK_NOTLOCATIONBASED", def:false, desc:"never use location based damage for sabers" }
			]
		},

		{ ln:"japp_spawnWeaps", sn:"spawnweaps", desc:"Spawn with these weapons", ashex:false,
			bitvalues:[
				{ disp:"WP_NONE", def:false, desc:"None" },
				{ disp:"WP_STUN_BATON", def:false, desc:"Stun Baton" },
				{ disp:"WP_MELEE", def:true, desc:"Melee" },
				{ disp:"WP_SABER", def:true, desc:"Lightsaber" },
				{ disp:"WP_BRYAR_PISTOL", def:true, desc:"DL-44 Blaster Pistol" },
				{ disp:"WP_BLASTER", def:false, desc:"E-11 Blaster Rifle" },
				{ disp:"WP_DISRUPTOR", def:false, desc:"Tenloss DXR-6 Disruptor" },
				{ disp:"WP_BOWCASTER", def:false, desc:"Wookiee Bowcaster" },
				{ disp:"WP_REPEATER", def:false, desc:"Heavy Repeater" },
				{ disp:"WP_DEMP2", def:false, desc:"Destructive Electro-magnetic Pulse 2" },
{'fraction_non_alphanumeric': 0.18129146808709468, 'fraction_numerical': 0.004392112886646108, 'mean_word_length': 4.876716090060406, 'pattern_counts': {'":': 0, '<': 56, '<?xml version=': 0, '>': 52, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5766213', 'n_tokens_mistral': 8967, 'n_tokens_neox': 7848, 'n_words': 1615}