Как создать lua скрипт для payday 2

Обновлено: 04.07.2024

This guide is for everyone who wants to use the various mods and scripts found on this forum to cheat in or change the behavior of PAYDAY 2.
This will be an exhaustive guide with step-by-step instructions so that everyone, even those without any background knowledge in modding or programming, can get everything working and set-up the way they want to.


Background Information

First a little information that is not a necessity, so if you're not interested in the why and only in the how, scroll down to the next paragraph.
PAYDAY 2 uses the lua scripting language to perform almost all of the game's logic. The nice thing about lua is that it is relatively easy for us to run our own lua scripts that can interact with the game the same way that PAYDAY 2 does.
To do this, however, we need to have access to some of the code that lua uses internally, to make it do what we want to do. These are called hooks.
When PAYDAY 2 first came out, we had our own home-made hook here at UC. But, as the needs of the cheaters and the modding community grew, so did the hook.
Eventually, a small group of people created BLT, which was fully open-source and had many contributors (it stands for Better Lua injecTor).
This hook served us for many years, but with the downfall of the payday2mods website, the hook stopped being updated.
Now, the final iteration and the most recent version of this hook is called SuperBLT. This hook is still actively being worked on and has many features that the original BLT did not have.


Installing SuperBLT

Click 'Yes'. A console window will pop up with all kinds of text, let it run for a little while, it is downloading some extra necessary files.
When it is done, another pop-up will show, to which you will click 'OK'.

Congratulations! You've just installed SuperBLT!

Now that we've installed SuperBLT we can start creating our mods for it.
Here, a "mod" simply means one or more scripts, doing one or more tasks. It is up to you to decide how you want to organize things.
You can have one mod containing every script you need, one mod for each script, or a combination of the two!
To create a new mod you will have to open the mods folder in the base PAYDAY 2 directory from before. There are already a few folders in there, but pay no mind to them.
Here we will make a new folder, with the desired name of our mod. In this guide we will be creating a test mod simply called "Test Mod", how original!

One thing every mod needs is a mod definition file, which is a simple text document inside our mod folder called mod.txt, so we create an empty text file and give it the proper name.
To begin writing our mod.txt file, we start by typing an open curly bracket on the first line, followed by a blank line and ending with a closing curly bracket.
These curly brackets simply define the beginning and the end of our definition file.
The first few lines we will write inside these brackets are about the basic mod information. The format of these lines are an identifier in quotes, followed by a colon, followed by the contents also in quotes.
Don't worry if this doesn't make sense yet, the example will clear everything up.

Here is an example of what we should have filled in by now, this is the entire mod.txt file:

Here we notice a few things. First of all, I have indented every line by 1 tab. This is not necessary, but it does greatly improve readability, especially when the definition file gets larger, so it is recommended that you keep to the style in this guide.
Secondly, a very important part, is that there is a comma behind every line except the last one. This comma indicates that there is more information to come.
If there is no comma behind a line, that means that we are done with this section, and since the only section in our definition file thusfar is the basic information of our mod, that means that no comma means the end of the file.

Now comes the part where we add information about our lua scripts.
There are four types of lua scripts: Hooks (also called postrequire), Pre-Hooks, Persist Scripts and Keybinds.
We will not discuss Pre-Hooks as they rarely happen in practice.
We will also not discuss Persist Scripts because THEY SHOULD NEVER BE USED. Seriously.
If you ever come across a script where the author claims you have to run it as a persist, DO NOT USE IT.
It won't crash your game or anything bad, it's just an old relic of older hooks that does not have a single use case. It will completely slow down your game and it is a clear sign of a badly written script.
So, let's discuss the two types of scripts we will be using.

Hooks / Postrequire

A postrequire script gets loaded/executed immediately after a specific script has been loaded by the game.
This is extremely useful for when we want to change some values from before they get used, but after they have been initialized. Think of weapon damage or mission rewards.
To create our hooks we will add one more identifier to our mod.txt file called "hooks", but instead of simply giving it another quoted value, we want to give it a list of hooks as a value. To do this we write an open square bracket, followed by a blank line and a closing square bracket, similarly to our beginning curly brackets.
Our mod.txt file should look like this now:

Do not forget the comma after our version! We will also indent our text between the square brackets by 2 tabs instead of 1.
We want to be able to define multiple hooks for multiple scripts. To do this we start and end a hook entry with curly brackets, and separate them with a comma, as we are used to by now.

Before we write our hook definition, we will need a lua script containing the desired code.
Go back to our mod folder and create a new text file, but instead of giving it a .txt extension, we give it a .lua extension!
It is usually beneficial to give it a name that is recognizable, but it is not necessary.
For our example we will take a script that increases all weapon damage and put it in a file called damage.lua.

The place where you found the code or script should clearly state one piece of information, and that is where to hook it to, also called the hook ID.
These IDs look like normal filepaths, for our example it will be lib/tweakdata/weapontweakdata.
Now that we have our two pieces of information, we can add them to our mod definition file!
Inside the square brackets we will add a hook entry with curly brackets, and inside there we add two entries called "hook_id" and "script_path", both of which are pretty self-explanatory.
Note that script_path is relative to your mod.txt file. If our damage.lua file is in the same folder as our mod.txt file, then that is all we have to write.
If, however, it is in a sub-folder called, for example, "Lua", then script_path becomes "Lua/damage.lua".

Our mod.txt file now looks like this:

Please note all the indentation and where to place commas. It should all make sense!

To make sure we understand, let's add one more postrequire script.
This one changes some things about ECM jammers so we name the script file ecm.lua and the hook ID is lib/units/equipment/ecm_jammer/ecmjammerbase.
Let's add it to our definition file!

This concludes the section on postrequire scripts and hooks.
A final note to say that these scripts automatically perform their function, without any user input, which brings us to our next section.

Keybinds are useful for when we want to execute a piece of code when the user presses a certain key. Think of refilling ammo or finishing a heist with one button press.
To start with adding keybinds, we add a new entry to the main part of the definition file (so after the closing bracket of the hooks!) and call it "keybinds".
Once again we also add the square brackets, since we want to be able to add multiple keybinds:

name The name of the keybind to display in the keybinds menu.
description A short of description of your keybind.
script_path The path to the script that should be ran when the keybind is pressed.
run_in_menu A boolean (either true or false) of whether this keybind should run when pressed during the menu state.
run_in_game A boolean (either true or false) of whether this keybind should run when pressed during the game state.
localized A boolean (either true or false) of if the menu should attempt to use the name and description as localization keys (set this to false unless you know what it means).

Let's add a keybind for refilling ammo (which we put in a file called ammo.lua) as an example to our mod.txt file:

Note all the indentation and commas again.
We will add one more keybind to complete our example and understanding.
This is a keybind to instantly finish the heist with a win, located in win.lua:

Read the next section to see how to configure the keybinds.


Testing and Configuring Our Mod

Now comes the time to test out our mod to see if everything works. Let's launch PAYDAY 2 as we normally would.
Once on the main menu, click on Options, there should be three new entries here somewhere in the middle, BLT Mods, Mod Options and Mod Keybinds.
Let's look inside BLT Mods to make sure our mod is actually properly loaded.
If the mod is mentioned there, click on it for more information. Here you can also click Toggle Developer Info to see that our hooks have properly been initialized:

The last thing we need to do is configure our keybinds. Let's go back to the Options menu and click Mod Keybinds.
Here is a list of all the keybinds defined in all your mods. Simply click one then click a key, that key is now registered to that mod keybind.
Whenever you press that key, the script associated with the keybind will be run.
For example, I have set our refill ammo to insert and have not set the instant win keybind yet:

That concludes all you need to know, congratulations!


More Information & Development

This section is for those who want to do a little more research on how to configure their mods to the fullest extent and for those who want to develop their own scripts instead of using those of others.
The documentation for the original BLT can be found here. SuperBLT supports this exact format, which is the one we used in this guide.
However, SuperBLT supports a lot more, and the documentation for that is:
XAudio API
Automatic Updates
XML Tweaker (used for modifying base game files!)
XML Configuration Files (a different way to create mod definition files)

You will need at least a basic understanding of the lua programming language before you begin creating mods and scripts.
If you do, the best way to learn is to look at other people's scripts and learning from them.
How are they made, why do they work, et cetera.

I hope this guide makes it possible for everyone to modify the game we all love playing.
As always, please ask any questions you might have, either in the threads or by sending a PM.
If you want a particular script made but don't have the know-how to do it yourself, try asking on this request thread:
New lua scripts/snippets collection + will create requests

Q: What do I do when the script author doesn't state whether it's a keybind or a postrequire hook?
A: Use it as a keybind! Most postrequire scripts still work as a keybind, and if it doesn't you can always ask the author.

Q: What do I do when I have to postrequire a script to multiple paths?
A: Simply add an entry to the hooks for each path to the same script, like this:

Q: Where is the crash log located?
A: %localappdata%/PAYDAY 2/crash.txt

Moderator note Is this thread missing information, or is there an error that needs to be corrected? Please click the REPORT button on the bottom right of this post and leave a detailed note for forum staff, and it will be reviewed and corrected as soon as possible.

Как создать lua скрипт для payday 2

Greetings, I've got blt installed and have been using a couple mods for a while. Now I want to write my own.

There are some values in the countourext.lua that I want to overwrite. I've tried my hand at it, but it doesn't appear to be working:

Here's my current code if you want!

As you can see, I just want to change the colors of certain outlines but it doesn't appear to be working. I've got a mod.txt in the right place, what am I doing wrong?

There are also some values in tweakdata I'd like to overwrite so this will help.


11 ноя. 2016 в 6:20


11 ноя. 2016 в 6:38

I don't have much experience with pd2's lua and lua in general, but here is how I see this.

I think you need to declare/change the existing variables by accessing them straight away, instead of overriding the whole table.

Like
ContourExt._types.teammate.color = Vector3(32, 170, 255 ) / 255
ContourExt._types.teammate_downed.color = (Vector3(32, 170, 255 ) / 255) * 0.20

Also, the original values are declared in the beginning of the script, so I think you'll have to write this into a function (init() should do) to make the game actually execute your code.

If you are not going to use this mod with other mods that change countourext.lua, you can just hook the entire original file with your changes and it should work.

11 ноя. 2016 в 15:52

I don't have much experience with pd2's lua and lua in general, but here is how I see this.

I think you need to declare/change the existing variables by accessing them straight away, instead of overriding the whole table.

Like
ContourExt._types.teammate.color = Vector3(32, 170, 255 ) / 255
ContourExt._types.teammate_downed.color = (Vector3(32, 170, 255 ) / 255) * 0.20

Also, the original values are declared in the beginning of the script, so I think you'll have to write this into a function (init() should do) to make the game actually execute your code.

If you are not going to use this mod with other mods that change countourext.lua, you can just hook the entire original file with your changes and it should work.

♥♥♥♥♥. So I will have to copy the function init() from the original lua? Or just instantiate (execute) it? If so, how? Or will it automatically execute? I will try overriding the values in the way you mentioned first.

Thank you for the help.

11 ноя. 2016 в 16:08

Not sure what you're doing with that _G thing at the top, but just overriding the whole object like you're doing in your first post should work I think, although it'd be preferable to just change the spots you want to avoid causing conflicts(like the 2 lines in the middle of andole's post)

check mods/log and see if there are any messages. Maybe it's failing to load because of a stray character or mismatched brace or something.

11 ноя. 2016 в 16:13

Just looked at the file, and what you're missing is this:

ContourExt.indexed_types = <>
for name, preset in pairs(ContourExt._types) do
table.insert(ContourExt.indexed_types, name)
end
table.sort(ContourExt.indexed_types)

The original file makes the table, then sorts it into indexed_types, then uses indexed_types instead of _types, so modifying types afterwards won't change anything. If you paste that chunk at the end of your file you'll rebuild indexed_types, and it should use that.

11 ноя. 2016 в 16:32

Not sure what you're doing with that _G thing at the top, but just overriding the whole object like you're doing in your first post should work I think, although it'd be preferable to just change the spots you want to avoid causing conflicts(like the 2 lines in the middle of andole's post)

check mods/log and see if there are any messages. Maybe it's failing to load because of a stray character or mismatched brace or something.

11 ноя. 2016 в 16:44

Just looked at the file, and what you're missing is this:

ContourExt.indexed_types = <>
for name, preset in pairs(ContourExt._types) do
table.insert(ContourExt.indexed_types, name)
end
table.sort(ContourExt.indexed_types)

The original file makes the table, then sorts it into indexed_types, then uses indexed_types instead of _types, so modifying types afterwards won't change anything. If you paste that chunk at the end of your file you'll rebuild indexed_types, and it should use that.

Indeed! Thank you very much. was a logic error, lol!!

If I use this same process for tweak_data. should work the same yeah?

11 ноя. 2016 в 20:17

A lot of the tweak_data is built by functions, so it'd generally be better to hook the functions and alter the structures after each run of the function that builds it. Use a PostHook to avoid conflicts with other mods:

Hooks:PostHook(NameOfStructure, "name_of_function", "MakeUpAUniqueName", function(self, . )
code here
end )

11 ноя. 2016 в 20:57

Do not screw with the contour indexes. It is unnecessary if you're only changing contour colors, and it'll most likely break contour syncing badly for both you and peers if you're adding/removing contour types. The only time you should touch that at all is if you need a new contour type to sync to peers and you're absolutely certain that all peers in the game have defined the same type (or at least have something in the same index position).

If you're just looking to change a color, this is all you need:

Hook that script to "lib/units/contourext" and you're set. The table is a static member of the ContourExt class, so it'll exist after the script loads and you can modify it directly. No need to rely on init functions, which I might add runs for each unit with the contour extension, so that's not a very efficient method either way. In this particular case, it changes the contour of cameras to use the brighter red color of the extra damage marking on units rather than the standard pale red. Replace the color and the contour type with whatever you want.

If you want to add a new contour, then you can do something like this:

Here, it's a blue color that lasts 10 minutes. There are two things to note though; you need code to support adding and possibly also removing the contour, and also make sure that you do not sync this contour as peers will probably have no idea what to do with it if you tried. 11 ноя. 2016 в 20:58

A lot of the tweak_data is built by functions, so it'd generally be better to hook the functions and alter the structures after each run of the function that builds it. Use a PostHook to avoid conflicts with other mods:

Hooks:PostHook(NameOfStructure, "name_of_function", "MakeUpAUniqueName", function(self, . )
code here
end )

I'm look to replace mostly just visual aspects, like colors and such. which appear to mostly be static variables. But I will try and follow the functions as you suggest. I will repost if I run into difficulty. Thank you so much for the help and advice! 11 ноя. 2016 в 21:05

Do not screw with the contour indexes. It is unnecessary if you're only changing contour colors, and it'll most likely break contour syncing badly for both you and peers if you're adding/removing contour types. The only time you should touch that at all is if you need a new contour type to sync to peers and you're absolutely certain that all peers in the game have defined the same type (or at least have something in the same index position).

If you're just looking to change a color, this is all you need:

Hook that script to "lib/units/contourext" and you're set. The table is a static member of the ContourExt class, so it'll exist after the script loads and you can modify it directly. No need to rely on init functions, which I might add runs for each unit with the contour extension, so that's not a very efficient method either way. In this particular case, it changes the contour of cameras to use the brighter red color of the extra damage marking on units rather than the standard pale red. Replace the color and the contour type with whatever you want.

If you want to add a new contour, then you can do something like this:

Here, it's a blue color that lasts 10 minutes. There are two things to note though; you need code to support adding and possibly also removing the contour, and also make sure that you do not sync this contour as peers will probably have no idea what to do with it if you tried.

Someone suggested I get into contact with Seven, so you reputation proceeds you. =)

I'm just looking to change colors, specifically I have some custom colors in mind. I am not looking to add new contours to anything, or remove them. I am not trying to sync changes across clients, I only care if it's local to me as I am only looking to change colors/visual aspect. I could do so to an extent with some mods that were already out there. like fading contour, bag contours, etc. but I didn't know where all the variables were stored or how it worked until looking at the decompiled lua. Still not 100 on how it all works, but in any event don't call init and looks like you're saying the most effecient way to simply directly assign the value to the variable without any other functions or anything, if i understand right. I will try and follow your advice. THank you for now!

11 ноя. 2016 в 21:32

If you just want to change colors, then there's not a lot you need to worry about. Sync calls only care about the type index (which is why you shouldn't mess with that unless you know what you're doing), and the actual effect is strictly local and relies on what values such as the color you have defined for that specific type.

Just changing the color is, as noted above, quite simple:

The same can be done for fadeout, priority etc.

More advanced behavior is a bit more complicated. Fading requires hooking into the update function and changing the opacity manually. Removing the color (i.e. setting it to nil) will let you manually change color dynamically by calling the change_color function. Since the LOD update, contours have also had some crashing issues that may become more apparent if you add/remove contours too frequently as they never managed to fully fix the bug that caused crashes when marking units even if they did manage to reduce the probability, so that's something to be careful with as well.
Bags are a whole different beast. They don't actually use the contour extension. IIRC, you need to mess around in the interaction extension to find anything relevant to the bag contours. I do have a script for it, but it has been collecting dust for I don't know how many years now so it's not exactly fresh in memory.

11 ноя. 2016 в 21:37

If you just want to change colors, then there's not a lot you need to worry about. Sync calls only care about the type index (which is why you shouldn't mess with that unless you know what you're doing), and the actual effect is strictly local and relies on what values such as the color you have defined for that specific type.

Just changing the color is, as noted above, quite simple:

The same can be done for fadeout, priority etc.

More advanced behavior is a bit more complicated. Fading requires hooking into the update function and changing the opacity manually. Removing the color (i.e. setting it to nil) will let you manually change color dynamically by calling the change_color function. Since the LOD update, contours have also had some crashing issues that may become more apparent if you add/remove contours too frequently as they never managed to fully fix the bug that caused crashes when marking units even if they did manage to reduce the probability, so that's something to be careful with as well.
Bags are a whole different beast. They don't actually use the contour extension. IIRC, you need to mess around in the interaction extension to find anything relevant to the bag contours. I do have a script for it, but it has been collecting dust for I don't know how many years now so it's not exactly fresh in memory.

Indeed, just simply a colour change. I've been using different shades of blue as you can see in my screenshots. Vector3(0.125, 0.666, 1.0) has been the base. Bags were under the interext or some similar lua in the mods i peeked in. No worries and thank you for your help. I appreciate the advice and will play carefully =) 12 ноя. 2016 в 23:41

If you just want to change colors, then there's not a lot you need to worry about. Sync calls only care about the type index (which is why you shouldn't mess with that unless you know what you're doing), and the actual effect is strictly local and relies on what values such as the color you have defined for that specific type.

Just changing the color is, as noted above, quite simple:

The same can be done for fadeout, priority etc.

More advanced behavior is a bit more complicated. Fading requires hooking into the update function and changing the opacity manually. Removing the color (i.e. setting it to nil) will let you manually change color dynamically by calling the change_color function. Since the LOD update, contours have also had some crashing issues that may become more apparent if you add/remove contours too frequently as they never managed to fully fix the bug that caused crashes when marking units even if they did manage to reduce the probability, so that's something to be careful with as well.
Bags are a whole different beast. They don't actually use the contour extension. IIRC, you need to mess around in the interaction extension to find anything relevant to the bag contours. I do have a script for it, but it has been collecting dust for I don't know how many years now so it's not exactly fresh in memory.

error I'm getting in crash.txt is: "Application has crashed: C++ exception
[string "lib/managers/group_ai_states/groupaistateba. "]:176: attempt to index field 'stop_action' (a nil value)

payday2_win32_release (. ) .
payday2_win32_release (. ) .
payday2_win32_release (. ) .
payday2_win32_release (. ) zip_get_name
ntdll (. ) RtlAllocateHeap

Payday 2: LUA Скрипты [1.11.2 - Update 30.2]


В архиве есть несколько LUA скриптов:
F1 - Weapons, Mods, Maney, Level, Skills (Нужну сумму, уровень и количество очков навыка можно изменить в файле скрипта.)
F2 - Masks, Materials, Textures, Colors, Weapon mods
F3 - Set FOV to 80

Установка:
Распаковать в папку с игрой. Если потребуется, согласиться на замену файлов.

Как использовать:
Во время выполнения контракта нажимаем соответствующие скриптам клавиши.

(!) Для подключения новых скриптов открываем(любым текстовым редактором) и редактируем файл PD2Hook.yml


Просто обычный день в банке

Лицо как маска

Симулятор грабителя наоборот


Никаких банов за это не дают. PayDay не имеет VAC защиты, или вообще какого-либо античита. Тем более что все эти открытия идут на офлайн уровне.


На счет редактирования хука, советую Notepad++, удобней.


xxLISxx у меня есть патч, который снимает блок с DLC притом иш не нужно покупать, просто запускаеш игру через патч и у тебя бесплатное DLC, запускаеш без патча DLC обратно заблочено. P.S. если кому нужно пишите, залью на сайт.


Как открыть оружие из DLC ?


xxLISxx, а для LUA нужна специальная прога для открытия?


как удалить его все последствия после использования. например у меня стали недоступны маски из дополнений хотя все доп куплены . лиц вер.. steam


Aleksandr Pyshkin Вот про удаление интересный вопрос и скорее всего его нужно задавать на забугорных ресурсах. Если тебе нужно было что-то одно то нужно было бы посмотреть код скрипта и убрать всё ненужное, а так даже не знаю. Про недоступность масок и прочего. Было подобное у меня один раз, помогал обычный перезапуск игры после активации скрипта или простой перезапуск. rashik666 Это да. Подобные скрипты больше подходят для пираток, чтоб с друзьями на равных ради удовольствия побегать :)


Пьер Борцов У меня было такое было,купил длс,по идее должно всё открытся но на всех предметах с длс пишет:"Этот предмет с Loot bag" (У тебя лицуха?) P.S. Ктото напишите мне скрипт для открытия предметов с длс loot bag


Дадут ли за это бан ?


GIGABAIT228 нет. будет лишь блокировка подключения к игрокам, если при создании комнаты они включали защиту от читеров


GIGABAIT228 Возможно, но не на пиратке :) Для разблакировки DLC оно должно быть у тебя куплено, если у тебя steam версия игры. Ну а если крякнутая и со всеми дополнениями, просто нажать F1 и F2 во время выполнения контракта.


Спасибо большое . Все работает отлично


А могут забанить если буду играть через свой акк стим?


Влад Крут Ответ был дан ранее.


Ass_2033 Суть в том, чтобы получить доступ к контенту(DLC), контент у тебя должен быть. А вот каким образом ты его получил это уже читу без разницы. Если я ничего не путаю.


Datcon обычным блокнотом открывай


DEVIL_MC не открывает


Datcon ты хоть не через NotePad открываешь ?


можете сказать как пользоваться а то я не особо понимаю) у меня лицензионка что например надо сделать чтобы денег нафармить или опыт?


xxLISxx не подскажешь как пользоваться?


На версии 1.11.3(30.3) работает.



xxLISxx Контент изначально всегда находится в игре, либо докачивается вместе с обновлениями для игры, а доступ к нему даёт покупка в сервисе Steam, если бы было наоборот тогда бы ты не смог бы удивить в перечне оружие из DLC, поскольку данных о нём у тебя не было бы, а прога о которой я говорил, блокирует у игры запрос на проверку этих самых DLC и выдаёт игре ложный ответ (который грубо говоря, сообщает ей - мол всё З**Б*С *) и игра даёт доступ на пользование контентом, такчто то о чём ты толковал слегка не уместно. Согдасен что суть в получении доступа к контенту, а вот на счёт от куда он был взят я поспорю, поскольку если у тебя лицензия то ты не откуда его не сможеш взять кроме как из обновлений которые Steam сам загружает когда это этребуется.


thetophai Возможный вариант решения проблемы написал в личку.


Ass_2033 Зря только писал мне всё это. Я лишь продолжил тему общения Гигабайт228.

Скрипты для мультиплеера Payday 2


Эта тема про скрипты на Payday 2, была на старом сайте.
1. Скачиваем файл (Тык) и кидаем его в папку с игрой
2. В корневой папке игры создаем файл script.lua
3. Открываем файл, который создали, в блокноте(или в другом подобном редакторе) и вставляем в него скрипт(смотри ниже)
4. После начала задания нажимаем кнопку "Insert", чтобы активировать скрипт

-- Активировать в меню, нажать CRIMENET, затем обратно выйти в меню
-- Уровень/Очки опыта/Деньги

-- Открыть все оружия

-- Открыть все модификации к оружию

-- Открыть все маски

-- Активировать непосредственно в игре:
-- Бессмертие (только если хост)

-- Увеличить скорость бега

-- Убрать разброс/отдачу оружия

-- Увеличить скорость стрельбы

-- Уменьшить задержку между сменой оружия

-- Бесконечные заряды у пилы

-- Разрешить взаимодействие со всеми предметами (c4, ECM и др.), даже если их у вас нет

-- Мгновенное взаимодествие с предметами

-- Бесконечные патроны у турели без отдачи/разброса

-- Отключить камеры/тревогу (подобие полной невидимости, только если хост), возможны вылеты игры, там где пройти карту по стелсу невозможно (Rats 3 день)

-- Мгновенное сверление дрелью

-- Мгновенная победа (запустили карту, скипнули ролик, нажали Insert - и победа! / только если хост)

Всё работает в мультиплеере(ну или почти всё).

Читайте также: