Skip to content
← All documentation

/// PIMPMYRUST PLUGIN

AI Translation Pro

Settings guide for this version of AI Translation Pro. Check the plugin page before using it on your server.

Prepare your file

  1. Check the installed version

    This guide describes AI Translation Pro 1.1.2. Use the same version in the configurator.

  2. Import your configuration

    Open the configurator and import your current JSON. For a new installation, you can start from the provided example.

  3. Edit and download

    Adjust the settings, fix reported errors, and download the JSON. Keep a copy of your old file before replacing it.

Your configuration is not saved on the site. Keep the exported file; you can import it again later.

Settings for this version

General 1
OpenAI API token
Text · required

Authenticate external translation requests with your own OpenAI API token. Keep it private; an empty token cannot authorize provider requests.

JSON pathOpenAIToken
Opt-in global chat 1
Enable chat translation
On / off · required

Allow eligible opted-in global chat to enter the translation route. Turning it off disables chat translation, not language-file commands.

JSON pathChatConfiguration → Enabled
Language files 2
Enable file translation
On / off · required

Allow authorized single-plugin and bounded bulk file translation. Turning it off disables this file route, not chat translation.

JSON pathLangFilesConfiguration → Enabled
Legacy request delay (unused)
Number · required

Retained for older configurations; it does not pace Pro 1.1.2 requests. Shared Limits control queue, concurrency and rate.

JSON pathLangFilesConfiguration → TimeBetweenRequestsInSeconds

Minimum : 0.1 · Maximum : 60

Local request limits 12
Maximum waiting requests
Whole number · required

Bound the number of waiting file and chat requests. New work is rejected when the shared queue is full.

JSON pathLimits → MaxQueued

Minimum : 1 · Maximum : 256

Maximum simultaneous requests
Whole number · required

Bound the number of provider requests in flight for shared file and chat work.

JSON pathLimits → MaxConcurrent

Minimum : 1 · Maximum : 8

Requests per minute
Whole number · required

Limit locally admitted provider requests per minute across file and chat translation.

JSON pathLimits → MaxRequestsPerMinute

Minimum : 1 · Maximum : 300

Requests per day
Whole number · required

Limit locally admitted provider requests per day across file and chat translation. Monitor provider usage separately.

JSON pathLimits → MaxRequestsPerDay

Minimum : 1 · Maximum : 20000

Daily local token budget
Whole number · required

Limit daily local token reservations for file and chat requests. This estimate is not a currency billing cap or a provider account limit.

JSON pathLimits → DailyTokenBudget

Minimum : 1000 · Maximum : 100000000

Temporary-error retries
Whole number · required

Allow this many retries after eligible temporary provider errors. Use 0 to disable retries.

JSON pathLimits → MaxRetries

Minimum : 0 · Maximum : 3

Language-file character limit
Whole number · required

Bound source and translated JSON language files. Oversized English input prevents the request; an oversized translated result is rejected before file replacement.

JSON pathLimits → MaxLanguageFileCharacters

Minimum : 1024 · Maximum : 500000

Provider response character limit
Whole number · required

Reject provider responses larger than this character limit instead of parsing or applying them.

JSON pathLimits → MaxProviderResponseCharacters

Minimum : 1024 · Maximum : 1000000

Chat input character limit
Whole number · required

Keep oversized chat messages out of paid translation; affected recipients receive the original message.

JSON pathLimits → MaxChatCharacters

Minimum : 32 · Maximum : 2000

Target locales per chat message
Whole number · required

Bound the number of paid target-language requests created from one eligible global-chat message.

JSON pathLimits → MaxChatLocalesPerMessage

Minimum : 1 · Maximum : 16

Sender cooldown in seconds
Whole number · required

Require this minimum delay between paid chat translation triggers from the same sender.

JSON pathLimits → ChatSenderCooldownSeconds

Minimum : 1 · Maximum : 60

Plugins considered per bulk command
Whole number · required

Bound the loaded-plugin set considered by ait.translateallplugins. This is not a per-minute request limit.

JSON pathLimits → MaxBulkPlugins

Minimum : 1 · Maximum : 500

Privacy and player consent 2
Explicit consent (always enforced)
On / off · required

Pro 1.1.2 forces this setting to true when normalizing configuration. Setting false does not bypass saved player consent.

JSON pathPrivacy → RequireExplicitConsent
Player privacy notice
Text · required

Set the player-facing notice about external chat processing and /ait.chat on or off. This text does not grant consent.

JSON pathPrivacy → PlayerNotice
Chat model settings 4
OpenAI model
Text · required

Select the provider model for this translation route. Check its availability and cost with OpenAI before enabling requests.

JSON pathChatConfiguration → Model → Model
Legacy temperature (unused)
Number · required

Retained for older configuration files; changing it has no effect on requests in Pro 1.1.2.

JSON pathChatConfiguration → Model → Temperature
Response token limit
Whole number · required

Cap the requested completion-token allowance for this route. Too low a limit can produce incomplete responses that the plugin rejects.

JSON pathChatConfiguration → Model → MaxTokens

Minimum : 64 · Maximum : 16384

Legacy prompt (unused)
Text · required

Retained for compatibility; current requests use fixed provider instructions, so editing this prompt has no effect.

JSON pathChatConfiguration → Model → Prompt
File model settings 4
OpenAI model
Text · required

Select the provider model for this translation route. Check its availability and cost with OpenAI before enabling requests.

JSON pathLangFilesConfiguration → Model → Model
Legacy temperature (unused)
Number · required

Retained for older configuration files; changing it has no effect on requests in Pro 1.1.2.

JSON pathLangFilesConfiguration → Model → Temperature
Response token limit
Whole number · required

Cap the requested completion-token allowance for this route. Too low a limit can produce incomplete responses that the plugin rejects.

JSON pathLangFilesConfiguration → Model → MaxTokens

Minimum : 64 · Maximum : 16384

Legacy prompt (unused)
Text · required

Retained for compatibility; current requests use fixed provider instructions, so editing this prompt has no effect.

JSON pathLangFilesConfiguration → Model → Prompt

Plugin instructions

AITranslation Pro user guide

AITranslation Pro translates one plugin language file, a bounded set of loaded plugin language files, or eligible global chat for players who explicitly opt in. It supports native global chat and can use BetterChat formatting when that optional plugin is present.

Requirements

  • Rust server running Oxide or Carbon.
  • The AITranslation Pro 1.1.2 plugin file from the matching product archive.
  • Your own OpenAI API token with available provider credit.
  • English source language files for file translation.
  • BetterChat only if you want its optional formatting route.

The server owner supplies the token and pays any OpenAI charges. Free and Pro are separate, mutually exclusive products; do not install or run both together. Pro takes priority and unloads Free if both files are present.

Installation

  1. Stop the server or unload an older AITranslation Pro version.
  2. Remove AITranslation Free if it is installed.
  3. Place AITranslationPro.cs in the server's plugin directory.
  4. Start or reload the plugin once so its configuration is created.
  5. Add your OpenAI token to OpenAIToken in the protected server configuration.
  6. Review the privacy notice, permissions and local limits before enabling translations.

Keep the configuration readable only by trusted server operators. The token is not written to plugin logs.

File translation

Translate one plugin into one or more locales:

aitpro.translateplugin MyPlugin fr de

Translate a bounded set of loaded plugin language files:

ait.translateallplugins fr de

File translation reads the selected English language values, validates plugin names, locales, source JSON and local limits, then queues provider work. Only the selected English values, target languages and provider instructions are sent to OpenAI.

Each complete response must contain the exact expected keys and string values with placeholders preserved. A valid result is staged before replacement. The previous target is retained as <PluginName>.json.aitranslation.bak, with additional transaction recovery material available if replacement fails.

Player chat consent

Player chat remains local until the player explicitly runs:

/ait.chat on

The available choices are:

CommandEffect
/ait.chat onSave explicit consent for eligible global-chat translation.
/ait.chat offSave an explicit opt-out.
/ait.chat statusDisplay the current stored choice.

An unknown choice or storage failure is treated as opted out. A failed save is reported without claiming the choice changed. Team and other non-global channels pass through unchanged.

For an eligible global message, the sender and translated recipients must have aitranslationpro.chat.use and saved consent. Pro sends the eligible global-chat text, target language and provider instructions to OpenAI. A failed chat translation delivers the original message to affected recipients.

Commands and permissions

CommandAuthorization
aitpro.translateplugin <plugin> <locale1> [locale2 ...]Server console, RCON, Rust admin or aitranslationpro.admin.
ait.translateplugin <plugin> <locale1> [locale2 ...]Historical alias with the same authorization.
ait.translateallplugins <locale1> [locale2 ...]Server console, RCON, Rust admin or aitranslationpro.admin.
/ait.chat on|off|statusPublic privacy choice.
PermissionPurpose
aitranslationpro.adminInitiate paid single-plugin or bulk file translation from a trusted non-admin connection.
aitranslationpro.chat.useAllow a consenting sender to trigger paid chat work and a consenting recipient to receive translated chat.

Configuration reference

The tracked 1.1.2 configuration uses gpt-5.6-luna as the default Model for file and chat translation. The model is configurable; verify current OpenAI availability and pricing before enabling requests.

Important local controls include:

SettingDefaultEffect
Privacy.RequireExplicitConsenttrueEnforced explicit consent for chat translation.
Limits.MaxQueued32Maximum waiting file and chat requests.
Limits.MaxConcurrent2Maximum in-flight requests.
Limits.MaxRequestsPerMinute30Local per-minute request ceiling.
Limits.MaxRequestsPerDay1000Local daily request ceiling.
Limits.DailyTokenBudget500000Daily local token reservation ceiling.
Limits.MaxRetries2Retries for eligible temporary provider errors.
Limits.MaxBulkPlugins100Loaded plugins considered by one bulk command.
Limits.MaxChatCharacters500Input character ceiling for one chat message.
Limits.MaxChatLocalesPerMessage4Maximum paid target-locale fan-out per message.
Limits.ChatSenderCooldownSeconds5Minimum delay between paid chat triggers per sender.

Temperature, Prompt and LangFilesConfiguration.TimeBetweenRequestsInSeconds remain readable for older configurations but are not used to create current requests.

Privacy and diagnostics

Tokens, translated content, player chat, prompts and provider response bodies are not logged. Diagnostics contain operation details, identifiers, locales, counts and bounded error codes.

Malformed, incomplete, refused, oversized or structurally incorrect responses are rejected. Language-file responses must preserve all keys and placeholders. Chat responses must contain the single expected translated field and preserve formatting tokens.

Review the configurable player notice and obtain any local legal or operational approval required before enabling external chat processing.

BetterChat

BetterChat is optional. When it is available, Pro uses its formatting API; otherwise Pro uses the native global-chat route. Dynamic BetterChat hook ordering was not validated on a live server during the recorded final validation, so test the combination on a non-production server before relying on it.

Recovery

Before retrying a failed file replacement:

  1. Unload AITranslation Pro.
  2. Inspect the target file, its .aitranslation.bak copy and any .aitranslation.rollback recovery file.
  3. Restore the known-good copy manually if required.
  4. Remove unresolved recovery material only after confirming the target is correct.
  5. Reload Pro and run one small file translation.

The plugin blocks another replacement while unresolved recovery material is present.

Known limitations

  • Translation quality and provider availability are outside the plugin's control.
  • The operator must monitor OpenAI usage and costs as well as the local limits.
  • Chat translation is limited to eligible opted-in global chat.
  • BetterChat formatting is optional and its live hook ordering remains unverified.
  • A real OpenAI request was not executed during the recorded final validation.

Support

Use the Codefling support section. Include AITranslation Pro version, Oxide or Carbon version, whether BetterChat is loaded, the command or chat route and a redacted error code. Never post the OpenAI token, player chat or language-file contents publicly.

Install the file

After keeping a copy of the previous file, place the exported JSON at this location on your server:

oxide/config/AITranslationPro.json

Follow the plugin instructions above for dependencies and reloading. Exporting does not connect the site to your server.