Resources: Feeding Input Data into BAS Bots
How the Resources module supplies input data to Browser Automation Studio — account lists, proxies, thread counts and random data, distributed safely across many threads.
Every real bot needs input: a list of accounts to register, proxies to rotate, a number of threads to run. In BAS that input comes through the Resources module — and unlike a plain list, resources are built to be shared safely across many threads at once.
What a resource is
A resource is an input global parameter of a script — data that can change dynamically while the bot runs. Resources act as the settings the scenario reads at startup. In practice a resource is a container of data, most often the lines of a txt file.
Typical examples:
- the number of threads to run
- a txt file of accounts or emails
- a list of proxies
- randomly generated data
- folder paths and other run settings
This is how you separate the bot’s logic from the data it runs on: the flow stays the same, you just swap the resource feeding it.
Resources vs lists
A list holds data inside one thread. A resource is designed for many threads pulling from the same pool. The Resources system helps distribute data across threads and handles the situations that arise from simultaneous use in multithreaded mode — which is exactly where naive lists fall apart.
The key actions and settings
Create resource. Creates a new resource — a container of data, for example the lines from a file. It exposes settings that a list can’t: counts of successful and unsuccessful executions, simultaneous use, and intervals between uses.
Wait for appearance. A critical setting that defines what happens when the resource’s data list is empty. With it enabled, an action that requests the resource waits until data appears; with it disabled, the action completes instantly with an error. Choosing the right behaviour here is what keeps a multithreaded bot from either hanging forever or dying the moment the pool runs dry.
Greedy algorithm. When enabled, the system keeps handing out the same line again and again until that line exhausts its success/failure count — only then does the next line become available. Use it when each data item must be fully processed (e.g. retried until it succeeds) before moving on.
Common run-configuration resources
In real projects a set of resources configures the run itself, for example: threads, working_folders, profiles_folder, temp_working_folder, plus grouped settings for general options, Telegram, captcha, browser fingerprints, proxies, and excluded countries.
Set these up once and your bot becomes configurable without touching its logic: change the proxy list or thread count in the resource, and the same flow runs against the new setup. That separation — logic in functions, data in resources — is what makes a BAS project maintainable as it grows.
FAQ
What is a resource in BAS?
A resource is an input parameter of a script — a container of data such as lines from a txt file (accounts, emails, proxies) or a setting like the thread count. Resources are read at startup and can change dynamically while the bot runs.
Why use a resource instead of a plain list?
Unlike a list, the Resources system distributes data across threads and handles the conflicts that arise when many threads consume the same data at once — success and failure counts, simultaneous-use limits and intervals between uses.
- Browser Automation Studio: The Complete Practical GuideGuide
- Building Your First Bot in Browser Automation StudioA step-by-step walkthrough of creating your first working BAS bot — from a blank project to a flow that navigates, extracts data, and runs in multiple threads.
- Setting Up Proxies in Browser Automation StudioHow to configure proxies in BAS the right way — proxy types, per-thread assignment, rotation, and the checks that keep multi-account bots from getting flagged.
- Finding Elements in BAS: Selectors That Don't BreakHow element search works in Browser Automation Studio — CSS vs XPath selectors, why recorded ones break, and how to write selectors that survive page changes.