# Global Functions

Functions for importing Lua modules and creating new instances also allow the use of various placeholders that can cut down on development time and create an organized environment. Pound symbols `#` inserted in parameter strings are replaced with `nz.co.jammehcow.lukkit.environment` and dollar signs `$` with `org.bukkit`.

* **`require_local(path: string)` : script**

  Import Lua modules into the current script. This function is the same as the original Lua require method and can be used in that manner. The specified path must be relative to the location of the current Lua script. In the following example, the file extension `.lua` is not necessary for importing modules.

  ```lua
  utils = require 'utils'
  ```
* **`import(class: string)` : static Java class**

  Import an enum or static class from Java into the current script.

  ```lua
  local material = import("$.Material")
  ```
* **`newInstance(class: string, args: array)` : Java object**

  Create a new instance of an object from Java.

  ```lua
  color = newInstance("#.wrappers.ChatColorWrapper", {plugin.getPlugin()})
  plugin.getServer():broadcastMessage(color.GOLD .. "Hello world!")
  ```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.lukkit.net/globals/global-functions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
