> ## Documentation Index
> Fetch the complete documentation index at: https://docs.js-confuser.com/llms.txt
> Use this file to discover all available pages before exploring further.

# All Options

JS-Confuser provides a wide range of options to customize the obfuscation process. Below is a list of all available options in the obfuscator.

* Remember, [presets](/presets) can be used to quickly apply a set of options to the obfuscator.

#### Build Settings

| Option                           | Description                                                                                        |
| -------------------------------- | -------------------------------------------------------------------------------------------------- |
| [Target](/options/target)        | The execution context for your output.                                                             |
| [Source Map](/options/sourceMap) | Source Map options                                                                                 |
| [Pack](/options/pack)            | Packs the output code into a single `Function()` call. Designed to escape strict mode constraints. |

#### Identifiers

| Option                                               | Description                                                                                      |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| [Identifier Generator](/options/identifierGenerator) | Determines how variables are renamed.                                                            |
| [Rename Variables](/options/renameVariables)         | Determines if variables should be renamed.                                                       |
| [Rename Globals](/options/renameGlobals)             | Renames top-level variables, turn this off for web-related scripts. **Enabled by default.**      |
| [Rename Labels](/options/renameLabels)               | Renames labeled control-flow statements, and removes unnecessary labels. **Enabled by default.** |
| [Moved Declarations](/options/movedDeclarations)     | Moves variable declarations to the top of the context.                                           |

#### Strings

| Option                                                    | Description                                                                               |
| --------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [String Concealing](/options/stringConcealing)            | String Concealing involves encoding strings to conceal plain-text values.                 |
| [Custom String Encodings](/options/customStringEncodings) | Custom String Encodings allows you to define your own string encoding/decoding functions. |
| [String Encoding](/options/stringEncoding)                | String Encoding transforms a string into an encoded representation.                       |
| [String Splitting](/options/stringSplitting)              | String Splitting splits your strings into multiple expressions.                           |

#### Data

| Option                                                          | Description                                                                         |
| --------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [Calculator](/options/calculator)                               | Creates a calculator function to handle arithmetic and logical expressions.         |
| [Object Extraction](/options/objectExtraction)                  | Extracts object properties into separate variables.                                 |
| [Global Concealing](/options/globalConcealing)                  | Global Concealing hides global variables being accessed.                            |
| [Duplicate Literals Removal](/options/duplicateLiteralsRemoval) | Duplicate Literals Removal replaces duplicate literals with a single variable name. |

#### Control-flow

| Option                                                    | Description                                                                                                                                   |
| --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| [Control Flow Flattening](/options/controlFlowFlattening) | Control-flow Flattening hinders program comprehension by creating convoluted switch statements.                                               |
| [Dispatcher](/options/dispatcher)                         | Creates a middleman function to process function calls.                                                                                       |
| [Opaque Predicates](/options/opaquePredicates)            | An Opaque Predicate is a predicate(true/false) that is evaluated at runtime, this can confuse reverse engineers from understanding your code. |
| [Dead Code](/options/deadCode)                            | Randomly injects dead code.                                                                                                                   |
| [AST Scrambler](/options/astScrambler)                    | Semantically changes the AST to bypass automated tools.                                                                                       |

#### Functions

| Option                                       | Description                                                             |
| -------------------------------------------- | ----------------------------------------------------------------------- |
| [Variable Masking](/options/variableMasking) | Local variables are consolidated into a rotating array.                 |
| [Flatten](/options/flatten)                  | Brings independent declarations to the highest scope.                   |
| [RGF](/options/rgf)                          | RGF (Runtime-Generated-Functions) creates executable code from strings. |

#### Lock

| Option                                         | Description                                                                                                                       |
| ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| [Domain Lock](/options/domainLock)             | Ensures the script can only execute on the specified domain. Set the Counter Measures option to control what happens if violated. |
| [Start Date](/options/startDate)               | When the program is first able to be used.                                                                                        |
| [End Date](/options/endDate)                   | When the program is no longer able to be used.                                                                                    |
| [Tamper Protection](/options/tamperProtection) | Tamper Protection safeguards the runtime behavior from being altered by JavaScript pitfalls.                                      |
| [Self Defending](/options/selfDefending)       | Prevents the use of code beautifiers or formatters against your code.                                                             |
| [Custom Locks](/options/customLocks)           | Customize the lock algorithm to your own implementation.                                                                          |
| [Integrity](/options/integrity)                | Integrity ensures the source code is unchanged.                                                                                   |
| [Anti Debug](/options/antiDebug)               | Adds debugger statements throughout the code.                                                                                     |
| [Countermeasures](/options/countermeasures)    | A custom callback function to invoke when a lock is triggered.                                                                    |

#### Output

| Option                                                      | Description                                        |
| ----------------------------------------------------------- | -------------------------------------------------- |
| [Hexadecimal Numbers](/options/hexadecimalNumbers)          | Uses the hexadecimal representation for numbers.   |
| [Compact](/options/compact)                                 | Removes whitespace from the final output.          |
| [Minify](/options/minify)                                   | Minifies redundant code.                           |
| [Preserve Function Length](/options/preserveFunctionLength) | Preserves the original `function.length` property. |
