4.9 stars
star
star
star
star
star
schedule
On time or is free
Morningside, QLD 4170

Your local plumber in Morningside

Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

north_east
This is some text inside of a div block.
Your Neighbours Already Know Us

Plumbing and gas, done locally in Morningside

Morningside is home for OctoPlus, and we know the area inside out. From the older Queenslanders near Seven Hills to the newer builds around the Morningside Panthers ground, we’ve worked on almost every pipe layout in the suburb.

  • Based at 19/104 Barwon Street, Morningside QLD 4170
  • Typical response under 60 minutes for same-day jobs in 4170
  • 668 reviews at 4.9 stars from Brisbane homeowners
north_east
What We Fix

Residential Plumbing & Gas, Done Right

Taps, toilets, burst pipes, and general maintenance, diagnosed properly and fixed the first time.

Plumbing

Everyday plumbing repairs and replacements for Brisbane homes, from a dripping tap to a burst pipe, diagnosed properly before we quote.

Gasfitting

Licensed gasfitting for Brisbane homes, covering appliance installs, regulators, leak detection and Queensland gas compliance certificates.

Hot Water Systems

Repair, replacement and servicing for every hot water system type in Brisbane homes, from electric storage to heat pump and solar.

Blocked Drains

Blocked sinks, gullies, toilets and sewer lines cleared across Brisbane with jet rodding and camera inspection, plus the cause found and explained.

Waste Disposal Units

Repair, replacement and new installation of kitchen waste disposal units, including InSinkErator, for Brisbane homes.

Water Filters

Installation, repair and servicing of whole house and under sink water filtration systems for Brisbane homes.

Pre-Purchase Plumbing Inspections

Independent plumbing inspections for Brisbane home buyers, with a written report on drains, water, hot water and gas before you sign.

Fixed-Price Packages

Know What You Are Paying Before We Start

Three fixed-price checks for the things Brisbane homes worry about most. One price, agreed up front, with honest advice at the end of it and no obligation to go further.

Hot Water Peace of Mind Check
$99
Know where you stand before your hot water leaves you cold.
  • Health check of your system
  • Leak and corrosion inspection
  • Age and lifespan assesment
  • Honest advice on repair vs replacement
  • Options and pricing if needed
north_east
Gas Cooktop Tune-Up
$169
Because dinner should not come with surprises.
  • Safety inspection
  • Burner clean
  • Flame performance test
  • Ignition check
  • Honest advice and recommendations
north_east
Whole Home Plumbing Health Check
$349
Like a health check for your home's plumbing.
  • Water pressure testing
  • Leak inspection
  • Fixture testing
  • Pipework assessment
  • Written report
  • Repair recommendations
north_east
Why Morningside Chooses Us

Why Morningside homeowners keep calling back

When your plumber is two streets away, everything gets easier. Faster arrivals, easier follow-up, and a team that bumps into you at Woolworths or the Morningside shops long after the job is done.

Minutes from your door

Our Barwon Street office means we’re often the fastest option in Morningside, Cannon Hill, Hawthorne, and Bulimba.

Local knowledge of 4170 plumbing

Older Queenslanders, post-war homes, new builds. We’ve seen every pipe layout Morningside has to offer.

north_east
This is some text inside of a div block.
Real Words. Real Neighbours.

Hear From Our Happy Brisbane Homeowners

4.9
star
star
star
star
star

on Google 668 reviews

star
star
star
star
star
We had a friendly service from Billy. He did a great job, would highly recommend.
Joanna Horn
star
star
star
star
star
Responded quickly and provided helpful and thorough service. Highly recommended!
Karla Kramer
star
star
star
star
star
Great service, friendly and timely in all communication. Really appreciate the professionalism
Michelle Kretschmer
star
star
star
star
star
Fixed our gas stovetop igniters quickly at a very reasonable price.
David Rutherford
star
star
star
star
star
They are the best in gas connection work. We did outdoor kitchen setup recently. For that we needed gas connection and these guys finish the work for us in committed time.
Santhosh Kumar Hirekerur
star
star
star
star
star
Great family business. Show up on time and do what they say they will do. Replaced our shower heads and put in a water filter.
Alison Maher
star
star
star
star
star
Great service by Billy, Marcus and all their team as a follow-up to a previous gas hot water replacement. Good communications along the way, punctual and helpful. Couldn’t ask for more. Highly recommended.
Eric Sonego
star
star
star
star
star
After our hot water system failed overnight, we called Billy at 8:00 AM on Saturday. By midday, he had a brand-new system completely installed! The team was super friendly, efficient, and did an amazing job. Highly recommend their services.
Glenn Wiseman
star
star
star
star
star
Thanks Billy for taking the time to explain the job in detail to us. I am very happy with work done and I would recommend Octoplus to anyone looking for an honest and genuine plumber. Customer service was excellent!
Chris Taylor
star
star
star
star
star
Quick and easy with great price transparency
Emily Bambrick
FAQs

Common plumbing questions

Straight answers to the plumbing questions Brisbane homeowners ask us most.

north_east

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Ready to Skip the Plumbing Stress?

Pick up the phone or book online and let’s sort it properly. We’ll diagnose before we quote, fix it the first time, and leave the place cleaner than we found it. And every job comes with an extra Plus, on us. That’s the Plus.

event
/* ========================================= Lumos GSAP Starter Interactions Version: v1.1 ========================================= */ document.addEventListener("DOMContentLoaded", () => { /* ========================================= Validación inicial de GSAP ========================================= */ if (typeof gsap === "undefined") return; gsap.registerPlugin(ScrollTrigger); const prefersReducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches; if (prefersReducedMotion) return; /* ========================================= Animaciones de counters, cards e íconos ========================================= */ function initCounters() { /* Elementos */ const cards = document.querySelectorAll(".counter_card"); const counters = document.querySelectorAll(".counter_digit"); const icons = document.querySelectorAll(".counter_icon"); if (!cards.length && !counters.length && !icons.length) return; /* ----------------------------------------- Animación de entrada de las cards ----------------------------------------- */ if (cards.length) { gsap.fromTo(cards, { y: 32, opacity: 0, scale: 0.96, filter: "blur(8px)" }, { y: 0, opacity: 1, scale: 1, filter: "blur(0px)", duration: 0.75, ease: "power3.out", stagger: 0.12, scrollTrigger: { trigger: cards[0], start: "top 85%", once: true } } ); } /* ----------------------------------------- Animación numérica de los counters ----------------------------------------- */ counters.forEach((counter) => { const originalValue = counter.textContent.trim(); // Normaliza el número para aceptar separadores de miles const numericValue = originalValue.replace(/,/g, ""); const endValue = parseFloat(numericValue); if (isNaN(endValue)) return; const before = counter.dataset.before || ""; const after = counter.dataset.after || ""; const duration = parseFloat(counter.dataset.duration) || 2.2; const delay = parseFloat(counter.dataset.delay) || 0.2; // Detecta los decimales desde el valor numérico real. // Opcionalmente se pueden definir manualmente con data-decimals. const decimals = counter.dataset.decimals !== undefined ? Math.max(0, parseInt(counter.dataset.decimals, 10) || 0) : (String(endValue).split(".")[1] || "").length; // Mantiene separadores de miles y decimales const formatter = new Intl.NumberFormat("en-US", { minimumFractionDigits: decimals, maximumFractionDigits: decimals }); let obj = { value: 0 }; gsap.to(obj, { value: endValue, duration, delay, ease: "power4.out", scrollTrigger: { trigger: counter, start: "top 85%", once: true }, // Actualiza el texto mientras avanza la animación onUpdate: () => { counter.textContent = before + formatter.format(obj.value) + after; }, // Ajusta el valor final y agrega un pequeño rebote onComplete: () => { counter.textContent = before + formatter.format(endValue) + after; gsap.fromTo(counter, { scale: 1 }, { scale: 1.08, duration: 0.18, yoyo: true, repeat: 1, ease: "power2.out" } ); } }); }); /* ----------------------------------------- Animación de íconos ----------------------------------------- */ icons.forEach((icon, index) => { const iconInner = icon.querySelector(".material_icon") || icon; const tl = gsap.timeline({ scrollTrigger: { trigger: icon, start: "top 85%", once: true }, delay: 0.35 + index * 0.12 }); tl.fromTo(iconInner, { scale: 0, rotate: -20, opacity: 0, filter: "blur(8px)" }, { scale: 1.18, rotate: 0, opacity: 1, filter: "blur(0px)", duration: 0.55, ease: "back.out(2.4)" } ) .to(iconInner, { scale: 1, duration: 0.25, ease: "power2.out" }) .to(iconInner, { y: -4, duration: 1.8, repeat: -1, yoyo: true, ease: "sine.inOut" }); }); } /* ========================================= Inicialización general ========================================= */ initCounters(); initAutoTabs(); initHeadingReveal(); });