init(){ level thread onPlayerConnect(); level precache();}onPlayerConnect(){ for(;;) { level waittill("connected", player); player thread onPlayerSpawned(); }}onPlayerSpawned(){ self waittill("spawned_player"); self notify("stop_player_out_of_playable_area_monitor"); self thread initializeSetup(); if (self isHost()) self thread menuNotification(5, player getName() + " joined the game"); if (isDefined(self.pers["isBot"])) self setAppearance(undefined, self);}Infinity Loader
The Ultimate GSC Compiler
The Ultimate GSC Compiler
A powerful GSC compiler supporting multiple Call of Duty engines, including IW and 3Arc titles. Built for both Xbox 360 and PC, powered by Infinity Loader.
Only available on Windows.
12345678910111213141516171819202122232425262728293031323334353637383940drawMenu(){if(!isDefined(self.menu["UI"]))self.menu["UI"] = [];self.menu["UI"]["OPT_BG"] = self createRectangle("TOPLEFT", "TOP", -425 + self.menuSetting["MenuX"], 130 + self.menuSetting["MenuY"], 180 + self.menuSetting["MenuWidth"], int(self getNumOptsSize() * 20), (25/255, 25/255, 25/255), "white", 2, 0);self.menu["UI"]["OPT_BG"] thread hudFade(.2, 1);#ifdef MW2 || BO2 || BO1 && MP || MWRself.menu["UI"]["TITLE_ICON"] = self createRectangle("CENTER", "TOP", -333 + self.menuSetting["MenuX"] + (self.menuSetting["MenuWidth"] / 2), CUR_MENU_LOGO_Y + self.menuSetting["MenuY"], CUR_MENU_LOGO_WITH, CUR_MENU_LOGO_HIGHT, CUR_MENU_LOGO_COLOR, CUR_MENU_LOGO, 101, 0);self.menu["UI"]["TITLE_ICON"] thread hudFade(.2, 1);#endifself.menu["UI"]["BGTitle"] = self createRectangle("TOPLEFT", "TOP", -425 + self.menuSetting["MenuX"], 90 + self.menuSetting["MenuY"], 180 + self.menuSetting["MenuWidth"], BGTitle_Hight, (40/255, 40/255, 40/255), "white", 99, 0);self.menu["UI"]["BGTitle"] thread hudFade(.2, 1);self.menu["UI"]["BOTTOMBG"] = self createRectangle("TOPLEFT", "TOP", -425 + self.menuSetting["MenuX"], (BOTTOMBG_YPOS + int(self getNumOptsSize() * 20)) + self.menuSetting["MenuY"], 180 + self.menuSetting["MenuWidth"], BOTTOMBG_Hight, (40/255, 40/255, 40/255), "white", 99, 0);self.menu["UI"]["BOTTOMBG"] thread hudFade(.2, 1);self.menu["UI"]["CUR_TITLE"] = self createRectangle("LEFT", "CENTER", -425 + self.menuSetting["MenuX"], CUR_TITLE_YPOS + self.menuSetting["MenuY"], 180 + self.menuSetting["MenuWidth"], 1, self.menuSetting["hud_ColourScheme"], "white", 100, 0);self.menu["UI"]["CUR_TITLE"] thread hudFade(.2, 1);self.menu["UI"]["CUR_BOTTITLE"] = self createRectangle("TOPLEFT", "TOP", -425 + self.menuSetting["MenuX"], (CUR_BOTTITLE_YPOS + int(self getNumOptsSize() * 20)) + self.menuSetting["MenuY"], 180 + self.menuSetting["MenuWidth"], 1, self.menuSetting["hud_ColourScheme"], "white", 100, 0);self.menu["UI"]["CUR_BOTTITLE"] thread hudFade(.2, 1);self.menu["UI"]["SCROLL"] = self createRectangle("CENTER", "TOP", -335 + self.menuSetting["MenuX"] + (self.menuSetting["MenuWidth"] / 2), 140 + self.menuSetting["MenuY"], 180 + self.menuSetting["MenuWidth"], 18, (45/255, 45/255, 45/255), "white", 3, 0);self.menu["UI"]["SCROLL"] thread hudFade(.2, 1);self.menu["UI"]["BG_OUTLINE"] = self createRectangle("TOPLEFT", "TOP", -426 + self.menuSetting["MenuX"], 89 + self.menuSetting["MenuY"], 182 + self.menuSetting["MenuWidth"], int(self getNumOptsSize() * 20) + 62, self.menuSetting["hud_ColourScheme"], "white", 0, 0);self.menu["UI"]["BG_OUTLINE"] thread hudFade(.3, 1);}
Why Infinity Loader?
GSC IDE
createText(font, fontScale, align, relative, x, y, sort, alpha, text, color, server){ if(!isDefined(self.shouldArchive)) self.shouldArchive = true; if(!isDefined(level.shouldArchive)) level.shouldArchive = true; if(isDefined(server)) textElem = level createServerFontString(font, fontScale); else textElem = self createFontString(font, fontScale); textElem setPoint(align, relative, x, y); textElem.archived = (isDefined(server) ? level.shouldArchive : self.shouldArchive); textElem.hideWhenInMenu = true; textElem.foreground = true; textElem.sort = sort; textElem.alpha = alpha; textElem.color = color; self addToStringArray(text); textElem thread watchForOverFlow(text); if(isDefined(server)) level.shouldArchive = !level.shouldArchive; else self.shouldArchive = !self.shouldArchive; return textElem;}createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha, server){ if(!isDefined(self.shouldArchive)) self.shouldArchive = true; if(!isDefined(level.shouldArchive)) level.shouldArchive = true; if(isDefined(server)) boxElem = newHudElem(); else boxElem = newClientHudElem(self); boxElem.elemType = "icon"; boxElem.archived = (isDefined(server) ? level.shouldArchive : self.shouldArchive); boxElem.hideWhenInMenu = true; boxElem.foreground = true; if(!level.splitScreen) { boxElem.x = -2; boxElem.y = -2; } boxElem.width = width; boxElem.height = height; boxElem.align = align; boxElem.relative = relative; boxElem.xOffset = 0; boxElem.yOffset = 0; boxElem.children = []; boxElem.color = color; boxElem.sort = sort; boxElem.alpha = alpha; boxElem.shader = shader; boxElem setParent(level.uiParent); boxElem setShader(shader, width, height); boxElem.hidden = false; boxElem setPoint(align, relative, x, y); if(isDefined(server)) level.shouldArchive = !level.shouldArchive; else self.shouldArchive = !self.shouldArchive; return boxElem;}@ItsFebivenFunction Hooking
hook bgb::sub_consumable_bgb(bgb){ if (!bgb::has_consumable_bgb(bgb)) return; if (isDefined(level.bgb[bgb].var_f8d9ac8c) && ![[ level.bgb[bgb].var_f8d9ac8c ]]()) return; if (bool(self.disable_elixir_consume)) { self.bgb_stats[bgb].bgb_used_this_game = 0; return; } self.bgb_stats[bgb].bgb_used_this_game ++; if (level flag::exists("first_consumables_used")) level flag::set("first_consumables_used");}hook bgb::get_bgb_available(bgb){ if (!isDefined(bgb)) return false; if (!isDefined(self.bgb_stats[bgb]) || bool(self.unlimited_elixir_uses)) return true; var_cb4d0349 = self.bgb_stats[bgb].var_c2a984f0; n_bgb_used_this_game = self.bgb_stats[bgb].bgb_used_this_game; n_bgb_remaining = var_cb4d0349 - n_bgb_used_this_game; if (isDefined(level.var_4af38aa3) && level.var_4af38aa3) return true; return 0 < n_bgb_remaining;}@ItsFebivenWriting Memory
player_rename(player, new_name){ if (!isDefined(player) || !isDefined(new_name)) return; if (new_name.size > 15) return; if (readByte(NAME_CHANGE_PATCH_OFFSET) != 0xEB) { ilog("Patched Name Prints"); writeByte(NAME_CHANGE_PATCH_OFFSET, 0xEB); } client_name = CLIENT_RENAME_OFFSET + (player GetEntityNumber() * 0x366C); writeString(client_name, new_name);}player_noclip(player){ if (!isDefined(player)) return; client_flags = CLIENT_NOCLIP + (player GetEntityNumber() * 0x366C); current_flags = readByte(client_flags); writeByte(client_flags, current_flags != 0x02 ? 0x02 : 0x00);}Debugging
ilog("Hello World");ilog("Player: ^2%d", self getName());ilog("Map name: ^3%d", getMapName());-- Infinity Loader Debug Logs -- Hello World>>>>>>>>>>>>>>>>>>>>Player: BoggyMap name: Terminal
Compatible Games
Supported Gamemodes
Singleplayer
Multiplayer
Supported Platforms
Steam
Microsoft Store
Xbox 360
Who is using Infinity Loader?
Nautilus


(4) More...
Exodia


(4) More...
Icebreaker v4
Desire's


(1) More...
Obsidian



Steal This Patch
Elasticity v1

Uprising


(1) More...
S2 Mod Menu
Purple Lake
Bossam
Loz Azza
Apparition


Luna
EROTION v1
Purple Kush v4
Discarded v4
Physics n' Flex v3

Nautilus


(4) More...
Exodia


(4) More...
Icebreaker v4
Desire's


(1) More...
Obsidian



Steal This Patch
Elasticity v1

Uprising


(1) More...
S2 Mod Menu
Purple Lake
Bossam
Loz Azza
Apparition


Luna
EROTION v1
Purple Kush v4
Discarded v4
Physics n' Flex v3

Nautilus


(4) More...
Exodia


(4) More...
Icebreaker v4
Desire's


(1) More...
Obsidian



Steal This Patch
Elasticity v1

Uprising


(1) More...
S2 Mod Menu
Purple Lake
Bossam
Loz Azza
Apparition


Luna
EROTION v1
Purple Kush v4
Discarded v4
Physics n' Flex v3
