---
title: Remapping
slug: gpc/remapping
description: Learn about the concepts of remapping and unmapping in scripting languages with this informative document. Discover how remapping assigns input identifiers to output identifiers, and how unmapping disconnects inputs from the output report. Gain insights i
docTags: 
createdAt: 2021-12-04T12:28:24.000Z
---

Remappings are defined at the beginning of a script and must be done before the main procedure.  They cannot be executed during run time.&#x20;

| Command Name | Description                                             |
| ------------ | ------------------------------------------------------- |
| remap        | Assigns the value of the controller input to the output |
| unmap        | Disconnects an input from the output report             |

# remap

`remap` assigns the value of the input identifier to the output identifier

:::CodeblockTabs
GPC

```apex
remap PS4_CROSS -> PS4_SQUARE;
```
:::

:::hint{type="warning"}
Although you define remaps at the beginning of a script, the Virtual Machine does not execute the remaps until the main second has finished the current iteration.  This means that any scripting operations on the remapped entries for inputs should be programmed for the original buttons without considering the remapped item.
:::

🔴**Syntax**

:::BlockQuote
remap \< input\_identifier > -> \< output\_identifier >;
:::

⚪**Parameters**

\<input\_identifier> : any defined variable.
\<output\_identifer> : index point of the bit to be set with a range of 0 to 15.

🔵**Returns**

Nothing

# unmap

`unmap` disconnects an input from the output report. This means that although the Virtual Machine can still see the value of the button/axis on the input report, it will not pass its value onto the console in the output report. You can therefore still use an unmapped button to run code or start combos in your GPC script without worrying about its original function being sent to the console.

:::BlockQuote
unmap PS4\_TRIANGLE;  // unmaps the PS4\_TRIANGLE identifier;
unmap ALL\_REMAPS;    // unmaps all controller identifiers which have been remapped;
:::

🔴**Syntax**

:::BlockQuote
unmap \<output\_identifier>;
:::

⚪**Parameters**

\<output\_identifier> : any defined variable.

🔵**Returns**

Nothing

