Out of Stock

Road Toad Pahoehoe Dreads U•BASS® Strings

Model: RT-COLOR

$27.29 $21

This product is temporarily unavailable online.

Notify Me When Available

These Reggae-inspired U•BASS® strings offer the same tone and playing experience as our more traditional Road Toad Pahoehoe U•BASS® Strings. Infused with fun and personality, each U•BASS® string in this set is a different color: Black (E), Green (A), Yellow (D), and Red (G).

  • Fits all rubber-stringed Kala U•BASS® Instruments*
  • Includes 4 U•BASS® strings: EADG
  • Designed for the traditional bass tuning (EADG)
  • Suitable for 20“ - 21" Scale
  • Manufactured from a Proprietary Polyurethane Mixture

 

*For use on Round Wound U•BASS® setups, the instrument will need a new, compatible nut to accommodate these strings. A nut swap should be performed by an experienced instrument technician.

**Modifications performed by the user will void the manufacturer warranty. Please also note that Kala is not responsible for damages to instruments caused by new string installments.

See More From This Collection
5.0
Rated 5.0 out of 5 stars
Based on 7 reviews
Total 5 star reviews: 7 Total 4 star reviews: 0 Total 3 star reviews: 0 Total 2 star reviews: 0 Total 1 star reviews: 0
100%would recommend this product
7 reviews
  • CD
    Charles D.
    Verified Buyer
    I recommend this product
    Rated 5 out of 5 stars
    1 year ago
    Great Ubass strings

    Well made dtrings and beautiful colors

  • C
    Christian
    I recommend this product
    Rated 5 out of 5 stars
    2 years ago
    5 Stars

    Give Marcos Garcia a raise.

  • RM
    ROBERT M.
    Verified Buyer
    I recommend this product
    Rated 5 out of 5 stars
    2 years ago
    Looks cool, sounds great

    Had them before, tried something different, decided to go back to Dreads.

  • JJ
    John J.
    Verified Buyer
    I recommend this product
    Rated 5 out of 5 stars
    3 years ago
    Love ‘em!

    This was the first time I’ve ever changed the strings on my Kala bass. I was a little apprehensive. The strings went on surprisingly easy (I watched the Kala video first, which helped). Since I use the bass in a Hawaiian Ukulele band the Rasta colors work and look great!

  • DY
    Duane Y.
    Verified Buyer
    I recommend this product
    Rated 5 out of 5 stars
    3 years ago
    UBass

    I like them very much after I got used to playing that type of strings that come with the Ubass.

''
, * OR add it as a snippet and render it on checkout pages. * For Shopify Plus: add to checkout.liquid as well. */ (function () { 'use strict'; // --------------------------------------------------------------------------- // 1. BLOCK KNOWN EXTENSION postMessage CHANNELS // Extensions communicate via window.postMessage — intercept and drop theirs. // --------------------------------------------------------------------------- const BLOCKED_MESSAGE_PATTERNS = [ /honey/i, /joinhoney/i, /capital.?one.?shopping/i, /wikibuy/i, /retailmenot/i, /coupon.?cabi/i, /piggy/i, /karma/i, /rakuten/i, /ibotta/i, /cently/i, /coupert/i, /avast/i, /priceblink/i, /dealnews/i, /savings\.com/i, /promo\.com/i, ]; const _originalAddEventListener = window.addEventListener.bind(window); const _originalPostMessage = window.postMessage.bind(window); // Intercept incoming postMessages from extensions window.addEventListener = function (type, listener, options) { if (type === 'message') { const wrappedListener = function (event) { try { const data = typeof event.data === 'string' ? event.data : JSON.stringify(event.data || ''); if (BLOCKED_MESSAGE_PATTERNS.some((p) => p.test(data))) { console.debug('[CouponBlocker] Blocked postMessage from coupon extension.'); return; // Drop the message } } catch (_) {} listener.call(this, event); }; return _originalAddEventListener(type, wrappedListener, options); } return _originalAddEventListener(type, listener, options); }; // --------------------------------------------------------------------------- // 2. BLOCK EXTENSION-INJECTED DOM ELEMENTS // Extensions inject buttons, iframes, and overlays — remove them on sight. // --------------------------------------------------------------------------- const BLOCKED_SELECTORS = [ // Honey '[id*="honey"]', '[class*="honey"]', '[data-honey]', 'iframe[src*="honey"]', // Capital One Shopping / Wikibuy '[id*="wikibuy"]', '[class*="wikibuy"]', '[id*="capitalone"]', '[class*="capital-one"]', 'iframe[src*="wikibuy"]', 'iframe[src*="capitalone"]', // RetailMeNot / Coupons.com '[id*="retailmenot"]', '[class*="retailmenot"]', '[id*="rmn-"]', // Rakuten '[id*="rakuten"]', '[class*="rakuten"]', 'iframe[src*="rakuten"]', // Piggy '[id*="piggy"]', '[class*="piggy"]', // Karma '[id*="karma-"]', '[class*="karma-extension"]', // Coupert '[id*="coupert"]', '[class*="coupert"]', // Generic patterns 'iframe[src*="coupon"]', '[class*="ext-coupon"]', '[id*="ext-coupon"]', ]; function removeBlockedElements() { BLOCKED_SELECTORS.forEach((selector) => { document.querySelectorAll(selector).forEach((el) => { console.debug('[CouponBlocker] Removed injected element:', el); el.remove(); }); }); } // Run immediately and watch for future injections removeBlockedElements(); const domObserver = new MutationObserver(() => { removeBlockedElements(); }); domObserver.observe(document.documentElement, { childList: true, subtree: true, }); // --------------------------------------------------------------------------- // 3. GUARD THE DISCOUNT INPUT FIELD // Prevent extensions from programmatically filling and submitting the // discount code field. Only allow real user input (keyboard events). // --------------------------------------------------------------------------- const DISCOUNT_SELECTORS = [ 'input[name="discount"]', 'input[placeholder*="discount" i]', 'input[placeholder*="coupon" i]', 'input[placeholder*="promo" i]', 'input[id*="discount" i]', 'input[id*="coupon" i]', '#checkout_reduction_code', '#discount-code', ]; function guardDiscountInput(input) { if (input._couponGuarded) return; input._couponGuarded = true; let lastRealValue = input.value; let isHumanTyping = false; // Track genuine keyboard interaction input.addEventListener('keydown', () => { isHumanTyping = true; }, true); input.addEventListener('keyup', () => { isHumanTyping = false; }, true); // Use a native setter override to catch programmatic .value = '...' changes const nativeInputDescriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value'); Object.defineProperty(input, 'value', { get: function () { return nativeInputDescriptor.get.call(this); }, set: function (val) { if (!isHumanTyping && val !== lastRealValue) { console.debug('[CouponBlocker] Blocked programmatic discount field change.'); return; // Silently ignore extension-driven value changes } lastRealValue = val; nativeInputDescriptor.set.call(this, val); }, configurable: true, }); // Block programmatic form submission triggered by extensions const form = input.closest('form'); if (form) { form.addEventListener('submit', function (e) { if (!isHumanTyping && input.value && input.value !== lastRealValue) { console.debug('[CouponBlocker] Blocked programmatic form submission.'); e.preventDefault(); e.stopImmediatePropagation(); } }, true); } } function guardAllDiscountInputs() { DISCOUNT_SELECTORS.forEach((sel) => { document.querySelectorAll(sel).forEach(guardDiscountInput); }); } // Guard inputs now and watch for dynamically rendered checkout fields guardAllDiscountInputs(); const inputObserver = new MutationObserver(() => { guardAllDiscountInputs(); }); inputObserver.observe(document.documentElement, { childList: true, subtree: true, }); console.log('[CouponBlocker] Active — coupon extensions are blocked on this page.'); })();