How to create a custom "split" block?

Hello, I am trying to create a program that automatically converts a string into a list in a certain way. I stumbled upon the split()By() block, but I need something a little more powerful. I am not sure about the best way to go about this, whether this be by chaining multiple split()By() blocks or by using the map()Over() block or even something else. What I want is the following:

Convert the string “The quick’s brown fox, jumps over the (very) lazy dog.”:

Mad Libs_ Builder script pic

To a list where each word and character are separate items, and all spaces are eliminated ([“The”, “quick”, ”’”, ”s”, ”brown”, ”fox”, ”,”, ”jumps”, ”over”, ”the”, ”(“, ”very”, “)”, “lazy”, “dog”, “.”]):

Mad Libs_ Builder script pic (2)

I think I will first use split(story)By(word):

Mad Libs_ Builder script pic (3)

To get this:

Mad Libs_ Builder script pic (4)

But I am not sure how to get any farther. Any ideas would be greatly appreciated!

I made a multisplit reporter a while a go. I’ll dig it out when back at computer

don’t know if this is what your looking for but this is what I threw together

I just couldn’t find a operator to see if the item I of list is a letter or not but I was in a rush and put it in a not ( )


i have a slight feeling it’s not supposed to return an error..

The reason it throws an error is because the ([uniques V] of (list (split (story) by [letter v]) :: list):: list) returns a list.

I came up with this: Check if letter

Found it

Don’t know if it’ll do what you want but worth trying out

untitled script pic - 2025-11-06T223241.945

The canonical way to see if a character is a letter is


Saves you having to type in all 26 letters.


But most likely, instead of checking for being a lower case letter or an upper case letter or a digit, you’ll have specific delimiters in mind:

So, since SPLIT absorbs its delimiter character, I decided to help it by putting my own delimiter, a character not used in your application, for which I chose backslash (\) but you can choose anything, so I can split by \ instead of by each specific delimiter you have in mind:

This is kind of kludgy, because the first time I ran it I got this result:


so then I added the code to filter out empty items in the result and got the desired answer:

Here’s what I would do:

The definition is commented with an explanation of how it works:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.