﻿---
title: Scripts
description: A script in Painless is a complete program composed of one or more statements that performs a specific task within Elasticsearch. Scripts run within a...
url: https://www.elastic.co/elastic/docs-builder/docs/2717/reference/scripting-languages/painless/painless-scripts
products:
  - Elasticsearch
  - Painless
applies_to:
  - Elastic Cloud Serverless: Generally available
  - Elastic Stack: Generally available
---

# Scripts
A script in Painless is a complete program composed of one or more [statements](https://www.elastic.co/elastic/docs-builder/docs/2717/reference/scripting-languages/painless/painless-statements) that performs a specific task within Elasticsearch. Scripts run within a controlled sandbox environment that determines which variables are available and which APIs can be accessed based on the [use context](https://docs-v3-preview.elastic.dev/elastic/docs-builder/docs/2717/explore-analyze/scripting/painless-syntax-context-bridge).
Scripts are the fundamental runnable unit in Painless, allowing you to customize⁣ Elasticsearch behavior for search scoring, data transformation, field calculations, and operational tasks. Each script runs in isolation with access to context-specific variables and a curated set of safe operations.
For detailed guidance on writing scripts, practical examples, and step-by-step tutorials, refer to [How to write Painless scripts](https://docs-v3-preview.elastic.dev/elastic/docs-builder/docs/2717/explore-analyze/scripting/modules-scripting-using).