Документация Greyscript
AptClient
AptClient.show(repository_name:String) : String
Показывает все пакеты, доступные в репозиториях Адресс репозитория ДОЛЖЕН быть добавлен в файл /etc/apt/sources.txt.
Возвращает строку со всеми пакетами в случае успеха или строку (содержащую ошибку) в случае неудачи.
AptClient.search(package_name:String) : String
Поиск конкретного пакета в любом из репозиториев, перечисленных в /etc/apt/sources.txt
В случае ошибки возвращает либо строку с информацией о пакете, либо строку (содержащую ошибку).
AptClient.update() : String
Обновляет список доступных пакетов после добавления нового репозитория в /etc/apt/sources.txt или если репозиторий обновил свою информацию в /server/conf/repod.conf
Возвращает строку, содержащую все адреса репозитория с префиксом 'Updated' в случае успеха или строку (содержащую ошибку) в случае неудачи.
AptClient.add_repo(repository_address:String, ?port:Number) : String
Добавляет адрес репозитория в файл /etc/apt/sources.txt
Возвращает пустую строку в случае успеха или строку (содержащую ошибку) в случае неудачи.
AptClient.del_repo(repository_address:String) : String
Удаляет адрес репозитория из файла /etc/apt/sources.txt.
Возвращает пустую строку в случае успеха или строку (содержащую ошибку) в случае неудачи.
AptClient.install(package_name:String, ?install_path:String) : String
Установливает программу или библиотеку из удаленного репозитория, указанного в /etc/apt/sources.txt. Если не указан путь, программа устанавливается в /lib, если это библиотека,в противном случае в /bin
Возвращает строку (содержащую ошибку) в случае неудачи или ничего в случае успеха.
AptClient.check_upgrade(file_path:String) : String
Проверяет, есть ли в репозитории более новая версия файла.
Возвращает строку (содержащую ошибку) в случае ошибки или ничего в случае успеха.
Shell
Shell.connect_service(ipAddress:String, port:Number, user:String, password:String, ?service:String) : Shell | FtpShell | String
Note: Этот метод нельзя использовать c включенным шифрованием.
Подключаеться к удаленному сервису. Вы можете указать «ftp» в serviceType, чтобы запросить FtpShell
Возвращает Shell или FtpShell, если соединение было установлено правильно, или null в случае сбоя.
Shell.start_terminal() : String | null
Note: Этот метод нельзя использовать c включенным шифрованием.
Запускает терминал из оболочки
Shell.scp(pathOrig:String, pathDest:String, remoteShell:Shell) : Number | String | null
Копирует файл с одного компьютера на другой через сеть.
Возвращает 1 в случае успеха или строку (содержащую ошибку) в случае неудачи.
Shell.build(pathSource:String, pathBinary:String, ?allowImport:Number) : Number | String
Компилирует исходный код файла в указанном пути и сохраняет исполняемый файл в целевом пути. Имя исполняемого файла совпадает с именем исходного файла без расширения.
Предусмотренные пути должны быть абсолютными.
[Пример]
get_shell.build("/home/user/myprogram.src", "/home/user/Desktop")
Shell.launch(path:String, args:String) : Number | String
Запускает команду по указанному пути.
Возвращает null в случае успеха или 0 в случае ошибки.
Shell.host_computer() : Computer | null
Возвращает объект компьютера, связанный с оболочкой.
Shell.ping(ipAddress:String) : Number | String | null
Возвращает true, если удаленный адрес доступен, иначе false. Брандмауэры не блокируют запросы ping.
Shell.masterkey(ipAddress:String, Port:Number, User:String) : Shell | null
Подключает к удаленному серверу независимо от безопасности.
*В многопользовательской игре игре для этого требуются права модератора, также данная функция недоступна в одиночной игре.
Shell.masterkey_direct(publicIpAddress:String, localIpAddress:String, User:String) : Shell | null
Подключает к удаленному серверу, независимо от какой-либо безопасности. Отличия от обычного masterkey неизвестны.
*В многопользовательской игре игре для этого требуются права модератора, также данная функция недоступна в одиночной игре.
Shell.restore_network(publicIpAddress:String) : Any
Восстанавливает сеть в исходное состояние, предположительно, как это могло бы быть сделано с помощью ConfigLan.
*В многопользовательской игре игре для этого требуются права модератора, также данная функция недоступна в одиночной игре.
FtpShell
FtpShell.start_terminal() : String | null
Note: Этот метод нельзя использовать c включенным шифрованием.
Запукает терминал из FtpShell.
FtpShell.host_computer() : Computer | null
Возвращает объект компьютера, связанный с FtpShell.
FtpShell.put(pathOrig:String, pathDest:String, remoteShell:Shell) : Number | String | null
Копирует файл с одного компьютера на другой через сеть.
Возвращает 1 в случае успеха или строку (содержащую ошибку) в случае неудачи.
Computer
Computer.get_ports() : List[Port]
Returns an array of active ports on the computer.
Computer.File(path:String) : File | null
Returns the file located in the given path, relative or absolute. The file returned can be a folder. If the file does not exist, it is returned null.
Computer.create_folder(path:String, :) : Number
Create a folder in the specified path.
Computer.is_network_active() : Number
Returns true if the computer has internet access, false otherwise.
Computer.touch(path:String, fileName:String) : Number | String
Note: Этот метод нельзя использовать c включенным шифрованием.
Create an empty text file.
Returns 1 on success, or a string (containing an error) on failure
Computer.show_procs() : List[String]
Returns a string with the list of active processes on the machine.
Computer.network_devices() : List[String]
Returns a string with the list of network devices available on the computer.
Computer.change_password(user:String, password:String) : Number
Change the password of an existing user on the machine, for a new one. It is necessary to be root to be able to execute the method.
Returns 1 on success, or error string on failure
Computer.create_user(user:String, password:String) : Number
Create a user on the machine, with the specified name and password. It is necessary to be root to be able to execute the method.
Returns 1 on success, or error string on failure
Computer.delete_user(user:String, ?removeHome:Number) : Number
Delete the indicated user from the computer, also deleting its home folder optionally. By default, if the optional parameter is not passed, the home folder will not be deleted. It is necessary to be root to be able to execute the method.
Returns 1 on success, or error string on failure
Computer.create_group(user:String, groupName:String) : Number
Create a new group associated with an existing user on the machine. It is necessary to be root to be able to execute the method.
Returns 1 on success, or error string on failure
Computer.delete_group(user:String, groupName:String) : Number
Delete the indicated user group. It is necessary to be root in order to execute this method.
Returns 1 on success, or error string on failure
Computer.groups(user:String) : String
Returns a string with the list of groups created in the indicated user.
Computer.close_program(PID:Number) : Number
Close the program associated with the PID. To show the list of the running programs along with their PIDs use the ps command.
Returns 1 on success, 0 if the process cannot be found, or an error string on failure to terminate the process
Computer.wifi_networks(netDevice:String) : List[String]
Returns a list of the Wi-Fi networks that are available.
Computer.connect_wifi(netDevice:String, bssid:String, essid:String, password:String) : Number
Connect to the indicated Wifi network. Returns true if the connection was successful.
Returns 1 on successful connection, null if the network cannot be found, or an error string on connection failure
Computer.connect_ethernet(netDevice:String, localIp:String, gateway:String) : Number
Notice: Ethernet is currently disabled in multiplayer on both public and nightly builds!
Set up a new IP address on the machine through the ethernet connection. Returns a string with the error message if the connection failed. In case of success, an empty string is returned.
Computer.network_gateway() : String
Returns a string with the gateway configured on the computer.
Computer.active_net_card() : String
Returns a string with the keyword WIFI if the current device is connected to a router by WiFi, if it is connected by cable a string with the keyword ETHERNET is returned.
Computer.local_ip() : String
Returns a string with the computer's local ip address.
Computer.public_ip() : String
Returns a string with the computer's public ip address.
File
File.chmod(permission:String, ?isRecursive:Number) : String
Modifies the file's permissions
Takes a permissions string (e.g. u+wr) and optional recursive flag (int 0 or 1)
If the file is a folder and the recursive flag is 1, the permissions change will apply recursively, to all the files and folders inside the folder.
Returns a string (empty on success, or with an error on failure)
File.copy(path:String, newName:String) : String | Number | null
Note: Этот метод нельзя использовать c включенным шифрованием.
Copy the file to the specified path.
On success, returns 1 and the terminal outputs the copied file dialogue. On failure, returns either an error (string) such as permission denied or null (if File object not valid).
File.move(path:String, newName:String) : String | Number | null
Note: Этот метод нельзя использовать c включенным шифрованием.
Move the file to the specified path.
On success, returns 1. On failure, returns either an error (string) such as permission denied or null (if File object not valid).
File.rename(newName:String) : String | Number | null
Note: Этот метод нельзя использовать c включенным шифрованием.
Rename the file with the name provided.
Returns a string (empty on success, or with an error on failure)
File.path() : String
Returns a string with the absolute path of the file.
File.parent() : List[File]
Returns the folder that contains this file or null if the initial object is /.
File.name() : String
Returns a string with the name of the file.
File.get_content() : String
Note: Этот метод нельзя использовать c включенным шифрованием.
Returns a string with the contents of the text file.
File.set_content(content:String) : String
Note: Этот метод нельзя использовать c включенным шифрованием.
Save the text in the file. The content will be overwritten if there is already text saved in the file.
Returns 1 on success, or a string (containing an error) on failure
File.is_binary() : Number
Returns true if the file is binary, false otherwise.
File.is_folder() : Number
Returns true if the file is folder, false otherwise.
File.has_permission(permission:String) : Number
Returns true if the user who launches the script has the necessary permissions. The type_perm parameter is used for reading ('r'), writing ('w') and execution ('x')
File.delete() : Number
Delete the file
Returns a string (empty on success, or with an error on failure)
File.get_folders() : List[File]
Returns an array of the folders contained in this object. This function is only available if this object is a folder, so it is advisable to first use the is_folder function before calling this method.
File.get_files() : List[File]
Returns an array of files (excluded folders) contained in this object. This function is only available if this object is a folder, so it is advisable to first use the is_folder function before calling this method.
File.permissions() : String
Returns a string with the current file permissions.
File.owner() : String
Returns a string with the name of the file owner.
File.set_owner(ownerName:String, ?isRecursive:Number) : Number
Apply a owner to this file. By default, the owner does not apply recursively. To apply the owner recursively, the optional parameter must be 1.
Returns a string (empty on success, or with an error on failure)
File.group() : String
Returns a string with the name of the group to which this file belongs.
File.set_group(groupName:String, ?isRecursive:Number) : Number
Apply a group to this file. By default, the group does not apply recursively. To apply the group recursively, the optional parameter must be 1.
Returns a string (empty on success, or with an error on failure)
File.size() : Number
Returns a string with the size of the file in bytes.
File.meta_info() : Any
Presumedly returns metadata information about a file.
*This requires moderator permissions on Multiplayer, and is unavailable in Singleplayer.
Crypto
Crypto.aircrack(pathFile:String) : String | null
Возвращает строку с паролем, сгенерированным из файла, который был создан aireplay.
Crypto.airmon(option:String, device:String) : String | Number
Включает или отключает режим мониторинга сетевого устройства. Параметр опции может быть только «start» или «stop».
Crypto.aireplay(bssid:String, essid:String, ?maxAcks:Number) : String | null
Используется для ввода кадров в беспроводные интерфейсы.
После остановки команды с помощью Control+C она сохранит захваченную информацию в текстовом файле с именем file.cap по пути, по которому в данный момент находится терминал.
В качестве альтернативы можно указать максимальное количество перехваченных подтверждений для автоматической остановки команды с сохранением файла file.cap, как описано выше.
В случае возникновения ошибки будет возвращена строка с сообщением, указывающим проблему.
Crypto.decipher(encryptedPass:String) : String | null
Note: Этот метод нельзя использовать c включенным шифрованием.
Запукает процесс расшифровки пароля.
Crypto.smtp_user_list(ipAddress:String, port:Number) : String | List[String] | null
Службы SMTP — это почтовые службы. При использовании этого метода с IP почтового сервера из-за уязвимости в сервисе он возвращает список существующих пользователей на компьютере, где работает SMTP-сервис. Если у этих пользователей также есть учетная запись электронной почты, зарегистрированная на SMTP-сервере, она будет указана в списке.
Возвращает объект списка всех пользователей на машине вместе с их адресом электронной почты или возвращает строку, содержащую ошибку
Metaxploit
Metaxploit.load(path:String) : MetaLib | null
Load the library in memory and return it as a metalib type if the process was successful.
Metaxploit.net_use(ipAddress:String, port:Number) : NetSession | null
Note: Этот метод нельзя использовать c включенным шифрованием.
It connects to the specified address and establishes a null session to gain access to a library remotely. This type of attack is only available for services that work remotely. If no port is specified, it will connect directly to the router. If the process has been executed correctly, an object of type net_session will be returned.
Metaxploit.scan(metaLib:MetaLib) : List[String]
Note: Этот метод нельзя использовать c включенным шифрованием.
Analyze the memory areas occupied by the library in search of vulnerabilities. Returns a list with the affected memory zones.
Metaxploit.scan_address(metaLib:MetaLib, memAddress:String) : String
Note: Этот метод нельзя использовать c включенным шифрованием.
It analyzes a specific memory address and shows the vulnerable parts that can be exploited.
Metaxploit.sniffer(saveEncSource:Number) : String
Note: Этот метод нельзя использовать c включенным шифрованием.
The terminal listens to the network packets of any connection that passes through this device. When any connection information is captured, it prints a string with the obtained data. It can save the source code of the encode script if saveEncSource is true. Null is returned if the listen could not be started.
Metaxploit.rshell_client(address:String, ?port:Number, ?procName:String) : Number
Launches a process on the victim's machine, which silently tries to continuously connect in the background to the specified address and port. For the reverse shell to run successfully, the rshell service must be installed and the portforward configured correctly on the machine where the server is waiting for the victim's connection.
Metaxploit.rshell_server() : List[Shell]
This method returns a list of shell objects that have been reverse shell connected to this machine. In order to manage the connections received, the rshell service must be installed on the machine that receives the victims' connections.
NetSession
NetSession.dump_lib() : MetaLib
Returns the metalib associated with the remote service.
For example, connecting to a computer with the ssh service will return a metalib libssh object.
In the case of connecting to a router, it returns a metalib kernel_router object.
MetaLib
MetaLib.lib_name() : String
Returns the name of the library.
MetaLib.version() : String
Returns the version of the library.
MetaLib.overflow(memAddress:String, unsecValue:String, ?optArgs:String) : String | Number | Shell | Computer | File
Exploits the indicated vulnerability through the buffer overflow method. The object returned can be of various types or even not return anything, so it is advisable to use the typeof method with the object returned. Depending on the result, it may be necessary to pass extra arguments so that the exploit runs correctly, for example in the case of a password change.
Router
Router.public_ip() : String
Returns a string with the router's public ip address.
Router.local_ip() : String
Returns a string with the router's local ip address.
Router.ping_port(port:Number) : String
Returns the port object that is behind the port number provided if exists, null otherwise.
Router.port_info(portObject:Port) : String
Returns a string with the information of the port that has been provided. The port provided must not belong to another network than this router.
Router.used_ports() : List[Port]
Returns an array of ports that are being used in this router.
Router.device_ports(ipAddress:String) : List[Port]
Takes a LAN IP address and returns a list with open ports accessible in the network.
Router.devices_lan_ip() : List[String]
Returns a list with any computer whose gateway is the current device with the ips of the routers and switches that it can reach with a ping. Some of the returned addresses could be behind a firewall
Router.essid_name() : String
Returns a string with the ESSID value of the router.
Router.bssid_name() : String
Returns a string with the BSSID value of the router.
Router.kernel_version() : String
Returns a string with the version of the kernel_router.so library
Router.firewall_rules() : String
Returns a string list with the firewall rules present in the router or switch.
Port
Port.get_lan_ip() : String
Returns a string with the local IP address of the computer pointed to by this port.
Port.is_closed() : Number
Returns true if this port is closed, false otherwise.
Port.port_number() : Number
Returns an number with the configured port number.
MetaMail
MetaMail.fetch() : List[String] | String
Получает все письма
Возвращает строковый список полученных писем с предварительным просмотром содержимого. В случае ошибки возвращает строку.
MetaMail.read(mail_id:String) : String
Читает всю почту. Аргумент mail_ID можно получить с помощью метода fetch.
Возвращает либо содержимое в виде строки, либо сообщение об ошибке.
MetaMail.send(address:String, subject:String, message:String) : Number | String
Отправляет новое письмо указанному получателю.
Возвращает 1, если письмо было отправлено правильно, в противном случае возвращает строку с ошибкой.
MetaMail.delete(mail_id:String) : Number | String
Удаляет письма, соответствующие mail_ID.
Возвращает 1, если письмо было успешно удалено, или строку с сообщением об ошибке.
General
mail_login(user:String, password:String) : String | MetaMail
Access the email account
Returns a MetaMail type object if the login has been correct. In case of error, it returns a string
print(value:String) : Number
Print on the Terminal the message.
wait(seconds:Number) : null
Pauses the script for the indicated time. If duration is not specified, the default value is 1 second.
time() : Number
Returns the number of seconds since the program execution began.
typeof(anyObject:Any) : String
Returns a string with the type of the object passed as a parameter.
md5(value:String) : String
Note: Этот метод нельзя использовать c включенным шифрованием.
ciphertext = md5("Password")
get_router(?ipAddress:String) : Router | null
Returns the router whose public IP matches, otherwise returns null. If the ip_address parameter is not specified, returns the router to which the computer executing this command is connected.
get_switch(ipAddress:String) : Router | null
Returns the switch on the local network whose IP matches, otherwise it returns null.
get_shell(?username:String, ?password:String) : Shell | null
Returns the shell that is executing the script if it is called without parameters. Passing a username and password, it returns a shell with those credentials if are correct.
shell = get_shell
rootShell = get_shell("root","myTotallySecurePassword")
nslookup(hostname:String) : String
Returns the IP address that is behind the web address that has been provided.
whois(ipAddress:String) : String
Shows the administrator information behind the IP provided.
is_valid_ip(ipAddress:String) : Number
Returns true if the provided address is valid, false otherwise.
is_lan_ip(ipAddress:String) : Number
Returns true if the provided address is local, false otherwise. If the provided IP is not valid, it also returns false.
command_info(idCommand:String) : String
Returns the information of common commands of the Operating System, such as mkdir, whois, etc.
current_date() : String
Returns the time and date.
current_path() : String
It returns a string with the path in which the terminal is at the moment of launching the script.
parent_path() : String
Returns the path to the parent directory.
home_dir() : String
Returns a string with home folder path of the user who is executing the script.
program_path() : String
Returns a string with the path of the program that is running at this time.
active_user() : String
Returns a string with the name of the user who is executing the script.
user_mail_address() : String
Returns a string with the user's email address that is executing this script. This is only defined on a player's home computer.
user_bank_number() : Number
Returns a string with the bank account number of the user who is executing this script. This is only defined on a player's home computer.
format_columns(columns:String) : String
Format the text provided so that it is ordered by columns.
user_input(message:String, ?isPassword:Number, ?anyKey:Number) : String
Note: Этот метод нельзя использовать c включенным шифрованием.
It puts the program on hold to receive the user input, which will be processed as a string. If the password mode is activated, the input text will be hidden with asterisks. If the anyKey argument is true, the entered character will be captured without pressing enter.
include_lib(libPath:String) : Crypto | Metaxploit | AptClient
Includes an external library to be used in scripting. If the library has been included correctly, it will return an object of corresponding type with the library, null otherwise
bitwise(operator:String, num1:Number, num2:Number) : Number
Bitwise operators are used for manipulating data at the bit level. Bitwise operates on one or more bit patterns or binary numerals at the level of their individual bits. They are used in numerical computations to make the calculation process faster. The operator argument accepts the following operators: &, |, ^, <<, >>, >>>
clear_screen() : null
Note: Этот метод нельзя использовать c включенным шифрованием.
Clears all text from the terminal.
exit(?message:String) : null
Stops the execution of the script at the time this method is executed. Optionally you can pass a string as a message that will be printed in the terminal when the program ends.
import_code(absolutePath:String) : null
Includes external code into the current code. Can be used to split code in multiple files. Note: The code will be added to the current code upon compiling.
hash(obj:String) : Number
Note: Этот метод нельзя использовать c включенным шифрованием.
Returns a integer that is "relatively unique" to the given value. In the case of strings, the hash is case-sensitive. In the case of a list r map, the hash combines the hash values of all elements.
launch_path() : String
Returns the path of the program that launched this program.
abs(num:Number) : Number
Returns the absolute value of the provided input.
acos(num:Number) : Number
Returns the arccosine of the provided input in radians.
asin(num:Number) : Number
Returns the arcsine of the provided input in radians.
atan(num:Number) : Number
Returns the arctangent of the provided input in radians.
tan(num:Number) : Number
Returns the tangent of the provided input.
cos(num:Number) : Number
Returns the cosine of the provided input.
sin(num:Number) : Number
Returns the sine of the provided input.
char(num:Number) : String
Returns the unicode character at the provided input's code point.
floor(num:Number) : Number
Returns the provided input floored to it's base integer.
range(start:Number, ?end:Number, ?increment:Number) : List[Number]
Returns a list object containing values from the start to the end, incrementing by increment.
round(num:Number, ?decimals:Number) : Number
Returns the provided input rounded to the decimal place provided.
rnd(?seed:Number) : Number
Returns a random float between 0 and 1. If seed is provide, it seeds the random number with the given value.
sign(num:Number) : Number
Returns the sign of the provided input.
sqrt(num:Number) : Number
Returns the square root of the provided input.
str(num:Number) : Number
Converts the provided input into a string.
ceil(num:Number) : Number
Returns the provided input raised to the next or equal integer.
pi() : Number
Returns 3.14159265358979 (this will probably never be useful!)
slice(sequence:Any, from:Number, ?to:Number) : String | List[Any]
Returns the provided string or list from index start to index end.
String
String.remove(subString:String) : String
Returns the string without the first occurrence of the provided substring.
String.hasIndex(index:Number) : Number
Returns 1 if the index exists. Returns 0 otherise.
String.indexOf(subString:String, ?startIndex:Number) : Number | null
Returns the first index of the provided input with the string. Optionally searches after begin. Returns Null if not found.
String.lastIndexOf(subString:String) : Number
Returns the last index of the provided input with the string. Optionally searches after begin. Returns Null if not found.
String.split(delimiter:String) : List[String]
Returns a list object of substrings.
String.replace(old:String, new:String) : String
Returns the string with any instances of new replaced with old.
String.trim() : String
Returns the string stripped of any spacing at the beginning or end.
String.indexes() : List[Number]
Returns a list object containing indexes of all characters in the string.
String.code() : Number
Returns the unicode code point of the first character in the string.
String.len() : Number
Returns the length of the provided object.
String.lower() : String
Returns the lowercase string.
String.upper() : String
Returns the uppercase string.
String.val() : Number
Converts the string to a float.
String.values() : List[String]
Returns a list object containing values of all characters in the string.
String.to_int() : Number
Converts the string to a integer.
List
List.hasIndex(index:Number) : Number
Returns 1 if the index exists. Returns 0 otherise.
List.indexOf(value:Any) : Number | null
Returns the index of the provided value. Optionally searches after begin. Returns Null if not found.
List.remove(index:Number) : List[Any]
Returns the list without the first occurrence of the provided input.
List.join(delimiter:String) : String
Concatenates all items within the list and returns them in a single string.
List.push(value:Any) : null
Pushes the provided input onto the end of the list. Returns the updated list, and updates the list in it's place.
List.pop() : Any
Returns the last element of the list, and removes that element from the list.
List.pull() : Any
Returns the first element of the list, and removes that element from the list.
List.shuffle() : List
Randomly remaps values in a list, leaving the keys in their original order.
List.reverse() : List
Reverses the list, rearranging the element in reverse order.
List.sort(?key:String) : List
Sorts a list alphanumerically.
List.indexes() : List[Number]
Returns a list object containing the list's indexes
List.len() : Number
Returns the length of the provided object.
List.values() : List[Any]
Returns a list object containing the list's values
List.sum() : Number
Returns the total of all numeric values in a list.
Map
Map.hasIndex(key:Any) : Number
Returns 1 if the index exists. Returns 0 otherise.
Map.indexOf(value:Any) : Number | null
Returns the first index of the provided input with the string. Optionally searches after begin. Returns Null if not found.
Map.push(key:Any) : null
Pushes the provided input onto the end of the map. Returns the updated map, and updates the map in it's place.
Map.remove(key:Any) : List[Any]
Returns the map without the first occurrence of the provided input.
Map.indexes() : List[Any]
Returns a list object containing the map's indexes.
Map.len() : Number
Returns the length of the provided object.
Map.pop() : Any
Returns the key of the first element in the map, and removes that element from the map.
Map.shuffle() : Map
Randomly remaps values in a map, leaving the keys in their original order.
Map.sum() : Number
Returns the total of all numeric values in a map.
Map.values() : List
Returns a list object containing the map's values.