top of page
IMG_7344.jpg

FACILITY RENTAL 

HOST THE ULTIMATE PRIVATE BASH!

Lock the doors and let the fun begin! Treat your child to a private party where the only guests on the list are your friends and family.

From DIY freedom to full-service luxury - pick the private rental that fits your vision.

Choose Your Rental Style

Facility Rental - Your Way

2 Hours of FULL Facility Rental!

Perfect for the visionary who wants to customize every detail. We provide the space, your bring the magic

$1,195

  • 2 hours of FULL Facility Rental

  • 80 total capacity (MAX) 

  • Access to the ENTIRE FACILITY (Closed to public)

  • We provide the space, and you party

  • Happy birthday song celebration

  • Up to TWO party Host dedicated to your event

  • 1 Free Return pass for the celebrant​​

  • Freedom to bring your own food, drinks and decor ations

Blissful Lux Premium

2 Hours of FULL Facility Rental!

Perfect for busy parent who want to show up and celebrate. We handle setup & cleanup - your only job? Have Fun!

$2,500

20 kids Included - $29.99/extra kid (up to 40) - 40 adults MAX

  • The Party duration is 2 hours.

  • 20 Kids including celebrant

  • Adult guests are free. 40 Adults Max 

  • $29.99 per additional kid up to 40 kids

  • 1 Free return pass ALL Day for birthday celebrant

  • Dedicated party host

  • Happy birthday song celebration

  • Dedicated party host

  • 3 X-Large Pizzas: Cheese or pepperoni

  • 1 small bottle of water per kid

  • 1 Juice box per kid

  • FREE cake stand and cupcake stand

  • Themed Balloon Centerpieces (three colors, matching the backdrop) 

  • Themed Customizable balloon Arch/Garland

  • Themed Backdrop – Theme of Choice

  • Themed two color balloon towers

  • Themed tablecloth, themed napkins, themed plates and cups

  • Treat Wall: (Treats are NOT provided)*

  • Play Bliss Special—Dance Party Event

  • Special throne chair for the celebrant

  • Marquee number (1 —> 10)

  • 80 total capacity (MAX)

To maintain our commitment to community access during peak times, private facility rentals are available exclusively during off-peak hours. We offer dedicated 2- to 3-hour windows, ensuring your group enjoys total privacy and an uninterrupted experience.

Any Celebration, Any Occasion

Play Bliss Facility can also be rental for any kind of celebration for children

Birthday Party

Where yearly milestone is celebrated and Cherished

Kids Graduation Party 

A special day for your little graduate !

Baby Shower

Big tummy and bundle of joy expectation!

meet & Greet

Play dates with parents and kids !

Gender Reveal

Boy or Girl ?  moment to unveil the joy!

Surprise Event

get ready for the unexpected!

Ready to Claim the Castle?

Dates for private rentals at Play Bliss fill up fast! Give your child the gift of a private playground and yourself the gift of a stress-free day

Frequently asked questions

Contact Information

Phone

(832) 451-6022

Play Bliss Indoor Playground

2035 FM 359 Suite C

Richmond, TX 77406

Mon - Thurs

10:00 am – 7:00 pm

Friday - Sat.

9:00 am – 8:00 pm

​Sunday

10:00 am – 6:00 pm

  • Facebook
  • Instagram
  • TikTok
bottom of page
/** * Aluvii Conversion Tracking Script * Handles cross-domain tracking between landing pages and store domains */ (function() { 'use strict'; // Configuration const CONFIG = { tidParam: 'atc', cookieName: 'aluvii_atc', cookieExpireDays: 10, targetDomain: '.aluvii.com' }; console.log("Aluvii GMM v1.0.0", CONFIG); /** * Get URL parameter value by name * @param {string} name - Parameter name * @param {string} url - URL to search (defaults to current URL) * @returns {string|null} Parameter value or null if not found */ function getUrlParameter(name, url = window.location.href) { const urlObj = new URL(url); return urlObj.searchParams.get(name); } /** * Set cookie with specified name, value, and expiration * @param {string} name - Cookie name * @param {string} value - Cookie value * @param {number} days - Days until expiration */ function setCookie(name, value, days) { const expires = new Date(); expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000)); // Set cookie for current domain and .aluvii.com const cookieString = `${name}=${value}; expires=${expires.toUTCString()}; path=/; SameSite=Lax`; document.cookie = cookieString; // Also try to set for .aluvii.com domain if we're on a subdomain if (window.location.hostname.includes('aluvii.com')) { document.cookie = `${cookieString}; domain=.aluvii.com`; } } /** * Get cookie value by name * @param {string} name - Cookie name * @returns {string|null} Cookie value or null if not found */ function getCookie(name) { const nameEQ = name + "="; const cookies = document.cookie.split(';'); for (let cookie of cookies) { cookie = cookie.trim(); if (cookie.indexOf(nameEQ) === 0) { return cookie.substring(nameEQ.length); } } return null; } /** * Check if URL points to current domain or .aluvii.com subdomain * @param {string} url - URL to check * @returns {boolean} True if URL should be tagged */ function shouldTagUrl(url) { try { const urlObj = new URL(url, window.location.origin); const hostname = urlObj.hostname.toLowerCase(); const currentHostname = window.location.hostname.toLowerCase(); // Same domain if (hostname === currentHostname) { return true; } // .aluvii.com subdomain if (hostname.endsWith(CONFIG.targetDomain)) { return true; } return false; } catch (e) { // Invalid URL, skip return false; } } /** * Add or update tracking ID parameter in URL * @param {string} url - Original URL * @param {string} trackingId - Tracking ID to append * @returns {string} Modified URL with tracking ID */ function addTrackingIdToUrl(url, trackingId) { try { const urlObj = new URL(url, window.location.origin); urlObj.searchParams.set(CONFIG.tidParam, trackingId); return urlObj.toString(); } catch (e) { // If URL parsing fails, return original URL console.warn('Failed to parse URL for tracking:', url); return url; } } /** * Tag all relevant links on the page with tracking ID * @param {string} trackingId - Tracking ID to append */ function tagLinks(trackingId) { if (!trackingId) return; const links = document.querySelectorAll('a[href]'); links.forEach(link => { const href = link.getAttribute('href'); // Skip if href is empty, javascript:, mailto:, tel:, etc. if (!href || href.startsWith('javascript:') || href.startsWith('mailto:') || href.startsWith('tel:') || href.startsWith('#')) { return; } if (shouldTagUrl(href)) { const newHref = addTrackingIdToUrl(href, trackingId); link.setAttribute('href', newHref); } }); } /** * Handle dynamically added links using MutationObserver * @param {string} trackingId - Tracking ID to append */ function observeNewLinks(trackingId) { if (!trackingId) return; const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { mutation.addedNodes.forEach(node => { if (node.nodeType === Node.ELEMENT_NODE) { // Check if the added node is a link if (node.tagName === 'A' && node.getAttribute('href')) { const href = node.getAttribute('href'); if (shouldTagUrl(href)) { const newHref = addTrackingIdToUrl(href, trackingId); node.setAttribute('href', newHref); } } // Check for links within the added node const childLinks = node.querySelectorAll ? node.querySelectorAll('a[href]') : []; childLinks.forEach(link => { const href = link.getAttribute('href'); if (href && shouldTagUrl(href)) { const newHref = addTrackingIdToUrl(href, trackingId); link.setAttribute('href', newHref); } }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); return observer; } /** * Initialize tracking script */ function init() { try { // Check for tracking ID in URL parameter const urlTrackingId = getUrlParameter(CONFIG.tidParam); // Get existing tracking ID from cookie if cookie tracking is enabled let currentTrackingId = !isCookieTrackingDisabled() ? getCookie(CONFIG.cookieName) : null; // If we have a tracking ID from URL, store it and use it if (urlTrackingId) { if (!isCookieTrackingDisabled()) { setCookie(CONFIG.cookieName, urlTrackingId, CONFIG.cookieExpireDays); } currentTrackingId = urlTrackingId; } // Tag existing links with current tracking ID if (currentTrackingId) { tagLinks(currentTrackingId); // Set up observer for dynamically added links observeNewLinks(currentTrackingId); } } catch (error) { console.error('Aluvii Tracking: Initialization error:', error); } } // Initialize when DOM is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } // Expose public API for manual triggering if needed window.AluviiTracking = { init: init, getTrackingId: () => getCookie(CONFIG.cookieName), setTrackingId: (id) => { if (!isCookieTrackingDisabled()) { setCookie(CONFIG.cookieName, id, CONFIG.cookieExpireDays); } tagLinks(id); } }; function isCookieTrackingDisabled() { const script = document.currentScript || document.querySelector('script[src*="aluvii_tracking_script.js"]'); return script && script.getAttribute('data-disable-cookie-tracking') === 'true'; } })();