Home » Asia » Thailand » Pai » Mo Paeng Waterfall
Mo Paeng Waterfall

Mo Paeng Waterfall

Mo Paeng Waterfall, located near Pai in northern Thailand, is a popular natural attraction known for its serene setting and accessibility. The waterfall features a series of gentle cascades that flow over smooth rocks, providing an inviting spot for visitors to relax.

Pai
Share to Friends
Natural Waterfall

About This Attraction

Mo Paeng Waterfall, located near Pai in northern Thailand, is a popular natural attraction known for its serene setting and accessibility. The waterfall features a series of gentle cascades that flow over smooth rocks, providing an inviting spot for visitors to relax. With its shallow pools and natural rock slides, Mo Paeng Waterfall offers a fun and refreshing experience for families and travelers alike.

For those planning a visit, it is important to note that the best time to explore this site is during the rainy season when water levels are higher. Mo Paeng Waterfall travel information often highlights that it is easily reachable by scooter or car from Pai town, making it an ideal day trip. Additionally, there are no entrance fees, allowing everyone to enjoy this beautiful spot without any cost. Remember to wear appropriate footwear as the rocks can be slippery.

Location Details

Address Mo Paeng Waterfall, Pai, Mae Hong Son, Thailand

Visitor Information

Pricing & Ratings

Ticket Prices

Adult Free
Child Free
Student Free
Senior Free

Ratings

Overall Rating
8.5/10
Crowd Level
6.0/10

Opening Hours & Booking

Open

Days Daily
Hours 24 hours
Seasonality Year-round

Booking

Booking Required? No

Nearby Attractions

Showing 10 of 100 attractions
Miles Kilometers

Mor Paeng Waterfall

Natural Attraction

A scenic waterfall with natural pools, popular for swimming and picnics.

8.5/10

Wat Nam Hoo

Buddhist Temple

A revered Buddhist temple known for its sacred Buddha image.

8.5/10

Santichon Village (Chinese Village)

Cultural Village

Cultural village showcasing Yunnan Chinese heritage.

7.8/10

Pai Historical Bridge

Historical Site

A historic WWII-era bridge with scenic views.

8.5/10

Wat Sri Don Chai

Temple

Historic Buddhist temple with Lanna architecture.

8.5/10

Fluid Pool

Swimming Pool

A popular pool bar with a relaxed vibe, offering drinks and music.

8.5/10

Fat Cat Farm

Eco-Farm

Eco-friendly farm and cafe with organic produce.

8.5/10

Lart Pai

Art Gallery

Art gallery and cafe with local crafts.

8.5/10

Music House

Live Music Venue

Live music venue with local bands.

8.5/10

Giant Tree Swing

Outdoor Activity

A scenic swing offering panoramic views of Pai's countryside.

8.5/10
"; } // Initialize modal controls const initModalControls = function() { console.log('Initializing modal controls'); const modal = document.getElementById('attraction-modal'); const closeBtn = document.querySelector('.attraction-modal-close'); if (closeBtn) { closeBtn.addEventListener('click', function() { modal.style.display = 'none'; document.body.style.overflow = ''; }); } window.addEventListener('click', function(event) { if (event.target === modal) { modal.style.display = 'none'; document.body.style.overflow = ''; } }); // Make attraction cards clickable const attractionCards = document.querySelectorAll('.attraction-card'); console.log('Found ' + attractionCards.length + ' attraction cards'); attractionCards.forEach(card => { card.addEventListener('click', function(e) { openModalWithCardData(this); }); }); }; // Function to open modal with card data const openModalWithCardData = function(card) { // Get data from hidden div const data = card.querySelector('.attraction-full-data'); if (!data) { console.error('No attraction data found in card'); return; } const modal = document.getElementById('attraction-modal'); if (!modal) { console.error('Modal element still not found after creation attempt'); return; } // Helper function to safely get element text function getElementText(selector) { const element = data.querySelector(selector); return element ? element.textContent : ''; } try { // Basic Info document.getElementById('attraction-modal-title').textContent = getElementText('.attraction-name'); document.getElementById('attraction-modal-type').textContent = getElementText('.attraction-type-full'); document.getElementById('attraction-modal-description').textContent = getElementText('.attraction-description-full'); // Reset all containers to hidden ['attraction-modal-hours-container', 'attraction-modal-price-container', 'attraction-modal-address-container', 'attraction-modal-image-container'].forEach(id => { const container = document.getElementById(id); if (container) container.style.display = 'none'; }); // Rating const ratingText = getElementText('.attraction-rating-full'); if (ratingText) { const ratingValue = parseFloat(ratingText); if (!isNaN(ratingValue)) { const ratingValueEl = document.getElementById('attraction-modal-rating-value'); const ratingFillEl = document.getElementById('attraction-modal-rating-fill'); if (ratingValueEl) ratingValueEl.textContent = ratingValue.toFixed(1) + '/10'; if (ratingFillEl) ratingFillEl.style.width = (ratingValue * 10) + '%'; } } // Show the modal modal.style.display = 'block'; document.body.style.overflow = 'hidden'; // Prevent background scrolling console.log('Modal opened successfully'); } catch (error) { console.error('Error opening modal:', error); } }; // Try to create the modal const created = createModal(); console.log('Modal created:', created); // If not created (already exists), initialize the controls if (!created) { initModalControls(); } // Also initialize distance toggle const distanceToggle = document.getElementById('distance-unit-toggle'); if (distanceToggle) { distanceToggle.addEventListener('change', function() { const showKm = this.checked; // Update toggle labels const labels = document.querySelectorAll('.toggle-label'); if (labels.length >= 2) { labels[0].style.opacity = showKm ? '0.5' : '1'; labels[1].style.opacity = showKm ? '1' : '0.5'; } // Update all distance displays document.querySelectorAll('.nearby-attraction-card').forEach(card => { const kmEl = card.querySelector('.distance-km'); const miEl = card.querySelector('.distance-mi'); if (kmEl && miEl) { kmEl.style.display = showKm ? 'inline' : 'none'; miEl.style.display = showKm ? 'none' : 'inline'; } }); }); } });
Scroll to Top