DirkScripts
Supported Languages
Every dirk script ships translated into the same thirteen languages. Pick one in Config Studio → dirk_lib → Basic → Language and it applies to every dirk script on the server at once — you don't set it per resource.
| Code | Language |
|---|---|
en | English |
de | Deutsch |
es | Español |
fr | Français |
it | Italiano |
ja | 日本語 |
lt | Lietuvių |
nl | Nederlands |
no | Norsk |
pl | Polski |
pt | Português |
zh-CN | 简体中文 |
zh-TW | 繁體中文 |
This is the standard set. A new script is not considered finished until it has a file for all thirteen, and the language dropdown never offers an option that has no file behind it — an option with nothing behind it silently renders English, which looks like a broken translation rather than a missing one.
#Item names come from your inventory
Fish, bait, rods and tools take their name and description from your
inventory item, not from the script. If you want those translated, translate
them in your items.lua (or your inventory's equivalent) — the script reads
whatever is there.
The names in the script's own config are only a seed, used for items you have not installed yet.
#Adding or correcting a language
Translations live in locales/ inside each resource, one JSON file per
language, keyed identically to en.json.
To correct a string, edit the file for your language and restart the resource. Your change survives updates only if you keep a copy — the shipped files are overwritten on update, so keep a note of anything you have changed.
To add a language we do not ship:
- Copy
locales/en.jsontolocales/<code>.jsonin each dirk resource. - Translate the values, leaving the keys alone.
- Add
<code>to thelanguageenum indirk_lib/schema.jsonso it appears in the dropdown. - Restart
dirk_lib, then the resource.
Anything left untranslated falls back to English rather than showing a blank, so a partial file is safe to run.
ℹ️ Sent us a translation? We are happy to ship it — open a ticket and we will fold it into the next update so you stop having to reapply it.
#Placeholders
Some strings carry %s or {} placeholders that the script fills in at
runtime — a player name, a price, a fish. Keep them in your translation, in the
same number and kind, or that line will render with a hole in it.
json"ZoneLevelRequired": "You need fishing level %s to fish in %s."
Word order can change freely; only the placeholders themselves have to survive.
Last updated on 30 September 2026
