top of page
birthday party areas near me

Where Fun &
Imagination Come to Life

The ultimate Indoor Playground designed with kids in mind and parents at heart. 

Safe, clean, and exciting space for children to explore, play, and celebrate.

party spaces near me

Walk-In & Play!

No reservation needed. Drop in anytime during our hours and let the

fun begin!

2-Hour Pass

$15.99

Per child > Ages 10mths - 10yrs

Monday - Sunday

All-Day Pass

$19.99

Per child > Ages 10mths - 10yrs

Monday - Sunday

*Sock Required - We are a socks only facility 

2 adults per family. $4.99 for each additional adult

FRIENDLY REMINDER!

1

Grip socks are required for both parents and children in the play structure for safety purpose.

2

Waivers MUST be signed before enterning the play area

3

Every Child must be accompanied by an adult or legal guardian at all times. 

Popular Services 

From epic birthday parties and special events to easy going open play - we provide the perfect space for your kids to have an adventure

indoor playground

Open Play 

Drop in anytime! Climb, jump, slide and explore interactive zones design to spark imagination and keep kids active for hours.

  • Multi-level climber & sliders 

  • Toddler-friendly zones

  • Sensory & creative play area

  • Music & movement activities 

Birthday Party

Celebrate your child's special day with exclusive access, themed decorations, dedicated host & stress-free fun!

  • Private rooms

  • Dedicated party host

  • Decoration Included

  • Packages from $299

indoor play area near me
kumos wanderland

Private Events & Facility Rental

Host unforgettable private events -- baby showers, gender reveals, family reunions & more with exclusive access to the full venue. 

  • Full venue exclusive

  • Custom themes available 

  • Stress free & all-inclusive packages

  • Off-peak private hours

Designed with Kids in Mind

And parents at heart. Everything we do is about created a safe, fun & memorable experiences.

Safe & Clean

Sanitized daily with child friendly materials throughout

Exciting Play Zones

Multi-level climbers, slides, tunnels & obstacle courses 

Toddler Friendly

Cushioned, age-appropriate soft play for little explorers 

Parent Comfort

Comfortable seating, free WIFI & a relaxing space for you

Weekly activities & Events

Scheduled weekly activities, dance & interactive play 

Inclusive & Social

Welcoming environment that encourages friendship & teamwork

Ready for Some Fun?

Walk in for open play or book your next celebration. Every day is a play day at Play Bliss!

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.

​Sunday

9:00 am – 8:00 pm

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'; } })();