3 DivisionsPitcher OnlyPositional Player OnlyPitcher/Positional Player Combined
Date :
Wednesday, July 16th
Price:
Pitcher Only - $150Positional Player Only - $175Pitcher/Positional Player Combined - $199
Firecracker Sports will be hosting a College Showcase Camp at Joe Bruno Stadium, home of the Hudson Valley Community College Vikings. This camp is available to all prospective baseball players, regardless of whether you are participating in the tournament or a local program. This event is also a qualifying event for our pinnacle showcase of the summer, Fire55.
All players will receive a pro style workout and a statistical data driven evaluation performed by college and professional coaches. These evaluations will be made available online and distributed to our college scouting and contact database. We hire college and pro coaches to be on the field instructing but also providing evaluations on each player so we guarantee 25+ coaches at our events.
Rain date/inclement weather options: TBA
Who: 2026-2028 Graduates. (JUCO, 2025 and 2029 Graduates must inquire before registering)
What to Wear: White baseball pants, your summer travel team hat and cleats. (A number on their t-shirt will identify players). Catchers are to provide their own gear.
Reporting Time: Please report at 530PM at the entrance of the Joe Bruno Stadium to begin your check-in process.
Cost to Player: All participants have a registration fee based on their position and/or multiple positions as well. $150 for pitchers only and $175 for position players only. There is a $199.00 fee if you want to work out as a positional player and pitcher as well. There are multi-event discounts available. We have sold out ever showcase camp over our 16 years of runnings events with over 2500+ players attending. Our events in Old Orchard Beach, Maine; Providence, Rhode Island; Saratoga, New York and Westchester, New York were a big hit as we hosted 150+ college and professional coaches over the past year.
Is there a list of recommended hotels for this event?
That’s a great question! Yes please check out “Hotels” on our home page or at the very top of this page with the menu section. There is a list of events we are running in 2024 that come with Group Blocks along with Individual reservations requests through our in-house housing service, part of our first class customer service you can get no where else.
What is your refund/weather cancellation policy?
Unfortunately weather or “Act of God” issues can be a factor in running quality baseball events. Please see our policies below.
Rain/Bad Weather: Alternative sites are always an option indoors. If not, full credit towards a future 2025/2026 event.
Injury (with proper medical documentation): Full credit towards a future 2025/2026 event.
No-show and/or no communication about absence = No Refund
Registration
College Coaches Attending
Stetson University
Wright State University
University of Albany
Castleton University Hudson Valley Community College Southern Connecticut State University Assumption University Rensselaer Polytechnic Institute Le Moyne College
University of Mount St. Vincent Mount Saint Mary's College
`);printWindow.document.close();
});
/*
function gpe_get_schedules_list() {
const event_id = '39846';
let division_filter_drop = $("#division_filter_drop").val();
let pool_filter_drop = $("#pool_filter_drop").val();
let date_filter_drop = $("#date_filter_drop").val();// Show processing indicator (manually trigger it)
table.destroy(); // Destroy old DataTable before making new AJAX call
$("#schedules_table tbody").html('Loading...'); // Temporary loader row$.ajax({
url: gpe.ajax_url,
type: 'post',
data: {
action: 'gpe_ajax',
type: 'gpe_get_schedules_list',
event_id: event_id,
division_filter_drop: division_filter_drop,
pool_filter_drop: pool_filter_drop,
date_filter_drop: date_filter_drop
},
success: function (response) {
// Clear the table body and add new content
$("#schedules_table tbody").empty().html(response.data.html);// Reinitialize DataTable with processing enabled
table = $("#schedules_table").DataTable({
processing: true,
serverSide: false, // Keep it false unless loading data dynamically
searching: true,
paging: true,
autoWidth: false
});
}
});
}
function gpe_get_standing_list() {
const event_id = '39846';
let division_filter_drop = $("#division_filter_drop_for_standing").val();
let pool_filter_drop = $("#pool_filter_drop_for_standing").val();
// Show processing indicator (manually trigger it)
standings_table.destroy(); // Destroy old DataTable before making new AJAX call
$("#standings_table tbody").html('Loading...'); // Temporary loader row
$.ajax({
url: gpe.ajax_url,
type: 'post',
data: {
action: 'gpe_ajax',
type: 'gpe_get_standing_list',
event_id: event_id,
division_filter_drop: division_filter_drop,
pool_filter_drop: pool_filter_drop
},
success: function (response) {
// Clear the table body and add new content
$("#standings_table tbody").empty().html(response.data.html);
// Reinitialize DataTable with processing enabled
standings_table = $("#standings_table").DataTable({
processing: true,
serverSide: false, // Keep it false unless loading data dynamically
searching: true,
paging: false
});
}
});
}*/
$('#shareDropdown').change(function(){
var selectedOption = $(this).val();
if (selectedOption === "copy") {
var pageLink = window.location.href;
var tempInput = $("");
$("body").append(tempInput);
tempInput.val(pageLink).select();
document.execCommand("copy");
tempInput.remove();
Swal.fire({
title:"Success",
text:"Copied to clipboard!",
icon:'success'
});
// Reset dropdown selection
$(this).prop('selectedIndex', 0);
}
});
});
let isSchedulesTableInitialized = false;function gpeCustomeTabsnew(evt, cityName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("gpe_tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("gpe_tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" gpe_active", "");
}
document.getElementById(cityName).style.display = "block";
evt.currentTarget.className += " gpe_active";if (cityName === "schedules_and_standings") {
// ✅ Prevent reinitializing the DataTable
if (!isSchedulesTableInitialized) {
// Only call once
window.gpe_get_schedules_list();
window.gpe_get_standing_list();
isSchedulesTableInitialized = true;
}
}
}function gpeCustomeTabs(evt, cityName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("gpe_tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("gpe_tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" gpe_active", "");
}
document.getElementById(cityName).style.display = "block";
evt.currentTarget.className += " gpe_active";
// Redraw connectors when Bracket tab is activated
if (cityName === "brackets"){
//alert("Bracket");
loadSavedBracket();
}
if (cityName === "brackets" && window.globalSerialMap) {
// Wait until the browser has painted the visible DOM
//requestAnimationFrame(() => {
//setTimeout(() => {
//waitForLayoutAndDraw(window.globalSerialMap, 20);
waitForLayoutAndDrawStable(window.globalSerialMap, 20);
//}, 100);
//});
}
}// Get the element with id="defaultOpen" and click on it
document.getElementById("defaultOpen").click();
var acc = document.getElementsByClassName("gpe_accordion");
var i;
for (i = 0; i < acc.length; i++) {
acc[i].addEventListener("click", function() {
this.classList.toggle("active");
var panel = this.nextElementSibling;
if (panel.style.maxHeight) {
panel.style.maxHeight = null;
} else {
panel.style.maxHeight = panel.scrollHeight + "px";
}
});
}var latitude = document.getElementById("latitude").value;
var longitude = document.getElementById("longitude").value;var iframe = document.createElement("iframe");
iframe.src = "https://www.google.com/maps/embed?pb=!1m28!1m12!1m3!1d19797.686238814687!2d-71.3765509!3d41.8633795!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!4m13!3e6!4m5!1s0x89e45a80fc2b13ab%3A0x8f62f2e279889968!2sCurrent%20Location!3m2!1d" + latitude + "!2d" + longitude + "!4m5!1s0x89e45a7a2b41f7f3%3A0x6cb46461e8d0c1b4!2s" + latitude + "%2C" + longitude + "!3m2!1d" + latitude + "!2d" + longitude + "!5e0!3m2!1sen!2sus!4v1644233201036!5m2!1sen!2sus";
iframe.width = "528";
iframe.height = "295";
iframe.style.border = "0";
iframe.allowfullscreen = true;var mapContainer = document.getElementById("mapContainer");
mapContainer.innerHTML = "";
mapContainer.appendChild(iframe);
function getPoolsByDivision(divisionId) {
return $.ajax({
url: gpe.ajax_url,
method: "POST",
dataType: "json",
data: {
action: "gpe_ajax",
type: "get_pools_save",
division_id: divisionId
}
});
}function loadSavedBracket() {
// Get the division ID from the division select dropdown
const divisionId = $("#division_select").val();
// Get the current event ID dynamically from PHP
const eventId = '39846';// If division ID is not selected, exit early
if (!divisionId) return;// Perform both AJAX requests in parallel
$.when(
$.ajax({
url: gpe.ajax_url, // URL for the AJAX request
type: "POST", // HTTP method
dataType: "json", // Expected response type
data: {
action: "gpe_ajax", // WordPress action hook for AJAX
type: "get_saved_bracket", // Custom action to get saved bracket data
event_id: eventId, // The current event ID
division_id: divisionId // The selected division ID
}
}),
getPoolsByDivision(divisionId) // Function to get pools for the selected division
).done(function (bracketRes, poolsRes) {
// Extract bracket data from the first response (bracketRes)
const bracketData = bracketRes[0]?.data?.bracket_data || [];
// Prepare a map of pool ID to pool title
const poolMap = {};
poolsRes[0]?.data?.forEach(pool => {
poolMap[pool.id] = pool.title;
});// Call renderSavedBracket function to render the bracket
renderSavedBracket(bracketData, poolMap);
}).fail(function () {
// In case of failure, show an error message in the bracket container
$("#bracket").html("
Error loading bracket.
");
});
}
function renderSavedBracket(bracketData, poolMap) {
let bracketWrapper = $(".bracket_wrapper");
if (bracketWrapper.length === 0) {
bracketWrapper = $("
").addClass("bracket_wrapper");
// Append it to the main container if it's missing
$("#bracket").replaceWith(bracketWrapper);
} else {
bracketWrapper.empty(); // Clear existing content if already present
}
let bracketDiv = $("
Bracket not available, please select a different division from the drop down menu
`);
return;
}
let groups = {};
let serialMap = {};
let matchCounter = 1;
bracketData.forEach(match => {
if (match.is_important === "1") {
if (!groups[match.group_number]) groups[match.group_number] = {};
if (!groups[match.group_number][match.column_number]) groups[match.group_number][match.column_number] = [];
groups[match.group_number][match.column_number].push(match);
}
});
const sortedGroups = Object.keys(groups).sort();
const mainGroup = sortedGroups[0];
let groupScrollWrapper = $("
").addClass("group-scroll-wrapper");
//window.teamSeedMap = window.teamSeedMap || {};
for (let group of sortedGroups) {
let teamSeedMap = {};
let groupSerialCounter = 1;
let groupDiv = $("
").addClass("group").attr("data-group", group);
let columnsContainer = $("
").addClass("columns-container");
let groupMatchesArray = Object.values(groups[group]).flat();
let groupLabel = groupMatchesArray[0]?.group_label ?? `Group ${group}`;
let labelDiv = $("
")
.addClass("match")
.attr("id", matchId)
.attr("data-match-index", match.name);let score1 = match.team1_score ?? "-";
let score2 = match.team2_score ?? "-";
// Seed cache to store first valid seed for each team
//window.teamSeedMap = window.teamSeedMap || {};// Inside your rendering function (e.g. inside a loop for each match)
if (match.team_id1 && !teamSeedMap[match.team_id1] && match.seed1 && match.seed1 !== "0") {
window.teamSeedMap[match.team_id1] = match.seed1;
}
if (match.team_id2 && !teamSeedMap[match.team_id2] && match.seed2 && match.seed2 !== "0") {
teamSeedMap[match.team_id2] = match.seed2;
}// Use stored seed if available; fallback to current if it's valid (not "0")
let seed1 = "";
if (match.team_id1) {
const storedSeed1 = teamSeedMap[match.team_id1];
seed1 = storedSeed1 ? `(${storedSeed1}) ` : (match.seed1 && match.seed1 !== "0" ? `(${match.seed1}) ` : "");
}let seed2 = "";
if (match.team_id2) {
const storedSeed2 = teamSeedMap[match.team_id2];
seed2 = storedSeed2 ? `(${storedSeed2}) ` : (match.seed2 && match.seed2 !== "0" ? `(${match.seed2}) ` : "");
}let team1 = match.team_name1 ?? "Team 1";
let team2 = match.team_name2 ?? "Team 2";// Combine seed and name for display
let displayTeam1 = `${seed1}${team1}`;
let displayTeam2 = `${seed2}${team2}`;let startTime = formatStartDateTime(match.start_date, match.start_time);
let location = match.location || "";matchDiv.html(`
${match.name}
${startTime}
${location}
${displayTeam1}${score1}
${displayTeam2}${score2}
`);const matchContainer = $("
").addClass("match-container").css("margin-bottom", "20px");
matchContainer.append(matchDiv);match.serial = serial;
if (!groupMatches[match.column_number]) groupMatches[match.column_number] = [];
groupMatches[match.column_number].push(match);serialMap[`${group}-${serial}`] = {
...match,
group,
column: match.column_number,
serial
};if (i === 0) roundDiv1.append(matchContainer);
else if (i >= 1 && i <= 4) roundDiv2.append(matchContainer);
else if (i === 5 || i === 6) roundDiv3.append(matchContainer);
else if (i === 7) roundDiv4.append(matchContainer);
});columnsContainer.append(roundDiv1);
columnsContainer.append($("
").addClass("round").attr("data-column", columns[0]);
let roundDiv2 = $("
").addClass("round").attr("data-column", columns[1]);
let roundDiv3 = $("
").addClass("round").attr("data-column", columns[2]);
displayOrder.forEach((match, i) => {
const serial = groupSerialCounter++;
const matchId = `match-serial-${group}-${serial}`;
let matchDiv = $("
")
.addClass("match")
.attr("id", matchId)
.attr("data-match-index", match.name);let score1 = match.team1_score ?? "-";
let score2 = match.team2_score ?? "-";
// Seed cache to store first valid seed for each team
//window.teamSeedMap = window.teamSeedMap || {};// Inside your rendering function (e.g. inside a loop for each match)
if (match.team_id1 && !teamSeedMap[match.team_id1] && match.seed1 && match.seed1 !== "0") {
teamSeedMap[match.team_id1] = match.seed1;
}
if (match.team_id2 && !teamSeedMap[match.team_id2] && match.seed2 && match.seed2 !== "0") {
teamSeedMap[match.team_id2] = match.seed2;
}// Use stored seed if available; fallback to current if it's valid (not "0")
let seed1 = "";
if (match.team_id1) {
const storedSeed1 = teamSeedMap[match.team_id1];
seed1 = storedSeed1 ? `(${storedSeed1}) ` : (match.seed1 && match.seed1 !== "0" ? `(${match.seed1}) ` : "");
}let seed2 = "";
if (match.team_id2) {
const storedSeed2 = teamSeedMap[match.team_id2];
seed2 = storedSeed2 ? `(${storedSeed2}) ` : (match.seed2 && match.seed2 !== "0" ? `(${match.seed2}) ` : "");
}let team1 = match.team_name1 ?? "Team 1";
let team2 = match.team_name2 ?? "Team 2";// Combine seed and name for display
let displayTeam1 = `${seed1}${team1}`;
let displayTeam2 = `${seed2}${team2}`;let startTime = formatStartDateTime(match.start_date, match.start_time);
let location = match.location || "";matchDiv.html(`
${match.name}
${startTime}
${location}
${displayTeam1}${score1}
${displayTeam2}${score2}
`);
const matchContainer = $("
").addClass("match-container");
matchContainer.append(matchDiv);match.serial = serial;
serialMap[`${group}-${serial}`] = {
...match,
group,
column: match.column_number,
serial
};if (i === 0) roundDiv1.append(matchContainer);
else if (i === 1 || i === 2) roundDiv2.append(matchContainer);
else if (i === 3) roundDiv3.append(matchContainer);
});columnsContainer.append(roundDiv1);
columnsContainer.append($("