[Tutorial] Blue Pheonix AdminTools for Epoch 1.0.2.5

Vampire

OpenDayZ Rockstar!
Tired of posting the same answers to multiple threads, so I'm posting a tutorial here.

First, download the admintools from github using this link. Note that this is 4 versions of the admintools.

https://github.com/BluePhoenix175/DayZ-Admin-Tools-/archive/master.zip

Open that up with Winrar/7zip or whatever your choice of software is to open zip files, and extract it to a folder.

Now the folder contents that you need is "DayZ admin tools(chernarus No Debug)". Copy that folder to your desktop as it is all we need.

Unpack your mission.pbo and copy the admintools folder to your mission.pbo.
After that, open your admintools folder (now inside of your mission.pbo) and delete playermoniter.fsm. Its outdated, and isn't required, and we won't be using it.

Now you need to open Activate.sqf and replace ###### with the ID's of you and/or your/the admins who need to use the tools. You have to do the same in AdminToolsMain.sqf. There are multiple of them. Do it for all of them you see.

After you have done that and saved those files, open your init.sqf and add this to the bottom of it.

Code:
//Admin Tools
[] execVM "admintools\Activate.sqf";

And add this line below dayz_maxLocalZombies:
Code:
DZE_teleport = [99999,99999,99999,99999,99999];

After that you can save and repack your mission.pbo, and then unpack your server.pbo.

You need to open your server_cleanup.fsm and navigate to your "Killing a Hacker" code block. With default epoch 1.0.2.5 (without SargeAI or Missions or an outdated version of DZAI) your default line will look like this. This is an EPOCH SPECIFIC LINE. It wont work for vanilla dayz.
Code:
      "    if(vehicle _x != _x && !(vehicle _x in _safety) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {" \n

You need to change this line to look like this for the admintools. If you have a different addon installed that asks you to modify this line, you will need to combine them.
Code:
      "    if(vehicle _x != _x && (vehicle _x getVariable [""Sarge"",0] != 1) && !(vehicle _x in _safety) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {" \n

Then you have to save that file, and open server_updateObject.sqf in the compile folder.
You need to add this line:
Code:
if (_object getVariable "Sarge" == 1) exitWith {};
Directly under this block of code:
Code:
if ((typeName _objectID != "string") || (typeName _uid != "string")) then
{
    diag_log(format["Non-string Object: ID %1 UID %2", _objectID, _uid]);
    //force fail
    _objectID = "0";
    _uid = "0";
};

Then repack your server.pbo and you should get an admintools scroll menu approximately 5-10 seconds after login. Sometimes it glitches when you change skins, and you have to relog to see it again.

Some fast faqs:
To stop spectating a player you hit F3.

To teleport, with ESP on and your map open, hold Alt and left click on the map.
To finalize to teleport and become "unstuck", hold W and hit space.
If you are teleporting while in a plane or a helicopter, you have to hold Q and hit space.

If you have ESP on, hitting F7 gives you a list of toggleable options.

If you have safezones, entering and then exiting the safezone will remove your godmode.
 
After that you can save and repack your mission.pbo said:
" if(vehicle _x != _x && !(vehicle _x in _safety) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {" \n[/CODE]

You need to change this line to look like this for the admintools. If you have a different addon installed that asks you to modify this line, you will need to combine them.
Code:
      "    if(vehicle _x != _x && (vehicle _x getVariable [""Sarge"",0] != 1) && !(vehicle _x in _safety) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {" \n

Then you have to save that file, and open server_updateObject.sqf in the compile folder.
You need to add this line:
Code:
if (_object getVariable "Sarge" == 1) exitWith {};
Directly under this block of code:
Code:
if ((typeName _objectID != "string") || (typeName _uid != "string")) then
{
    diag_log(format["Non-string Object: ID %1 UID %2", _objectID, _uid]);
    //force fail
    _objectID = "0";
    _uid = "0";
};

I dont have these blocks of code.. How would i add the needed code lines?

thanks in advance
 
ah thanks alot!

edit: Actually the killing a hacker block has no code similar to the one we need to find...

Code:
server_checkHackers = {
    if (DZE_DYN_AntiStuck2nd > 3) then { DZE_DYN_HackerCheck = nil; DZE_DYN_AntiStuck2nd = 0; };
    if(!isNil "DZE_DYN_HackerCheck") exitWith {  DZE_DYN_AntiStuck2nd = DZE_DYN_AntiStuck2nd + 1;};
    DZE_DYN_HackerCheck = true;
    {
        if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x)  && !((typeOf vehicle _x) in DZE_safeVehicle)) then {
            diag_log ("CLEANUP: KILLING A HACKER " + (name _x) + " " + str(_x) + " IN " + (typeOf vehicle _x));
            (vehicle _x) setDamage 1;
            _x setDamage 1;
            sleep 0.25;
        };
        sleep 0.001;
    } forEach allUnits;
    DZE_DYN_HackerCheck = nil;
};

thats all i see when i search "Killing a hacker" in server_functions.sqf

or do i replace this line?
if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {

with

" if(vehicle _x != _x && (vehicle _x getVariable [""Sarge"",0] != 1) && !(vehicle _x in _safety) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {" \n
 
Last edited:
So how would I merge this,

Code:
if(vehicle _x != _x && !(vehicle _x in PVDZE_serverObjectMonitor) && (vehicle _x getVariable [""Sarge"",0] != 1) && !(vehicle _x in _safety) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {

with this,

Code:
" if(vehicle _x != _x && (vehicle _x getVariable [""Sarge"",0] != 1) && !(vehicle _x in _safety) && (isPlayer _x) && !((typeOf vehicle _x) in DZE_safeVehicle)) then {" \n
 
Just as a side note to the original post, there is a more epoch specific variant of the tool for epoch floating around the forums, wouldn't that be better suited for the tutorial treatment? Or does it have some oncompatibilities with the older 2.5 Epoch?
 
Back
Top