Infinity Loader

The Ultimate GSC Compiler

Need help? Join our Support Discord Server!

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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
drawMenu()
{
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 || MWR
self.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);
#endif
self.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
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);}
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: Boggy
Map name: Terminal

Compatible Games

Modern Warfare LogoModern Warfare
World at War LogoWorld at War
Modern Warfare 2 LogoModern Warfare 2
Black Ops LogoBlack Ops
Modern Warfare 3 LogoModern Warfare 3
Black Ops II LogoBlack Ops II
Ghost LogoGhost
Advanced Warfare LogoAdvanced Warfare
Black Ops III LogoBlack Ops III
Infinite Warfare LogoInfinite Warfare
Modern Warfare Remastered LogoModern Warfare Remastered
WWII LogoWWII
Black Ops 4 LogoBlack Ops 4
Supported Gamemodes
Singleplayer
Multiplayer
Supported Platforms
SteamSteam
Microsoft Store
Xbox 360

Who is using Infinity Loader?

Nautilus
mw2mw3ghostwwii(4) More...
Exodia
wwiibo1bo2bo3(4) More...
Icebreaker v4
bo3
Desire's
mw2bo2bo1cod4(1) More...
Obsidian
bo1bo2mw2mw3
Steal This Patch
mw2
Elasticity v1
wawmw2
Uprising
bo1ghostawwwii(1) More...
S2 Mod Menu
wwii
Purple Lake
bo1
Bossam
bo2
Loz Azza
bo2
Apparition
mw2mw3bo3
Luna
bo3
EROTION v1
waw
Purple Kush v4
waw
Discarded v4
waw
Physics n' Flex v3
wawbo1

Frequently Asked Questions