Starting from version 3.5.0 Katalon Recorder supports extension scripts (AKA user-extensions.js in the deprecated version of Selenium IDE on Firefox). At this moment this feature allows you to add custom locator builders (1) and your own actions (2) to Katalon Recorder. Please see a sample script here https://github.com/katalon-studio/katalon-recorder-samples/blob/master/sample-user-extensions.js.
The following instructions were based on the original documentation (https://www.seleniumhq.org/docs/08_user_extensions.jsp).
A locator in Selenium is a means of identifying an element for the selenium command. A locator builder creates each of these locators for you.
All methods on the Selenium prototype beginning with “do” are added as actions. For each action "foo", there is also an action "fooAndWait" registered. An action method can take up to two parameters, which will be passed the second and third column values in the test. Example: Add a “typeRepeated” action to Selenium, which types the text twice into a text box.
All "getFoo" and "isFoo" methods on the Selenium prototype are added as accessors ("storeFoo"). For each accessor there is an "assertFoo", "verifyFoo" and "waitForFoo" registered. An assert method can take up to two parameters, which will be passed the second and third column values in the test. You can also define your own assertions literally as simple “assert” methods, which will also auto-generate “verify” and “waitFor” commands. Example: Add a "valueRepeated" assertion, that makes sure that the element value consists of the supplied text repeated. The two commands that would be available in tests would be "assertValueRepeated" and "verifyValueRepeated".
Prototype generates additional commands
All "getFoo" and "isFoo" methods on the Selenium prototype automatically result in the availability of "storeFoo", "assertFoo", "assertNotFoo", "verifyFoo", "verifyNotFoo", "waitForFoo", and "waitForNotFoo" commands. Example, if you add a "getTextLength()" method, the following commands will automatically be available: "storeTextLength", "assertTextLength", "assertNotTextLength", "verifyTextLength", "verifyNotTextLength", "waitForTextLength", and "waitForNotTextLength" commands.
Also note that the "assertValueRepeated" method described above could have been implemented using "isValueRepeated", with the added benefit of also automatically getting "assertNotValueRepeated", "storeValueRepeated", "waitForValueRepeated" and "waitForNotValueRepeated".
Adding extension scripts into Katalon Recorder
To add an extension script, click the "Extension Scripts" tab on the bottom panel, and click the "Add Extension Script" button. Please remember to refresh the tabs you want to work on because the new extension script only has effects on tabs opened after being added.