Internal Docs - growtopiadev/growtopia-internal GitHub Wiki
Internal Documentation
Game table
You can access basic functions with Game
table.
Function | Description |
---|---|
SendPacket | Sends a text packet to the server |
SendPacketRaw | Sends a TankUpdatePacket to the server |
ProcessTankUpdatePacket | Emulates a TankUpdatePacket from the server |
EmulateVarList | Emulates VariantList from the server |
GetLocal | Returns NetAvatar if exists, otherwise nil |
GetWorld | Returns World if exists, otherwise nil |
GetItem | returns ItemInfo if exists, otherwise nil |
SetFPSLimit | Sets game's max FPS limit to X |
Engine
Function | Description |
---|---|
Execute | Executes certain script |
RandomInt | Creates a callback for certain function |
RandomStr | Removes certain function |
ShowConsole | Shows console window |
HideConsole | Hides console window |
Callbacks
Function | Description |
---|---|
Create | Creates a callback for certain function |
Remove | Removes certain function |
Timer
Function | Description |
---|---|
Create | Creates a timer with certain call interval |
Remove | Removes certain timer |
SendPacket
Game.SendPacket(type, text)
Sends a text packet to the server.
Example usage:
Game.SendPacket(2, "action|input\ntext|Hello World!")
SendPacketRaw
Game.SendPacketRaw(packet)
Sends a TankUpdatePacket to the server. Takes packet as parameter.
Example usage:
local packet = TankUpdatePacket()
Game.SendPacketRaw(packet)
ProcessTankUpdatePacket
Game.ProcessTankUpdatePacket(packet)
Emulates a TankUpdatePacket from the server
Example usage:
local packet = TankUpdatePacket()
Game.ProcessTankUpdatePacket(packet)
EmulateVarList
Emulates a VariantList from the server
Example usage:
local varList = {}
varList[1] = { type = 2, value = "OnDialogRequest" }
varList[2] = { type = 2, value = "set_default_color|`o\nadd_label_with_icon|big| `wPlayer Portal`` |left|1366|\nadd_spacer|small|\nadd_button|socialportal|`wSocial Portal``|noflags|0|0|\nadd_button|missions|`wMarvelous Missions``|noflags|0|0|\nadd_button|gazette|`wGazette``|noflags|0|0|\nadd_button|communityhub|`wCommunity Hub``|noflags|0|0|\nadd_quick_exit|\nend_dialog|playerportal|OK||\n" }
Game.EmulateVarList(varList, -1, 0)
GetLocal
Returns NetAvatar if exists, else nil
Example usage:
local player = Game.GetLocal()
if player then
player.name = "`6@Hamumu" -- Changes your player name to Hamumu
end
GetWorld
Returns World if exists, else nil
Example usage:
local world = Game.GetLocal()
if world then
print(world.name) -- Prints world name
end
GetItem
Returns ItemInfo if exists, else nil
Example usage:
local item = Game.GetItem(242) -- 242 is World Lock
if item then
print(item.name) -- Prints item name
end
SetFPSLimit
Set max FPS for game, also depends on your screens refresh rate.
Example usage:
Game.SetFPSLimit(144)
TankUpdatePacket
Type | Name | Description |
---|---|---|
int | type | Packet's type |
int | ? | ? |
int | count1 | ? |
int | count2 | ? |
int | netid | NetID of packet |
int | packetFlags | |
number | structFlags | |
int | intData | |
number | vec1X | Same as x |
number | vec1Y | Same as y |
number | vec2X | |
number | vec2Y | |
number | particleTime | |
int | tileY | |
int | tileX |
VariantList
Example varlist
local varList = {}
varList[1] = { type = 2, value = "OnConsoleMessage" }
varList[2] = { type = 2, value = "Hello World!" }
Game.EmulateVarList(varList, -1, 0)
InventoryItem
Type | Name | Description |
---|---|---|
int | id | Item ID |
int | count | Amount of item |
int | flags | Item flags |
NetAvatar
Type | Name | Description |
---|---|---|
number | x | Player's X position |
number | y | Player's Y position |
number | sizeX | Player's size X |
number | sizeY | Player's size Y |
string | name | Player's name |
int | netID | NetID of player |
bool | facingLeft | Tells if player is facing left or no |
int | skinColor | Player's skin color |
int | userID | UserID of player |
int | country | |
int | isMod | Allows to toggle mod zoom |
int | isSuperMod | Togglse mod zoom and long place (Bannable) |
Methods:
Method | Description |
---|---|
GetInventoryItem(id) | returns inventory item if exists, otherwise nil |
GetInventory() | returns InventoryItem table |
Tile
Type | Name | Description |
---|---|---|
int | foreground | |
int | background | |
int | flags |
WorldObject
Type | Name | Description |
---|---|---|
int | itemID | |
number | x | |
number | y | |
int | count | |
int | index |
World
Type | Name | Description |
---|---|---|
string | name | Returns world name |
int | sizeX | Returns X size of world |
int | sizeY | Returns Y size of world |
Function | Description |
---|---|
GetTile | returns Tile if exists, otherwise nil |
GetPlayer | returns NetAvatar if exists, otherwise nil |
GetPlayers | returns NetAvatar table |
GetDrop | returns WorldObject if exists, otherwise nil |
GetDrops | returns WorldObject table |
ItemInfo
Type | Name | Description |
---|---|---|
int | id | item id |
int | type | item type |
string | name | item name |
string | texture | texture name of item |
int | textureX | |
int | textureY | |
int | hitsToDestroy | |
int | rarity |
Vector2
Type | Name |
---|---|
int | x |
int | y |
Constructor:
Vector2(x, y)
Vector3
Type | Name |
---|---|
int | x |
int | y |
int | z |
Constructor:
Vector3(x, y, z)
Execute
Executes lua code
Example usage:
Engine.Execute("print('Hello World')") -- Prints "Hello World"
RandomInt
Returns random int in range
Example usage:
local number = Engine.RandomInt(0, 100)
print(number) -- Prints random integer between 0 and 100
RandomStr
Returns random string
Example usage:
local str = Engine.RandomStr(10)
print(str) --Prints random string
ShowConsole
Creates console window
Example usage:
Engine.ShowConsole()
HideConsole
Hides console window
Example usage:
Engine.HideConsole()