Jump to content

Mugzy

Member
  • Posts

    55
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Mugzy reacted to nedfox in FAQ: How to make backups of your Redis database   
    So you want backups of your database ? Yes, of course !
    The output is pretty small, don't be afraid , they are not 8Gb dumps every time, but really, really small.
     
    Quick and dirty, not too much explanation needed, so here are the 2 batch files you need :
     
    1] Get redis-cli.exe (provided in the redis distribution ZIP). Place it in the same folder as redis-server.exe
     
    2] Create a batchfile in the DB folder (by default "C:\Program Files (x86)\Steam\SteamApps\common\Arma 3\DB") called rdate.cmd. Copy the following text in it and save.
    @echo off rem ******************************************************************* rem rem Set environment variables with date/time information. rem rem DT_MONTH .................... Two digit month rem DT_DAY ...................... Two digit day rem DT_YEAR ..................... Four digit year rem DT_HOUR ..................... Two digit hour rem DT_MINUTE ................... Two digit minute rem DT_SECOND ................... Two digit second rem DT_RFC ...................... YYYYMMDDTHHMMSS rem rem ******************************************************************* rem Grab date and time values for conversion. SET _CUR_DATE=%DATE% SET _CUR_TIME=%TIME% FOR /F "tokens=1-4 delims=/.- " %%a IN ("%_CUR_DATE%") DO SET DT_MONTH=%%b FOR /F "tokens=1-4 delims=/.- " %%a IN ("%_CUR_DATE%") DO SET DT_DAY=%%c FOR /F "tokens=1-4 delims=/.- " %%a IN ("%_CUR_DATE%") DO SET DT_YEAR=%%d rem Convert from "11:40:12.82" to individual parts by using a DOS FOR loop. FOR /F "tokens=1-4 delims=:." %%a IN ("%_CUR_TIME%") DO SET DT_HOUR=%%a FOR /F "tokens=1-4 delims=:." %%a IN ("%_CUR_TIME%") DO SET DT_MINUTE=%%b FOR /F "tokens=1-4 delims=:." %%a IN ("%_CUR_TIME%") DO SET DT_SECOND=%%c SET DT_RFC=%YEAR%%MONTH%%DAY%T%HOUR%%MINUTE%%SECOND% 3] Create a batchfile in the same folder called backup.cmd and paste the following code in.
    @echo off rem If you want to skip backups, delete the REM at the next line rem goto notthistime C: cd "C:\Program Files (x86)\Steam\SteamApps\common\Arma 3\DB" call rdate.cmd SET YEAR=%DT_YEAR% SET MONTH=%DT_MONTH% SET DAY=%DT_DAY% SET HOUR=%DT_HOUR% SET MINUTE=%DT_MINUTE% SET SECOND=%DT_SECOND% SET BACKUP_FILE=Epoch-%YEAR%-%MONTH%-%DAY%-%HOUR%.rdb rem redis-cli.exe is in the ZIP file obtained from the Redis site. del dump.rdb /y redis-cli -a <YOURREDISPASSWORDHERE> save rename dump.rdb %BACKUP_FILE% rem the next line copies the DB to a different location for safe keeping. rem xcopy %BACKUP_FILE% <safe backuplocation> rem then also unremark next line to delete the dumpfile from the dabatase folder. rem del %BACKUP_FILE% /y :notthistime To manually perform a backup, just start the backup.cmd and after dumping it will rename the output to a file named Epoch-year-month-day-hour.rdb
    If you want, remove some remarks to copy the created file to another location on your network and delete the dumpfile.
     
    To schedule it :
    If you have command prompt access , execute these commands elevated (Execute as Administrator) :
     
    cmd.exe (run as admin!)
    schtasks /create /tn "redis Backup" /tr "C:\Program Files (x86)\Steam\SteamApps\common\Arma3\DB\backup.cmd" /sc hourly /st 00:00 If you do not have access to the command prompt, find your way to the scheduler and put them in at your required times.
    It also gives you the options to run the tasks Interactive, which will have a visible command window on your desktop.. The commands from the stuff above exectutes the tasks invisible !!
     
     
    ----------------
    To restore (and correct me if I'm wrong, it looks plain and simple) :
     
    Stop Redis, delete dump.rdb , copy the desired backupfile back to the DB folder and rename it to dump.rbd, restart Redis, done !
    ----------------
     
     
    ----------------
    Redis makes a dump.rdb itself once every xx minutes, but this methode forces a timed backup of the exact time you want.
    ----------------
     
     
    Have fun,
     
    NedFox [TZW]
     
     
    TimeZone Warriors/GOB Server : 80.60.255.84:2324
  2. Like
    Mugzy got a reaction from calamity in Get admin menu working ?   
    Double click the CTRL click line.  It will turn green, then you can hold down ctrl and click on the map on the right side of the screen.
     
    Double click it again to turn it off.
  3. Like
    Mugzy reacted to NoxSicarius in [How To/Update] Build Snap with Right Click custom build, admin fast build + upgrade Version 1.6.5 IMPORTANT UPDATE: extra_rc   
    Would you consider adding this into the epoch admin tools? If not do you mind if I do so? This could be a real help for admins to modify their server as they see fit to make their server unique and integrating everything they need into a single tool is the best way to go about it. For my personal tool I put everything inside the tool rather than have multiple scroll options. If you aren't comfortable with adding it to the tool i could simply make a tutorial to integrate it with the tool if the players want it.
  4. Like
    Mugzy reacted to OtterNas3 in [RELEASE] VASP - Vehicle and Skin preview on Traders v1.2 (Updated 06/18/2014)   
    Hey folks,
     
    some time ago i pushed something to the public, but here is next!
     
     
    "Damn which Truck was the open Camouflage one?"
    "Bah cant remember which of the Vehicles holds the most amount of Magazines and Weapons..."
    "How many Players can Drive in XYZ Vehicle?"
    "How fast can that Vehicle go?"
     
    "What the hell a 'Donald' skin look like?"
    "'Rocker 1 2 3 whats the difference?"
     
    Ever had such questions?
     
     
    Here you go - VASP - Vehicle and Skin Preview
     
     
    This little Mod let you Preview any Vehicle or Skin in the TraderMenu.
    Vehicles will show additional Infos like:
    Max Speed Max Seats Max Cargo Weapons Max Cargo Magazines Max Cargo Backpacks Max Fuel Max Armor All stuff is totally client side spawned and will not be visible to any other Player on Server!
     
    The Player clicks in the Tradermenu on a Vehicle or a Skin and he will get a hint message to press F5 for a preview of it.
     
    While in preview, you can use these Hotkeys:
    Zoom in/out:       Arrowkeys up/down
    Rotate left/right: Arrowkeys left/right
    Close preview:   F5
     
    After preview the Tradermenu will open again on the same spot the Player left it for the preview.
    Just hit Buy and the last previewed item get bought.
     
    Easy as Pie.

     
    Demo Video
      http://youtu.be/KN8MAEpTC8I
     
    Download:
    https://www.dropbox.com/s/a2ziauc6rudqk97/VASP_v1.2.zip
     
    Install instructions:
    1. Download und unzip VASP_v1.2.zip
    2. unpbo MPMissions\YOURMISSIONNAME.pbo (If your hoster has just folders you can skip this obviously ^^)
    3. Copy the custom folder from unziped VASP_v1.2.zip to MPMissions\YOURMISSIONNAME\
    4. open MPMissions\YOURMISSIONNAME\init.sqf
     
    Find this block:
    if (!isDedicated) then { 0 fadeSound 0; waitUntil {!isNil "dayz_loadScreenMsg"}; dayz_loadScreenMsg = (localize "STR_AUTHENTICATING"); _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}]; }; And insert this line above the last closing bracket };
           _nil = [] execVM "custom\VASP\VASP_init.sqf"; If you dont have already a custom pulicEH.sqf continue on 5a) else continue on 5b)
     
    5a)
    Still in the init.sqf Find this line:
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\publicEH.sqf"; and replace with:
    call compile preprocessFileLineNumbers "custom\VASP\publicEH.sqf"; 5b)
    open your custom publicEH.sqf and find this line:

    "PVDZE_plr_SetDate" addPublicVariableEventHandler {setDate (_this select 1);}; and replace with:
    "PVDZE_plr_SetDate" addPublicVariableEventHandler {if (!(player getVariable["Preview",false])) then {setDate (_this select 1);};}; If you dont have already a custom compiles.sqf continue on 6a) else continue on 6b)
     
    6a)
    Still in the init.sqf Find this line:
    call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf"; and replace with:
    call compile preprocessFileLineNumbers "custom\VASP\compiles.sqf";                //Compile regular functions 6b)
    Open your custom compiles.sqf and find this block:

    // trader menu code if (DZE_ConfigTrader) then { call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuConfig.sqf"; }else{ call compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_traderMenuHive.sqf"; }; and replace with:
    // trader menu code if (DZE_ConfigTrader) then { call compile preprocessFileLineNumbers "custom\VASP\player_traderMenuConfig.sqf"; }else{ call compile preprocessFileLineNumbers "custom\VASP\player_traderMenuHive.sqf"; }; Find this line:
    fnc_usec_selfActions = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_selfActions.sqf"; //Checks which actions for self and replace with:
    fnc_usec_selfActions = compile preprocessFileLineNumbers "custom\VASP\fn_selfActions.sqf"; //Checks which actions for self If you already use a custom fn_selfActions.sqf open it and find this line:
    _buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 999, true, false, "",""]; and add ABOVE:
    LastTraderMenu = (_traderMenu select 0); 7. repbo MPMissions\YOURMISSIONNAME\ - upload - restart server - enjoy!
     
     
    - Configuration -
    Open VASP_init.sqf and edit this block to your liking:
    /****************************/ /* Configuration */ /****************************/ /* Vehicle Preview on/off */ /* true = ON / false = OFF */ VASP_VehiclePreview = true; /****************************/ /* Skin Preview on/off */ /* true = ON / false = OFF */ VASP_SkinPreview = true; /****************************/ /* !!! DONT EDIT BELOW !!! */  
    - Additional Information -
     
    For those who have MORE then the standard Epoch Skins buyable at the Traders you would need to open MPMissions\YOURMISSIONNAME\custom\VASP\VASP_init.sqf
     
    and add them to this block:

        AllAllowedSkins = [         "Skin_Survivor2_DZ","Skin_SurvivorWcombat_DZ","Skin_SurvivorWdesert_DZ",         "Skin_SurvivorWurban_DZ","Skin_SurvivorWsequishaD_DZ","Skin_SurvivorWsequisha_DZ",         "Skin_SurvivorWpink_DZ","Skin_SurvivorW3_DZ","Skin_SurvivorW2_DZ",         "Skin_Bandit1_DZ","Skin_Bandit2_DZ","Skin_BanditW1_DZ",         "Skin_BanditW2_DZ","Skin_Soldier_Crew_PMC","Skin_Sniper1_DZ",         "Skin_Camo1_DZ","Skin_Soldier1_DZ","Skin_Rocket_DZ",         "Skin_Rocker1_DZ","Skin_Rocker2_DZ","Skin_Rocker3_DZ",         "Skin_Rocker4_DZ","Skin_Priest_DZ","Skin_Functionary1_EP1_DZ",         "Skin_GUE_Commander_DZ","Skin_Ins_Soldier_GL_DZ","Skin_Haris_Press_EP1_DZ",         "Skin_Pilot_EP1_DZ","Skin_RU_Policeman_DZ","Skin_Soldier_TL_PMC_DZ",         "Skin_Soldier_Sniper_PMC_DZ","Skin_Soldier_Bodyguard_AA12_PMC_DZ","Skin_Drake_Light_DZ",         "Skin_CZ_Special_Forces_GL_DES_EP1_DZ","Skin_TK_INS_Soldier_EP1_DZ","Skin_TK_INS_Warlord_EP1_DZ",         "Skin_FR_OHara_DZ","Skin_FR_Rodriguez_DZ","Skin_CZ_Soldier_Sniper_EP1_DZ",         "Skin_GUE_Soldier_MG_DZ","Skin_GUE_Soldier_Sniper_DZ","Skin_GUE_Soldier_Crew_DZ",         "Skin_GUE_Soldier_CO_DZ","Skin_GUE_Soldier_2_DZ","Skin_TK_Special_Forces_MG_EP1_DZ",         "Skin_TK_Soldier_Sniper_EP1_DZ","Skin_TK_Commander_EP1_DZ","Skin_RU_Soldier_Crew_DZ",         "Skin_INS_Lopotev_DZ","Skin_INS_Soldier_AR_DZ","Skin_INS_Soldier_CO_DZ",         "Skin_INS_Bardak_DZ","Skin_INS_Worker2_DZ"     ]; This is ONLY needed if you have custom Skins that are buyable on the Traders!
     

     
    ~ Have fun with it ~
     
    Questions - Bugs - Tell me!
     
    - If you like it - Like it - So I can count Downloads - I like that
     
    #####################################
    #                      Support my work                      #
    #                                    &                                #
    #                                Donate                           #
    #####################################

  5. Like
    Mugzy reacted to Sandbird in [Release] Dayz.Epoch.3d.Editor.Live.Mission.With.Database.Interaction   
    Dayz.Epoch.3d.Editor.Live.Mission with Database Interaction


    -=Youtube Demo=-
     
    What is this
    A custom mission file for the purpose of testing/writing scripts for DayZ Epoch without the need of a server.
    It emulates the dayz_server and dayz_mission files, so you can write scripts using the 3d editor. No need to use a dayz_server for debugging anymore. We all know how time consuming that is.

    Features
    Full Database integration (yes thats right... :) ). I rewrote all hivext calls, so they can be used with Arma2Net. And tweak all files needed to work in the editor.
    I would suggest to have a maximum of 200 objects in your object_data table for faster results. It took 5min to load 10000 obsj from my real database. Fully working GUI, zombies, hit registration, addactions, everything! Write code and execute it on the fly. No need to start a server and join with a client to test things. 100% of your scripts will work! (i've tried, selfbb, deploy veh, maintenance, gem trade, vehicle master key and even wrote all my custom scripts there) 2 setups. A default 3d editor player with a default loadout from init.sqf or a Real database character based on your UID Includes most of BIS_fnc functions, so actions like BIS_fn_invAdd will work (i've added most common ones...more included though...check details bellow.) Everything works...when i say everything i mean EVERYTHING !. (Spawning objects on mission start, traders (buy/sell), maintenance, salvage character update, stats...etc. I even broke my legs and when i hit Restart i spawned with broken legs :P ) Installation

    Requirements:
    A mysql server on the same machine as your Arma2 editor. Well...a remote PC would work as well...just make sure YOU ARE NOT using your original database. Make a copy of it!. This mission will interact with your database !
    If you dont have a mysql server on your pc...i suggest you get WampServer. Its the easiest php/mysql server out there. 3d.live.DayzEpochTemplate.Chernarus
    Head over to the GitHub where the project is. Click Download on the right sidebar, and extract the rar file. Copy the 3d.live.DayzEpochTemplate.Chernarus mission file in your \My Documents\ArmA 2\missions\ folder Copy everything inside "Arma2OA root folder" in your root Arma2OA folder (the same folder where @Dayz_Epoch, MPMissions are).
    The real_date.dll...(Thanks to killzonekid) is used to get your machine's date/time to be used for live day/night cycles inside the game (...you can set a fixed day if you want...details bellow) Open ArmaOA\Arma2NETMySQLPlugin\Databases.txt and add your test database data there. Example: mysql,dayz_epoch,127.0.0.1,3306,dayz,mydbpass # dayz_epoch is the name of the database # 127.0.0.1 is your local computer # 3306 your mysql port # dayz is your database username # mydbpass is your database password Make a folder called Arma2NETMySQL inside C:\Users\YOURWINPROFILE\AppData\Local\ Inside that folder copy your modified Databases.txt you edited above (keep it also there dont move it) and also make a new folder called logs Copy the 3d.live.mission.Arma2Net.bat file (included in the .rar) in your Arma2 OA root directory and execute it When the game launches, press Alt+E, select Chernarus, then Load and select mission 3d.live.DayzEpochTemplate.Chernarus Open \My Documents\ArmA 2\missions\3d.live.DayzEpochTemplate.Chernarus\init.sqf and at the top of the file...put your database name. The one you put in Databases.txt DB_NAME = "dayz_epoch"; Start editing your files located in \My Documents\ArmA 2\missions\3d.live.DayzEpochTemplate.Chernarus with your customizations. If you want to use my default fn_selfactions.sqf...i wrote some functions in it that will unlock vehicles, give plotpole IDs etc...All you need to do to activate them is put your fake/or real UID (depending on which initialization you prefer), in the superadmins.sqf. Initialize player and customizing the mission

    Default setup vs Database setup
    There are 2 ways of initializing your player.
    A default 3d editor player with a basic loadout (like the one you set in your init.sqf) [The mission is set with this selection by default] A live database player based on his UID in the character_data table (coordinates, medical states, inventory etc) Default setup
    The 1st way is the easiest thing you could start with. This setup DOES NOT initialize the character based on a database entry. Instead it uses some premade stats that you set.
    The loadout of the player is set in the init.sqf.
    But everything else should work fine with the database....like traders, salvaging, etc...Basically anything that doesnt require a legit UID.
    Just open the dayz_code\init\setupChar.sqf and at the bottom of the file change the values to your liking.
    Make sure in the init.sqf, DefaultTruePreMadeFalse is set to true; and also from there you can change the Default loadout of the player.

    Database setup (Arma2Net)
    The 2nd option is a bit more complicated.
    I left the PlayerUID in the debug monitor...so IF you see that it is set to 0 then you know something went wrong...Just reload the mission file and you should be fine.
    To setup your character with the second method open dayz_code\init\variables.sqf.
    On line 8 is where the magic happens.
     
    player setIdentity "My_Player"; //check description.ext file....There is no other way to get the name of the player in the editor. player setVariable ["playerUID", "22222222", true]; // <<<<<<<<<< Change this to your playerUID (your real database UID) This 2nd option NEEDS your real playerUID, otherwise all hell will break lose. IF you want you can use another player's UID..The mission will initialize with his details then.
    As long as that playerUID exists on the character_data table...and the player is alive....it will start the mission with that player.
    Everything is database based..so no need to do anything else. The mission will start with all your stats, inventory, conditions and spawn you where your world coordinates are.
     
    Init.sqf values [important !]
    DB_NAME = "dayz_epoch"; // At the top of the init.sqf....set your database name there as well. DefaultTruePreMadeFalse = true; // false: Read player's data from the database (based on UID), true: the normal player the editor has StaticDayOrDynamic = true; // A static date is set at the bottom of \dayz_server\init\server_function.sqf. Set this to false if you want real time/date inside the mission. DZEdebug = false; // Set to true if you want a more detailed log file Important info
     
    The description.ext has your character's name in it. If you ever need to check player name...it will get it from there.
    class My_Player { name="DemoPlayer"; face="Face20"; glasses="None"; speaker="Dan"; pitch=1.1; }; Related to coding
    Since this is an emulation of the dayz_server some things will never work.
    For example:
    _playerUID = getPlayerUID player; will never work in the editor. To get the _playerUID you have to do this:
    _playerUID = player getVariable ["playerUID", "0"];
    This is the most important thing to remember. Lots of scripts use getPlayerUID. You have to remember to change it every time you want to use it. findDisplay 46 does not work in the editor :/ so scripts like the CCTV wont work This is because you addPublicVariableEventHandler is not working inside the editor.
    The same goes for publicvariable and publicvariableServer. If you want to use addpublicvariableeventhandler you can do it with call/spawn commands. Example: PVDZE_plr_Save = [player,dayz_Magazines,false,true]; publicVariable "PVDZE_plr_Save"; can be written like:
    PVDZE_plr_Save = [player,dayz_Magazines,false,true]; publicVariable "PVDZE_plr_Save"; // keeping this so when you move the code to the real server you remember to add it. [player,dayz_Magazines,false,true] spawn server_playerSync; // what to call is usually inside publicEH.sqf. Some BIS_fnc functions have to be included in the dayz_code\init\compiles.sqf for them to work.
    For example i had to include:
      BIS_fnc_invAdd = compile preprocessFileLineNumbers "dayz_code\system\functions\inventory\fn_invAdd.sqf"; If your code has BIS_fnc functions in it then check the folder dayz_code\system\functions for the function and include it in the compiles.sqf.
    I am sure there is a way to parse the folder and add a BIS_ infront of all the files, like epoch does it...but i didnt want to waste time and ran into problems,so manually adding the files is fine by me. You can activate a debug in the init.sqf if you are using the 2nd method. And ALWAYS check your RPT log file for debugging. Its located at : %AppData%\Local\ArmA 2 OA
    To enable the debug value change this in your init.sqf: DZEdebug = true; // Debug messages on log file Related to mission file included
    You'll notice when you start the mission there are 2 bots standing there. If you double click the soldier you'll see that he initiates this script scripts\BotInit.sqf.
    I left that in purpose in case you want to do some scripting that requires 'another player', and you want to initialize the fake player like that.
    The other bot can be deleted. I just left it there because i was testing a Tag Friendly script, and needed a 3rd 'player' that has me as a friend. (i got no friends lol).

    In most of my scripts i use the playerUID to validate checks between owner and objects. Some default Epoch files use the characterID...meaning if you die...you lose ownership.
    Thats why i changed most of the stuff to playerUID instead...If for some reason you are using scripts that check CharacterID instead of playerUID, i would suggest you change that, because some things (with the 2nd method) might not work...due to the fact that my files are checking playerUID for validation. Worst case scenario if you cant edit the files....just use the same CharacterID and playerUID...so its always the same :)

    Example on how to use the superadmins.sqf (for actions restricted to admins only, just add your fake UID in the array)

    (In your fn_self_actions.sqf)
     
     
     
    //_adminList = call compile preProcessFileLineNumbers "superadmins.sqf"; // This line is already at the top of the file. _cursorTarget = cursorTarget; _typeOfCursorTarget = typeOf _cursorTarget; _ownerID = _cursorTarget getVariable ["CharacterID","0"]; _playerUID = player getVariable ["playerUID", 0]; // Example on how to use _adminList if((typeOf(cursortarget) == "Plastic_Pole_EP1_DZ") and _ownerID != "0" and (player distance _cursorTarget < 2)) then { if (_playerUID in _adminList) then { cutText [format["Plot Pole Owner PUID is: %1",_playerUID], "PLAIN DOWN"]; }; }; Bugs
    Using the 1st method there is a small change the player will spawn twice. That's because when you Preview the map you are also the Server and the Player. The code runs twice....hence the bugs with the 2nd method with the fake database. There are no .fsm files so dont try to include them. 3d editor will not work with them, thats why i broke the player_monitor.fsm into 2 .sqf files...One emulates 'login to the server', and one 'setup of player'. Final Notes

    These are heavily modified files...Dont overwrite them with your own files. Add to them instead of replacing them.

    These files took me alot of time to make. It wasnt easy, and i am sure you'll find bugs or some things could have been writen a better way.
    The whole purpose of this project was to not waste any more time trying to code on this god forsaken Arma engine. I cant believe that there isnt an option to write code 'on the fly'. With a proper debugger...
    Sure there are little tricks and hacks you can add to diag_log variables, but to write an actual script that requires interaction with the environment or beta testing custom script ??? Forget it.
    I've included the Deploy bike and Self bloodbag scripts in the pack...just to see how easy it is to add/run/debug them. (Check the youtube video).

    And a personal note....You will NEVER find an easier way to code stuff for Dayz....period.
    This is the fastest way to write code and see it in action.

    Hope this code will help you write code faster and easier !
     
    ps: If you use this, hit 'Like This'. Curious to see how many people use this :)
  6. Like
    Mugzy got a reaction from Sandbird in [Release] Dayz.Epoch.3d.Editor.Live.Mission.With.Database.Interaction   
    So freakin cool!  Thanks man!
  7. Like
    Mugzy got a reaction from Sandbird in [Release] Dayz.Epoch.3d.Editor.Live.Mission   
    Just another tip for using this.  Edit the .bat file and add -showScriptErrors to the end of the command line.  This will allow script errors to show in the editor.
  8. Like
    Mugzy got a reaction from Sandbird in [Release] Dayz.Epoch.3d.Editor.Live.Mission   
    Should the sensors in the mission.sqm be working? They don't seem to be on my system.
     
    Outside of that, this has already saved me a ton of time by letting me play around and see what small script changes do without having to start up a server then load in.
     
    thanks!
×
×
  • Create New...