Git Product home page Git Product logo

luascript's People

Contributors

archie3d avatar jezv avatar pandademic avatar perbone avatar samkdn avatar shalokshalom avatar xrayez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

luascript's Issues

Lua OOP Design

The idea is to design how OOP will work in Lua and Godot. Classes will be implemented with tables and should be as close as possible to the Godot API used by other languages.

Following below is an excerpt for some of the the designs I have so far.

1. Explicitly imports the class Lua module and the node class to be extended and defines new classes through the class's 'extends' method

Although more verbose it gives a classic oop look and feel

local class = require 'lua.class' -- Import the system class library
local Sprite = require 'godot.Sprite' -- Make sure to import the base class

local Main = class.extends(Sprite) -- Creates the user subclass

function Main:ready()
end

function Main:process(delta)
end

return Main

2. Explicitly imports only the node class to be extended and defines new classes through the implicity available 'extends' method

This is more streamlined and concise and gives a mixed oop look and feel

local Sprite = require 'godot.Sprite' -- Make sure to import the base class

local Main = extends(Sprite) -- Creates the user subclass

function Main:ready()
end

function Main:process(delta)
end

return Main

Please share your thoughts on this two ideas or show us a new idea that you come up about this topic.

-- Perbone

build error

godot\modules\luascript\debug.h(26): fatal error C1083: “os/os.h”: No such file or directory

Does this project do not use the Lua VM and parser/lexer?

Hello, I found your project and it looks interesting.
I have made modifications to Lua 5.2 to fit my liking in a language I called Killa.
Long time ago I used it to embed support for my language in Cocos2dx++ and Love2D both game engines with Lua support.
They are now obsolete, and I was planing to use Killa in Godot, not a fan of GDScript to be honest and I prefer C++ for everything performance related. So anyways, I was skimming your repo code and saw the usage of ANTLR and commits about parsing Lua, that I don't understand. Is this used only for the Lua code editor?. I would like to use your project to bootstrap my project of Killa in Godot if possible. Thanks for your time.

Error building on Windows 10

I'm building Godot with luascript on Windows, with LLVM-Mingw-w64, using the options scons use_mingw=yes use_llvm=yes use_lld=yes module_luascript_enabled=yes, and ANTLR4 has several errors in CommonToken.h and CommonToken.cpp. Most of the errors are dllimport errors, such as error: definition of dllimport static field not allowed and redeclared without 'dllimport' attribute: previous 'dllimport' ignored. Hopefully this can help make the module work cross-platform.

Problem building on windows

Problem:

Try to build on windows for godot 3.2 throws errors and stop the build process

Error:

scons: Reading SConscript files ...
Configuring for Windows: target=debug, bits=default
Found MSVC version 14.1, arch amd64, bits=64
YASM is necessary for WebM SIMD optimizations.
WebM SIMD optimizations are disabled. Check if your CPU architecture, CPU bits or platform are supported!
Checking for C header file mntent.h... (cached) no
scons: done reading SConscript files.
scons: Building targets ...
[  5%] ←[94mCompiling ←[95m==> ←[93mmain\main.cpp←[0m
[  5%] main.cpp
[  6%] ←[94mCompiling ←[95m==> ←[93mmodules\register_module_types.gen.cpp←[0m
register_module_types.gen.cpp
[ 25%] Compiling ==> modules\luascript\lib\lua\lapi.c
[ 25%] Linking Static Library ==> main\main.windows.tools.64.lib
[ 25%] lapi.c
[ 25%] 
[ 25%] Compiling ==> modules\luascript\lib\lua\lauxlib.c
lauxlib.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lbaselib.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lcode.c
lbaselib.c
lcode.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lcorolib.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lctype.c
lcorolib.c
lctype.c
[ 25%] Compiling ==> modules\luascript\lib\lua\ldblib.c
[ 25%] Compiling ==> modules\luascript\lib\lua\ldebug.c
ldblib.c
ldebug.c
[ 25%] Compiling ==> modules\luascript\lib\lua\ldo.c
ldo.c
[ 25%] Compiling ==> modules\luascript\lib\lua\ldump.c
[ 25%] ldump.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lfunc.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lgc.c
lfunc.c
lgc.c
[ 25%] Compiling ==> modules\luascript\lib\lua\linit.c
linit.c
[ 25%] Compiling ==> modules\luascript\lib\lua\liolib.c
liolib.c
[ 25%] Compiling ==> modules\luascript\lib\lua\llex.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lmathlib.c
llex.c
lmathlib.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lmem.c
[ 25%] Compiling ==> modules\luascript\lib\lua\loadlib.c
lmem.c
loadlib.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lobject.c
[ 25%] lobject.c
Compiling ==> modules\luascript\lib\lua\lopcodes.c
lopcodes.c
[ 25%] Compiling ==> modules\luascript\lib\lua\loslib.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lparser.c
loslib.c
lparser.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lstate.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lstring.c
lstate.c
lstring.c
[ 25%] Compiling ==> modules\luascript\lib\lua\lstrlib.c
[ 25%] Compiling ==> modules\luascript\lib\lua\ltable.c
lstrlib.c
ltable.c
[ 25%] Compiling ==> modules\luascript\lib\lua\ltablib.c
[ 25%] Compiling ==> modules\luascript\lib\lua\ltm.c
[ 26%] Compiling ==> modules\luascript\lib\lua\lundump.c
ltablib.c
ltm.c
lundump.c
[ 26%] Compiling ==> modules\luascript\lib\lua\lutf8lib.c
[ 26%] Compiling ==> modules\luascript\lib\lua\lvm.c
[ 26%] Compiling ==> modules\luascript\lib\lua\lzio.c
lutf8lib.c
lvm.c
lzio.c
[ 26%] Compiling ==> modules\luascript\lib\antlr4\ANTLRErrorListener.cpp
[ 26%] Compiling ==> modules\luascript\lib\antlr4\ANTLRErrorStrategy.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
ANTLRErrorListener.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
ANTLRErrorStrategy.cpp
[ 26%] Compiling ==> modules\luascript\lib\antlr4\ANTLRFileStream.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
ANTLRFileStream.cpp
d:\godot src\godot\modules\luascript\lib\antlr4\IntStream.h(47): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream'd:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(15): warning C4251: 'antlr4::RuntimeException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::RuntimeException'

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'

modules\luascript\lib\antlr4\ANTLRErrorStrategy.cpp(9): warning C4273: 'antlr4::ANTLRErrorStrategy::~ANTLRErrorStrategy': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRErrorStrategy.h(35): note: see previous definition of '{dtor}'d:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(75): warning C4251: 'antlr4::IOException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IOException'

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
modules\luascript\lib\antlr4\ANTLRErrorListener.cpp(9): warning C4273: 'antlr4::ANTLRErrorListener::~ANTLRErrorListener': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRErrorListener.h(19): note: see previous definition of '{dtor}'
d:\godot src\godot\modules\luascript\lib\antlr4\IntStream.h(47): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(19): warning C4251: 'antlr4::ANTLRInputStream::_data': class 'std::basic_string<int,std::char_traits<_Elem>,std::allocator<_Elem>>' needs to have dll-interface to be used by clients of class 'antlr4::ANTLRInputStream'
        with
        [
            _Elem=int
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\antlr4-common.h(66): note: see declaration of 'std::basic_string<int,std::char_traits<_Elem>,std::allocator<_Elem>>'
        with
        [
            _Elem=int
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(26): warning C4251: 'antlr4::ANTLRInputStream::name': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::ANTLRInputStream'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRFileStream.h(27): warning C4251: 'antlr4::ANTLRFileStream::_fileName': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::ANTLRFileStream'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
modules\luascript\lib\antlr4\ANTLRFileStream.cpp(12): warning C4273: 'antlr4::ANTLRFileStream::loadFromFile': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRFileStream.h(23): note: see previous definition of 'loadFromFile'
modules\luascript\lib\antlr4\ANTLRFileStream.cpp(27): warning C4273: 'antlr4::ANTLRFileStream::getSourceName': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRFileStream.h(24): note: see previous definition of 'getSourceName'
[ 26%] Compiling ==> modules\luascript\lib\antlr4\ANTLRInputStream.cpp
[ 26%] Compiling ==> modules\luascript\lib\antlr4\BailErrorStrategy.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
ANTLRInputStream.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
BailErrorStrategy.cpp
[ 26%] Compiling ==> modules\luascript\lib\antlr4\BaseErrorListener.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
BaseErrorListener.cpp
d:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(15): warning C4251: 'antlr4::RuntimeException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::RuntimeException'd:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(15): warning C4251: 'antlr4::RuntimeException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::RuntimeException'

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'

d:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(75): warning C4251: 'antlr4::IOException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IOException'd:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(75): warning C4251: 'antlr4::IOException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IOException'

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\IntStream.h(47): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\tree/ParseTree.h(38): warning C4251: 'antlr4::tree::ParseTree::children': class 'std::vector<antlr4::tree::ParseTree *,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::tree::ParseTree'
        with
        [
            _Ty=antlr4::tree::ParseTree *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\tree/ParseTree.h(38): note: see declaration of 'std::vector<antlr4::tree::ParseTree *,std::allocator<_Ty>>'
        with
        [
            _Ty=antlr4::tree::ParseTree *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\tree/ParseTree.h(97): warning C4251: 'antlr4::tree::ParseTreeTracker::_allocated': class 'std::vector<antlr4::tree::ParseTree *,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::tree::ParseTreeTracker'
        with
        [
            _Ty=antlr4::tree::ParseTree *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\tree/ParseTree.h(38): note: see declaration of 'std::vector<antlr4::tree::ParseTree *,std::allocator<_Ty>>'
        with
        [
            _Ty=antlr4::tree::ParseTree *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(19): warning C4251: 'antlr4::ANTLRInputStream::_data': class 'std::basic_string<int,std::char_traits<_Elem>,std::allocator<_Elem>>' needs to have dll-interface to be used by clients of class 'antlr4::ANTLRInputStream'
        with
        [
            _Elem=int
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\antlr4-common.h(66): note: see declaration of 'std::basic_string<int,std::char_traits<_Elem>,std::allocator<_Elem>>'
        with
        [
            _Elem=int
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(26): warning C4251: 'antlr4::ANTLRInputStream::name': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::ANTLRInputStream'
d:\godot src\godot\modules\luascript\lib\antlr4\ParserRuleContext.h(66): warning C4251: 'antlr4::ParserRuleContext::exception': class 'std::exception_ptr' needs to have dll-interface to be used by clients of class 'antlr4::ParserRuleContext'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\exception(239): note: see declaration of 'std::exception_ptr'modules\luascript\lib\antlr4\ANTLRInputStream.cpp(22): warning C4273: 'antlr4::ANTLRInputStream::ANTLRInputStream': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(28): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(32): warning C4273: 'antlr4::ANTLRInputStream::ANTLRInputStream': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(34): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(36): warning C4273: 'antlr4::ANTLRInputStream::ANTLRInputStream': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(35): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(40): warning C4273: 'antlr4::ANTLRInputStream::ANTLRInputStream': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(36): note: see previous definition of '{ctor}'
d:\godot src\godot\modules\luascript\lib\antlr4\ProxyErrorListener.h(18): warning C4251: 'antlr4::ProxyErrorListener::_delegates': class 'std::set<antlr4::ANTLRErrorListener *,std::less<_Kty>,std::allocator<_Kty>>' needs to have dll-interface to be used by clients of class 'antlr4::ProxyErrorListener'
        with
        [
            _Kty=antlr4::ANTLRErrorListener *
        ]
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(44): warning C4273: 'antlr4::ANTLRInputStream::load': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\ProxyErrorListener.h(18): note: see declaration of 'std::set<antlr4::ANTLRErrorListener *,std::less<_Kty>,std::allocator<_Kty>>'
        with
        [
            _Kty=antlr4::ANTLRErrorListener *
        ]

d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(38): note: see previous definition of 'load'
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(48): warning C4273: 'antlr4::ANTLRInputStream::load': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(156): warning C4251: 'antlr4::Recognizer::_mutex': class 'std::mutex' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'

d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(39): note: see previous definition of 'load'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\mutex(82): note: see declaration of 'std::mutex'

modules\luascript\lib\antlr4\ANTLRInputStream.cpp(58): warning C4273: 'antlr4::ANTLRInputStream::load': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(159): warning C4251: 'antlr4::Recognizer::_tokenTypeMapCache': class 'std::map<const antlr4::dfa::Vocabulary *,std::map<std::string,size_t,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>,std::less<const antlr4::dfa::Vocabulary*>,std::allocator<std::pair<const antlr4::dfa::Vocabulary*const ,std::map<_Kty,_Ty,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>>>>' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'
        with
        [
            _Kty=std::string,
            _Ty=size_t
        ]d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(40): note: see previous definition of 'load'
d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(159): note: see declaration of 'std::map<const antlr4::dfa::Vocabulary *,std::map<std::string,size_t,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>,std::less<const antlr4::dfa::Vocabulary*>,std::allocator<std::pair<const antlr4::dfa::Vocabulary*const ,std::map<_Kty,_Ty,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>>>>'
        with
        [
            _Kty=std::string,
            _Ty=size_t
        ]
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(68): warning C4273: 'antlr4::ANTLRInputStream::reset': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(160): warning C4251: 'antlr4::Recognizer::_ruleIndexMapCache': class 'std::map<std::vector<std::string,std::allocator<_Ty>>,std::map<std::string,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>,std::less<std::vector<_Ty,std::allocator<_Ty>>>,std::allocator<std::pair<const std::vector<_Ty,std::allocator<_Ty>>,std::map<_Kty,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>>>>' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'
        with
        [
            _Ty=std::string,
            _Kty=std::string
        ]

d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(45): note: see previous definition of 'reset'd:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(160): note: see declaration of 'std::map<std::vector<std::string,std::allocator<_Ty>>,std::map<std::string,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>,std::less<std::vector<_Ty,std::allocator<_Ty>>>,std::allocator<std::pair<const std::vector<_Ty,std::allocator<_Ty>>,std::map<_Kty,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>>>>'
        with
        [
            _Ty=std::string,
            _Kty=std::string
        ]

modules\luascript\lib\antlr4\ANTLRInputStream.cpp(72): warning C4273: 'antlr4::ANTLRInputStream::consume': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(46): note: see previous definition of 'consume'
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(83): warning C4273: 'antlr4::ANTLRInputStream::LA': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(47): note: see previous definition of 'LA'
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(103): warning C4273: 'antlr4::ANTLRInputStream::LT': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(48): note: see previous definition of 'LT'd:\godot src\godot\modules\luascript\lib\antlr4\IntStream.h(47): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream'

modules\luascript\lib\antlr4\ANTLRInputStream.cpp(107): warning C4273: 'antlr4::ANTLRInputStream::index': inconsistent dll linkageC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'

d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(55): note: see previous definition of 'index'
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(111): warning C4273: 'antlr4::ANTLRInputStream::size': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(56): note: see previous definition of 'size'
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(116): warning C4273: 'antlr4::ANTLRInputStream::mark': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(60): note: see previous definition of 'mark'
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(120): warning C4273: 'antlr4::ANTLRInputStream::release': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\Parser.h(412): warning C4251: 'antlr4::Parser::_errHandler': class 'std::shared_ptr<antlr4::ANTLRErrorStrategy>' needs to have dll-interface to be used by clients of class 'antlr4::Parser'

d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(61): note: see previous definition of 'release'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\memory(1259): note: see declaration of 'std::shared_ptr<antlr4::ANTLRErrorStrategy>'

modules\luascript\lib\antlr4\ANTLRInputStream.cpp(123): warning C4273: 'antlr4::ANTLRInputStream::seek': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(67): note: see previous definition of 'seek'
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(135): warning C4273: 'antlr4::ANTLRInputStream::getText': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(68): note: see previous definition of 'getText'
d:\godot src\godot\modules\luascript\lib\antlr4\Parser.h(421): warning C4251: 'antlr4::Parser::_precedenceStack': class 'std::vector<int,std::allocator<_Elem>>' needs to have dll-interface to be used by clients of class 'antlr4::Parser'
        with
        [
            _Elem=int
        ]modules\luascript\lib\antlr4\ANTLRInputStream.cpp(156): warning C4273: 'antlr4::ANTLRInputStream::getSourceName': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\Parser.h(421): note: see declaration of 'std::vector<int,std::allocator<_Elem>>'
        with
        [
            _Elem=int
        ]d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(69): note: see previous definition of 'getSourceName'

modules\luascript\lib\antlr4\ANTLRInputStream.cpp(163): warning C4273: 'antlr4::ANTLRInputStream::toString': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(70): note: see previous definition of 'toString'
modules\luascript\lib\antlr4\ANTLRInputStream.cpp(167): warning C4273: 'antlr4::ANTLRInputStream::InitializeInstanceFields': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\ANTLRInputStream.h(73): note: see previous definition of 'InitializeInstanceFields'd:\godot src\godot\modules\luascript\lib\antlr4\Parser.h(434): warning C4251: 'antlr4::Parser::_parseListeners': class 'std::vector<antlr4::tree::ParseTreeListener *,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::Parser'
        with
        [
            _Ty=antlr4::tree::ParseTreeListener *
        ]

d:\godot src\godot\modules\luascript\lib\antlr4\Parser.h(128): note: see declaration of 'std::vector<antlr4::tree::ParseTreeListener *,std::allocator<_Ty>>'
        with
        [
            _Ty=antlr4::tree::ParseTreeListener *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Parser.h(455): warning C4251: 'antlr4::Parser::bypassAltsAtnCache': class 'std::map<std::vector<uint16_t,std::allocator<_Ty>>,antlr4::atn::ATN,std::less<_Kty>,std::allocator<std::pair<const _Kty,antlr4::atn::ATN>>>' needs to have dll-interface to be used by clients of class 'antlr4::Parser'
        with
        [
            _Ty=uint16_t,
            _Kty=std::vector<uint16_t,std::allocator<uint16_t>>
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Parser.h(455): note: see declaration of 'std::map<std::vector<uint16_t,std::allocator<_Ty>>,antlr4::atn::ATN,std::less<_Kty>,std::allocator<std::pair<const _Kty,antlr4::atn::ATN>>>'
        with
        [
            _Ty=uint16_t,
            _Kty=std::vector<uint16_t,std::allocator<uint16_t>>
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\misc/IntervalSet.h(33): warning C4251: 'antlr4::misc::IntervalSet::_intervals': class 'std::vector<antlr4::misc::Interval,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::misc::IntervalSet'
        with
        [
            _Ty=antlr4::misc::Interval
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\misc/IntervalSet.h(33): note: see declaration of 'std::vector<antlr4::misc::Interval,std::allocator<_Ty>>'
        with
        [
            _Ty=antlr4::misc::Interval
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\DefaultErrorStrategy.h(462): warning C4251: 'antlr4::DefaultErrorStrategy::_errorSymbols': class 'std::vector<std::unique_ptr<antlr4::Token,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>' needs to have dll-interface to be used by clients of class 'antlr4::DefaultErrorStrategy'
        with
        [
            _Ty=antlr4::Token
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\DefaultErrorStrategy.h(462): note: see declaration of 'std::vector<std::unique_ptr<antlr4::Token,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>'
        with
        [
            _Ty=antlr4::Token
        ]
modules\luascript\lib\antlr4\BailErrorStrategy.cpp(15): warning C4273: 'antlr4::BailErrorStrategy::recover': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BailErrorStrategy.h(48): note: see previous definition of 'recover'
modules\luascript\lib\antlr4\BailErrorStrategy.cpp(36): warning C4273: 'antlr4::BailErrorStrategy::recoverInline': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BailErrorStrategy.h(52): note: see previous definition of 'recoverInline'
modules\luascript\lib\antlr4\BailErrorStrategy.cpp(60): warning C4273: 'antlr4::BailErrorStrategy::sync': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BailErrorStrategy.h(56): note: see previous definition of 'sync'
d:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(15): warning C4251: 'antlr4::RuntimeException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::RuntimeException'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(75): warning C4251: 'antlr4::IOException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IOException'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
modules\luascript\lib\antlr4\BaseErrorListener.cpp(12): warning C4273: 'antlr4::BaseErrorListener::syntaxError': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BaseErrorListener.h(23): note: see previous definition of 'syntaxError'
modules\luascript\lib\antlr4\BaseErrorListener.cpp(16): warning C4273: 'antlr4::BaseErrorListener::reportAmbiguity': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BaseErrorListener.h(26): note: see previous definition of 'reportAmbiguity'
modules\luascript\lib\antlr4\BaseErrorListener.cpp(20): warning C4273: 'antlr4::BaseErrorListener::reportAttemptingFullContext': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BaseErrorListener.h(29): note: see previous definition of 'reportAttemptingFullContext'
modules\luascript\lib\antlr4\BaseErrorListener.cpp(24): warning C4273: 'antlr4::BaseErrorListener::reportContextSensitivity': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BaseErrorListener.h(32): note: see previous definition of 'reportContextSensitivity'
[ 26%] Compiling ==> modules\luascript\lib\antlr4\BufferedTokenStream.cpp
[ 26%] 
[ 26%] Compiling ==> modules\luascript\lib\antlr4\CharStream.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
BufferedTokenStream.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
[ 26%] CharStream.cpp
[ 26%] Compiling ==> modules\luascript\lib\antlr4\CommonToken.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
CommonToken.cpp
d:\godot src\godot\modules\luascript\lib\antlr4\IntStream.h(47): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(15): warning C4251: 'antlr4::RuntimeException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::RuntimeException'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(75): warning C4251: 'antlr4::IOException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IOException'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\ProxyErrorListener.h(18): warning C4251: 'antlr4::ProxyErrorListener::_delegates': class 'std::set<antlr4::ANTLRErrorListener *,std::less<_Kty>,std::allocator<_Kty>>' needs to have dll-interface to be used by clients of class 'antlr4::ProxyErrorListener'
        with
        [
            _Kty=antlr4::ANTLRErrorListener *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\ProxyErrorListener.h(18): note: see declaration of 'std::set<antlr4::ANTLRErrorListener *,std::less<_Kty>,std::allocator<_Kty>>'
        with
        [
            _Kty=antlr4::ANTLRErrorListener *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(156): warning C4251: 'antlr4::Recognizer::_mutex': class 'std::mutex' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\mutex(82): note: see declaration of 'std::mutex'
d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(159): warning C4251: 'antlr4::Recognizer::_tokenTypeMapCache': class 'std::map<const antlr4::dfa::Vocabulary *,std::map<std::string,size_t,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>,std::less<const antlr4::dfa::Vocabulary*>,std::allocator<std::pair<const antlr4::dfa::Vocabulary*const ,std::map<_Kty,_Ty,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>>>>' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'
        with
        [
            _Kty=std::string,
            _Ty=size_t
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(159): note: see declaration of 'std::map<const antlr4::dfa::Vocabulary *,std::map<std::string,size_t,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>,std::less<const antlr4::dfa::Vocabulary*>,std::allocator<std::pair<const antlr4::dfa::Vocabulary*const ,std::map<_Kty,_Ty,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>>>>'
        with
        [
            _Kty=std::string,
            _Ty=size_t
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(160): warning C4251: 'antlr4::Recognizer::_ruleIndexMapCache': class 'std::map<std::vector<std::string,std::allocator<_Ty>>,std::map<std::string,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>,std::less<std::vector<_Ty,std::allocator<_Ty>>>,std::allocator<std::pair<const std::vector<_Ty,std::allocator<_Ty>>,std::map<_Kty,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>>>>' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'
        with
        [
            _Ty=std::string,
            _Kty=std::string
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(160): note: see declaration of 'std::map<std::vector<std::string,std::allocator<_Ty>>,std::map<std::string,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>,std::less<std::vector<_Ty,std::allocator<_Ty>>>,std::allocator<std::pair<const std::vector<_Ty,std::allocator<_Ty>>,std::map<_Kty,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>>>>'
        with
        [
            _Ty=std::string,
            _Kty=std::string
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\IntStream.h(47): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
modules\luascript\lib\antlr4\CharStream.cpp(10): warning C4273: 'antlr4::CharStream::~CharStream': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CharStream.h(16): note: see previous definition of '{dtor}'
d:\godot src\godot\modules\luascript\lib\antlr4\Lexer.h(61): warning C4251: 'antlr4::Lexer::token': class 'std::unique_ptr<antlr4::Token,std::default_delete<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::Lexer'
        with
        [
            _Ty=antlr4::Token
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\TokenSource.h(35): note: see declaration of 'std::unique_ptr<antlr4::Token,std::default_delete<_Ty>>'
        with
        [
            _Ty=antlr4::Token
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Lexer.h(88): warning C4251: 'antlr4::Lexer::modeStack': class 'std::vector<size_t,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::Lexer'
        with
        [
            _Ty=size_t
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Lexer.h(88): note: see declaration of 'std::vector<size_t,std::allocator<_Ty>>'
        with
        [
            _Ty=size_t
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Lexer.h(202): warning C4251: 'antlr4::Lexer::_text': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::Lexer'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\tree/ParseTree.h(38): warning C4251: 'antlr4::tree::ParseTree::children': class 'std::vector<antlr4::tree::ParseTree *,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::tree::ParseTree'
        with
        [
            _Ty=antlr4::tree::ParseTree *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\tree/ParseTree.h(38): note: see declaration of 'std::vector<antlr4::tree::ParseTree *,std::allocator<_Ty>>'
        with
        [
            _Ty=antlr4::tree::ParseTree *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\tree/ParseTree.h(97): warning C4251: 'antlr4::tree::ParseTreeTracker::_allocated': class 'std::vector<antlr4::tree::ParseTree *,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::tree::ParseTreeTracker'
        with
        [
            _Ty=antlr4::tree::ParseTree *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\tree/ParseTree.h(38): note: see declaration of 'std::vector<antlr4::tree::ParseTree *,std::allocator<_Ty>>'
        with
        [
            _Ty=antlr4::tree::ParseTree *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(108): warning C4251: 'antlr4::BufferedTokenStream::_tokens': class 'std::vector<std::unique_ptr<antlr4::Token,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>' needs to have dll-interface to be used by clients of class 'antlr4::BufferedTokenStream'
        with
        [
            _Ty=antlr4::Token
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Lexer.h(178): note: see declaration of 'std::vector<std::unique_ptr<antlr4::Token,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>'
        with
        [
            _Ty=antlr4::Token
        ]
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(18): warning C4273: 'antlr4::BufferedTokenStream::BufferedTokenStream': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(26): note: see previous definition of '{ctor}'
d:\godot src\godot\modules\luascript\lib\antlr4\IntStream.h(47): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(22): warning C4273: 'antlr4::BufferedTokenStream::getTokenSource': inconsistent dll linkageC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'

d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(31): note: see previous definition of 'getTokenSource'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(26): warning C4273: 'antlr4::BufferedTokenStream::index': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(32): note: see previous definition of 'index'd:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(15): warning C4251: 'antlr4::RuntimeException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::RuntimeException'

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'modules\luascript\lib\antlr4\BufferedTokenStream.cpp(30): warning C4273: 'antlr4::BufferedTokenStream::mark': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(33): note: see previous definition of 'mark'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(34): warning C4273: 'antlr4::BufferedTokenStream::release': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(35): note: see previous definition of 'release'd:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(75): warning C4251: 'antlr4::IOException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IOException'

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'modules\luascript\lib\antlr4\BufferedTokenStream.cpp(38): warning C4273: 'antlr4::BufferedTokenStream::reset': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(36): note: see previous definition of 'reset'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(42): warning C4273: 'antlr4::BufferedTokenStream::seek': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(37): note: see previous definition of 'seek'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(47): warning C4273: 'antlr4::BufferedTokenStream::size': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(39): note: see previous definition of 'size'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(51): warning C4273: 'antlr4::BufferedTokenStream::consume': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(40): note: see previous definition of 'consume'
d:\godot src\godot\modules\luascript\lib\antlr4\ProxyErrorListener.h(18): warning C4251: 'antlr4::ProxyErrorListener::_delegates': class 'std::set<antlr4::ANTLRErrorListener *,std::less<_Kty>,std::allocator<_Kty>>' needs to have dll-interface to be used by clients of class 'antlr4::ProxyErrorListener'
        with
        [
            _Kty=antlr4::ANTLRErrorListener *
        ]modules\luascript\lib\antlr4\BufferedTokenStream.cpp(76): warning C4273: 'antlr4::BufferedTokenStream::sync': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\ProxyErrorListener.h(18): note: see declaration of 'std::set<antlr4::ANTLRErrorListener *,std::less<_Kty>,std::allocator<_Kty>>'
        with
        [
            _Kty=antlr4::ANTLRErrorListener *
        ]d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(146): note: see previous definition of 'sync'

d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(156): warning C4251: 'antlr4::Recognizer::_mutex': class 'std::mutex' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'modules\luascript\lib\antlr4\BufferedTokenStream.cpp(89): warning C4273: 'antlr4::BufferedTokenStream::fetch': inconsistent dll linkage

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\mutex(82): note: see declaration of 'std::mutex'd:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(152): note: see previous definition of 'fetch'

d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(159): warning C4251: 'antlr4::Recognizer::_tokenTypeMapCache': class 'std::map<const antlr4::dfa::Vocabulary *,std::map<std::string,size_t,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>,std::less<const antlr4::dfa::Vocabulary*>,std::allocator<std::pair<const antlr4::dfa::Vocabulary*const ,std::map<_Kty,_Ty,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>>>>' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'
        with
        [
            _Kty=std::string,
            _Ty=size_t
        ]modules\luascript\lib\antlr4\BufferedTokenStream.cpp(114): warning C4273: 'antlr4::BufferedTokenStream::get': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(42): note: see previous definition of 'get'd:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(159): note: see declaration of 'std::map<const antlr4::dfa::Vocabulary *,std::map<std::string,size_t,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>,std::less<const antlr4::dfa::Vocabulary*>,std::allocator<std::pair<const antlr4::dfa::Vocabulary*const ,std::map<_Kty,_Ty,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>>>>'
        with
        [
            _Kty=std::string,
            _Ty=size_t
        ]

d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(160): warning C4251: 'antlr4::Recognizer::_ruleIndexMapCache': class 'std::map<std::vector<std::string,std::allocator<_Ty>>,std::map<std::string,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>,std::less<std::vector<_Ty,std::allocator<_Ty>>>,std::allocator<std::pair<const std::vector<_Ty,std::allocator<_Ty>>,std::map<_Kty,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>>>>' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'
        with
        [
            _Ty=std::string,
            _Kty=std::string
        ]modules\luascript\lib\antlr4\BufferedTokenStream.cpp(124): warning C4273: 'antlr4::BufferedTokenStream::get': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(160): note: see declaration of 'std::map<std::vector<std::string,std::allocator<_Ty>>,std::map<std::string,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>,std::less<std::vector<_Ty,std::allocator<_Ty>>>,std::allocator<std::pair<const std::vector<_Ty,std::allocator<_Ty>>,std::map<_Kty,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>>>>'
        with
        [
            _Ty=std::string,
            _Kty=std::string
        ]d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(45): note: see previous definition of 'get'

modules\luascript\lib\antlr4\BufferedTokenStream.cpp(146): warning C4273: 'antlr4::BufferedTokenStream::LA': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(47): note: see previous definition of 'LA'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(150): warning C4273: 'antlr4::BufferedTokenStream::LB': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(154): note: see previous definition of 'LB'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(157): warning C4273: 'antlr4::BufferedTokenStream::LT': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\Vocabulary.h(185): warning C4251: 'antlr4::dfa::Vocabulary::_literalNames': class 'std::vector<std::string,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::dfa::Vocabulary'
        with
        [
            _Ty=std::string
        ]

d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(48): note: see previous definition of 'LT'd:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(34): note: see declaration of 'std::vector<std::string,std::allocator<_Ty>>'
        with
        [
            _Ty=std::string
        ]

modules\luascript\lib\antlr4\BufferedTokenStream.cpp(176): warning C4273: 'antlr4::BufferedTokenStream::adjustSeekIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\Vocabulary.h(186): warning C4251: 'antlr4::dfa::Vocabulary::_symbolicNames': class 'std::vector<std::string,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::dfa::Vocabulary'
        with
        [
            _Ty=std::string
        ]d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(167): note: see previous definition of 'adjustSeekIndex'

d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(34): note: see declaration of 'std::vector<std::string,std::allocator<_Ty>>'
        with
        [
            _Ty=std::string
        ]modules\luascript\lib\antlr4\BufferedTokenStream.cpp(180): warning C4273: 'antlr4::BufferedTokenStream::lazyInit': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\Vocabulary.h(187): warning C4251: 'antlr4::dfa::Vocabulary::_displayNames': class 'std::vector<std::string,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::dfa::Vocabulary'
        with
        [
            _Ty=std::string
        ]d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(168): note: see previous definition of 'lazyInit'

d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(34): note: see declaration of 'std::vector<std::string,std::allocator<_Ty>>'
        with
        [
            _Ty=std::string
        ]modules\luascript\lib\antlr4\BufferedTokenStream.cpp(186): warning C4273: 'antlr4::BufferedTokenStream::setup': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(169): note: see previous definition of 'setup'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(192): warning C4273: 'antlr4::BufferedTokenStream::setTokenSource': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(51): note: see previous definition of 'setTokenSource'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(199): warning C4273: 'antlr4::BufferedTokenStream::getTokens': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(52): note: see previous definition of 'getTokens'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(206): warning C4273: 'antlr4::BufferedTokenStream::getTokens': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(53): note: see previous definition of 'getTokens'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(210): warning C4273: 'antlr4::BufferedTokenStream::getTokens': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(60): note: see previous definition of 'getTokens'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(18): warning C4251: 'antlr4::CommonToken::EMPTY_SOURCE': struct 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'modules\luascript\lib\antlr4\BufferedTokenStream.cpp(237): warning C4273: 'antlr4::BufferedTokenStream::getTokens': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\TokenFactory.h(23): note: see declaration of 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>'d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(61): note: see previous definition of 'getTokens'

modules\luascript\lib\antlr4\BufferedTokenStream.cpp(243): warning C4273: 'antlr4::BufferedTokenStream::nextTokenOnChannel': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(177): note: see previous definition of 'nextTokenOnChannel'd:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(53): warning C4251: 'antlr4::CommonToken::_source': struct 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'

d:\godot src\godot\modules\luascript\lib\antlr4\TokenFactory.h(23): note: see declaration of 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>'modules\luascript\lib\antlr4\BufferedTokenStream.cpp(261): warning C4273: 'antlr4::BufferedTokenStream::previousTokenOnChannel': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(61): warning C4251: 'antlr4::CommonToken::_text': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'd:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(189): note: see previous definition of 'previousTokenOnChannel'

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'modules\luascript\lib\antlr4\BufferedTokenStream.cpp(281): warning C4273: 'antlr4::BufferedTokenStream::getHiddenTokensToRight': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(66): note: see previous definition of 'getHiddenTokensToRight'
modules\luascript\lib\antlr4\CommonToken.cpp(23): warning C4273: 'EMPTY_SOURCE': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(18): note: see previous definition of 'protected: static std::pair<antlr4::TokenSource *,antlr4::CharStream *> const antlr4::CommonToken::EMPTY_SOURCE'modules\luascript\lib\antlr4\BufferedTokenStream.cpp(300): warning C4273: 'antlr4::BufferedTokenStream::getHiddenTokensToRight': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(73): note: see previous definition of 'getHiddenTokensToRight'
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(304): warning C4273: 'antlr4::BufferedTokenStream::getHiddenTokensToLeft': inconsistent dll linkagemodules\luascript\lib\antlr4\CommonToken.cpp(23): error C2491: 'antlr4::CommonToken::EMPTY_SOURCE': definition of dllimport static data member not allowed

d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(80): note: see previous definition of 'getHiddenTokensToLeft'
modules\luascript\lib\antlr4\CommonToken.cpp(25): warning C4273: 'antlr4::CommonToken::CommonToken': inconsistent dll linkage
modules\luascript\lib\antlr4\BufferedTokenStream.cpp(326): warning C4273: 'antlr4::BufferedTokenStream::getHiddenTokensToLeft': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(87): note: see previous definition of '{ctor}'

d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(86): note: see previous definition of 'getHiddenTokensToLeft'
modules\luascript\lib\antlr4\CommonToken.cpp(30): warning C4273: 'antlr4::CommonToken::CommonToken': inconsistent dll linkagemodules\luascript\lib\antlr4\BufferedTokenStream.cpp(330): warning C4273: 'antlr4::BufferedTokenStream::filterForChannel': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(88): note: see previous definition of '{ctor}'d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(191): note: see previous definition of 'filterForChannel'

modules\luascript\lib\antlr4\CommonToken.cpp(43): warning C4273: 'antlr4::CommonToken::CommonToken': inconsistent dll linkagemodules\luascript\lib\antlr4\BufferedTokenStream.cpp(348): warning C4273: 'antlr4::BufferedTokenStream::isInitialized': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(97): note: see previous definition of '{ctor}'d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(193): note: see previous definition of 'isInitialized'

modules\luascript\lib\antlr4\CommonToken.cpp(51): warning C4273: 'antlr4::CommonToken::CommonToken': inconsistent dll linkagemodules\luascript\lib\antlr4\BufferedTokenStream.cpp(356): warning C4273: 'antlr4::BufferedTokenStream::getSourceName': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(112): note: see previous definition of '{ctor}'d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(88): note: see previous definition of 'getSourceName'

modules\luascript\lib\antlr4\BufferedTokenStream.cpp(360): warning C4273: 'antlr4::BufferedTokenStream::getText': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(89): note: see previous definition of 'getText'
[ 26%] modules\luascript\lib\antlr4\BufferedTokenStream.cpp(365): warning C4273: 'antlr4::BufferedTokenStream::getText': inconsistent dll linkagemodules\luascript\lib\antlr4\CommonToken.cpp(70): warning C4273: 'antlr4::CommonToken::getType': inconsistent dll linkage
[ 26%]
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(90): note: see previous definition of 'getText'd:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(114): note: see previous definition of 'getType'

modules\luascript\lib\antlr4\CommonToken.cpp(74): warning C4273: 'antlr4::CommonToken::setLine': inconsistent dll linkag[ 26%]
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(128): note: see previous definition of 'setLine'Compiling ==> modules\luascript\lib\antlr4\CommonTokenFactory.cpp

modules\luascript\lib\antlr4\CommonToken.cpp(78): warning C4273: 'antlr4::CommonToken::getText': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(126): note: see previous definition of 'getText'
modules\luascript\lib\antlr4\CommonToken.cpp(95): warning C4273: 'antlr4::CommonToken::setText': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(125): note: see previous definition of 'setText'modules\luascript\lib\antlr4\BufferedTokenStream.cpp(388): warning C4273: 'antlr4::BufferedTokenStream::getText': inconsistent dll linkage

modules\luascript\lib\antlr4\CommonToken.cpp(99): warning C4273: 'antlr4::CommonToken::getLine': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(91): note: see previous definition of 'getText'

d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(129): note: see previous definition of 'getLine'modules\luascript\lib\antlr4\BufferedTokenStream.cpp(392): warning C4273: 'antlr4::BufferedTokenStream::getText': inconsistent dll linkage

modules\luascript\lib\antlr4\CommonToken.cpp(103): warning C4273: 'antlr4::CommonToken::getCharPositionInLine': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(92): note: see previous definition of 'getText'

d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(131): note: see previous definition of 'getCharPositionInLine'modules\luascript\lib\antlr4\BufferedTokenStream.cpp(400): warning C4273: 'antlr4::BufferedTokenStream::fill': inconsistent dll linkage

modules\luascript\lib\antlr4\CommonToken.cpp(107): warning C4273: 'antlr4::CommonToken::setCharPositionInLine': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(95): note: see previous definition of 'fill'

d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(132): note: see previous definition of 'setCharPositionInLine'modules\luascript\lib\antlr4\BufferedTokenStream.cpp(411): warning C4273: 'antlr4::BufferedTokenStream::InitializeInstanceFields': inconsistent dll linkage

modules\luascript\lib\antlr4\CommonToken.cpp(111): warning C4273: 'antlr4::CommonToken::getChannel': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(197): note: see previous definition of 'InitializeInstanceFields'

d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(134): note: see previous definition of 'getChannel'
modules\luascript\lib\antlr4\CommonToken.cpp(115): warning C4273: 'antlr4::CommonToken::setChannel': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(135): note: see previous definition of 'setChannel'
modules\luascript\lib\antlr4\CommonToken.cpp(119): warning C4273: 'antlr4::CommonToken::setType': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(137): note: see previous definition of 'setType'
modules\luascript\lib\antlr4\CommonToken.cpp(123): warning C4273: 'antlr4::CommonToken::getStartIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(139): note: see previous definition of 'getStartIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(127): warning C4273: 'antlr4::CommonToken::setStartIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(140): note: see previous definition of 'setStartIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(131): warning C4273: 'antlr4::CommonToken::getStopIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(142): note: see previous definition of 'getStopIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(135): warning C4273: 'antlr4::CommonToken::setStopIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(143): note: see previous definition of 'setStopIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(139): warning C4273: 'antlr4::CommonToken::getTokenIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(145): note: see previous definition of 'getTokenIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(143): warning C4273: 'antlr4::CommonToken::setTokenIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(146): note: see previous definition of 'setTokenIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(147): warning C4273: 'antlr4::CommonToken::getTokenSource': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(148): note: see previous definition of 'getTokenSource'
modules\luascript\lib\antlr4\CommonToken.cpp(151): warning C4273: 'antlr4::CommonToken::getInputStream': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(149): note: see previous definition of 'getInputStream'
modules\luascript\lib\antlr4\CommonToken.cpp(155): warning C4273: 'antlr4::CommonToken::toString': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(151): note: see previous definition of 'toString'
modules\luascript\lib\antlr4\CommonToken.cpp(159): warning C4273: 'antlr4::CommonToken::toString': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(153): note: see previous definition of 'toString'
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
CommonTokenFactory.cpp
modules\luascript\lib\antlr4\CommonToken.cpp(186): warning C4273: 'antlr4::CommonToken::InitializeInstanceFields': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(155): note: see previous definition of 'InitializeInstanceFields'
scons: *** [modules\luascript\lib\antlr4\CommonToken.windows.tools.64.obj] Error 2
d:\godot src\godot\modules\luascript\lib\antlr4\IntStream.h(47): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(18): warning C4251: 'antlr4::CommonToken::EMPTY_SOURCE': struct 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(18): note: see declaration of 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(53): warning C4251: 'antlr4::CommonToken::_source': struct 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(18): note: see declaration of 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(61): warning C4251: 'antlr4::CommonToken::_text': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(25): warning C4251: 'antlr4::CommonTokenFactory::DEFAULT': class 'std::unique_ptr<antlr4::TokenFactory<antlr4::CommonToken>,std::default_delete<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::CommonTokenFactory'
        with
        [
            _Ty=antlr4::TokenFactory<antlr4::CommonToken>
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(25): note: see declaration of 'std::unique_ptr<antlr4::TokenFactory<antlr4::CommonToken>,std::default_delete<_Ty>>'
        with
        [
            _Ty=antlr4::TokenFactory<antlr4::CommonToken>
        ]
modules\luascript\lib\antlr4\CommonTokenFactory.cpp(14): warning C4273: 'DEFAULT': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(25): note: see previous definition of 'public: static std::unique_ptr<antlr4::TokenFactory<antlr4::CommonToken>,std::default_delete<antlr4::TokenFactory<antlr4::CommonToken> > > const antlr4::CommonTokenFactory::DEFAULT'
modules\luascript\lib\antlr4\CommonTokenFactory.cpp(14): error C2491: 'antlr4::CommonTokenFactory::DEFAULT': definition of dllimport static data member not allowed
modules\luascript\lib\antlr4\CommonTokenFactory.cpp(16): warning C4273: 'antlr4::CommonTokenFactory::CommonTokenFactory': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(56): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\CommonTokenFactory.cpp(19): warning C4273: 'antlr4::CommonTokenFactory::CommonTokenFactory': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(66): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\CommonTokenFactory.cpp(23): warning C4273: 'antlr4::CommonTokenFactory::create': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(68): note: see previous definition of 'create'
modules\luascript\lib\antlr4\CommonTokenFactory.cpp(37): warning C4273: 'antlr4::CommonTokenFactory::create': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(71): note: see previous definition of 'create'
scons: *** [modules\luascript\lib\antlr4\CommonTokenFactory.windows.tools.64.obj] Error 2
scons: building terminated because of errors.

D:\godot src\godot>scons -j3 p=windows module_luascript_enabled=yes
scons: Reading SConscript files ...
Configuring for Windows: target=debug, bits=default
Found MSVC version 14.1, arch amd64, bits=64
YASM is necessary for WebM SIMD optimizations.
WebM SIMD optimizations are disabled. Check if your CPU architecture, CPU bits or platform are supported!
Checking for C header file mntent.h... (cached) no
scons: done reading SConscript files.
scons: Building targets ...
[ 26%] ←[94mCompiling ←[95m==> ←[93mmodules\luascript\lib\antlr4\CommonToken.cpp←[0m
[ 26%] ←[94mCompiling ←[95m==> ←[93mmodules\luascript\lib\antlr4\CommonTokenFactory.cpp←[0m
[ 26%] ←[94mCompiling ←[95m==> ←[93mmodules\luascript\lib\antlr4\CommonTokenStream.cpp←[0m
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
CommonToken.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
CommonTokenFactory.cpp
cl : Command line warning D9025 : overriding '/std:c++17' with '/std:c++14'
CommonTokenStream.cpp
d:\godot src\godot\modules\luascript\lib\antlr4\IntStream.h(47): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(15): warning C4251: 'antlr4::RuntimeException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::RuntimeException'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\Exceptions.h(75): warning C4251: 'antlr4::IOException::_message': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IOException'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\IntStream.h(47): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(18): warning C4251: 'antlr4::CommonToken::EMPTY_SOURCE': struct 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(18): note: see declaration of 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(53): warning C4251: 'antlr4::CommonToken::_source': struct 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'd:\godot src\godot\modules\luascript\lib\antlr4\ProxyErrorListener.h(18): warning C4251: 'antlr4::ProxyErrorListener::_delegates': class 'std::set<antlr4::ANTLRErrorListener *,std::less<_Kty>,std::allocator<_Kty>>' needs to have dll-interface to be used by clients of class 'antlr4::ProxyErrorListener'
        with
        [
            _Kty=antlr4::ANTLRErrorListener *
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(18): note: see declaration of 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>'

d:\godot src\godot\modules\luascript\lib\antlr4\ProxyErrorListener.h(18): note: see declaration of 'std::set<antlr4::ANTLRErrorListener *,std::less<_Kty>,std::allocator<_Kty>>'
        with
        [
            _Kty=antlr4::ANTLRErrorListener *
        ]d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(61): warning C4251: 'antlr4::CommonToken::_text': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(156): warning C4251: 'antlr4::Recognizer::_mutex': class 'std::mutex' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\mutex(82): note: see declaration of 'std::mutex'd:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(25): warning C4251: 'antlr4::CommonTokenFactory::DEFAULT': class 'std::unique_ptr<antlr4::TokenFactory<antlr4::CommonToken>,std::default_delete<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::CommonTokenFactory'
        with
        [
            _Ty=antlr4::TokenFactory<antlr4::CommonToken>
        ]

d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(159): warning C4251: 'antlr4::Recognizer::_tokenTypeMapCache': class 'std::map<const antlr4::dfa::Vocabulary *,std::map<std::string,size_t,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>,std::less<const antlr4::dfa::Vocabulary*>,std::allocator<std::pair<const antlr4::dfa::Vocabulary*const ,std::map<_Kty,_Ty,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>>>>' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'
        with
        [
            _Kty=std::string,
            _Ty=size_t
        ]d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(25): note: see declaration of 'std::unique_ptr<antlr4::TokenFactory<antlr4::CommonToken>,std::default_delete<_Ty>>'
        with
        [
            _Ty=antlr4::TokenFactory<antlr4::CommonToken>
        ]

d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(159): note: see declaration of 'std::map<const antlr4::dfa::Vocabulary *,std::map<std::string,size_t,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>,std::less<const antlr4::dfa::Vocabulary*>,std::allocator<std::pair<const antlr4::dfa::Vocabulary*const ,std::map<_Kty,_Ty,std::less<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>>>>'
        with
        [
            _Kty=std::string,
            _Ty=size_t
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(160): warning C4251: 'antlr4::Recognizer::_ruleIndexMapCache': class 'std::map<std::vector<std::string,std::allocator<_Ty>>,std::map<std::string,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>,std::less<std::vector<_Ty,std::allocator<_Ty>>>,std::allocator<std::pair<const std::vector<_Ty,std::allocator<_Ty>>,std::map<_Kty,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>>>>' needs to have dll-interface to be used by clients of class 'antlr4::Recognizer'
        with
        [
            _Ty=std::string,
            _Kty=std::string
        ]
modules\luascript\lib\antlr4\CommonTokenFactory.cpp(14): warning C4273: 'DEFAULT': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(160): note: see declaration of 'std::map<std::vector<std::string,std::allocator<_Ty>>,std::map<std::string,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>,std::less<std::vector<_Ty,std::allocator<_Ty>>>,std::allocator<std::pair<const std::vector<_Ty,std::allocator<_Ty>>,std::map<_Kty,size_t,std::less<_Ty>,std::allocator<std::pair<const _Kty,unsigned __int64>>>>>>'
        with
        [
            _Ty=std::string,
            _Kty=std::string
        ]

d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(25): note: see previous definition of 'public: static std::unique_ptr<antlr4::TokenFactory<antlr4::CommonToken>,std::default_delete<antlr4::TokenFactory<antlr4::CommonToken> > > const antlr4::CommonTokenFactory::DEFAULT'
modules\luascript\lib\antlr4\CommonTokenFactory.cpp(14): error C2491: 'antlr4::CommonTokenFactory::DEFAULT': definition of dllimport static data member not allowed
modules\luascript\lib\antlr4\CommonTokenFactory.cpp(16): warning C4273: 'antlr4::CommonTokenFactory::CommonTokenFactory': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(56): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\CommonTokenFactory.cpp(19): warning C4273: 'antlr4::CommonTokenFactory::CommonTokenFactory': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(66): note: see previous definition of '{ctor}'d:\godot src\godot\modules\luascript\lib\antlr4\IntStream.h(47): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream'

modules\luascript\lib\antlr4\CommonTokenFactory.cpp(23): warning C4273: 'antlr4::CommonTokenFactory::create': inconsistent dll linkageC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
d:\godot src\godot\modules\luascript\lib\antlr4\Vocabulary.h(185): warning C4251: 'antlr4::dfa::Vocabulary::_literalNames': class 'std::vector<std::string,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::dfa::Vocabulary'
        with
        [
            _Ty=std::string
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(68): note: see previous definition of 'create'

d:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(34): note: see declaration of 'std::vector<std::string,std::allocator<_Ty>>'
        with
        [
            _Ty=std::string
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\Vocabulary.h(186): warning C4251: 'antlr4::dfa::Vocabulary::_symbolicNames': class 'std::vector<std::string,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::dfa::Vocabulary'
        with
        [
            _Ty=std::string
        ]
d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(108): warning C4251: 'antlr4::BufferedTokenStream::_tokens': class 'std::vector<std::unique_ptr<antlr4::Token,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>' needs to have dll-interface to be used by clients of class 'antlr4::BufferedTokenStream'
        with
        [
            _Ty=antlr4::Token
        ]modules\luascript\lib\antlr4\CommonTokenFactory.cpp(37): warning C4273: 'antlr4::CommonTokenFactory::create': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(34): note: see declaration of 'std::vector<std::string,std::allocator<_Ty>>'
        with
        [
            _Ty=std::string
        ]


d:\godot src\godot\modules\luascript\lib\antlr4\BufferedTokenStream.h(108): note: see declaration of 'std::vector<std::unique_ptr<antlr4::Token,std::default_delete<_Ty>>,std::allocator<std::unique_ptr<_Ty,std::default_delete<_Ty>>>>'
        with
        [
            _Ty=antlr4::Token
        ]d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenFactory.h(71): note: see previous definition of 'create'd:\godot src\godot\modules\luascript\lib\antlr4\Vocabulary.h(187): warning C4251: 'antlr4::dfa::Vocabulary::_displayNames': class 'std::vector<std::string,std::allocator<_Ty>>' needs to have dll-interface to be used by clients of class 'antlr4::dfa::Vocabulary'
        with
        [
            _Ty=std::string
        ]


modules\luascript\lib\antlr4\CommonTokenStream.cpp(12): warning C4273: 'antlr4::CommonTokenStream::CommonTokenStream': inconsistent dll linkaged:\godot src\godot\modules\luascript\lib\antlr4\Recognizer.h(34): note: see declaration of 'std::vector<std::string,std::allocator<_Ty>>'
        with
        [
            _Ty=std::string
        ]

d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenStream.h(44): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\CommonTokenStream.cpp(16): warning C4273: 'antlr4::CommonTokenStream::CommonTokenStream': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenStream.h(56): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\CommonTokenStream.cpp(19): warning C4273: 'antlr4::CommonTokenStream::adjustSeekIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenStream.h(73): note: see previous definition of 'adjustSeekIndex'
modules\luascript\lib\antlr4\CommonTokenStream.cpp(23): warning C4273: 'antlr4::CommonTokenStream::LB': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenStream.h(75): note: see previous definition of 'LB'
modules\luascript\lib\antlr4\CommonTokenStream.cpp(43): warning C4273: 'antlr4::CommonTokenStream::LT': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(18): warning C4251: 'antlr4::CommonToken::EMPTY_SOURCE': struct 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'd:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenStream.h(58): note: see previous definition of 'LT'

d:\godot src\godot\modules\luascript\lib\antlr4\TokenFactory.h(23): note: see declaration of 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>'modules\luascript\lib\antlr4\CommonTokenStream.cpp(65): warning C4273: 'antlr4::CommonTokenStream::getNumberOfOnChannelTokens': inconsistent dll linkage

d:\godot src\godot\modules\luascript\lib\antlr4\CommonTokenStream.h(61): note: see previous definition of 'getNumberOfOnChannelTokens'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(53): warning C4251: 'antlr4::CommonToken::_source': struct 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'
d:\godot src\godot\modules\luascript\lib\antlr4\TokenFactory.h(23): note: see declaration of 'std::pair<antlr4::TokenSource *,antlr4::CharStream *>'
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(61): warning C4251: 'antlr4::CommonToken::_text': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::CommonToken'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
modules\luascript\lib\antlr4\CommonToken.cpp(23): warning C4273: 'EMPTY_SOURCE': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(18): note: see previous definition of 'protected: static std::pair<antlr4::TokenSource *,antlr4::CharStream *> const antlr4::CommonToken::EMPTY_SOURCE'
modules\luascript\lib\antlr4\CommonToken.cpp(23): error C2491: 'antlr4::CommonToken::EMPTY_SOURCE': definition of dllimport static data member not allowed
modules\luascript\lib\antlr4\CommonToken.cpp(25): warning C4273: 'antlr4::CommonToken::CommonToken': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(87): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\CommonToken.cpp(30): warning C4273: 'antlr4::CommonToken::CommonToken': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(88): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\CommonToken.cpp(43): warning C4273: 'antlr4::CommonToken::CommonToken': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(97): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\CommonToken.cpp(51): warning C4273: 'antlr4::CommonToken::CommonToken': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(112): note: see previous definition of '{ctor}'
modules\luascript\lib\antlr4\CommonToken.cpp(70): warning C4273: 'antlr4::CommonToken::getType': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(114): note: see previous definition of 'getType'
modules\luascript\lib\antlr4\CommonToken.cpp(74): warning C4273: 'antlr4::CommonToken::setLine': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(128): note: see previous definition of 'setLine'
modules\luascript\lib\antlr4\CommonToken.cpp(78): warning C4273: 'antlr4::CommonToken::getText': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(126): note: see previous definition of 'getText'
modules\luascript\lib\antlr4\CommonToken.cpp(95): warning C4273: 'antlr4::CommonToken::setText': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(125): note: see previous definition of 'setText'
modules\luascript\lib\antlr4\CommonToken.cpp(99): warning C4273: 'antlr4::CommonToken::getLine': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(129): note: see previous definition of 'getLine'
modules\luascript\lib\antlr4\CommonToken.cpp(103): warning C4273: 'antlr4::CommonToken::getCharPositionInLine': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(131): note: see previous definition of 'getCharPositionInLine'
modules\luascript\lib\antlr4\CommonToken.cpp(107): warning C4273: 'antlr4::CommonToken::setCharPositionInLine': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(132): note: see previous definition of 'setCharPositionInLine'
modules\luascript\lib\antlr4\CommonToken.cpp(111): warning C4273: 'antlr4::CommonToken::getChannel': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(134): note: see previous definition of 'getChannel'
modules\luascript\lib\antlr4\CommonToken.cpp(115): warning C4273: 'antlr4::CommonToken::setChannel': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(135): note: see previous definition of 'setChannel'
modules\luascript\lib\antlr4\CommonToken.cpp(119): warning C4273: 'antlr4::CommonToken::setType': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(137): note: see previous definition of 'setType'
modules\luascript\lib\antlr4\CommonToken.cpp(123): warning C4273: 'antlr4::CommonToken::getStartIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(139): note: see previous definition of 'getStartIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(127): warning C4273: 'antlr4::CommonToken::setStartIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(140): note: see previous definition of 'setStartIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(131): warning C4273: 'antlr4::CommonToken::getStopIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(142): note: see previous definition of 'getStopIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(135): warning C4273: 'antlr4::CommonToken::setStopIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(143): note: see previous definition of 'setStopIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(139): warning C4273: 'antlr4::CommonToken::getTokenIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(145): note: see previous definition of 'getTokenIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(143): warning C4273: 'antlr4::CommonToken::setTokenIndex': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(146): note: see previous definition of 'setTokenIndex'
modules\luascript\lib\antlr4\CommonToken.cpp(147): warning C4273: 'antlr4::CommonToken::getTokenSource': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(148): note: see previous definition of 'getTokenSource'
modules\luascript\lib\antlr4\CommonToken.cpp(151): warning C4273: 'antlr4::CommonToken::getInputStream': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(149): note: see previous definition of 'getInputStream'
modules\luascript\lib\antlr4\CommonToken.cpp(155): warning C4273: 'antlr4::CommonToken::toString': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(151): note: see previous definition of 'toString'
modules\luascript\lib\antlr4\CommonToken.cpp(159): warning C4273: 'antlr4::CommonToken::toString': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(153): note: see previous definition of 'toString'
modules\luascript\lib\antlr4\CommonToken.cpp(186): warning C4273: 'antlr4::CommonToken::InitializeInstanceFields': inconsistent dll linkage
d:\godot src\godot\modules\luascript\lib\antlr4\CommonToken.h(155): note: see previous definition of 'InitializeInstanceFields'
scons: *** [modules\luascript\lib\antlr4\CommonTokenFactory.windows.tools.64.obj] Error 2
scons: *** [modules\luascript\lib\antlr4\CommonToken.windows.tools.64.obj] Error 2
scons: building terminated because of errors.

How to recreate?

Building luascript for godot 3.2 branch for windows

PluginScript

Hi

Luascript is implemented in Plugin Script, or how do you manage compatibility with the code editor,?

Archlinux unable to compile

Hello !

It's me again, I tried to compile this time on my Archlinux distro and I still can't compile then engine using the following command :

scons -j4 platform=x11 module_luascript_enabled=yes

full report when the error appears :

[ 32%] Compiling ==> modules/luascript/debug.cpp
[ 32%] Compiling ==> modules/luascript/lua_script.cpp
[ 32%] Compiling ==> main/main.cpp
In file included from modules/luascript/lua_script.cpp:24:
modules/luascript/lua_script.h:110:55: error: 'Variant::CallError' has not been declared
  110 |  Variant _new(const Variant **p_args, int p_argcount, Variant::CallError &r_error);
      |                                                       ^~~~~~~
In file included from modules/luascript/lua_script.cpp:25:
modules/luascript/lua_script_instance.h:46:91: error: 'Variant::CallError' has not been declared
   46 |  virtual Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error);
      |                                                                                           ^~~~~~~
In file included from modules/luascript/lua_script.cpp:26:
modules/luascript/lua_script_language.h:38:35: error: deduced class type 'MutexLock' in function return type
   38 |  _FORCE_INLINE_ static MutexLock &acquire() {
      |                                   ^~~~~~~
In file included from ./core/safe_refcount.h:34,
                 from ./core/os/memory.h:35,
                 from ./core/list.h:35,
                 from ./core/engine.h:34,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
./core/os/mutex.h:60:7: note: 'template<class MutexT> class MutexLock' declared here
   60 | class MutexLock {
      |       ^~~~~~~~~
In file included from modules/luascript/lua_script.cpp:26:
modules/luascript/lua_script_language.h:72:82: error: 'PoolStringArray' does not name a type; did you mean 'PackedStringArray'?
   72 |  virtual String make_function(const String &p_class, const String &p_name, const PoolStringArray &p_args) const;
      |                                                                                  ^~~~~~~~~~~~~~~
      |                                                                                  PackedStringArray
modules/luascript/lua_script.cpp: In constructor 'LuaScript::LuaScript()':
modules/luascript/lua_script.cpp:40:34: error: 'acquire' is not a member of 'LuaScriptLanguage'
   40 |  auto guard = LuaScriptLanguage::acquire();
      |                                  ^~~~~~~
modules/luascript/lua_script.cpp: In destructor 'virtual LuaScript::~LuaScript()':
modules/luascript/lua_script.cpp:49:34: error: 'acquire' is not a member of 'LuaScriptLanguage'
   49 |  auto guard = LuaScriptLanguage::acquire();
      |                                  ^~~~~~~
In file included from ./core/list.h:35,
                 from ./core/engine.h:34,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
modules/luascript/lua_script.cpp: In member function 'virtual ScriptInstance* LuaScript::instance_create(Object*)':
modules/luascript/lua_script.cpp:89:85: error: invalid new-expression of abstract class type 'LuaScriptInstance'
   89 |  LuaScriptInstance *instance = memnew(LuaScriptInstance(p_this, Ref<LuaScript>(this)));
      |                                                                                     ^
./core/os/memory.h:93:51: note: in definition of macro 'memnew'
   93 | #define memnew(m_class) _post_initialize(new ("") m_class)
      |                                                   ^~~~~~~
In file included from modules/luascript/lua_script.cpp:25:
modules/luascript/lua_script_instance.h:24:7: note:   because the following virtual functions are pure within 'LuaScriptInstance':
   24 | class LuaScriptInstance : public ScriptInstance {
      |       ^~~~~~~~~~~~~~~~~
In file included from ./core/os/main_loop.h:36,
                 from ./core/engine.h:35,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
./core/script_language.h:201:18: note:     'virtual Variant ScriptInstance::call(const StringName&, const Variant**, int, Callable::CallError&)'
  201 |  virtual Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) = 0;
      |                  ^~~~
./core/script_language.h:224:32: note:     'virtual Vector<ScriptNetData> ScriptInstance::get_rpc_methods() const'
  224 |  virtual Vector<ScriptNetData> get_rpc_methods() const = 0;
      |                                ^~~~~~~~~~~~~~~
./core/script_language.h:225:19: note:     'virtual uint16_t ScriptInstance::get_rpc_method_id(const StringName&) const'
  225 |  virtual uint16_t get_rpc_method_id(const StringName &p_method) const = 0;
      |                   ^~~~~~~~~~~~~~~~~
./core/script_language.h:226:21: note:     'virtual StringName ScriptInstance::get_rpc_method(uint16_t) const'
  226 |  virtual StringName get_rpc_method(uint16_t p_id) const = 0;
      |                     ^~~~~~~~~~~~~~
./core/script_language.h:227:34: note:     'virtual MultiplayerAPI::RPCMode ScriptInstance::get_rpc_mode_by_id(uint16_t) const'
  227 |  virtual MultiplayerAPI::RPCMode get_rpc_mode_by_id(uint16_t p_id) const = 0;
      |                                  ^~~~~~~~~~~~~~~~~~
./core/script_language.h:230:32: note:     'virtual Vector<ScriptNetData> ScriptInstance::get_rset_properties() const'
  230 |  virtual Vector<ScriptNetData> get_rset_properties() const = 0;
      |                                ^~~~~~~~~~~~~~~~~~~
./core/script_language.h:231:19: note:     'virtual uint16_t ScriptInstance::get_rset_property_id(const StringName&) const'
  231 |  virtual uint16_t get_rset_property_id(const StringName &p_variable) const = 0;
      |                   ^~~~~~~~~~~~~~~~~~~~
./core/script_language.h:232:21: note:     'virtual StringName ScriptInstance::get_rset_property(uint16_t) const'
  232 |  virtual StringName get_rset_property(uint16_t p_id) const = 0;
      |                     ^~~~~~~~~~~~~~~~~
./core/script_language.h:233:34: note:     'virtual MultiplayerAPI::RPCMode ScriptInstance::get_rset_mode_by_id(uint16_t) const'
  233 |  virtual MultiplayerAPI::RPCMode get_rset_mode_by_id(uint16_t p_id) const = 0;
      |                                  ^~~~~~~~~~~~~~~~~~~
modules/luascript/lua_script.cpp:91:34: error: 'acquire' is not a member of 'LuaScriptLanguage'
   91 |  auto guard = LuaScriptLanguage::acquire();
      |                                  ^~~~~~~
modules/luascript/lua_script.cpp: In member function 'virtual bool LuaScript::instance_has(const Object*) const':
modules/luascript/lua_script.cpp:113:34: error: 'acquire' is not a member of 'LuaScriptLanguage'
  113 |  auto guard = LuaScriptLanguage::acquire();
      |                                  ^~~~~~~
modules/luascript/lua_script.cpp: In member function 'virtual Error LuaScript::reload(bool)':
modules/luascript/lua_script.cpp:148:35: error: 'acquire' is not a member of 'LuaScriptLanguage'
  148 |   auto guard = LuaScriptLanguage::acquire();
      |                                   ^~~~~~~
modules/luascript/lua_script.cpp: In member function 'Error LuaScript::load_source_code(const String&)':
modules/luascript/lua_script.cpp:268:2: error: 'PoolVector' was not declared in this scope; did you mean 'Vector'?
  268 |  PoolVector<uint8_t> buffer;
      |  ^~~~~~~~~~
      |  Vector
modules/luascript/lua_script.cpp:268:20: error: expected primary-expression before '>' token
  268 |  PoolVector<uint8_t> buffer;
      |                    ^
modules/luascript/lua_script.cpp:268:22: error: 'buffer' was not declared in this scope; did you mean 'setbuffer'?
  268 |  PoolVector<uint8_t> buffer;
      |                      ^~~~~~
      |                      setbuffer
modules/luascript/lua_script.cpp:273:20: error: expected primary-expression before '>' token
  273 |  PoolVector<uint8_t>::Write w = buffer.write();
      |                    ^
modules/luascript/lua_script.cpp:273:23: error: '::Write' has not been declared; did you mean 'fwrite'?
  273 |  PoolVector<uint8_t>::Write w = buffer.write();
      |                       ^~~~~
      |                       fwrite
modules/luascript/lua_script.cpp:275:27: error: 'w' was not declared in this scope
  275 |  int r = file->get_buffer(w.ptr(), len);
      |                           ^
modules/luascript/lua_script.cpp: At global scope:
modules/luascript/lua_script.cpp:324:65: error: 'Variant::CallError' has not been declared
  324 | Variant LuaScript::_new(const Variant **p_args, int p_argcount, Variant::CallError &r_error) { // TODO
      |                                                                 ^~~~~~~
In file included from ./core/resource.h:34,
                 from ./core/input/input_event.h:36,
                 from ./core/os/main_loop.h:34,
                 from ./core/engine.h:35,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
./core/class_db.h: In instantiation of 'static MethodBind* ClassDB::bind_vararg_method(uint32_t, StringName, M, const MethodInfo&, const Vector<Variant>&, bool) [with M = Variant (LuaScript::*)(const Variant**, int, int&); uint32_t = unsigned int]':
modules/luascript/lua_script.cpp:298:111:   required from here
./core/class_db.h:303:47: error: no matching function for call to 'create_vararg_method_bind(Variant (LuaScript::*&)(const Variant**, int, int&), const MethodInfo&, bool&)'
  303 |   MethodBind *bind = create_vararg_method_bind(p_method, p_info, p_return_nil_is_variant);
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./core/class_db.h:34,
                 from ./core/resource.h:34,
                 from ./core/input/input_event.h:36,
                 from ./core/os/main_loop.h:34,
                 from ./core/engine.h:35,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
./core/method_bind.h:377:13: note: candidate: 'template<class T> MethodBind* create_vararg_method_bind(Variant (T::*)(const Variant**, int, Callable::CallError&), const MethodInfo&, bool)'
  377 | MethodBind *create_vararg_method_bind(Variant (T::*p_method)(const Variant **, int, Callable::CallError &), const MethodInfo &p_info, bool p_return_nil_is_variant) {
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~
./core/method_bind.h:377:13: note:   template argument deduction/substitution failed:
In file included from ./core/resource.h:34,
                 from ./core/input/input_event.h:36,
                 from ./core/os/main_loop.h:34,
                 from ./core/engine.h:35,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
./core/class_db.h:303:47: note:   mismatched types 'Callable::CallError' and 'int'
  303 |   MethodBind *bind = create_vararg_method_bind(p_method, p_info, p_return_nil_is_variant);
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
modules/luascript/debug.cpp: In function 'void print_debug(String, ...)':
modules/luascript/debug.cpp:96:23: error: 'const class String' has no member named 'c_str'
   96 |  wcstombs(fmtbuf, fmt.c_str(), fmt.size());
      |                       ^~~~~
modules/luascript/debug.cpp:98:24: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'double' [-Wformat=]
   98 |  sprintf(tmpbuf, "%d %lu %2lu %2lu ",
      |                      ~~^
      |                        |
      |                        long unsigned int
      |                      %f
   99 |    OS::get_singleton()->get_process_id(),
  100 |    OS::get_singleton()->get_unix_time(),
      |    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                      |
      |                                      double
scons: *** [modules/luascript/lua_script.linuxbsd.tools.64.o] Error 1
scons: *** [modules/luascript/debug.linuxbsd.tools.64.o] Error 1
In file included from modules/luascript/editor/luascript_syntax_highlighter.cpp:20:
modules/luascript/editor/luascript_syntax_highlighter.h:33:29: error: 'HighlighterInfo' is not a member of 'TextEdit'
   33 |  virtual Map<int, TextEdit::HighlighterInfo> _get_line_syntax_highlighting(int p_line);
      |                             ^~~~~~~~~~~~~~~
modules/luascript/editor/luascript_syntax_highlighter.h:33:44: error: template argument 2 is invalid
   33 |  virtual Map<int, TextEdit::HighlighterInfo> _get_line_syntax_highlighting(int p_line);
      |                                            ^
modules/luascript/editor/luascript_syntax_highlighter.h:33:46: error: conflicting return type specified for 'virtual int LuaScriptSyntaxHighlighter::_get_line_syntax_highlighting(int)'
   33 |  virtual Map<int, TextEdit::HighlighterInfo> _get_line_syntax_highlighting(int p_line);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./scene/gui/text_edit.h:38,
                 from modules/luascript/editor/luascript_syntax_highlighter.h:22,
                 from modules/luascript/editor/luascript_syntax_highlighter.cpp:20:
./scene/resources/syntax_highlighter.h:53:21: note: overridden function is 'virtual Dictionary SyntaxHighlighter::_get_line_syntax_highlighting(int)'
   53 |  virtual Dictionary _get_line_syntax_highlighting(int p_line) { return Dictionary(); }
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
modules/luascript/editor/luascript_syntax_highlighter.cpp:43:20: error: 'HighlighterInfo' is not a member of 'TextEdit'
   43 | Map<int, TextEdit::HighlighterInfo> LuaScriptSyntaxHighlighter::_get_line_syntax_highlighting(int p_line) {
      |                    ^~~~~~~~~~~~~~~
modules/luascript/editor/luascript_syntax_highlighter.cpp:43:35: error: template argument 2 is invalid
   43 | Map<int, TextEdit::HighlighterInfo> LuaScriptSyntaxHighlighter::_get_line_syntax_highlighting(int p_line) {
      |                                   ^
modules/luascript/editor/luascript_syntax_highlighter.cpp: In member function 'virtual int LuaScriptSyntaxHighlighter::_get_line_syntax_highlighting(int)':
modules/luascript/editor/luascript_syntax_highlighter.cpp:44:23: error: 'text_editor' was not declared in this scope; did you mean 'text_edit'?
   44 |  const String &line = text_editor->get_line(p_line);
      |                       ^~~~~~~~~~~
      |                       text_edit
modules/luascript/editor/luascript_syntax_highlighter.cpp:47:21: error: 'HighlighterInfo' is not a member of 'TextEdit'
   47 |  Map<int, TextEdit::HighlighterInfo> lsh_map;
      |                     ^~~~~~~~~~~~~~~
modules/luascript/editor/luascript_syntax_highlighter.cpp:47:36: error: template argument 2 is invalid
   47 |  Map<int, TextEdit::HighlighterInfo> lsh_map;
      |                                    ^
scons: *** [modules/luascript/editor/luascript_syntax_highlighter.linuxbsd.tools.64.o] Error 1
scons: building terminated because of errors.```

Thank you for your help & keep up the good work !

Compiling for linux X11 ubuntu

when i use this command
scons platform=x11 module_luascript_enabled=yes

i get this output

`scons: Reading SConscript files ...

scons: *** Illegal construction variable module_luascript-master_enabled' File "/home/adil/Desktop/godot-3.2.2-stable/SConstruct", line 227, in <module>

Can you provide a simple working example

Hello

I compiled Godot with this module and created a sprite with a Lua script attached to it, I just wanted to know if it works, how can I do that?
I put a print statement inside the _ready function that was auto generated, but couldn't see anything printed after running

Thanks :D I'm a beginner

[Question] Curious about the current state?

I saw the issue #1 but that is obviously quite outdated however you said you didn't think it was worth the effort is that still your stance? If it isn't is the project usable yet? Thank you so much for the hard work!

Test script

local Kelvin8971 = Instance.new("ScreenGui")
local Main = Instance.new("Frame")
local HackKelvin = Instance.new("TextLabel")
local WoodFrame = Instance.new("Frame")
local Volcano = Instance.new("TextButton")
local CaveCrawler = Instance.new("TextButton")
local SnowGlow = Instance.new("TextButton")
local Frost = Instance.new("TextButton")
local Green = Instance.new("TextButton")
local Gold = Instance.new("TextButton")
local Oak = Instance.new("TextButton")
local Cherry = Instance.new("TextButton")
local Pine = Instance.new("TextButton")
local Fir = Instance.new("TextButton")
local Koa = Instance.new("TextButton")
local Generic = Instance.new("TextButton")
local Elm = Instance.new("TextButton")
local Birch = Instance.new("TextButton")
local Palm = Instance.new("TextButton")
local Walnut = Instance.new("TextButton")
local tpwood = Instance.new("TextButton")
local tpmyslot = Instance.new("TextButton")
local WoodPlayer = Instance.new("TextBox")
local Close = Instance.new("TextButton")
local Minimize = Instance.new("TextButton")
local Open = Instance.new("TextButton")
local DupeFrame = Instance.new("Frame")
local SaveSlot = Instance.new("TextButton")
local SlotText = Instance.new("TextLabel")
local Slot = Instance.new("TextBox")
local DupeMoney = Instance.new("TextButton")
local LoadSlot = Instance.new("TextButton")
local PlayerFrame = Instance.new("Frame")
local PlrSpd = Instance.new("TextButton")
local PlrRst = Instance.new("TextButton")
local Fog = Instance.new("TextButton")
local PlrClip = Instance.new("TextButton")
local PlrJump = Instance.new("TextButton")
local PlrTp = Instance.new("TextButton")
local PlrBase = Instance.new("TextButton")
local PlrTpTxt = Instance.new("TextBox")
local PlrSpdTxt = Instance.new("TextBox")
local PlrWater = Instance.new("TextButton")
local MaxLand = Instance.new("TextButton")
local PlayerMenu = Instance.new("TextButton")
local WoodMenu = Instance.new("TextButton")
local DupeMenu = Instance.new("TextButton")
local TpMenu = Instance.new("TextButton")
local TpFrame = Instance.new("Frame")
local BoxedCar = Instance.new("TextButton")
local WoodRUs = Instance.new("TextButton")
local Furnishings = Instance.new("TextButton")
local LogicShop = Instance.new("TextButton")
local LandStore = Instance.new("TextButton")
local BobsShack = Instance.new("TextButton")
local ArtsShop = Instance.new("TextButton")
local PowerShop = Instance.new("TextButton")
local TpCarTextLabel = Instance.new("TextLabel")
local WoodRUsCar = Instance.new("TextButton")
local BoxedCarCar = Instance.new("TextButton")
local FurnishingsCar = Instance.new("TextButton")
local LogicShopCar = Instance.new("TextButton")
local LandStoreCar = Instance.new("TextButton")
local BobsShackCar = Instance.new("TextButton")
local ArtsShopCar = Instance.new("TextButton")
local PowerShopCar = Instance.new("TextButton")
local GoHomeCar = Instance.new("TextButton")
local Dupe = Instance.new("TextButton")

Kelvin8971.Name = "Kelvin8971"
Kelvin8971.Parent = game.CoreGui

Main.Name = "Main"
Main.Parent = Kelvin8971
Main.BackgroundColor3 = Color3.fromRGB(53, 53, 53)
Main.Position = UDim2.new(0.132290184, 0, 0.150300607, 0)
Main.Size = UDim2.new(0, 331, 0, 325)
Main.Visible = false
Main.Active = true
Main.Selectable = true
Main.Draggable = true

HackKelvin.Name = "Kelvin8971"
HackKelvin.Parent = Main
HackKelvin.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
HackKelvin.BackgroundTransparency = 1.000
HackKelvin.Position = UDim2.new(-0.0399380997, 0, -0.00923076924, 0)
HackKelvin.Size = UDim2.new(0, 200, 0, 30)
HackKelvin.Font = Enum.Font.SciFi
HackKelvin.Text = "Hack by Kelvin8971"
HackKelvin.TextColor3 = Color3.fromRGB(76, 211, 211)
HackKelvin.TextSize = 15.000

WoodFrame.Name = "WoodFrame"
WoodFrame.Parent = Main
WoodFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
WoodFrame.BackgroundTransparency = 1.000
WoodFrame.Position = UDim2.new(0, 0, 0.243076921, 0)
WoodFrame.Size = UDim2.new(0, 330, 0, 246)
WoodFrame.Visible = false

Volcano.Name = "Volcano"
Volcano.Parent = WoodFrame
Volcano.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Volcano.Position = UDim2.new(0.0637480617, 0, 0.0645528138, 0)
Volcano.Size = UDim2.new(0, 72, 0, 26)
Volcano.Font = Enum.Font.FredokaOne
Volcano.Text = "Volcano"
Volcano.TextColor3 = Color3.fromRGB(255, 255, 255)
Volcano.TextSize = 14.000

CaveCrawler.Name = "Cave Crawler"
CaveCrawler.Parent = WoodFrame
CaveCrawler.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
CaveCrawler.Position = UDim2.new(0.281270713, 0, 0.0645528138, 0)
CaveCrawler.Size = UDim2.new(0, 72, 0, 26)
CaveCrawler.Font = Enum.Font.FredokaOne
CaveCrawler.Text = "Cave"
CaveCrawler.TextColor3 = Color3.fromRGB(255, 255, 255)
CaveCrawler.TextSize = 14.000

SnowGlow.Name = "Snow Glow"
SnowGlow.Parent = WoodFrame
SnowGlow.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
SnowGlow.Position = UDim2.new(0.498793393, 0, 0.0645528138, 0)
SnowGlow.Size = UDim2.new(0, 72, 0, 26)
SnowGlow.Font = Enum.Font.FredokaOne
SnowGlow.Text = "Yellow"
SnowGlow.TextColor3 = Color3.fromRGB(255, 255, 255)
SnowGlow.TextSize = 14.000

Frost.Name = "Frost"
Frost.Parent = WoodFrame
Frost.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Frost.Position = UDim2.new(0.716316104, 0, 0.0645528138, 0)
Frost.Size = UDim2.new(0, 72, 0, 26)
Frost.Font = Enum.Font.FredokaOne
Frost.Text = "Frost"
Frost.TextColor3 = Color3.fromRGB(255, 255, 255)
Frost.TextSize = 14.000

Green.Name = "Green"
Green.Parent = WoodFrame
Green.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Green.Position = UDim2.new(0.0637480617, 0, 0.213996232, 0)
Green.Size = UDim2.new(0, 72, 0, 26)
Green.Font = Enum.Font.FredokaOne
Green.Text = "Green"
Green.TextColor3 = Color3.fromRGB(255, 255, 255)
Green.TextSize = 14.000

Gold.Name = "Gold"
Gold.Parent = WoodFrame
Gold.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Gold.Position = UDim2.new(0.281270713, 0, 0.213996232, 0)
Gold.Size = UDim2.new(0, 72, 0, 26)
Gold.Font = Enum.Font.FredokaOne
Gold.Text = "Gold"
Gold.TextColor3 = Color3.fromRGB(255, 255, 255)
Gold.TextSize = 14.000

Oak.Name = "Oak"
Oak.Parent = WoodFrame
Oak.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Oak.Position = UDim2.new(0.495772302, 0, 0.213996202, 0)
Oak.Size = UDim2.new(0, 72, 0, 26)
Oak.Font = Enum.Font.FredokaOne
Oak.Text = "Oak"
Oak.TextColor3 = Color3.fromRGB(255, 255, 255)
Oak.TextSize = 14.000

Cherry.Name = "Cherry"
Cherry.Parent = WoodFrame
Cherry.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Cherry.Position = UDim2.new(0.716316104, 0, 0.213996232, 0)
Cherry.Size = UDim2.new(0, 72, 0, 26)
Cherry.Font = Enum.Font.FredokaOne
Cherry.Text = "Cherry"
Cherry.TextColor3 = Color3.fromRGB(255, 255, 255)
Cherry.TextSize = 14.000

Pine.Name = "Pine"
Pine.Parent = WoodFrame
Pine.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Pine.Position = UDim2.new(0.0607269295, 0, 0.365528375, 0)
Pine.Size = UDim2.new(0, 72, 0, 26)
Pine.Font = Enum.Font.FredokaOne
Pine.Text = "Pine"
Pine.TextColor3 = Color3.fromRGB(255, 255, 255)
Pine.TextSize = 14.000

Fir.Name = "Fir"
Fir.Parent = WoodFrame
Fir.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Fir.Position = UDim2.new(0.494060248, 0, 0.365528375, 0)
Fir.Size = UDim2.new(0, 73, 0, 26)
Fir.Font = Enum.Font.FredokaOne
Fir.Text = "Fir"
Fir.TextColor3 = Color3.fromRGB(255, 255, 255)
Fir.TextSize = 14.000

Koa.Name = "Koa"
Koa.Parent = WoodFrame
Koa.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Koa.Position = UDim2.new(0.278908759, 0, 0.365528375, 0)
Koa.Size = UDim2.new(0, 71, 0, 26)
Koa.Font = Enum.Font.FredokaOne
Koa.Text = "Koa"
Koa.TextColor3 = Color3.fromRGB(255, 255, 255)
Koa.TextSize = 14.000

Generic.Name = "Generic"
Generic.Parent = WoodFrame
Generic.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Generic.Position = UDim2.new(0.716984391, 0, 0.365528375, 0)
Generic.Size = UDim2.new(0, 70, 0, 26)
Generic.Font = Enum.Font.FredokaOne
Generic.Text = "Generic"
Generic.TextColor3 = Color3.fromRGB(255, 255, 255)
Generic.TextSize = 14.000

Elm.Name = "Elm"
Elm.Parent = WoodFrame
Elm.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Elm.Position = UDim2.new(0.716984391, 0, 0.523101807, 0)
Elm.Size = UDim2.new(0, 71, 0, 26)
Elm.Font = Enum.Font.FredokaOne
Elm.Text = "Spooky"
Elm.TextColor3 = Color3.fromRGB(255, 255, 255)
Elm.TextSize = 14.000

Birch.Name = "Birch"
Birch.Parent = WoodFrame
Birch.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Birch.Position = UDim2.new(0.495772302, 0, 0.523101807, 0)
Birch.Size = UDim2.new(0, 72, 0, 26)
Birch.Font = Enum.Font.FredokaOne
Birch.Text = "Birch"
Birch.TextColor3 = Color3.fromRGB(255, 255, 255)
Birch.TextSize = 14.000

Palm.Name = "Palm"
Palm.Parent = WoodFrame
Palm.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Palm.Position = UDim2.new(0.28192988, 0, 0.523101807, 0)
Palm.Size = UDim2.new(0, 70, 0, 26)
Palm.Font = Enum.Font.FredokaOne
Palm.Text = "Palm"
Palm.TextColor3 = Color3.fromRGB(255, 255, 255)
Palm.TextSize = 14.000

Walnut.Name = "Walnut"
Walnut.Parent = WoodFrame
Walnut.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Walnut.Position = UDim2.new(0.0637572333, 0, 0.523101807, 0)
Walnut.Size = UDim2.new(0, 71, 0, 26)
Walnut.Font = Enum.Font.FredokaOne
Walnut.Text = "Walnut"
Walnut.TextColor3 = Color3.fromRGB(255, 255, 255)
Walnut.TextSize = 14.000

tpwood.Name = "tpwood"
tpwood.Parent = WoodFrame
tpwood.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
tpwood.Position = UDim2.new(0.598500371, 0, 0.672545373, 0)
tpwood.Size = UDim2.new(0, 72, 0, 26)
tpwood.Font = Enum.Font.FredokaOne
tpwood.Text = "Tp Wood"
tpwood.TextColor3 = Color3.fromRGB(255, 255, 255)
tpwood.TextSize = 14.000

tpmyslot.Name = "tpmyslot"
tpmyslot.Parent = WoodFrame
tpmyslot.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
tpmyslot.Position = UDim2.new(0.59547925, 0, 0.812757969, 0)
tpmyslot.Size = UDim2.new(0, 72, 0, 26)
tpmyslot.Font = Enum.Font.FredokaOne
tpmyslot.Text = "Go Home"
tpmyslot.TextColor3 = Color3.fromRGB(255, 255, 255)
tpmyslot.TextSize = 14.000

WoodPlayer.Name = "WoodPlayer"
WoodPlayer.Parent = WoodFrame
WoodPlayer.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
WoodPlayer.Position = UDim2.new(0.172727272, 0, 0.670731723, 0)
WoodPlayer.Size = UDim2.new(0, 130, 0, 26)
WoodPlayer.Font = Enum.Font.SourceSans
WoodPlayer.Text = "Type Username"
WoodPlayer.TextColor3 = Color3.fromRGB(0, 0, 0)
WoodPlayer.TextSize = 14.000

Close.Name = "Close"
Close.Parent = Main
Close.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
Close.Position = UDim2.new(0.924775183, 0, 0, 0)
Close.Size = UDim2.new(0, 24, 0, 24)
Close.Font = Enum.Font.Ubuntu
Close.Text = "X"
Close.TextColor3 = Color3.fromRGB(255, 255, 255)
Close.TextSize = 14.000
Close.MouseButton1Down:connect(function()
Kelvin8971:Destroy()
end)

Minimize.Name = "Minimize"
Minimize.Parent = Main
Minimize.BackgroundColor3 = Color3.fromRGB(115, 237, 255)
Minimize.Position = UDim2.new(0.839879155, 0, 0, 0)
Minimize.Size = UDim2.new(0, 22, 0, 24)
Minimize.Font = Enum.Font.Ubuntu
Minimize.Text = "-"
Minimize.TextColor3 = Color3.fromRGB(255, 255, 255)
Minimize.TextSize = 14.000
Minimize.MouseButton1Down:connect(function()
Main.Visible = false
Open.Visible = true
end)

Open.Name = "Open"
Open.Parent = Kelvin8971
Open.BackgroundColor3 = Color3.fromRGB(84, 84, 84)
Open.Position = UDim2.new(0.839879155, 0, -0.0123076923, 0)
Open.Size = UDim2.new(0, 54, 0, 22)
Open.Font = Enum.Font.SourceSans
Open.Text = "Open"
Open.TextColor3 = Color3.fromRGB(255, 255, 255)
Open.TextSize = 14.000
Open.MouseButton1Down:connect(function()
Main.Visible = true
Open.Visible = false
end)

DupeFrame.Name = "DupeFrame"
DupeFrame.Parent = Main
DupeFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
DupeFrame.BackgroundTransparency = 1.000
DupeFrame.Position = UDim2.new(0, 0, 0.243076921, 0)
DupeFrame.Size = UDim2.new(0, 330, 0, 246)
DupeFrame.Visible = false

SaveSlot.Name = "SaveSlot"
SaveSlot.Parent = DupeFrame
SaveSlot.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
SaveSlot.Position = UDim2.new(0.371236891, 0, 0.207066908, 0)
SaveSlot.Size = UDim2.new(0, 89, 0, 26)
SaveSlot.Font = Enum.Font.FredokaOne
SaveSlot.Text = "Save"
SaveSlot.TextColor3 = Color3.fromRGB(255, 255, 255)
SaveSlot.TextSize = 14.000

SlotText.Name = "SlotText"
SlotText.Parent = DupeFrame
SlotText.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SlotText.BackgroundTransparency = 1.000
SlotText.Position = UDim2.new(0.196969703, 0, -0.0284552854, 0)
SlotText.Size = UDim2.new(0, 200, 0, 27)
SlotText.Font = Enum.Font.SciFi
SlotText.Text = "Enter Your Slot Number :"
SlotText.TextColor3 = Color3.fromRGB(255, 255, 255)
SlotText.TextSize = 14.000

Slot.Name = "SlotNumber"
Slot.Parent = DupeFrame
Slot.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Slot.Position = UDim2.new(0.442424238, 0, 0.08130081, 0)
Slot.Size = UDim2.new(0, 39, 0, 23)
Slot.Font = Enum.Font.SourceSans
Slot.Text = ""
Slot.TextColor3 = Color3.fromRGB(0, 0, 0)
Slot.TextSize = 14.000

DupeMoney.Name = "DupeMoney"
DupeMoney.Parent = DupeFrame
DupeMoney.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
DupeMoney.Position = UDim2.new(0.640933871, 0, 0.207066908, 0)
DupeMoney.Size = UDim2.new(0, 94, 0, 26)
DupeMoney.Font = Enum.Font.FredokaOne
DupeMoney.Text = "Dupe Money"
DupeMoney.TextColor3 = Color3.fromRGB(255, 255, 255)
DupeMoney.TextSize = 14.000

LoadSlot.Name = "LoadSlot"
LoadSlot.Parent = DupeFrame
LoadSlot.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
LoadSlot.Position = UDim2.new(0.0742671639, 0, 0.207066908, 0)
LoadSlot.Size = UDim2.new(0, 97, 0, 26)
LoadSlot.Font = Enum.Font.FredokaOne
LoadSlot.Text = "Load"
LoadSlot.TextColor3 = Color3.fromRGB(255, 255, 255)
LoadSlot.TextSize = 14.000

PlayerFrame.Name = "PlayerFrame"
PlayerFrame.Parent = Main
PlayerFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
PlayerFrame.BackgroundTransparency = 1.000
PlayerFrame.Position = UDim2.new(0, 0, 0.243076921, 0)
PlayerFrame.Size = UDim2.new(0, 330, 0, 246)
PlayerFrame.Visible = false

PlrSpd.Name = "PlrSpd"
PlrSpd.Parent = PlayerFrame
PlrSpd.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
PlrSpd.Position = UDim2.new(0.0637480915, 0, 0.00357719348, 0)
PlrSpd.Size = UDim2.new(0, 72, 0, 25)
PlrSpd.Font = Enum.Font.FredokaOne
PlrSpd.Text = "Speed"
PlrSpd.TextColor3 = Color3.fromRGB(255, 255, 255)
PlrSpd.TextSize = 14.000

PlrRst.Name = "PlrRst"
PlrRst.Parent = PlayerFrame
PlrRst.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
PlrRst.Position = UDim2.new(0.494051129, 0, 0.00357719348, 0)
PlrRst.Size = UDim2.new(0, 72, 0, 25)
PlrRst.Font = Enum.Font.FredokaOne
PlrRst.Text = "Reset"
PlrRst.TextColor3 = Color3.fromRGB(255, 255, 255)
PlrRst.TextSize = 14.000

Fog.Name = "Fog"
Fog.Parent = PlayerFrame
Fog.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Fog.Position = UDim2.new(0.748596549, 0, 0.00357719348, 0)
Fog.Size = UDim2.new(0, 72, 0, 25)
Fog.Font = Enum.Font.FredokaOne
Fog.Text = "No Fog"
Fog.TextColor3 = Color3.fromRGB(255, 255, 255)
Fog.TextSize = 14.000

PlrClip.Name = "PlrClip"
PlrClip.Parent = PlayerFrame
PlrClip.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
PlrClip.Position = UDim2.new(0.494051129, 0, 0.149918661, 0)
PlrClip.Size = UDim2.new(0, 72, 0, 25)
PlrClip.Font = Enum.Font.FredokaOne
PlrClip.Text = "No Clip"
PlrClip.TextColor3 = Color3.fromRGB(255, 255, 255)
PlrClip.TextSize = 14.000

PlrJump.Name = "PlrJump"
PlrJump.Parent = PlayerFrame
PlrJump.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
PlrJump.Position = UDim2.new(0.748596549, 0, 0.149918661, 0)
PlrJump.Size = UDim2.new(0, 72, 0, 25)
PlrJump.Font = Enum.Font.FredokaOne
PlrJump.Text = "Inf Jump"
PlrJump.TextColor3 = Color3.fromRGB(255, 255, 255)
PlrJump.TextSize = 14.000

PlrTp.Name = "PlrTp"
PlrTp.Parent = PlayerFrame
PlrTp.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
PlrTp.Position = UDim2.new(0.172838986, 0, 0.743414521, 0)
PlrTp.Size = UDim2.new(0, 99, 0, 25)
PlrTp.Font = Enum.Font.FredokaOne
PlrTp.Text = "Tp To Player"
PlrTp.TextColor3 = Color3.fromRGB(255, 255, 255)
PlrTp.TextSize = 14.000

PlrBase.Name = "PlrBase"
PlrBase.Parent = PlayerFrame
PlrBase.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
PlrBase.Position = UDim2.new(0.539505661, 0, 0.743414521, 0)
PlrBase.Size = UDim2.new(0, 99, 0, 25)
PlrBase.Font = Enum.Font.FredokaOne
PlrBase.Text = "Tp To Base"
PlrBase.TextColor3 = Color3.fromRGB(255, 255, 255)
PlrBase.TextSize = 14.000

PlrTpTxt.Name = "PlrTpTxt"
PlrTpTxt.Parent = PlayerFrame
PlrTpTxt.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
PlrTpTxt.Position = UDim2.new(0.302830398, 0, 0.577129126, 0)
PlrTpTxt.Size = UDim2.new(0, 130, 0, 25)
PlrTpTxt.Font = Enum.Font.SourceSans
PlrTpTxt.PlaceholderText = "Type Username"
PlrTpTxt.Text = ""
PlrTpTxt.TextColor3 = Color3.fromRGB(0, 0, 0)
PlrTpTxt.TextSize = 14.000

PlrSpdTxt.Name = "PlrSpdTxt"
PlrSpdTxt.Parent = PlayerFrame
PlrSpdTxt.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
PlrSpdTxt.Position = UDim2.new(0.303030312, 0, 0.00357719348, 0)
PlrSpdTxt.Size = UDim2.new(0, 48, 0, 24)
PlrSpdTxt.Font = Enum.Font.SourceSans
PlrSpdTxt.Text = "16"
PlrSpdTxt.TextColor3 = Color3.fromRGB(0, 0, 0)
PlrSpdTxt.TextSize = 14.000

PlrWater.Name = "PlrWater"
PlrWater.Parent = PlayerFrame
PlrWater.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
PlrWater.Position = UDim2.new(0.494051129, 0, 0.288130045, 0)
PlrWater.Size = UDim2.new(0, 72, 0, 25)
PlrWater.Font = Enum.Font.FredokaOne
PlrWater.Text = "Water W."
PlrWater.TextColor3 = Color3.fromRGB(255, 255, 255)
PlrWater.TextSize = 14.000

MaxLand.Name = "MaxLand"
MaxLand.Parent = PlayerFrame
MaxLand.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
MaxLand.Position = UDim2.new(0.748596549, 0, 0.288130045, 0)
MaxLand.Size = UDim2.new(0, 72, 0, 25)
MaxLand.Font = Enum.Font.FredokaOne
MaxLand.Text = "Max Land"
MaxLand.TextColor3 = Color3.fromRGB(255, 255, 255)
MaxLand.TextSize = 14.000

PlayerMenu.Name = "PlayerMenu"
PlayerMenu.Parent = Main
PlayerMenu.BackgroundColor3 = Color3.fromRGB(53, 53, 53)
PlayerMenu.BorderColor3 = Color3.fromRGB(66, 100, 100)
PlayerMenu.BorderSizePixel = 2
PlayerMenu.Position = UDim2.new(0.0271903332, 0, 0.0923076943, 0)
PlayerMenu.Size = UDim2.new(0, 77, 0, 20)
PlayerMenu.Font = Enum.Font.SciFi
PlayerMenu.Text = "Player"
PlayerMenu.TextColor3 = Color3.fromRGB(255, 255, 255)
PlayerMenu.TextSize = 14.000
PlayerMenu.MouseButton1Down:connect(function()
PlayerFrame.Visible = true
WoodFrame.Visible = false
DupeFrame.Visible = false
TpFrame.Visible = false
end)

WoodMenu.Name = "WoodMenu"
WoodMenu.Parent = Main
WoodMenu.BackgroundColor3 = Color3.fromRGB(53, 53, 53)
WoodMenu.BorderColor3 = Color3.fromRGB(66, 100, 100)
WoodMenu.BorderSizePixel = 2
WoodMenu.Position = UDim2.new(0.259818733, 0, 0.0923076943, 0)
WoodMenu.Size = UDim2.new(0, 79, 0, 20)
WoodMenu.Font = Enum.Font.SciFi
WoodMenu.Text = "Wood"
WoodMenu.TextColor3 = Color3.fromRGB(255, 255, 255)
WoodMenu.TextSize = 14.000
WoodMenu.MouseButton1Down:connect(function()
WoodFrame.Visible = true
PlayerFrame.Visible = false
DupeFrame.Visible = false
TpFrame.Visible = false
end)

DupeMenu.Name = "DupeMenu"
DupeMenu.Parent = Main
DupeMenu.BackgroundColor3 = Color3.fromRGB(53, 53, 53)
DupeMenu.BorderColor3 = Color3.fromRGB(66, 100, 100)
DupeMenu.BorderSizePixel = 2
DupeMenu.Position = UDim2.new(0.498489439, 0, 0.0923076943, 0)
DupeMenu.Size = UDim2.new(0, 80, 0, 20)
DupeMenu.Font = Enum.Font.SciFi
DupeMenu.Text = "Dupe"
DupeMenu.TextColor3 = Color3.fromRGB(255, 255, 255)
DupeMenu.TextSize = 14.000
DupeMenu.MouseButton1Down:connect(function()
DupeFrame.Visible = true
PlayerFrame.Visible = false
WoodFrame.Visible = false
TpFrame.Visible = false
end)

TpMenu.Name = "TpMenu"
TpMenu.Parent = Main
TpMenu.BackgroundColor3 = Color3.fromRGB(53, 53, 53)
TpMenu.BorderColor3 = Color3.fromRGB(66, 100, 100)
TpMenu.BorderSizePixel = 2
TpMenu.Position = UDim2.new(0.740181267, 0, 0.0923076943, 0)
TpMenu.Size = UDim2.new(0, 80, 0, 20)
TpMenu.Font = Enum.Font.SciFi
TpMenu.Text = "Teleport"
TpMenu.TextColor3 = Color3.fromRGB(255, 255, 255)
TpMenu.TextSize = 14.000
TpMenu.MouseButton1Down:connect(function()
TpFrame.Visible = true
PlayerFrame.Visible = false
WoodFrame.Visible = false
DupeFrame.Visible = false
end)

TpFrame.Name = "TpFrame"
TpFrame.Parent = Main
TpFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TpFrame.BackgroundTransparency = 1.000
TpFrame.Position = UDim2.new(0, 0, 0.190769225, 0)
TpFrame.Size = UDim2.new(0, 330, 0, 263)
TpFrame.Visible = false

BoxedCar.Name = "BoxedCar"
BoxedCar.Parent = TpFrame
BoxedCar.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
BoxedCar.Position = UDim2.new(0.26980868, 0, 0.0492045693, 0)
BoxedCar.Size = UDim2.new(0, 72, 0, 25)
BoxedCar.Font = Enum.Font.FredokaOne
BoxedCar.Text = "Boxed Car"
BoxedCar.TextColor3 = Color3.fromRGB(255, 255, 255)
BoxedCar.TextSize = 14.000

WoodRUs.Name = "WoodRUs"
WoodRUs.Parent = TpFrame
WoodRUs.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
WoodRUs.Position = UDim2.new(0.0334450454, 0, 0.0492045693, 0)
WoodRUs.Size = UDim2.new(0, 72, 0, 25)
WoodRUs.Font = Enum.Font.FredokaOne
WoodRUs.Text = "WoodRUs"
WoodRUs.TextColor3 = Color3.fromRGB(255, 255, 255)
WoodRUs.TextSize = 14.000

Furnishings.Name = "Furnishings"
Furnishings.Parent = TpFrame
Furnishings.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Furnishings.Position = UDim2.new(0.5092026, 0, 0.0492045693, 0)
Furnishings.Size = UDim2.new(0, 72, 0, 25)
Furnishings.Font = Enum.Font.FredokaOne
Furnishings.Text = "Furnishings"
Furnishings.TextColor3 = Color3.fromRGB(255, 255, 255)
Furnishings.TextSize = 14.000

LogicShop.Name = "LogicShop"
LogicShop.Parent = TpFrame
LogicShop.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
LogicShop.Position = UDim2.new(0.751626849, 0, 0.0492045693, 0)
LogicShop.Size = UDim2.new(0, 72, 0, 25)
LogicShop.Font = Enum.Font.FredokaOne
LogicShop.Text = "Link's Logic"
LogicShop.TextColor3 = Color3.fromRGB(255, 255, 255)
LogicShop.TextSize = 14.000

LandStore.Name = "LandStore"
LandStore.Parent = TpFrame
LandStore.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
LandStore.Position = UDim2.new(0.0334450454, 0, 0.178482145, 0)
LandStore.Size = UDim2.new(0, 72, 0, 25)
LandStore.Font = Enum.Font.FredokaOne
LandStore.Text = "Land Store"
LandStore.TextColor3 = Color3.fromRGB(255, 255, 255)
LandStore.TextSize = 14.000

BobsShack.Name = "BobsShack"
BobsShack.Parent = TpFrame
BobsShack.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
BobsShack.Position = UDim2.new(0.26980868, 0, 0.178482145, 0)
BobsShack.Size = UDim2.new(0, 72, 0, 25)
BobsShack.Font = Enum.Font.FredokaOne
BobsShack.Text = "Bobs Shack"
BobsShack.TextColor3 = Color3.fromRGB(255, 255, 255)
BobsShack.TextSize = 14.000

ArtsShop.Name = "ArtsShop"
ArtsShop.Parent = TpFrame
ArtsShop.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
ArtsShop.Position = UDim2.new(0.5092026, 0, 0.178482145, 0)
ArtsShop.Size = UDim2.new(0, 72, 0, 25)
ArtsShop.Font = Enum.Font.FredokaOne
ArtsShop.Text = "Arts Shop"
ArtsShop.TextColor3 = Color3.fromRGB(255, 255, 255)
ArtsShop.TextSize = 14.000

PowerShop.Name = "PowerShop"
PowerShop.Parent = TpFrame
PowerShop.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
PowerShop.Position = UDim2.new(0.751626849, 0, 0.178482145, 0)
PowerShop.Size = UDim2.new(0, 72, 0, 25)
PowerShop.Font = Enum.Font.FredokaOne
PowerShop.Text = "Buy Power"
PowerShop.TextColor3 = Color3.fromRGB(255, 255, 255)
PowerShop.TextSize = 14.000

TpCarTextLabel.Name = "TpCarTextLabel"
TpCarTextLabel.Parent = TpFrame
TpCarTextLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TpCarTextLabel.BackgroundTransparency = 1.000
TpCarTextLabel.Position = UDim2.new(0.269696981, 0, 0.326996207, 0)
TpCarTextLabel.Size = UDim2.new(0, 151, 0, 19)
TpCarTextLabel.Font = Enum.Font.SciFi
TpCarTextLabel.Text = "Teleport With Car"
TpCarTextLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TpCarTextLabel.TextSize = 14.000

WoodRUsCar.Name = "WoodRUsCar"
WoodRUsCar.Parent = TpFrame
WoodRUsCar.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
WoodRUsCar.Position = UDim2.new(0.0273844395, 0, 0.440839529, 0)
WoodRUsCar.Size = UDim2.new(0, 72, 0, 25)
WoodRUsCar.Font = Enum.Font.FredokaOne
WoodRUsCar.Text = "WoodRUs"
WoodRUsCar.TextColor3 = Color3.fromRGB(255, 255, 255)
WoodRUsCar.TextSize = 14.000

BoxedCarCar.Name = "BoxedCarCar"
BoxedCarCar.Parent = TpFrame
BoxedCarCar.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
BoxedCarCar.Position = UDim2.new(0.26374808, 0, 0.440839529, 0)
BoxedCarCar.Size = UDim2.new(0, 72, 0, 25)
BoxedCarCar.Font = Enum.Font.FredokaOne
BoxedCarCar.Text = "Boxed Car"
BoxedCarCar.TextColor3 = Color3.fromRGB(255, 255, 255)
BoxedCarCar.TextSize = 14.000

FurnishingsCar.Name = "FurnishingsCar"
FurnishingsCar.Parent = TpFrame
FurnishingsCar.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
FurnishingsCar.Position = UDim2.new(0.503141999, 0, 0.440839529, 0)
FurnishingsCar.Size = UDim2.new(0, 72, 0, 25)
FurnishingsCar.Font = Enum.Font.FredokaOne
FurnishingsCar.Text = "Furnishings"
FurnishingsCar.TextColor3 = Color3.fromRGB(255, 255, 255)
FurnishingsCar.TextSize = 14.000

LogicShopCar.Name = "LogicShopCar"
LogicShopCar.Parent = TpFrame
LogicShopCar.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
LogicShopCar.Position = UDim2.new(0.745566249, 0, 0.440839529, 0)
LogicShopCar.Size = UDim2.new(0, 72, 0, 25)
LogicShopCar.Font = Enum.Font.FredokaOne
LogicShopCar.Text = "Link's Logic"
LogicShopCar.TextColor3 = Color3.fromRGB(255, 255, 255)
LogicShopCar.TextSize = 14.000

LandStoreCar.Name = "LandStoreCar"
LandStoreCar.Parent = TpFrame
LandStoreCar.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
LandStoreCar.Position = UDim2.new(0.0273844395, 0, 0.570117116, 0)
LandStoreCar.Size = UDim2.new(0, 72, 0, 25)
LandStoreCar.Font = Enum.Font.FredokaOne
LandStoreCar.Text = "Land Store"
LandStoreCar.TextColor3 = Color3.fromRGB(255, 255, 255)
LandStoreCar.TextSize = 14.000

BobsShackCar.Name = "BobsShackCar"
BobsShackCar.Parent = TpFrame
BobsShackCar.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
BobsShackCar.Position = UDim2.new(0.26374808, 0, 0.570117116, 0)
BobsShackCar.Size = UDim2.new(0, 72, 0, 25)
BobsShackCar.Font = Enum.Font.FredokaOne
BobsShackCar.Text = "Bobs Shack"
BobsShackCar.TextColor3 = Color3.fromRGB(255, 255, 255)
BobsShackCar.TextSize = 14.000

ArtsShopCar.Name = "ArtsShopCar"
ArtsShopCar.Parent = TpFrame
ArtsShopCar.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
ArtsShopCar.Position = UDim2.new(0.503141999, 0, 0.570117116, 0)
ArtsShopCar.Size = UDim2.new(0, 72, 0, 25)
ArtsShopCar.Font = Enum.Font.FredokaOne
ArtsShopCar.Text = "Arts Shop"
ArtsShopCar.TextColor3 = Color3.fromRGB(255, 255, 255)
ArtsShopCar.TextSize = 14.000

PowerShopCar.Name = "PowerShopCar"
PowerShopCar.Parent = TpFrame
PowerShopCar.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
PowerShopCar.Position = UDim2.new(0.745566249, 0, 0.570117116, 0)
PowerShopCar.Size = UDim2.new(0, 72, 0, 25)
PowerShopCar.Font = Enum.Font.FredokaOne
PowerShopCar.Text = "Buy Power"
PowerShopCar.TextColor3 = Color3.fromRGB(255, 255, 255)
PowerShopCar.TextSize = 14.000

GoHomeCar.Name = "GoHomeCar"
GoHomeCar.Parent = TpFrame
GoHomeCar.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
GoHomeCar.Position = UDim2.new(0.387990505, 0, 0.706999242, 0)
GoHomeCar.Size = UDim2.new(0, 72, 0, 25)
GoHomeCar.Font = Enum.Font.FredokaOne
GoHomeCar.Text = "Go Home"
GoHomeCar.TextColor3 = Color3.fromRGB(255, 255, 255)
GoHomeCar.TextSize = 14.000

local function SendNotification(Title,Text,Duration) -- Sends Notification in the bottom right of the screen
game.StarterGui:SetCore("SendNotification", {
Title = Title;
Text = Text;
Icon = nil;
Duration = Duration
})
end

Dupe.Name = "Dupe"
Dupe.Parent = PlayerFrame
Dupe.BackgroundColor3 = Color3.fromRGB(66, 100, 100)
Dupe.Position = UDim2.new(0, 80, 0, 72)
Dupe.Size = UDim2.new(0, 72, 0, 25)
Dupe.Font = Enum.Font.FredokaOne
Dupe.Text = "Dupe"
Dupe.TextColor3 = Color3.fromRGB(255, 255, 255)
Dupe.TextSize = 14.000
Dupe.MouseButton1Down:connect(function()
SendNotification("Kelvin", "Tunggu hidup kembali", 5)
local plr = game:service'Players'.LocalPlayer

function SafeRespawn()
plr.Character.Head:Destroy()
end

function Dupe()
SafeRespawn()
for i,v in pairs(plr.Backpack:GetChildren()) do
if v.Name == "Tool" then
game:GetService("ReplicatedStorage").Interaction.ClientInteracted:FireServer(v,"Drop tool",plr.Character.Torso.CFrame * CFrame.new(0,5,0))
end
end
end

Dupe()
wait(5)
SendNotification("Kelvin", "Ok Axe kamu sudah di Dupe", 5)
end)

PlrSpd.MouseButton1Down:connect(function()
while true do
wait()
game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = PlrSpdTxt.Text
end
end)

PlrRst.MouseButton1Click:connect(function()
game.Players.LocalPlayer.Character.Head:Destroy()
end)

Fog.MouseButton1Down:connect(function()
game.Lighting.Changed:connect(function()
game.Lighting.TimeOfDay = "12:00:00"
game.Lighting.FogEnd = 9999
game.Lighting.Brightness = 2
end)
end)

_G.noclip = false
game:GetService('RunService').Stepped:connect(function()
if noclip then
game.Players.LocalPlayer.Character.Humanoid:ChangeState(11)
PlrClip.BorderColor3 = Color3.fromRGB(115, 237, 255)
PlrClip.BorderSizePixel = 2
end
end)
PlrClip.MouseButton1Down:connect(function()
noclip = not noclip
PlrClip.BorderColor3 = Color3.fromRGB(115, 237, 255)
PlrClip.BorderSizePixel = 0
end)

local toggle = false
PlrJump.MouseButton1Down:connect(function()
	toggle = not toggle
	PlrJump.BorderColor3 = (toggle and Color3.fromRGB(115, 237, 255) or Color3.fromRGB(255,255,255))
	PlrJump.BorderSizePixel = (toggle and 2 or 0)
	if toggle then
		InfiniteJumpEnabled = true
	game:GetService("UserInputService").JumpRequest:connect(function()
	if InfiniteJumpEnabled then
		game:GetService"Players".LocalPlayer.Character:FindFirstChildOfClass'Humanoid':ChangeState("Jumping")
		InfiniteJumpEnabled = true
	end
end)

else
			InfiniteJumpEnabled = false
       game:GetService("UserInputService").JumpRequest:connect(function()
	if InfiniteJumpEnabled then
		game:GetService"Players".LocalPlayer.Character:FindFirstChildOfClass'Humanoid':ChangeState("Jumping")
		
	end
end)
	end
end)

local toggle = false
PlrWater.MouseButton1Click:Connect(function()
	toggle = not toggle
	PlrWater.BorderColor3 = (toggle and Color3.fromRGB(115, 237, 255) or Color3.fromRGB(255,255,255))
	PlrWater.BorderSizePixel = (toggle and 2 or 0)
	if toggle then
		for index, water in pairs(game.Workspace.Water:GetChildren()) do
   water.CanCollide = true
end
	else
		for index, water in pairs(game.Workspace.Water:GetChildren()) do
   water.CanCollide = false
end
	end
end)

MaxLand.MouseButton1Down:Connect(function()
for i, v in pairs(game:GetService("Workspace").Properties:GetChildren()) do
if v:FindFirstChild("Owner") and v.Owner.Value == game.Players.LocalPlayer then
base = v
square = v.OriginSquare
end
end
function makebase(pos)
local Event = game:GetService("ReplicatedStorage").PropertyPurchasing.ClientExpandedProperty
Event:FireServer(base, pos)
end
spos = square.Position
makebase(CFrame.new(spos.X + 40, spos.Y, spos.Z))
makebase(CFrame.new(spos.X - 40, spos.Y, spos.Z))
makebase(CFrame.new(spos.X, spos.Y, spos.Z + 40))
makebase(CFrame.new(spos.X, spos.Y, spos.Z - 40))
makebase(CFrame.new(spos.X + 40, spos.Y, spos.Z + 40))
makebase(CFrame.new(spos.X + 40, spos.Y, spos.Z - 40))
makebase(CFrame.new(spos.X - 40, spos.Y, spos.Z + 40))
makebase(CFrame.new(spos.X - 40, spos.Y, spos.Z - 40))
makebase(CFrame.new(spos.X + 80, spos.Y, spos.Z))
makebase(CFrame.new(spos.X - 80, spos.Y, spos.Z))
makebase(CFrame.new(spos.X, spos.Y, spos.Z + 80))
makebase(CFrame.new(spos.X, spos.Y, spos.Z - 80))
--Corners--
makebase(CFrame.new(spos.X + 80, spos.Y, spos.Z + 80))
makebase(CFrame.new(spos.X + 80, spos.Y, spos.Z - 80))
makebase(CFrame.new(spos.X - 80, spos.Y, spos.Z + 80))
makebase(CFrame.new(spos.X - 80, spos.Y, spos.Z - 80))
--Corners--
makebase(CFrame.new(spos.X + 40, spos.Y, spos.Z + 80))
makebase(CFrame.new(spos.X - 40, spos.Y, spos.Z + 80))
makebase(CFrame.new(spos.X + 80, spos.Y, spos.Z + 40))
makebase(CFrame.new(spos.X + 80, spos.Y, spos.Z - 40))
makebase(CFrame.new(spos.X - 80, spos.Y, spos.Z + 40))
makebase(CFrame.new(spos.X - 80, spos.Y, spos.Z - 40))
makebase(CFrame.new(spos.X + 40, spos.Y, spos.Z - 80))
makebase(CFrame.new(spos.X - 40, spos.Y, spos.Z - 80))

end)

local ME = game.Players.LocalPlayer.Character.HumanoidRootPart
PLR = PlrTpTxt.Text

PlrTp.MouseButton1Down:connect(function()
local tp_namedplayer = PlrTpTxt.Text
local tp_player = game:GetService("Players")[tp_namedplayer]

if tp_player then
        for i = 1,5 do
    wait()
    ME.CFrame = tp_player.Character.HumanoidRootPart.CFrame + Vector3.new(0, 3, 0)
    end
end
    end)

PlrBase.MouseButton1Down:connect(function()

local Plr = PlrTpTxt.Text
for i,v in pairs(game.Workspace.Properties:GetChildren()) do
if v.Owner.Value == game.Players[Plr] then
ME.CFrame = v.OriginSquare.CFrame + Vector3.new(0,10,0)
end
end
end)

Volcano.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Volcano" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

CaveCrawler.MouseButton1Down:connect(function()
ME.CFrame = CFrame.new(3581, -177, 430)
end)

SnowGlow.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "SnowGlow" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Frost.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Frost" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Green.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "GreenSwampy" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Gold.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "GoldSwampy" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Oak.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Oak" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Cherry.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Cherry" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Pine.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Pine" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Fir.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Fir" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Koa.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Koa" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Generic.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Generic" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Elm.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Spooky" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Birch.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Birch" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Palm.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Palm" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

Walnut.MouseButton1Down:connect(function()
for i, v in pairs(game.Workspace:GetChildren()) do
if v.Name == "TreeRegion" then
for j, k in ipairs(v:GetChildren()) do
if k:FindFirstChild("TreeClass") and k.TreeClass.Value == "Walnut" then
game.Players.LocalPlayer.Character:MoveTo(k.WoodSection.Position)
break
end
end
end
end
end)

tpwood.MouseButton1Down:connect(function()
Ps = nil
for i, v in pairs(game.Workspace.Properties:GetChildren()) do
if v.Owner.Value == game.Players[WoodPlayer.Text] then
Ps = v.OriginSquare.Position + Vector3.new(0,30,0)
end
end
for , Log in pairs(game.Workspace.LogModels:GetChildren()) do
if Log.Name:sub(1, 6) == "Loose
" and Log:findFirstChild("Owner") then
if Log.Owner.Value == game.Players.LocalPlayer then
Log:MoveTo(Ps)
for i=1,100 do
game.ReplicatedStorage.Interaction.ClientIsDragging:FireServer(Log)
end
end
end
end
end)

tpmyslot.MouseButton1Down:connect(function()
for i,v in pairs(game.Workspace.Properties:GetChildren()) do
if v.Owner.Value == game.Players.LocalPlayer then
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = v.OriginSquare.CFrame + Vector3.new(0,10,0)
end
end
end)

local MoneyCooldown = false
local CurrentSlot = game.Players.LocalPlayer:WaitForChild("CurrentSaveSlot").Value
local ScriptLoadOrSave = false
local CurrentlySavingOrLoading = game.Players.LocalPlayer:WaitForChild("CurrentlySavingOrLoading")

local function CheckIfSlotAvailable(Slot)
for a,b in pairs(game.ReplicatedStorage.LoadSaveRequests.GetMetaData:InvokeServer(game.Players.LocalPlayer)) do
if a == Slot then
for c,d in pairs(b) do
if c == "NumSaves" and d ~= 0 then
return true
else
return false
end
end
end
end
end

local function CheckSlotNumber() --Checks if the slot number is right
if Slot.Text == "1" or Slot.Text == "2" or Slot.Text == "3" or Slot.Text == "4" or Slot.Text == "5" or Slot.Text == "6" then
local SlotNumber = tonumber(Slot.Text)
return SlotNumber
else return false
end
end

local function SendNotification(Title,Text,Duration) -- Sends Notification in the bottom right of the screen
game.StarterGui:SetCore("SendNotification", {
Title = Title;
Text = Text;
Icon = nil;
Duration = Duration
})
end

SaveSlot.MouseButton1Down:connect(function()
local CheckSlot = CheckSlotNumber()
if CheckSlot ~= false then
if CurrentSlot ~= -1 then
ScriptLoadOrSave = true
local SaveSlot = game.ReplicatedStorage.LoadSaveRequests.RequestSave:InvokeServer(CheckSlot)
if SaveSlot == true then
SendNotification("Hack by Kelvin8971", "saved ;)", 2)
wait(.5)
ScriptLoadOrSave = false
elseif SaveSlot == false then
SendNotification("Hack by Kelvin897", "Sudah Saving!", 1)
wait(.5)
ScriptLoadOrSave = false
end
else
SendNotification("Hack by Kelvin8971", "Kesalahan! Anda bahkan tidak memuat", 1)
end
else
SendNotification("Hack by Kelvin8971", "Hmm... Ada yang salah", 1)
end
end)

LoadSlot.MouseButton1Down:connect(function()
ScriptLoadOrSave = true
local CheckSlot = CheckSlotNumber()
if CheckSlot ~= false then
if CheckIfSlotAvailable(CheckSlot) == true then
local LoadSlot = game.ReplicatedStorage.LoadSaveRequests.RequestLoad:InvokeServer(CheckSlot)
if LoadSlot == false then
SendNotification("Hack by Kelvin8971", "Tenang! Tidak Dapat Memuat Sekarang. Harap tunggu", 1)
end
if LoadSlot == true then
SendNotification("Hack by Kelvin8971", "Loaded!", 2)
CurrentSlot = CheckSlot
end
else
SendNotification("Hack by Kelvin8971", "Hmm... Ada yang salah", 2)
end
else
SendNotification("Hack by Kelvin8971", "Hmm... Ada yang salah", 2)
end
ScriptLoadOrSave = false
end)

DupeMoney.MouseButton1Down:connect(function()
if MoneyCooldown == true then
SendNotification("Hack by Kelvin8971", "Tenang! Harap tunggu!",2)
return
elseif MoneyCooldown == false then
MoneyCooldown = true
SendNotification("Hack by Kelvin8971", "Duping...", 5)
wait(1)
SendNotification("Hack by Kelvin8971", "Sekarang coba muat slot Anda dari Menu", 59)
game.ReplicatedStorage.Transactions.ClientToServer.Donate:InvokeServer(game.Players.LocalPlayer, game.Players.LocalPlayer.leaderstats.Money.Value, 1)
wait(55)
SendNotification("Hack by Kelvin8971", "Now wait about 1 minute until your money's get back", 45)
SendNotification("Hack by Kelvin8971", "Kesuksesan! Jangan lupa untuk SUBSCRIBE Kelvin8971", 5)
MoneyCooldown = false
end
end)

WoodRUs.MouseButton1Down:connect(function()
ME.CFrame = CFrame.new(265, 3, 57)
end)

BoxedCar.MouseButton1Down:connect(function()
ME.CFrame = CFrame.new(509, 5.2, -1463)
end)

Furnishings.MouseButton1Down:connect(function()
ME.CFrame = CFrame.new(491, 5, -1720)
end)

LogicShop.MouseButton1Down:connect(function()
ME.CFrame = CFrame.new(4607, 6, -798)
end)

LandStore.MouseButton1Down:connect(function()
ME.CFrame = CFrame.new(258, 5, -99)
end)

BobsShack.MouseButton1Down:connect(function()
ME.CFrame = CFrame.new(260, 10, -2542)
end)

ArtsShop.MouseButton1Down:connect(function()
ME.CFrame = CFrame.new(5207, -156, 719)
end)

PowerShop.MouseButton1Down:connect(function()
ME.CFrame = CFrame.new(1061, 20, 1131)
end)

function TeleportCar(Pos)
if game.Players.LocalPlayer.Character then
Character = game.Players.LocalPlayer.Character
if Character.Humanoid.SeatPart ~= nil then
Car = Character.Humanoid.SeatPart.Parent
spawn(function()
for i=1,5 do
wait()
Car:SetPrimaryPartCFrame(Pos * CFrame.Angles(math.rad(Character.HumanoidRootPart.Orientation.x), math.rad(Character.HumanoidRootPart.Orientation.y), 0))
game.ReplicatedStorage.Interaction.ClientRequestOwnership:FireServer(Car.Main)
game.ReplicatedStorage.Interaction.ClientIsDragging:FireServer(Car.Main)
end
end)
end
end
end

WoodRUsCar.MouseButton1Down:connect(function()
TeleportCar(CFrame.new(236, 3.4, 57))
end)

BoxedCarCar.MouseButton1Down:connect(function()
TeleportCar(CFrame.new(509, 3.4, -1497))
end)

FurnishingsCar.MouseButton1Down:connect(function()
TeleportCar(CFrame.new(491, 13, -1720))
end)

LogicShopCar.MouseButton1Down:connect(function()
TeleportCar(CFrame.new(4615, 3, -708))
end)

LandStoreCar.MouseButton1Down:connect(function()
TeleportCar(CFrame.new(258, 5, -99))
end)

BobsShackCar.MouseButton1Down:connect(function()
TeleportCar(CFrame.new(222, 9.4, -2530))
end)

ArtsShopCar.MouseButton1Down:connect(function()
TeleportCar(CFrame.new(5207, -166.5, 719))
end)

PowerShopCar.MouseButton1Down:connect(function()
TeleportCar(CFrame.new(1061, 20, 1131))
end)

GoHomeCar.MouseButton1Down:connect(function()
TeleportCar(CFrame.new(155, 3, 74))
end)

Failed to build on Ubuntu 20.04.1 LTS

Compilation fails almost immediately with the following error message:
https://pastebin.com/NLdAhmMS

-Ubuntu 20.04.1 LTS
-Godot source cloned from Godot 3.2 repository.
-Compiled using: scons platform=windows tools=no target=release_debug bits=64 -j10 tools=yes module_luascript_enabled=yes

Compiling for Windows: error looking for <sys/wait.h>

Hello,

This compiles without any issues on my Debian (targeting Debian).

I fail to compile it for Windows though:
scons -j 6 bits=64 module_luascript_enabled=yes target=release_debug tools=yes platform=windows
[...]
modules/luascript/lib/lua/lauxlib.c:267:10: fatal error: sys/wait.h: No such file or directory
267 | #include <sys/wait.h>

As far as I could learn online, mingw-64 doesn't provide a full posix implementation, and the sys/wait.h requirement apparently cannot be satisfied in that context.
Has anyone been able to build it for Windows?

Thanks!

Reference to local

Just tried to build things...
And got scaring messages, which are hidden behind macros FORCE_INLINE in your code, but, I would check that:

In file included from modules/luascript/lua_script.cpp:26:
modules/luascript/lua_script_language.h: In static member function 'static MutexLock&& LuaScriptLanguage::acquire()':
modules/luascript/lua_script_language.h:43:33: warning: reference to local variable 'lock' returned [-Wreturn-local-addr]
43 | return std::move(lock);
| ~~~~~~~~~^~~~~~
modules/luascript/lua_script_language.h:42:27: note: declared here
42 | MutexLock lock(LuaScriptLanguage::get_singleton()->mutex);
| ^~~~
[ 27%] Compiling ==> modules/luascript/lua_script_instance.cpp
In file included from modules/luascript/lua_script_instance.cpp:23:
modules/luascript/lua_script_language.h: In static member function 'static MutexLock&& LuaScriptLanguage::acquire()':
modules/luascript/lua_script_language.h:43:33: warning: reference to local variable 'lock' returned [-Wreturn-local-addr]
43 | return std::move(lock);
| ~~~~~~~~~^~~~~~
modules/luascript/lua_script_language.h:42:27: note: declared here
42 | MutexLock lock(LuaScriptLanguage::get_singleton()->mutex);
| ^~~~
[ 27%] Compiling ==> modules/luascript/lua_script_language.cpp
In file included from modules/luascript/lua_script_language.cpp:28:
modules/luascript/lua_script_language.h: In static member function 'static MutexLock&& LuaScriptLanguage::acquire()':
modules/luascript/lua_script_language.h:43:33: warning: reference to local variable 'lock' returned [-Wreturn-local-addr]
43 | return std::move(lock);
| ~~~~~~~~~^~~~~~
modules/luascript/lua_script_language.h:42:27: note: declared here
42 | MutexLock lock(LuaScriptLanguage::get_singleton()->mutex);

I think proper way is just:

static MutexLock LuaScriptLanguage::acquire()

and then "return lock;"

If lock has proper move constructor/operator compiler will handle that properly.
Also if you want be sure MOVE made, delete copiers explicit like
MutexLock(const MutexLock&) = delete;

Interfacing with other languages?

Can this addon be used to interface between, say, Lua and C#? I was thinking of using this to write the "data" portion of my game (e.g. item definitions/behaviours)

Compiler Error: C2429 "requires compiler flag /std:c++17"

Howdy! Whenever I attempt to build Godot with the Lua script enabled I get this error. It happens at 24% everytime and it happens on line 39, 42, and 45 of the registertypes.cpp file.

It says I am missing C++17 but Godot was able to build perfectly without it? Also at the start of the build process when building with Lua script enabled it says "C++17 overridden, proceeding with C++14" so I think something is happening to make it not use C++17.

I am running Windows, but I don't think this would make a big difference as it seems to be a problem with the Lua script itself, but I could be wrong. I installed every C++ file I could possibly find on Visual Studio and it didn't seem to make a difference.

Thank you for your time! I am sorry if I am doing this whole "Issues" thing incorrectly. I am sort of new to Github.

Code completion in builtin editor?

I couldn't find in the README whether code completion in the builtin editor should be working or not, it does not for me.

Is this a feature on a whishlist for later or a problem on my end?

AttributeError: 'SConsEnvironment' object has no attribute 'editor_build'

Happens on line 23 of modules/luascript/SCsub. Is there another setting I should set besides module_luascript_enabled=yes?

Not sure if this second part is related but something is missing here too. If that check on 23 and 24 is commented out, the build gets past that step but fails with:

In file included from modules/register_module_types.gen.cpp:26:
./modules/luascript/register_types.h:24:6: error: variable or field 'initialize_luascript_module' declared void
   24 | void initialize_luascript_module(ModuleInitializationLevel p_level);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[Initial build] ./modules/luascript/register_types.h:24:34: error: 'ModuleInitializationLevel' was not declared in this scope
   24 | void initialize_luascript_module(ModuleInitializationLevel p_level);
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
./modules/luascript/register_types.h:25:6: error: variable or field 'uninitialize_luascript_module' declared void
   25 | void uninitialize_luascript_module(ModuleInitializationLevel p_level);
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[Initial build] ./modules/luascript/register_types.h:25:36: error: 'ModuleInitializationLevel' was not declared in this scope
   25 | void uninitialize_luascript_module(ModuleInitializationLevel p_level);
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
modules/register_module_types.gen.cpp: In function 'void register_module_types()':
modules/register_module_types.gen.cpp:115:2: error: 'register_luascript_types' was not declared in this scope; did you mean 'register_gdscript_types'?
  115 |  register_luascript_types();
      |  ^~~~~~~~~~~~~~~~~~~~~~~~
      |  register_gdscript_types
modules/register_module_types.gen.cpp: In function 'void unregister_module_types()':
modules/register_module_types.gen.cpp:260:2: error: 'unregister_luascript_types' was not declared in this scope; did you mean 'unregister_gdscript_types'?
  260 |  unregister_luascript_types();
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |  unregister_gdscript_types

Also happens if only the check is commented out and SConscript('editor/SCsub') is run unconditionally

Cli is scons -j$(nproc) platform=x11 target=release_debug use_lto=yes module_luascript_enabled=yes bits=64 deprecated=no production=yes execinfo=yes, building on Void Linux with Godot 3.5.1-stable

He can't work

I completed the compilation and used msbuild on windows, but he will not run any lua scripts:
I applied the following script to "Camera3D" and nothing happened.

MainCamera.zip

Add examples in the README.md

I was able to compile the engine with the lua script module but I am not able to test the lua functionality, printing doesn't show up on the console and I don't know if this is my fault for not compiling the engine correctly or if it isn't printing because I'm writing the LUA code incorrectly

Quick Access to the Scene's Tree Nodes

The idea is to design how the scene's nodes can be accessed through aliases, reducing the amount of code needed for reaching out a descendant node, or the root of the tree, or even a sibling node, since this type of operation is widely used for the game's logic.

Keeping the Lua way of programming, every scene will have two local tables used to access the tree’s nodes. They are the _R table and the _S table and they allow us to access the root node of the tree and the current node been processed by the engine, respectively.

The root node is so named like this because it is the oldest ancestor of each node in the tree. So its table alias _R will give us access to the entire scene tree by simply referring to the name of the child node and, like wise, the child node's own children, descending from the top most parent node to the deepest child node.

The local _S table is a lot alike the _R table. The main difference is its conciseness that allows us quick access to all current node's children. That is because the scene node is in front of the root node (or below it, depending how you think about such tree), and its main purpose is to interact quickly with its children. Therefore, using the _S table to access sibling or ancestral nodes does not bring much of an advantage for the developer, in which case the _R table should be used instead.

Following below is an excerpt for some of the the designs I have so far, showing how those tables can be applied on real game logic code.

The following examples presuppose this sample tree and has the Hero node as the current node running the Lua script so that the _S table is an alias for the Hero node.

/root
/root/Hero
/root/Hero/Fighter
/root/Hero/Fighter/MachineGun
/root/Hero/HealthGauge
/root/Supplies
/root/Supplies/Ammunition
/root/FirstAidKit

local class = require 'lua.class'       -- Import the system class library
local Sprite = require 'godot.Sprite'   -- Make sure to import the base class

local Main = class.extends(Sprite)      -- Create the user subclass

function Main:ready()
  _S.Fighter.MachineGun.load( _R.Supplies.Ammunition.get() ) 
  -- The above line of code is equivalent to:
  get_node( 'Fighter/MachineGun' ).load( get_node( '/root/Supplies/Ammunition' ).get() )

  self.Fighter.MachineGun.unlock()      -- _S table can be interchanged with the 'self' keyword
end

function Main:process(delta)
  if ( _S.HealthGauge.level() < 20 ) then
    apply_first_aid_kit( _R.FirstAidKit )
    -- The above line of code is equivalent to:
    apply_first_aid_kit( get_node( '../FirstAidKit' ) )
  end
end

function Main:apply_first_aid_kit(kit)
  -- do some life saving with the kit
  -- ...
end

return Main

Please share your thoughts on this idea or show us a new idea that you come up about this topic.

-- Perbone

[output overflow, print less text!]

Godot 3.2
Windows 10

local class = require 'lua.class' -- Import the system class library
godot.Node2D = require 'godot.Node2D' -- Make sure to import the base class


local Node2d = class.extends(godot.Node2D) -- Create the user subclass

function Node2d:_ready()
	print('Hello world')
end

function Node2d:_process(delta)

end


return Node2d

Problem with windows build

Hello !

First of all thanks for your work ! I really appreciate your work on binding the LUA language to godot.
Now i'm not super familiar with scons et neither with "antlr4" but I keep having this error comming up when I recompile godot using this command :

scons -j4 platform=windows module_luascript_enabled=yes

and I keep getting errors such as :

ConsoleErrorListener.cpp [ 26%] Compiling ==> modules\luascript\lib\antlr4\DefaultErrorStrategy.cpp DefaultErrorStrategy.cpp C:\Users\Lufen\Documents\Godot\godot+lua\godot-3.2.2-stable\modules\luascript\lib\antlr4\IntStream.h(41): warning C4251: 'antlr4::IntStream::UNKNOWN_SOURCE_NAME': class 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs to have dll-interface to be used by clients of class 'antlr4::IntStream' C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring(4564): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>

or :

-C4273 (exemple : lib\antlr4\DefaultErrorStrategy.h(19): note: see previous definition of '{ctor}' )

Any ideas of where this is comming from ?

I am on Windows x64 version 20H2.

EDIT : after further research it seems that I have an issue similar to this case?

EDIT 2: I'm trying to build it using WSL2 :)

Questions and Feature Request

I plan on using this module to produce a sandboxed computer programming environment, much like ComputerCraft.

I have managed to compile the module on my Mac OSX Mojave. Currently I am in the process of trying to load a preloaded lua script from my GDScript Commands script (for testing to make sure it works).

My question is, can I sandbox the Lua code (as I plan on having this run server side) and is there a feature to where I can execute Lua directly from GDScript much like how GDScript Expressions work? Also, can I sandbox Lua in this module with something like whitelisting functions?

If not, I would like to put in a feature request to be able to do these two things! 😊

Thanks! I appreciate your work!

Compilation error on ubuntu 20.04

Tried compiling godot with luascript (tagged 3.x) with godot version 3.4 and got this error

There is no problem with my compilation setup as I got no error when compiled without this module

[Initial build] Compiling ==> modules/luascript/lib/lua/lapi.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lauxlib.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lbaselib.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lcode.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lcorolib.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lctype.c
[Initial build] Compiling ==> modules/luascript/lib/lua/ldblib.c
[Initial build] Compiling ==> modules/luascript/lib/lua/ldebug.c
[Initial build] Compiling ==> modules/luascript/lib/lua/ldo.c
[Initial build] Compiling ==> modules/luascript/lib/lua/ldump.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lfunc.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lgc.c
[Initial build] Compiling ==> modules/luascript/lib/lua/linit.c
[Initial build] Compiling ==> modules/luascript/lib/lua/liolib.c
[Initial build] Compiling ==> modules/luascript/lib/lua/llex.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lmathlib.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lmem.c
modules/lua/lua.cpp: In member function 'Variant Lua::callFunction(String, Array, bool, Object*, String)':
modules/lua/lua.cpp:127:9: warning: unused variable 'stack_size' [-Wunused-variable]
  127 |     int stack_size = lua_gettop(state);
      |         ^~~~~~~~~~
[Initial build] Compiling ==> modules/luascript/lib/lua/loadlib.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lobject.c
modules/lua/lua.cpp: In member function 'Variant Lua::pullVariant(String)':
modules/lua/lua.cpp:326:9: warning: unused variable 'type' [-Wunused-variable]
  326 |     int type = lua_getglobal(state, name.ascii().get_data());
      |         ^~~~
[Initial build] Compiling ==> modules/luascript/lib/lua/lopcodes.c
[Initial build] Compiling ==> modules/luascript/lib/lua/loslib.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lparser.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lstate.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lstring.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lstrlib.c
[Initial build] Compiling ==> modules/luascript/lib/lua/ltable.c
[Initial build] Compiling ==> modules/luascript/lib/lua/ltablib.c
[Initial build] Compiling ==> modules/luascript/lib/lua/ltm.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lundump.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lutf8lib.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lvm.c
[Initial build] Compiling ==> modules/luascript/lib/lua/lzio.c
[Initial build] Compiling ==> modules/luascript/lib/antlr4/ANTLRErrorListener.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/ANTLRErrorStrategy.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/ANTLRFileStream.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/ANTLRInputStream.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/BailErrorStrategy.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/BaseErrorListener.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/BufferedTokenStream.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/CharStream.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/CommonToken.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/CommonTokenFactory.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/CommonTokenStream.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/ConsoleErrorListener.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/DefaultErrorStrategy.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/DiagnosticErrorListener.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/Exceptions.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/FailedPredicateException.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/InputMismatchException.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/IntStream.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/InterpreterRuleContext.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/Lexer.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/LexerInterpreter.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/LexerNoViableAltException.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/ListTokenSource.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/NoViableAltException.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/Parser.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/ParserInterpreter.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/ParserRuleContext.cpp
[Initial build] Compiling ==> modules/luascript/lib/antlr4/ProxyErrorListener.cpp
In file included from modules/luascript/lib/antlr4/Parser.cpp:17:
modules/luascript/lib/antlr4/atn/ATNDeserializer.h:26:22: error: 'Guid' in namespace 'antlrcpp' does not name a type
   26 |     static antlrcpp::Guid SERIALIZED_UUID();
      |                      ^~~~
modules/luascript/lib/antlr4/atn/ATNDeserializer.h:32:22: error: 'Guid' in namespace 'antlrcpp' does not name a type
   32 |     static antlrcpp::Guid toUUID(const unsigned short *data, size_t offset);
      |                      ^~~~
modules/luascript/lib/antlr4/atn/ATNDeserializer.h:57:53: error: 'Guid' in namespace 'antlrcpp' does not name a type
   57 |     virtual bool isFeatureSupported(const antlrcpp::Guid &feature, const antlrcpp::Guid &actualUuid);
      |                                                     ^~~~
modules/luascript/lib/antlr4/atn/ATNDeserializer.h:57:84: error: 'Guid' in namespace 'antlrcpp' does not name a type
   57 | tureSupported(const antlrcpp::Guid &feature, const antlrcpp::Guid &actualUuid);
      |                                                              ^~~~

modules/luascript/lib/antlr4/atn/ATNDeserializer.h:63:22: error: 'Guid' in namespace 'antlrcpp' does not name a type
   63 |     static antlrcpp::Guid BASE_SERIALIZED_UUID();
      |                      ^~~~
modules/luascript/lib/antlr4/atn/ATNDeserializer.h:67:22: error: 'Guid' in namespace 'antlrcpp' does not name a type
   67 |     static antlrcpp::Guid ADDED_PRECEDENCE_TRANSITIONS();
      |                      ^~~~
modules/luascript/lib/antlr4/atn/ATNDeserializer.h:74:22: error: 'Guid' in namespace 'antlrcpp' does not name a type
   74 |     static antlrcpp::Guid ADDED_LEXER_ACTIONS();
      |                      ^~~~
modules/luascript/lib/antlr4/atn/ATNDeserializer.h:81:22: error: 'Guid' in namespace 'antlrcpp' does not name a type
   81 |     static antlrcpp::Guid ADDED_UNICODE_SMP();
      |                      ^~~~
modules/luascript/lib/antlr4/atn/ATNDeserializer.h:85:34: error: 'Guid' is not a member of 'antlrcpp'; did you mean 'Guid'?
   85 |     static std::vector<antlrcpp::Guid>& SUPPORTED_UUIDS();
      |                                  ^~~~
In file included from modules/luascript/lib/antlr4/antlr4-common.h:110,
                 from modules/luascript/lib/antlr4/atn/ATNDeserializationOptions.h:8,
                 from modules/luascript/lib/antlr4/Parser.cpp:6:
modules/luascript/lib/antlr4/support/Guid.h:41:7: note: 'Guid' declared here
   41 | class Guid
      |       ^~~~
In file included from modules/luascript/lib/antlr4/Parser.cpp:17:
modules/luascript/lib/antlr4/atn/ATNDeserializer.h:85:38: error: template argument 1 is invalid
   85 |     static std::vector<antlrcpp::Guid>& SUPPORTED_UUIDS();
      |                                      ^
modules/luascript/lib/antlr4/atn/ATNDeserializer.h:85:38: error: template argument 2 is invalid
scons: *** [modules/luascript/lib/antlr4/Parser.x11.tools.64.o] Error 1
scons: building terminated because of errors.
[Time elapsed: 00:05:20.215]

Compiling for Windows: Error C2429 Requires Compiler Flag "/std:c++17"

Howdy! I have been trying to build Lua into Godot, but I get this error.

error C2429: language feature 'init-statements in if/switch' requires compiler flag '/std:c++17'

I have everything installed correctly and Godot was built without any hiccups. I cloned luascript into the modules folder. I think I did everything correctly. Maybe I am missing a file... Well I must be or else I wouldn't be getting this error haha. I did enable C++ when installing Visual Studio, I followed the Godot tutorial on the website for building Godot word for word.

I am sorta new to Github so I apologize if I am doing this whole issue thing incorrectly.

Thank you and have a good one.

Error compiling on WSL Ubuntu

image
I get an error saying that the sys/wait.h library does not exist. Is this an error with the library or is it just me? I'm compiling on WSL Ubuntu with Windows 11.

Not found LuaScript in Create Script window

I've successfully built Godot 3.2.3 from source, import luascript module and built it again with success too. But I don't find the option to create a new script file in Lua.

Current progress

I know you called this a WIP, but I was wondering what the current state is. Is it usable at all?

I tried adding a simple lua script using your default template but it prevented the scene from getting loaded correctly and spammed the console with debug logs. I also tried adding a print 'hi' in the _ready function but never saw it. I'm not afraid of rough edges, I was kind of just wondering if you expected it to even work in a very basic way at this point.

Also I would love to help out, so please let me know if there's anything I can help with.

On an unrelated note I was looking into adding JavaScript support to Godot. Can you give me any tips to getting started? It looks like you're using the PluginScript API that godot-python pioneered, but it's a lot less code and a lot less confusing than godot-python itself, so I think I can learn a lot more from this project and from you.

Lua Signals Design

The idea is to design how signals will work in Lua and Godot. A signal will be an element in a table in the class object and will follow the definitions from the initial call for the implicit available signals method.

Following below is an excerpt for some of the the designs I have so far.

local class = require 'lua.class'       -- Import the system class library
local Sprite = require 'godot.Sprite'   -- Make sure to import the base class

local Main = class.extends(Sprite)      -- Create the user subclass

Main:signals {
    { name = 'sum_calculated', parameters = { name = 'sum', type = 'number' } },
    { name = 'completed' } },
    { name = 'new_title', parameters = { name = 'title' } },
}

function Main:ready()
    math.randomseed(os.time())          -- Randomize from whatever the time is
end

function Main:process(delta)
    local sum = math.random(100)
    emit_signal( 'sum_calculated', sum )
end

return Main

The signals in the code above have the following characteristics:

  • sum_calculated has one parameter called sum with the data type defined as string
  • completed signal has no parameters
  • new_title has one parameter called title with the default data type string

Please share your thoughts on this idea or show us a new idea that you come up about this topic.

-- Perbone

LuaJIT

Have you considered luajit?

Compilation error on Windows 10: "Identifier not found"

Branch: 3.x
Compile options: platform=windows -j16 target=release_debug tools=yes bits=64 module_luascript_enabled=yes
Any errors when compiling without luascript? None
Compiler: MSVC version 14.3 (Visual Studio Community 2022)
Scons version: v4.3.0
Python version: 3.10

Tried to compile it on Windows 10 (latest version as of May, 20, 2022) but I'm getting this errors:

┏[gabas]
┖[~\Documents\Repositories\godot-3.x]
   scons platform=windows -j16 target=release_debug tools=yes bits=64 module_luascript_enabled=yes
scons: Reading SConscript files ...
Configuring for Windows: target=release_debug, bits=64
Found MSVC version 14.3, arch amd64, bits=64
Checking for C header file mntent.h... (cached) no
scons: done reading SConscript files.
scons: Building targets ...
[  4%] generate_modules_enabled(["modules\modules_enabled.gen.h"], [OrderedDict([('bmp', 'modules/bmp'), ('bullet', 'modules/bullet'), ('camera', 'modules/camera'), ('csg', 'modules/csg'), ('cvtt', 'modules/cvtt'), ('dds', 'modules/dds'), ('denoise', 'modules/denoise'), ('enet', 'modules/enet'), ('etc', 'modules/etc'), ('fbx', 'modules/fbx'), ('freetype', 'modules/freetype'), ('gdnative', 'modules/gdnative'), ('gdscript', 'modules/gdscript'), ('gltf', 'modules/gltf'), ('gridmap', 'modules/gridmap'), ('hdr', 'modules/hdr'), ('jpg', 'modules/jpg'), ('jsonrpc', 'modules/jsonrpc'), ('lightmapper_cpu', 'modules/lightmapper_cpu'), ('luascript', 'modules/luascript'), ('mbedtls', 'modules/mbedtls'), ('minimp3', 'modules/minimp3'), ('mobile_vr', 'modules/mobile_vr'), ('navigation', 'modules/navigation'), ('ogg', 'modules/ogg'), ('opensimplex', 'modules/opensimplex'), ('opus', 'modules/opus'), ('pvr', 'modules/pvr'), ('raycast', 'modules/raycast'), ('regex', 'modules/regex'), ('squish', 'modules/squish'), ('stb_vorbis', 'modules/stb_vorbis'), ('svg', 'modules/svg'), ('tga', 'modules/tga'), ('theora', 'modules/theora'), ('tinyexr', 'modules/tinyexr'), ('upnp', 'modules/upnp'), ('vhacd', 'modules/vhacd'), ('visual_script', 'modules/visual_script'), ('vorbis', 'modules/vorbis'), ('webm', 'modules/webm'), ('webp', 'modules/webp'), ('webrtc', 'modules/webrtc'), ('websocket', 'modules/websocket'), ('webxr', 'modules/webxr'), ('xatlas_unwrap', 'modules/xatlas_unwrap')])])
[ 30%] Compiling ==> modules\luascript\lib\lua\lapi.c
[ 30%] Compiling ==> modules\luascript\lib\lua\lauxlib.c
[ 30%] Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

[ 30%] Compiling ==> modules\luascript\lib\lua\lbaselib.c
lapi.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

lauxlib.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

lbaselib.c
[ 30%] Compiling ==> modules\luascript\lib\lua\lcode.c
[ 30%] Compiling ==> modules\luascript\lib\lua\lcorolib.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

[ 30%] Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

[ 30%] lcode.c
[ 30%] Compiling ==> modules\luascript\lib\lua\lctype.c
lcorolib.c
[ 30%] Compiling ==> modules\luascript\lib\lua\ldblib.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

lctype.c
[ 30%] Compiling ==> modules\luascript\lib\lua\ldebug.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

[ 30%] ldblib.c
[ 30%] Compiling ==> modules\luascript\lib\lua\ldo.c
[ 30%] Compiling ==> modules\luascript\lib\lua\ldump.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

ldebug.c
[ 30%] Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

[ 30%] Compiling ==> modules\luascript\lib\lua\lfunc.c
ldo.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

[ 30%] ldump.c
Compiling ==> modules\luascript\lib\lua\lgc.c
[ 30%] Compiling ==> modules\luascript\lib\lua\linit.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

lfunc.c
[ 30%] Compiling ==> modules\luascript\lib\lua\liolib.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

lgc.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

linit.c
[ 30%] Compiling ==> modules\luascript\lib\lua\llex.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

liolib.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.32.31329 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

llex.c
[ 30%] Compiling ==> modules\csg\csg_gizmos.cpp
[ 30%] Compiling ==> modules\gltf\gltf_skin.cpp
[ 30%] Compiling ==> modules\gltf\gltf_document.cpp
[ 30%] csg_gizmos.cpp
Compiling ==> modules\gdscript\register_types.cpp
[ 30%] gltf_skin.cpp
Compiling ==> modules\gltf\gltf_texture.cpp
[ 30%] Compiling ==> main\main.cpp
[ 31%] Compiling ==> main\tests\test_string.cpp
[ 31%] register_types.cpp
gltf_document.cpp
Compiling ==> modules\gltf\gltf_state.cpp
gltf_texture.cpp
[ 31%] Compiling ==> modules\gltf\gltf_node.cpp
main.cpp
[ 31%] Compiling ==> main\tests\test_gdscript.cpp
test_string.cpp
[ 31%] gltf_state.cpp
Compiling ==> modules\fbx\register_types.cpp
gltf_node.cpp
[ 31%] Compiling ==> modules\gridmap\grid_map_editor_plugin.cpp
test_gdscript.cpp
[ 31%] Compiling ==> modules\gltf\register_types.cpp
register_types.cpp
[ 31%] grid_map_editor_plugin.cpp
                                 Compiling ==> modules\register_module_types.gen.cpp
[ 31%] Compiling ==> modules\gltf\gltf_buffer_view.cpp
[ 31%] Compiling ==> modules\fbx\editor_scene_importer_fbx.cpp
register_types.cpp
register_module_types.gen.cpp
gltf_buffer_view.cpp
C:\Users\gabas\Documents\Repositories\godot-3.x\modules/luascript/register_types.h(24): error C2065: 'ModuleInitializationLevel': undeclared identifiereditor_scene_importer_fbx.cpp

C:\Users\gabas\Documents\Repositories\godot-3.x\modules/luascript/register_types.h(24): error C2146: syntax error: missing ')' before identifier 'p_level'
C:\Users\gabas\Documents\Repositories\godot-3.x\modules/luascript/register_types.h(25): error C2065: 'ModuleInitializationLevel': undeclared identifier
C:\Users\gabas\Documents\Repositories\godot-3.x\modules/luascript/register_types.h(25): error C2146: syntax error: missing ')' before identifier 'p_level'
modules\register_module_types.gen.cpp(115): error C3861: 'register_luascript_types': identifier not found
modules\register_module_types.gen.cpp(260): error C3861: 'unregister_luascript_types': identifier not found
scons: *** [modules\register_module_types.gen.windows.opt.tools.64.obj] Error 2
scons: building terminated because of errors.
[Time elapsed: 00:00:28.947]

Compatibility with Godot 3.2.x

I was having trouble getting Godot to compile with the latest luascript branch (last updated Mar 22 2021) using:

  • Godot 3.2.3-Stable
  • macOS 11.0.1
  • Python 3.9.2
  • SCons 4.1
  • yasm 1.3

Reverting to Godot 3.2.0-Stable fixed it. It seems like there are some files removed in 3.2.x that luascript depends on to build properly. Or maybe I was just missing something. But I wanted to put up a screenshot of the errors in case its useful to the dev!

Screen Shot 2021-03-29 at 1 32 20 PM

Thanks for making this tool!

Integrating this project with LuaJIT

Hello! I find your project to be interesting and I sent you an email but I think other people would also be interested in this so I hope you don't mind if I open an issue. You mention in your project that you have support for multiple Lua interpreters:

Support for multiple Lua runtimes (PUC Rio Lua 5.4 and LuaJIT)

How can one add the LuaJIT runtime to this project?

In addition, I would like to ask, is this project compatible with Lua multithreading libraries such as this one (https://github.com/effil/effil)?

Thank you for your time!

Getting some errors when compiling

When compiling on Xubuntu 19.04 with Godot 3.1.2-stable I get these errors:

[ 25%] In file included from modules/luascript/lua_script_instance.cpp:23:
modules/luascript/lua_script_language.h:82:96: error: 'ScriptCodeCompletionOption' was not declared in this scope; did you mean 'ScriptCodeCompletionCache'?
   82 | lete_code(const String &p_code, const String &p_path, Object *p_owner, List<ScriptCodeCompletionOption> *r_options, bool &r_force, String &r_call_hint);
      |                                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                             ScriptCodeCompletionCache
modules/luascript/lua_script_language.h:82:122: error: template argument 1 is invalid
   82 | code, const String &p_path, Object *p_owner, List<ScriptCodeCompletionOption> *r_options, bool &r_force, String &r_call_hint);
      |                                                                             ^

[ 26%] Compiling ==> thirdparty/mbedtls/library/error.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/gcm.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/havege.c
In file included from modules/luascript/lua_script.cpp:26:
modules/luascript/lua_script_language.h:82:96: error: 'ScriptCodeCompletionOption' was not declared in this scope; did you mean 'ScriptCodeCompletionCache'?
   82 | lete_code(const String &p_code, const String &p_path, Object *p_owner, List<ScriptCodeCompletionOption> *r_options, bool &r_force, String &r_call_hint);
      |                                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                             ScriptCodeCompletionCache
modules/luascript/lua_script_language.h:82:122: error: template argument 1 is invalid
   82 | code, const String &p_path, Object *p_owner, List<ScriptCodeCompletionOption> *r_options, bool &r_force, String &r_call_hint);
      |                                                                             ^

[ 26%] modules/luascript/lua_script.cpp: In member function 'Error LuaScript::load_source_code(const String&)':
modules/luascript/lua_script.cpp:288:3: error: 'ERR_FAIL_V_MSG' was not declared in this scope; did you mean 'ERR_FAIL_V'?
  288 |   ERR_FAIL_V_MSG(ERR_INVALID_DATA, "Script '" + p_path + "' contains invalid unicode (utf-8), so it was not loaded. Please ensure that scripts are saved in valid utf-8 unicode.")
      |   ^~~~~~~~~~~~~~
      |   ERR_FAIL_V
[ 26%] Compiling ==> thirdparty/mbedtls/library/hkdf.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/hmac_drbg.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/md2.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/md4.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/md5.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/md.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/md_wrap.c
In file included from modules/luascript/register_types.cpp:23:
modules/luascript/lua_script_language.h:82:96: error: 'ScriptCodeCompletionOption' was not declared in this scope; did you mean 'ScriptCodeCompletionCache'?
   82 | lete_code(const String &p_code, const String &p_path, Object *p_owner, List<ScriptCodeCompletionOption> *r_options, bool &r_force, String &r_call_hint);
      |                                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                             ScriptCodeCompletionCache
modules/luascript/lua_script_language.h:82:122: error: template argument 1 is invalid
   82 | code, const String &p_path, Object *p_owner, List<ScriptCodeCompletionOption> *r_options, bool &r_force, String &r_call_hint);
      |                                                                             ^

[ 26%] Compiling ==> thirdparty/mbedtls/library/memory_buffer_alloc.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/net_sockets.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/nist_kw.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/oid.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/padlock.c
[ 26%] Compiling ==> thirdparty/mbedtls/library/pem.c
In file included from modules/luascript/lua_script_language.cpp:25:
modules/luascript/lua_script_language.h:82:96: error: 'ScriptCodeCompletionOption' was not declared in this scope; did you mean 'ScriptCodeCompletionCache'?
   82 | lete_code(const String &p_code, const String &p_path, Object *p_owner, List<ScriptCodeCompletionOption> *r_options, bool &r_force, String &r_call_hint);
      |                                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                             ScriptCodeCompletionCache
[ 26%] modules/luascript/lua_script_language.h:82:122: error: template argument 1 is invalid
   82 | code, const String &p_path, Object *p_owner, List<ScriptCodeCompletionOption> *r_options, bool &r_force, String &r_call_hint);
      |                                                                             ^

[ 26%] scons: *** [modules/luascript/lua_script_instance.x11.tools.64.o] Error 1
Compiling ==> thirdparty/mbedtls/library/pk.c
scons: *** [modules/luascript/lua_script.x11.tools.64.o] Error 1
In file included from ./core/cowdata.h:36,
                 from ./core/ustring.h:35,
                 from ./core/math/vector2.h:35,
                 from ./core/math/rect2.h:34,
                 from ./core/math/transform_2d.h:34,
                 from ./scene/gui/control.h:34,
                 from ./scene/gui/text_edit.h:34,
                 from modules/luascript/editor/luascript_syntax_highlighter.h:22,
                 from modules/luascript/editor/luascript_syntax_highlighter.cpp:20:
modules/luascript/editor/luascript_syntax_highlighter.cpp: In static member function 'static SyntaxHighlighter* LuaScriptSyntaxHighlighter::create()':
modules/luascript/editor/luascript_syntax_highlighter.cpp:35:16: error: invalid new-expression of abstract class type 'LuaScriptSyntaxHighlighter'
   35 |  return memnew(LuaScriptSyntaxHighlighter);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~
./core/os/memory.h:98:51: note: in definition of macro 'memnew'
   98 | #define memnew(m_class) _post_initialize(new ("") m_class)
      |                                                   ^~~~~~~
In file included from modules/luascript/editor/luascript_syntax_highlighter.cpp:20:
modules/luascript/editor/luascript_syntax_highlighter.h:24:7: note:   because the following virtual functions are pure within 'LuaScriptSyntaxHighlighter':
   24 | class LuaScriptSyntaxHighlighter : public SyntaxHighlighter {
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from modules/luascript/editor/luascript_syntax_highlighter.h:22,
                 from modules/luascript/editor/luascript_syntax_highlighter.cpp:20:
./scene/gui/text_edit.h:690:17: note: 	'virtual String SyntaxHighlighter::get_name()'
  690 |  virtual String get_name() = 0;
      |                 ^~~~~~~~
scons: *** [modules/luascript/editor/luascript_syntax_highlighter.x11.tools.64.o] Error 1
scons: *** [modules/luascript/register_types.x11.tools.64.o] Error 1
modules/luascript/lua_script_language.cpp:302:8: error: 'ScriptCodeCompletionOption' was not declared in this scope; did you mean 'ScriptCodeCompletionCache'?
  302 |   List<ScriptCodeCompletionOption> *r_options, bool &r_force, String &r_call_hint) { // TODO
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |        ScriptCodeCompletionCache
modules/luascript/lua_script_language.cpp:302:34: error: template argument 1 is invalid
  302 |   List<ScriptCodeCompletionOption> *r_options, bool &r_force, String &r_call_hint) { // TODO
      |                                  ^
scons: *** [modules/luascript/lua_script_language.x11.tools.64.o] Error 1
scons: building terminated because of errors.

Moonscript

Hi Paulo

In case, I like to add Moonscript support, can you guide me?

I am both fine by contributing into this repository and as well doing it in my own.

Is it enough, to somewhat register the keywords, operators and similary, and under the hood runs moonscript constantly and evaluates it to Lua?

Help, How can i use this

Hi!
I know here is not the right place for this, but a follow the steps to install this plugin, build godot and i dont how to use this, can you help me plz?

image

I made this test, but the print dont works.

How to Disable/Capture Lua Logging to Terminal?

I have a logger in my game which takes a verbosity value and determines how much data to spit out to the terminal. It also saves to a file if the feature is enabled.

I would like to know if there is a way to turn on/off Lua logging via script and if it is possible to capture the output of the log into a variable? If not, I would also like to add this as a feature request.

Thanks!

Compiling for macOS fatal error 'core/ustring.h' file not found

I've successfully compiled Godot from source, but when compiled with luascript I give this error on compiling process:

[ 37%] Compiling ==> modules/luascript/editor/luascript_syntax_highlighter.cpp
In file included from modules/luascript/editor/luascript_syntax_highlighter.cpp:
20:
modules/luascript/editor/luascript_syntax_highlighter.h:33:29: error: no member
named 'HighlighterInfo' in 'TextEdit'
virtual Map<int, TextEdit::HighlighterInfo> _get_line_syntax_hig...
~~~~~~~~~~^
In file included from modules/luascript/editor/luascript_syntax_highlighter.cpp:
21:
modules/luascript/editor/../constants.h:22:10: fatal error: 'core/ustring.h'
file not found
#include "core/ustring.h"
^~~~~~~~~~~~~~~~
2 errors generated.
scons: *** [modules/luascript/editor/luascript_syntax_highlighter.osx.tools.x86_64.o] Error 1
scons: building terminated because of errors.

Error when building on Windows

An error gets thrown when building on windows, using the following command: scons platform=windows module_luascript_enabled=yes target=release_debug bits=64 vsproj=yes

The error in question:

scons: Reading SConscript files ...
Configuring for Windows: target=release_debug, bits=64
Found MSVC version 14.2, arch amd64, bits=64
Checking for C header file mntent.h... (cached) no
scons: done reading SConscript files.
scons: Building targets ...
[Initial build] Compiling ==> modules\luascript\editor\luascript_syntax_highlighter.cpp
Microsoft (R) C/C++ Optimizing Compiler Version 19.29.30133 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

luascript_syntax_highlighter.cpp
D:\Git Downloads\Godot Engine\modules\luascript\editor\luascript_syntax_highlighter.h(33): error C2039: 'HighlighterInfo': is not a member of 'TextEdit'
.\scene/gui/text_edit.h(41): note: see declaration of 'TextEdit'
D:\Git Downloads\Godot Engine\modules\luascript\editor\luascript_syntax_highlighter.h(33): error C2065: 'HighlighterInfo': undeclared identifier
D:\Git Downloads\Godot Engine\modules\luascript\editor\luascript_syntax_highlighter.h(33): error C2923: 'Map': 'HighlighterInfo' is not a valid template type argument for parameter 'V'
D:\Git Downloads\Godot Engine\modules\luascript\editor\luascript_syntax_highlighter.h(33): note: see declaration of 'HighlighterInfo'
D:\Git Downloads\Godot Engine\modules\luascript\editor\luascript_syntax_highlighter.h(33): error C2976: 'Map': too few template arguments
.\core/templates/map.h(42): note: see declaration of 'Map'
D:\Git Downloads\Godot Engine\modules\luascript\editor\luascript_syntax_highlighter.h(33): error C2955: 'Map': use of class template requires template argument list
.\core/templates/map.h(42): note: see declaration of 'Map'
D:\Git Downloads\Godot Engine\modules\luascript\editor\../constants.h(22): fatal error C1083: Cannot open include file: 'core/ustring.h': No such file or directory
scons: *** [modules\luascript\editor\luascript_syntax_highlighter.windows.opt.tools.64.obj] Error 2
scons: building terminated because of errors.
[Time elapsed: 00:00:19.221]

godot 3 api changed

class "Warning " no longer exists and namespace "MultiplayerAPI" changed to ScriptInstance now

Lua Properties Design

The idea is to design how properties will work in Lua and Godot. A property will be a variable in the class object and will follow the definitions from the initial call for the implicit available properties method.

Following below is an excerpt for some of the the designs I have so far.

local class = require 'lua.class' -- Import the system class library
local Sprite = require 'godot.Sprite' -- Make sure to import the base class

local Main = class.extends(Sprite) -- Create the user subclass

Main:properties {
  { name = 'width', type = Types.number, default = 10 },
  { name = 'height', type = Types.number },
  { name = 'title', type = Types.string, get = 'get_title', set = 'set_title' },
  { name = 'description' }
}

function Main:ready()
  self.height = 5
end

function Main:process(delta)
  print(self.width * self.height) -- Should print 50
end

function Main:get_title()
  return 'The title is ' .. (self.title and self.title or 'undefined')
end

function Main:set_title(title)
  self.title = title
end

return Main

The description property in the code above has the default data type of string.

Please share your thoughts on this idea or show us a new idea that you come up about this topic.

-- Perbone

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.