I downloaded rushbot .rar file from the sticky and extracted to my desktop.
I then altered the charconfig file name, removing the extacy name and putting in my character name. The name is EXACTLY correct, and besides altering the potion/belt settings, and adding my own pickit files, I have changed nothing in the char config.
When I join the game, I get the error that NTLoadConfig is undefined (below)

Here is my char config file:
//##############################################################################################################################
//Do Not distribute these scripts without the credits ##########################################################################
//##############################################################################################################################
//Regards - Young_Love from http://www.edgeofnowhere.cc ########################################################################
//##############################################################################################################################
NTConfig_Script.push("coords.ntj");
var NTConfig_UseRedemptionHP;
var NTConfig_UseRedemptionMP;
function NT_LoadConfig()
{
//------------------------------------------------------------------------------
// Rush
//------------------------------------------------------------------------------
NTConfig_Script.push("NTRushAndy.ntj");
NTConfig_Script.push("NTRushRadament.ntj");
NTConfig_Script.push("NTRushCubeAmu.ntj"); //Only does cube in normal
NTConfig_Script.push("NTRushStaff.ntj");
NTConfig_Script.push("NTRushSummoner.ntj");
NTConfig_Script.push("NTRushDuriel.ntj"); //Goes to harem and tp's after duriel is dead.
NTConfig_Script.push("NTRushTome.ntj");
NTConfig_Script.push("NTRushTrav.ntj");
NTConfig_Script.push("NTRushMeph.ntj");
NTConfig_Script.push("NTRushIzual.ntj");
NTConfig_Script.push("NTRushForge.ntj");
NTConfig_Script.push("NTRushChaos.ntj"); NTConfig_ClearCS = false;
NTConfig_Script.push("NTRushSocket.ntj");
NTConfig_Script.push("NTRushAnya.ntj");
NTConfig_Script.push("NTRushAncients.ntj");
NTConfig_Script.push("NTRushBaal.ntj"); NTConfig_KillBaal = true;
NTConfig_Script.push("NTRushWps.ntj");
NTConfig_Script.push("NTAllWps.ntj");
//------------------------------------------------------------------------------
//State Rules
//------------------------------------------------------------------------------
NTConfig_StateRules = true; //Only in normal, Find if(me.diff == 0) at tha beginning of yur NTRushAndy.ntj file and edit tha messages inside tha Say(""); lines
NTConfig_StateMoreRules = true; //Only in nightmare, Find if(me.diff == 2) Below tha chat lines for if(me.diff == 0) in yur NTRushAndy.ntj file and edit tha messages inside tha Say(""); lines
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
me.maxgametime = 0; // time in seconds, maximum game length (0 is infinite)
NTConfig_StartDelay = 100; // Delay time in milliseconds to start;
NTConfig_AreaDelay = 500; // Delay time in milliseconds to change area;
NTConfig_SnagDelay = 0; // Delay time in milliseconds to wait before starting picking items
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
NTConfig_SkipHealLife = 90; // If you have more than this percent of life, you won't go to a healer
NTConfig_SkipHealMana = 70; // If you have more than this percent of mana, you won't go to a healer
NTConfig_UseMerc = true; // Set to true if you use a mercenary, will revive merc at a reviver npc.
NTConfig_ResetWeapon = false; // Set to true to reset weapon when reviving merc
NTConfig_LifeThresh = 60; // Drink a normal potion if under this percent of life.
NTConfig_LifeRejuvThresh = 40; // Drink a rejuvenation potion if under this percent of life.
NTConfig_ManaThresh = 30; // Drink a normal potion if under this percent of mana.
NTConfig_ManaRejuvThresh = 10; // Drink a rejuvenation potion if under this percent of mana.
NTConfig_LifeChicken = 30; // This is your chicken life percent. If you go below this life total, exit game.
NTConfig_ManaChicken = 0; // This is your chicken mana percent. If you go below this mana total, exit game.
NTConfig_MercLifeThresh = 50; // This is the threshold to use a life potion on your merc in percent.
NTConfig_MercRejuvThresh = 30; // This is the threshold to use a rejuv potion on your merc in percent.
NTConfig_MercChicken = 0; // This is your mercs chicken life percent. If he goes below this, exit game.
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
NTConfig_FreeSpace = 4; // Number of free columns. If less full columns are free stashing is set.
// The numbers correspond to your inventory. Set 0 to keep whatever is there, 1 to stash it.
NTConfig_Columns[0] = [1,1,0,0,0,0,0,0,0,0];
NTConfig_Columns[1] = [1,1,0,0,0,0,0,0,0,0];
NTConfig_Columns[2] = [1,1,0,0,0,0,0,0,0,0];
NTConfig_Columns[3] = [1,1,0,0,0,0,0,0,0,0];
NTConfig_MinGoldToStash = 100000; // Maximum gold amount carried before going to stash
//----------------------------------------------------------------------------------------------
// Type of potion used in each belt column
// Available types : "hp" = health | "mp" = mana | "rv" = rejuv. Can use other potion types too.
// Keep equal types at adjacent columns. First HP then MP and then HP again is a bad choice.
// Keep HP and MP at the beginning of the belt (in case you want to use rejuv and other types).
// Rejuvenations MUST, I REPEAT MUST be at the end of the belt (last x columns).
// To use rejuvenations only, put "rv" in all columns.
//----------------------------------------------------------------------------------------------
NTConfig_BeltColType[0] = "hp";
NTConfig_BeltColType[1] = "hp";
NTConfig_BeltColType[2] = "hp";
NTConfig_BeltColType[3] = "hp";
//-----------------------------------------------------------------------------------
// SnagIt configuration
// Select one group only (normal / advance / extreme)
//-----------------------------------------------------------------------------------
if(me.diff == 2) // This will only pickit in Hell
{
//NTConfig_NIPFilePath.push("normal/normal.nip");
//NTConfig_NIPFilePath.push("normal/magic_rare.nip");
//NTConfig_NIPFilePath.push("normal/set.nip");
//NTConfig_NIPFilePath.push("normal/unique.nip");
//NTConfig_NIPFilePath.push("normal/craft.nip");
//NTConfig_NIPFilePath.push("advance/normal.nip");
//NTConfig_NIPFilePath.push("advance/magic_rare.nip");
//NTConfig_NIPFilePath.push("advance/set.nip");
//NTConfig_NIPFilePath.push("advance/unique.nip");
/NTConfig_NIPFilePath.push("advance/craft.nip");
NTConfig_NIPFilePath.push("mine/charmsjewels.nip");
NTConfig_NIPFilePath.push("mine/crafteds.nip");
NTConfig_NIPFilePath.push("mine/magics.nip");
NTConfig_NIPFilePath.push("mine/rares.nip");
NTConfig_NIPFilePath.push("mine/ringsamulets.nip");
NTConfig_NIPFilePath.push("mine/misc.nip");
NTConfig_NIPFilePath.push("mine/runes.nip");
NTConfig_NIPFilePath.push("mine/runewords.nip");
NTConfig_NIPFilePath.push("mine/set.nip");
NTConfig_NIPFilePath.push("mine/uniques.nip");
NTConfig_NIPFilePath.push("mine/whites.nip");
//NTConfig_NIPFilePath.push("extreme/normal.nip");
//NTConfig_NIPFilePath.push("extreme/magic_rare.nip");
//NTConfig_NIPFilePath.push("extreme/set.nip");
//NTConfig_NIPFilePath.push("extreme/unique.nip");
//NTConfig_NIPFilePath.push("extreme/craft.nip");
}
NTConfig_SnagRange = 40; // Radius to check for dropped items. 40 is a good number here
//------------------------------------------------------------------------------
// General configuration
//------------------------------------------------------------------------------
NTConfig_PublicMode = true;
NTConfig_CheckCloneDiablo = false; // Set to true if you want to wait in game after notifying "Diablo Walks the Earth" msg.
NTConfig_OpenChest = false; // Set to true to open chest
me.quitonhostile = false;
//------------------------------------------------------------------------------
// Attack configuration
//------------------------------------------------------------------------------
NTConfig_AttackSkill[0] = 0; // First skill. Set to 0 if you won't
NTConfig_AttackSkill[1] = 112; // Primary skill to boss.
NTConfig_AttackSkill[2] = 113; // Primary aura to boss. Set to 0 if you won't
NTConfig_AttackSkill[3] = 112; // Primary skill to others.
NTConfig_AttackSkill[4] = 113; // Primary aura to others. Set to 0 if you won't
NTConfig_AttackSkill[5] = 101; // Secondary skill in case monster is immune to primary skill. Set to 0 if you won't
NTConfig_AttackSkill[6] = 109; // Secondary aura. Set to 0 if you won't
NTConfig_ClearPosition = true; // Set to true if you want to clear area after killing boss.
NTConfig_UseRedemptionHP = 80; // Use Redemption if under this percent of life. Set to 0 if you won't
NTConfig_UseRedemptionMP = 60; // Use Redemption if under this percent of mana. Set to 0 if you won't
}
Here is my NTBotGame.ntj file:
//##############################################################################################################################
//Do Not distribute these scripts without the credits ##########################################################################
//##############################################################################################################################
//Regards - Young_Love from http://www.edgeofnowhere.cc ########################################################################
//##############################################################################################################################
var CurScriptIndex = 0;
var LastScript = false;
var CloneDiabloString;
var CloneDiabloNotify = false;
// Provalone Edit //
Include("libs/common/NTExp.ntl");
NTE_InitializeStats();
//
function NTMain()
{
Delay(1000);
//Print("?c4[+] NTBot 4.1 [+]");
Include("libs/common/NTCommon.ntl");
NTC_IncludeLibs();
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
NTSI_LoadNIPFiles("NTBot/item_configs");
if(NTConfig_StartDelay > 0);
NTC_Delay(NTConfig_StartDelay);
SetUIState(0x0A, true);
NTT_GetCorpses();
if(NTConfig_Script.length > 0)
{
NTCU_InitCubing();
NTT_ClearInventory();
NTT_ClearBelt();
Load("NTBot/tools/NTToolsThread.ntj");
if(NTConfig_CheckCloneDiablo)
{
CloneDiabloString = GetLocaleString(11005);
RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);
}
RegisterEvent(EVENT_KEYDOWN, NT_KeyEvents);
RegisterEvent(EVENT_SCRIPTMSG, NT_ScriptMsgEvents);
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex]);
SetStatusText("Running " + NTConfig_Script[CurScriptIndex]);
while(!LastScript || CloneDiabloNotify)
{
NTC_Delay(500);
}
}
// Provalone Edit
NTE_ComputeStats(false);
//
ExitGame();
}
function NT_GameMsgEvents(msg, type)
{
if(type == 4 && msg.indexOf(CloneDiabloString) != -1)
{
CloneDiabloNotify = true;
NTC_SendLogToOOG(NTC_LOG_COMMON, "?c4" + CloneDiabloString);
SetStatusText(CloneDiabloString);
me.maxgametime = 0;
NTC_StopScript(NTConfig_Script[CurScriptIndex]);
NTC_Delay(500);
NTTM_CheckAct();
}
}
function NT_KeyEvents(keycode)
{
var _script;
switch(keycode)
{
case 19:
_script = NTC_FindScript(NTConfig_Script[CurScriptIndex]);
if(_script)
{
if(_script.running)
{
_script.Stop();
NTC_Delay(300);
ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
SetStatusText("Stopped " + NTConfig_Script[CurScriptIndex]);
}
else
{
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex]);
SetStatusText("Running " + NTConfig_Script[CurScriptIndex]);
}
}
break;
case 33:
_script = NTC_FindScript(NTConfig_Script[CurScriptIndex]);
if(_script.running)
{
_script.Stop();
NTC_Delay(300);
ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
SetStatusText("Stopped " + NTConfig_Script[CurScriptIndex]);
}
else if(--CurScriptIndex >= 0)
SetStatusText("Back to " + NTConfig_Script[CurScriptIndex]);
else if(--CurScriptIndex < 0)
{
CurScriptIndex = 0
SetStatusText("First script " + NTConfig_Script[CurScriptIndex]);
}
break;
case 34:
_script = NTC_FindScript(NTConfig_Script[CurScriptIndex]);
if(_script.running)
{
_script.Stop();
SetStatusText("Stopped " + NTConfig_Script[CurScriptIndex]);
}
else if(++CurScriptIndex < NTConfig_Script.length)
SetStatusText("Skipped to " + NTConfig_Script[CurScriptIndex]);
else if(++CurScriptIndex >= NTConfig_Script.length)
{
CurScriptIndex = 0
SetStatusText("Skipped to " + NTConfig_Script[CurScriptIndex]);
}
break;
}
}
function NT_ScriptMsgEvents(msg)
{
var _area;
switch(msg)
{
case "SCRIPT_END":
if(++CurScriptIndex < NTConfig_Script.length)
{
NTTM_CheckAct();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex]);
SetStatusText("Running " + NTConfig_Script[CurScriptIndex]);
}
else{
LastScript = true;
}
break;
default:
Print("?c1" + NTConfig_Script[CurScriptIndex] + " : " + msg + " failed");
_area = GetArea();
if(_area)
NTC_SendLogToOOG(NTC_LOG_COMMON, "?E00000" + NTConfig_Script[CurScriptIndex] + " : " + msg + " failed (" + _area.name + ")");
else
NTC_SendLogToOOG(NTC_LOG_COMMON, "?E00000" + NTConfig_Script[CurScriptIndex] + " : " + msg + " failed (unknown area)");
if(++CurScriptIndex < NTConfig_Script.length)
{
NTTM_CheckAct();
Load("NTBot/bots/" + NTConfig_Script[CurScriptIndex]);
SetStatusText("Running " + NTConfig_Script[CurScriptIndex]);
}
else
LastScript = true;
break;
}
}
Can anyone help me?
Thanks to anyone who tries, I appreciate it.
-Christian